【问题标题】:Interpreting texture data in shader在着色器中解释纹理数据
【发布时间】:2015-08-05 04:39:48
【问题描述】:

当我们有无符号浮点内部格式和 GL_UNSIGNED_BYTE 时,它会将数据钳制为 0-1 吗?如果图像格式是 GL_FLOAT 怎么办?由于浮点数未标准化,是否存在将值限制为 0-1 的情况?

在着色器中,浮点采样器会钳制数据 0-1 还是只返回浮点数据?如果不归一化,如何确定颜色的强度?

【问题讨论】:

    标签: opengl textures glsl


    【解决方案1】:

    数据如何标准化(或不标准化)取决于纹理的内部格式。

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

    【讨论】:

      猜你喜欢
      • 2012-03-10
      • 2013-09-17
      • 2012-12-27
      • 1970-01-01
      • 2020-09-06
      • 2012-02-07
      • 2017-03-28
      • 2021-07-17
      • 1970-01-01
      相关资源
      最近更新 更多