第二十七章 纹理总结
OpenGL
纹理是左下角(0,0) 右上角(1,1)。
需要告诉OpenGL纹理环绕方式,主要有四种:GL_REPEAT(重复纹理图像),GL_MIRRORED_REPEAT(重复纹理图像,但是每次重复图片是镜像放置的),
GL_CLAMP_TO_EDGE(坐标再0-1直接,超出部分会重复纹理坐标的边缘,有边缘拉伸效果),GL_CLAMP_TO_BORDER(超出坐标为指定的边缘颜色)
使用glTexParameter可以对纹理环绕方式进行设置,坐标分别是STR,对应XYZ
使用带后缀的glTexParameteri。其中第一个参数:使用2D纹理(GL_TEXTURE_2D);第二个参数代表纹理轴(GL_TEXTURE_WRAP_S 或T/R);第三个参数是环绕方式
补充:如果第三个参数使用GL_CLAMP_TO_BORDER,则还需要指定一个边缘颜色,需要使用后缀是fv的glTexParameterfv。用GL_TEXTURE_BORDER_COLOR作为它的选项,并且传递一个float数组作为边缘的颜色值
下一步需要将纹理像素映射到纹理坐标。首选学习的是纹理过滤,最重要的两种是:GL_NEAREST(邻近过滤——默认的纹理过滤方式)和GL_LINEAR
OpenGL会选择中心点最接近纹理坐标的那个像素;而GL_LINEAR叫做线性过滤:基于纹理坐标附近的纹理像素,计算出一个插值。
如果用一张低分辨率的纹理,可以产生明显的对比:G