在着色器中解释纹理数据

时间:2015-08-05 04:39:48

标签: opengl textures glsl

当我们有无符号浮点内部格式时,GL_UNSIGNED_BYTE是否将数据钳位到0-1?如果图像格式是GL_FLOAT怎么办?由于浮点未归一化,有时会将值钳位到0-1?

在着色器中,浮点采样器会将数据钳位为0-1还是只返回浮点数据?如果它没有标准化,它将如何确定颜色的强度?

1 个答案:

答案 0 :(得分:2)

数据规范化的方式取决于纹理的内部格式。

  • 没有任何额外字母的格式被标准化(GL_RGB,GL_RGBA,...)
  • 末尾附加F的格式不是标准化浮点(GL_RGB16F,GL_RGBA32F,...)
  • 以I结尾的格式(GL_RGB16I,...)是有符号整数格式,并且在着色器中需要一个isampler
  • 以UI结尾的格式(GL_RGB16UI,...)是无符号整数格式,并且在着色器中需要使用usampler