清华大学图形学基础lecture10-纹理映射.pdf
文本预览下载声明
《计算机图形学基础》
第十讲第十讲 纹理映射纹理映射 ((贴图贴图))
刘永进
纹理映射
很容易掌握但难以精通很容易掌握但难以精通
70年代年代:基于纹理映射的复杂算法基于纹理映射的复杂算法
完全可编程硬件
(0(0, 0)0) (0(0, 1)1)
(1(1, 0)0) (1(1, 1)1)
(0(0, 0)0) (0(0, 1)1)
(1, 0) (1, 1)
x
p
ff ((x)) pp
可展曲面可展曲面::
微分几何中的概念微分几何中的概念
曲面上的度量曲面上的度量:两点间的距离两点间的距离
曲面和平面能保度量的一一对应曲面和平面能保度量的一一对应,则称曲则称曲
面是可展曲面面是可展曲面
圆柱圆柱、、圆锥圆锥、、平面平面
切线面切线面
绝大部分曲面都不是可展曲面绝大部分曲面都不是可展曲面::
一一对应到平面必然引起扭曲等变形对应到平面必然引起扭曲等变形
OpenGLOpenGL纹理映射的步骤纹理映射的步骤::
11. 创建纹理对象创建纹理对象,并为它指定并为它指定一个纹理个纹理
22. 确定纹理如何应用到每个像素上确定纹理如何应用到每个像素上
33. 启用纹理贴图功能启用纹理贴图功能
44. 绘制场景绘制场景,提供纹理坐标和几何图形坐标提供纹理坐标和几何图形坐标
具体步骤具体步骤::
使用使用glGenTextures()glGenTextures()获得未用的纹理对象获得未用的纹理对象
标识符;
设置纹理对象的状态参数;
使用使用glTexImage2D()glTexImage2D()或或
glutBuild2DMipmaps()指定纹理图像;
使用使用glBindTexture()绑定纹绑定纹理对象对象;
启用纹理映射启用纹理映射;;
渲染几何体:将几何体发给OpenGL,为
每个顶点指定合适的纹理坐标每个顶点指定合适的纹理坐标。
使用纹理映射的步骤使用纹理映射的步骤::
11. 使用使用glGenTextures()glGenTextures()获得未用的纹理对象获得未用的纹理对象
标识符;
GLuint texID;
glGenTextures(1, texID);
void glGenTextures(GLsizei n,GLuint* textures);
void glDeleteTextures(GLsizei n,const GLuint* textures);
GLbooleanGLboolean glIsTexture(GLuintglIsTexture(GLuint texture);texture);
使用纹理映射的步骤:
2. 设置纹理对象的状态参数
void glTexParameter[if](GLenum target,
GLenum pname,
TYPETYPE param));
target: either GL_TEXTURE_1D or GL_TEXTURE_2D
pname param
深度比较结果格式化为辉度深度比较结果格式化为辉度、
GL_DEPTH_TEXTURE_ 强度或alpha纹素:
MODEMODE GLGL_LUMINANCELUMINANCE,
显示全部