收藏 分享(赏)

opengl纹理.ppt

上传人:dwy79026 文档编号:8543578 上传时间:2019-07-02 格式:PPT 页数:18 大小:2.04MB
下载 相关 举报
opengl纹理.ppt_第1页
第1页 / 共18页
opengl纹理.ppt_第2页
第2页 / 共18页
opengl纹理.ppt_第3页
第3页 / 共18页
opengl纹理.ppt_第4页
第4页 / 共18页
opengl纹理.ppt_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、纹理,纹理,纹理,Texture Mapping,图像:即纹理,几何,屏幕,纹理,256 x 256的图像映射到一个长方形,并进行透视投影。,纹理映射,纹理映射的执行步骤,定义纹理定义纹理的数据, 维数, 多重性(多分辨率), 边界值 指定纹理的映射方式激活纹理映射glEnable() v.s glDisable()GL_TEXTURE_1D GL_TEXTURE_2DGL_TEXTURE_3D 确定纹理坐标和几何坐标的关系-绘制场景,定义一维纹理,一维纹理是高度为1的二维纹理void glTexImage1D(GL_TEXTURE_1D, /必须如此GLint level, /mip层数,

2、0表示无多重性GLint components, /颜色调整或混合中使用的分量/1-R; 2-RA; 3-RGB; 4-RGBAGLsizei, width, /纹理宽, 须为2m或 2m+2dGLint border, /纹理边界值d, 缺省为0GLenum format, /纹理数据的格式(RGBA)/_COLOR_INDEX, _RGB, _RGBA, _RED, _ALPHAGLenum type, /纹理数据的类型: GL_BYTE, GL_SHORT/GL_INT, GL_FLOAT, GL_UNSIGNED_INTconst GLvoid* data /纹理数据);,定义二维纹理

3、,二维纹理是一个二维纹素数组void glTexImage2D(GL_TEXTURE_2D, /必须如此GLint level, /mip层数GLint components, /颜色调整或混合中使用的分量GLsizei, width, /纹理宽, 须为2的幂次GLsizei, height, /纹理高, 须为2的幂次 Glint border, /纹理边界值, 缺省为0Glenum format, /纹理数据的格式(RGBA)Glenum type, /纹理数据的类型const Glvoid* data /纹理数据);,定义二维纹理,二维多重纹理 (手工方法)glTexImage2D(GL_

4、TEXTURE_2D, 0, GL_RGBA, 64, 64, 0, GL_UNSIGNED_BYTE, img0);glTexImage2D(GL_TEXTURE_2D, 1, GL_RGBA,32, 32, 0, GL_UNSIGNED_BYTE, img1);glTexImage2D(GL_TEXTURE_2D, 2, GL_RGBA,16, 16, 0, GL_UNSIGNED_BYTE, img2);glTexImage2D(GL_TEXTURE_2D, 5, GL_RGBA,1, 1, 0, GL_UNSIGNED_BYTE, img5);,纹理坐标,纹理坐标定义void glTe

5、xCoord1234sifd (TYPE coords);void glTexCoord1234sifdv(TYPE coords);s, t, r, q Eg. glBegin(GL_QUADS);glNormalef(0.0f, 0.0f, 1.0f);glTexCoord2f(0.0, 0.0); glVertex3f( 3, 3,0);glTexCoord2f(1.0, 0.0); glVertex3f(-3, 3,0);glTexCoord2f(1.0, 1.0); glVertex3f(-3,-3,0);glTexCoord2f(0.0, 1.0); glVertex3f( 3,-

6、3,0);glEnd();,纹理参数设置函数void glTexParameterifv ( GL_TEXTURE_?D, /纹理GLenum para, /需要设置的参数TYPE value); /设置参数的值 纹理缩放(滤波)Para: Value:GL_TEXTURE_MAG_FILTER GL_NEARESTGL_TEXTURE_MIN_FILTER GL_LINEAR GL_TEXTURE_MIN_FILTER Additional Value:GL_NEAREST_MIPMAP_NEAREST *_LINEARGL_LINEAR_MIPMAP_NEAREST *_LINEAR,纹理

7、参数设置,纹理映射的质量控制高质量 滤波参数及其值GL_TEXTURE_MAG_FILTER GL_LINEARGL_TEXTURE_MAG_FILTER GL_LINEAR_MIPMAP_NEAREST 中质量 滤波参数及其值GL_TEXTURE_MAG_FILTER GL_LINEARGL_TEXTURE_MAG_FILTER GL_LINEAR低质量 滤波参数及其值GL_TEXTURE_MAG_FILTER GL_NEAREST GL_TEXTURE_MAG_FILTER GL_NEAREST,纹理参数设置,纹理参数设置函数void glTexParameterifv (GL_TEXTU

8、RE_?D, GLenum para, TYPE value); 重复方式(大于1.0的纹理坐标)Para: Value:GL_TEXTURE_WRAP_S GL_CLAMPGL_TEXTURE_WRAP_T GL_REPEAT Eg:glTexParameterf(, GL_TEXTURE_WRAP_S, GL_REPEAT);glTexParameterf(, GL_TEXTURE_WRAP_T, GL_CLAMP);,纹理参数设置,纹理环境,即纹理映射到形体表面的方式void glTexEnvifv(GL_TEXTURE_ENV,GLenum para, TYPE value);Para

9、: Value:GL_TEXTURE_ENV_MODE GL_DECALGL_MODULATEGL_BLENDGL_TEXTURE_ENV_COLOR 四元组RGBA, GL_BLEND设置时有效,纹理环境,void glTexImage2D(GL_TEXTURE_2D, /必须如此GLint level, /mip层数GLint components, /颜色调整或混合中使用的分量GLsizei, width, /纹理宽, 须为2的幂次GLsizei, height, /纹理高, 须为2的幂次Glint border, /纹理边界值, 缺省为0 ); components 1光照值; 2光照+A值; 3RGB值; 4RGBA值,作业,1.在跟踪球程序中添加菜单,实现: 开启光照和关闭光照的功能; 选择不同材质的功能(要求至少四种以上材质)。 (上节课作业) 绘制房子,并把它贴上纹理,自己用相机拍摄或从其他地方获取纹理图片。(这节课作业。上机实验也要完成! ),纹理放大,一幅3264的纹理应用到一矩形,非常近看。左图采用最近领域滤波,即对每个象素选择最近的纹素。右图采用最近四个纹素的双线性插值,块状效果明显,质量差,锯齿状消失,质量好,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报