使用 OpenGL 1.4 固定功能多纹理时,每个纹理阶段的输出在传递到下一个阶段之前是否被钳制为 [0, 1]?
规范说(第 153 页):
如果 TEXTURE_ENV_MODE 的值为 COMBINE,则纹理函数的形式取决于 COMBINE_RGB 和 COMBINE_ALPHA 的值,如表 3.24 所示。然后将纹理函数的 RGB 和 ALPHA 结果分别乘以 RGB_SCALE 和 ALPHA_SCALE 的值。结果被限制为 [0, 1]。
但在我的测试中,这并没有发生。我的 RGB 组件纹理环境是:
- 阶段1:从GL_TEXTURE中减去GL_CONSTANT,其中整个纹理为黑色,GL_CONSTANT颜色为
(.5, .5, .5, 1.0)
- 第 2 阶段:将 GL_TEXTURE 添加到 GL_PREVIOUS,其中纹理是测试彩虹。
我使 Stage 1 的 GL_CONSTANT 颜色越亮,输出明显越暗。
我可以启用某种状态来获得我期望的钳位吗?