纹理PPT 自制

纹理PPT 自制

ID:65495312

大小:3.70 MB

页数:35页

时间:2022-01-09

纹理PPT  自制_第1页
纹理PPT  自制_第2页
纹理PPT  自制_第3页
纹理PPT  自制_第4页
纹理PPT  自制_第5页
纹理PPT  自制_第6页
纹理PPT  自制_第7页
纹理PPT  自制_第8页
纹理PPT  自制_第9页
纹理PPT  自制_第10页
资源描述:

《纹理PPT 自制》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、24hCafeBioPiaBioPia刚看完opengl的纹理部分。希望老师手下留情~女主角:大师姐男配角:大师兄、马妖IntroductiontoTEXTUREspeakers:HE&MA2012/10/162什么是纹理映射?纹理映射将纹理模式映射到物体模型表面,模拟物体表面细节和光照,称为纹理映射TextureMapping。在这里“纹理图”可以是任何图像,不局限于“纹理”。通常分为一般颜色纹理、几何纹理、过程纹理3b(u,v)n凹凸映射方法参数曲面上一点P(u,v)处的表面法矢在表面法矢方向上增加一个小的扰动函数b(

2、u,v),则而NpvpunxyzP(u,v)P’(u,v)N’P’uP’v扰动的表面法矢的计算公式为过程纹理实例采用随机分形方法获得的地貌纹理什么是纹理映射?在建模时为每个顶点都定义纹理坐标(s,t),s和t取值都在[0,1]。这样可得到每个顶点对应的纹理像素颜色。6纹理图的创建glTexImage2D假定程序中有一个二维的64×64的RGB图像,可通过如下代码将其设为一个二维纹理图:GLubytemyImage[64][64][3];glEnable(GL_TEXTURE_2D);glTexImage2D(GL_TEX

3、TURE_2D,0,GL_RGB,64,64,0,GL_RGB,GL_UNSIGNED_BYTE,myImage);7纹理图的创建voidglTexImage2D(GLenumtarget,GLintlevel,GLintinternalformat,GLsizeiwidth,GLsizeiheight,GLintborder,GLenumformat,GLenumtype,constGLvoid*pixels);target:GL_TEXTURE_2D表示创建的是二维纹理.level:该参数负责设置纹理图的细节层次。Op

4、enGL支持一种称为多级渐进纹理的机制。0代表最高细节层次,当我们不希望使用多级渐进纹理时,将该参数设为0即可。internalformat:指定所创建的纹理图存储的数据格式,GL_RGB表示存储的是RGB值,该参数还可以设为GL_LUMINANCE(灰度)、GL_RGBA等。8voidglTexImage2D(GLenumtarget,GLintlevel,GLintinternalformat,GLsizeiwidth,GLsizeiheight,GLintborder,GLenumformat,GLenumtype,

5、constGLvoid*pixels);width:纹理图宽度(以像素计,含边界)。height:纹理图高度(以像素计,含边界)。border:指定边界宽度,只能为0或1。format:像素数据格式,可以是GL_RGB、GL_BGR、GL_RGBA、GL_LUMINANCE等。type:像素数据类型。可以是GL_UNSINGED_BYTE、GL_INT、GL_FLOAT等等。pixels:指向图像数据构成的数组的指针。9纹理图的创建图像数据在处理器内存中的格式glPixelStorei(GL_UNPACK_SWAP_BYT

6、ES,GL_TRUE);为多字节构成的数据成分颠倒字节排列,如1个整型数据由4个字节构成b0b1b2b3,颠倒后为b3b2b1b0。glPixelStorei(GL_UNPACK_ALIGNMENT,1);指定内存中每行像素起始地址的对齐要求,第二个参数可以为1,2,4,8。例如为4的话则每行像素占用地址空间为4字节整数倍。10纹理坐标在建模时须为每个顶点指定纹理坐标,通过glTexCoord*()来完成。对于二维纹理,我们使用glTexCoord2f(s,t);注意:无论用于创建纹理的像素数组的行数和列数是多少,s和t取

7、值都在[0,1]范围内。11手动生成纹理坐标假定我们要将整个纹理映射到一个四边形中,我们有如下形式代码:glBegin(GL_QUADS);glTexCoord2f(0.0,0.0);glVertex3fv(vertex[0]);glTexCoord2f(0.0,1.0);glVertex3fv(vertex[1]);glTexCoord2f(1.0,1.0);glVertex3fv(vertex[2]);glTexCoord2f(1.0,0.0);glVertex3fv(vertex[3]);glEnd();12纹理坐标

8、如果一个曲面可以表示为2个参数的函数p(u,v),在R2中某一范围内取值,则我们一般可以将纹理坐标s和t设置成u和v的函数。更复杂情况可能还要用到法向。为圆柱侧面上的顶点设置纹理坐标: 设圆柱半径为r,高度为h,我们希望按下图方式进行纹理映射:13纹理坐标设圆柱中心在原点,高度方向为y轴方向,

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

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

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