浅谈纹理GL_TEXTURE_2D和GL_TEXTURE_RECTANGLE的不同点

        对于一维、二维纹理来说,在典型情况下将纹理映射到几何图形上,其纹理坐标经过标准化,取值范围为0.0到1.0。我们可以超出这个范围,并使用各种纹理坐标环绕模式确定这个纹理是否以不同方式进行重复,或者被截取到纹理图像的边缘。

        对于二维纹理图像来说,另一个有用的选项是纹理目标GL_TEXTURE_RECTANGLE。这个纹理目标的模式和GL_TEXTURE_2D非常相似,但有几点不同:

  • 它不能进行Mip贴图,这就意味着只能加载glTexImage2D的第0层。
  • 纹理坐标不是标准化的。这就意味着纹理坐标实际上是对象寻址,而不是从0.0到1.0的范围覆盖图像的,即纹理坐标(5, 19)实际上是图像中从左起的第6个像素,以及从上面起的第20个像素(基于0的索引)。
  • 纹理坐标不能重复,并且不支持纹理压缩。
  • 必须使用GL_NEAREST或GL_LINEAR模式,GL_REPEAT和GL_REPEAT_MIRRORED环绕模式在矩形纹理中不被支持。
  • 相对于使用纹理来获得3D模型表面特征,这种方式对于许多OPenGL用来处理和提交图像的应用程序来说更加方便,对于纹理矩形的硬件支持也比对通常的2D纹理贴图更简单、更快、效率更高。

你可能感兴趣的:(OpenGL,矩形纹理,二维纹理)