【问题标题】:Android OpenGL ES 2.0 shader texture2d RGB value rangeAndroid OpenGL ES 2.0 shader texture2d RGB值范围
【发布时间】:2015-07-05 08:12:31
【问题描述】:

我在 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] 范围内?

【问题讨论】:

    标签: android opengl-es-2.0 texture2d


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-09-10
      • 1970-01-01
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-07
      • 1970-01-01
      • 2023-03-07
      相关资源
      最近更新 更多