看了《OpenGL编程指南》第九章纹理贴图之后,一开始还对纹理的理解思路还是有点乱,后面不断的阅读别人的博客之后才慢慢的有了更加清晰的认识,于是通过博客再进一步理顺一下思路。
1.关于纹理的一些基本概念理解
纹理:简单的说,纹理就是矩形的数据数组。例如颜色、亮度数据等,之所以复杂,是因为矩形纹理可以映射到非矩形的区域。
纹理映射:就是要实现如何把纹理像素映射到几何对象的每个点。
2.纹理贴图的基本步骤
2.1. 创建纹理,并为它指定一个纹理
在书中并没有讲到关于加载图片作为纹理的例子,通篇都是通过makeImage()函数为每个像素点赋值不同的颜色生成纹理,所以最后给出一个关于加载纹理的例子。
纹理的定义主要通过下面这个函数:
void glTexImage2D(GLenum target,GLint level,GLint components,GLsizei width, glsizei height,GLint border,GLenum format,GLenum type, const GLvoid *pixels);//定义2D纹理
关于1D、2D和3D纹理,其实3D纹理稍微难理解一点,书中的解释是可以看成是一层层的二维子图像矩形构成的。
而声明一个位图作为纹理,在调用glTextImage**之前还需要用的两个函数: