三维图形程序设计5.ppt

三维图形程序设计5.ppt

ID:61914927

大小:675.00 KB

页数:29页

时间:2021-03-29

三维图形程序设计5.ppt_第1页
三维图形程序设计5.ppt_第2页
三维图形程序设计5.ppt_第3页
三维图形程序设计5.ppt_第4页
三维图形程序设计5.ppt_第5页
资源描述:

《三维图形程序设计5.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、三维图形程序设计1Face三维图形程序设计5三维图形程序设计2Chap5纹理映射Chap4引例:1、绘制一面砖墙的应用:就可以用一幅真实的砖墙图像或照片作为纹理贴到一个矩形上,这样,一面逼真的砖墙就画好了。如果不用纹理映射的方法,则墙上的每一块砖都必须作为一个独立的多边形来画。2、透视投影方式观察墙面纹理映射能够保证在变换多边形时,多边形上的纹理图案也随之变化。例如,以透视投影方式观察墙面时,离视点远的砖块的尺寸就会缩小,而离视点较近的就会大些。纹理映射将图像映射到物体模型表面,模拟物体表面细节,称为纹理映射(Te

2、xtureMapping)stxyz图像:即纹理几何屏幕纹理是什么?纹理是一个数组,其中的数据是颜色、辉度或者颜色和alpha值。纹理数组中的值通常被称为纹理单元(纹素)。纹理映射的步骤?定义纹理定义纹理的数据,维数,多重性(多分辨率),边界值指定纹理的映射方式激活纹理映射glEnable()v.sglDisable()GL_TEXTURE_1DGL_TEXTURE_2DGL_TEXTURE_3D确定纹理坐标和几何坐标的关系----绘制场景引例:看看教材上一个最简单的纹理映射执行效果:2个位置不同的立方体在其表面贴

3、上一个自生成的贴图引例:看看教材上一个最简单的纹理映射引例:看看教材上一个最简单的纹理映射定义纹理纹理可以是一维、二维或三维的多重纹理映射为纹理定义多种分辨率;在距离观察位置远时,映射低分辨率的纹理图像;距离近时,映射高分辨率的纹理图像;为纹理设置边界实际应用中需要多种纹理拼接;为纹理设置边界超出[0.0,1.0]纹理参数范围的边界border,通常为1个像素宽;通过线性平均,实现纹理图像间的光滑过渡。定义纹理定义一维纹理纹理只在某一方向上变化,而在另一个方向上没有变化,相当于高度为1的二维纹理使用glTexIma

4、ge1D()函数定义一维纹理函数原型voidglTexImage1D(GLenumtarget,GLintinternalFormat,GLsizeiwidth,GLintborder,GLenumformat,GLenumtype,constGLvoid*pixel)glTexImage1D()函数参数说明target设置为GL_TEXTURE_1Dlevel是使用多重纹理映射时的分辨率级数,若只有一个分辨率,该值为0internalFormat表明纹理映射方式,取值为1~4之间的整数值,或者是38个符号常量之一

5、(实际就是纹理单元中所存储的内容)width给定纹理尺寸,必须是2的幂次方2m(m为非负整数,如果有边界width为2m+b)border指定边界宽度b(为0或1)format指定纹理的数据格式(纹素的数据格式)(_COLOR,_INDEX,_RGB,_RGBA,_RED,_ALPHA…)type指定纹理的数据类型(GL_BYTE,GL_SHORT,GL_INT,GL_FLOAT,GL_UNSIGNED_INT…)pixel为纹理图像数组的指针,指定纹理图像及其边界定义纹理定义二维纹理使用glTexImage2D(

6、)函数定义二维纹理函数原型voidglTexImage2D(GLenumtarget,GLintinternalFormat,GLsizeiwidth,GLsizeiheigth,GLintborder,GLenumformat,GLenumtype,constGLvoid*pixel)参数说明target设置为GL_TEXTURE_2Dwidth和heigth给定二维纹理的尺寸,必须为2m+2b(width和heigth可分别对应不同的m值)width和heigth为0,纹理映射无效定义三维纹理常用于医学和地质学

7、应用程序中。在医学应用程序中,三维纹理可以用于表示一系列的CT图像地质程序中,三维纹理可以模拟岩石层定义纹理定义三维纹理使用glTexImage3D()函数定义三维纹理函数原型voidglTexImage3D(GLenumtarget,GLintinternalFormat,GLsizeiwidth,GLsizeiheigth,GLsizeidepth,GLintborder,GLenumformat,GLenumtype,constGLvoid*texels)参数说明target必须设置为GL_TEXTURE_3

8、Dwidth、heigth、depth给定三维纹理的尺寸,必须为2m+2b(三个参数可分别对应不同的m值)texels为三维纹理图像数组的指针定义纹理通常在纹理对象的帮助下来使用纹理,因为它可以极大的提高纹理使用的性能。步骤:1、生成纹理对象的名称2、将纹理对象与纹理数据关联(即创建纹理对象)3、检查是否有足够的空间来存储所有纹理对象(可以多个),否则通过设

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。