【发布时间】:2014-02-02 22:37:22
【问题描述】:
我见过 (several) (semi)-(related) (posts) (about) 这个,但没有人直接回答以下问题:
glTexImage.D究竟何时将输入值钳制为 [0,1]?
文档似乎暗示它总是会这样做(除了 GL_DEPTH_STENCIL 可能的例外,我似乎记得它是不允许的,尽管文档不支持这一点)。这就是我目前在我的代码中处理它的方式。
其他链接来源似乎表明,当数据转换为标准化颜色格式时,数据被精确钳制,或者仅在图像格式为整数时才被钳制。为了证实这一点,我测试了一个 GL_RGBAF32 内部格式:负浮点数据被限制为 0,而正数据根本不被限制。
然后是(所有组合)无符号/有符号规范化/非规范化整数内部格式。
那么,什么时候像素解包,特别是glTexImage.D,钳位数据?我对GL_((R|RG|RGB|RGBA)((8|16|32)(|I|UI|_SNORM)|(16F|32F))|DEPTH_COMPONENT(16|24|32))(即所有颜色浮点和整数纹理,以及所有深度纹理)特别感兴趣,但可能应该解决所有内部格式。
【问题讨论】:
标签: opengl