gpt4 book ai didi

opengl - OpenGL 是否钳制每个纹理阶段的输出?

转载 作者:行者123 更新时间:2023-12-04 20:03:30 28 4
gpt4 key购买 nike

当使用 OpenGL 1.4 固定功能多纹理时,每个纹理阶段的输出在传递到下一个阶段之前是否都固定在 [0, 1]?

spec说(第 153 页):

If the value of TEXTURE_ENV_MODE is COMBINE, the form of the texture function depends on the values of COMBINE_RGB and COMBINE_ALPHA, according to table 3.24. The RGB and ALPHA results of the texture function are then multiplied by the values of RGB_SCALE and ALPHA_SCALE, respectively. The results are clamped to [0, 1].

但在我的测试中,这并没有发生。我的 RGB 分量纹理环境是:

  • 阶段 1:从 GL_TEXTURE 中减去 GL_CONSTANT,此时整个纹理为黑色,GL_CONSTANT 颜色为 (.5, .5, .5, 1.0)
  • 第 2 阶段:将 GL_TEXTURE 添加到 GL_PREVIOUS,其中纹理是测试彩虹。

我将 Stage 1 的 GL_CONSTANT 颜色设置得越亮,输出明显越暗。

是否可以启用某种状态来获得我期望的钳位?

最佳答案

很有可能是驱动程序错误。由于固定功能的硬件不再存在,所以它们都在着色器中模拟。由于钳位不是着色器中的默认行为,因此它们必须记住在合并阶段之间进行钳位。如果他们忘记测试它……哎呀。

无论哪种方式,您都无能为力。如果您的实现没有像规范所说的那样固定,您能做的最好的事情就是提交一份错误报告。

关于opengl - OpenGL 是否钳制每个纹理阶段的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9216826/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com