Android OpenGL ES 2.0 shader texture2d RGB取值范围

Android OpenGL ES 2.0 shader texture2d RGB value range

我在 Android 上使用 OpenGL ES 2.0,我编写了一个使用 texture2d 获取图像 RGB 值的示例着色器。

vec4 v1 = texture2D(sTexture,textCoord);
float r = v1.r;

所以,r 的值在 [0.0, 1.0][0.0 255.0] 范围内吗?

OpenGL ES 2.0只支持归一化值的纹理,这意味着纹理采样操作返回的浮点值在[0.0, 1.0]范围内。

这意味着原始整数值除以范围支持的最大值。例如,对于 8 位值,原始值除以 255.0,对于 5 位值,它除以 31.0,依此类推

具有更多功能内容的 OpenGL 版本通常具有不适用的纹理类型。它们可以具有整数类型纹理,当您在着色器中对它们进行采样时,您可以在其中获得原始整数值,或者具有包含各种 precisions/ranges 浮点数的浮点纹理。但是 ES 2.0 支持 none 这些类型。