Android OpenGL ES 2.0着色器texture2d RGB值范围

时间:2015-04-27 02:24:33

标签: android opengl-es-2.0 texture2d

我在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]

1 个答案:

答案 0 :(得分:2)

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

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

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