Kev*_*eid 10 gamma color-space webgl
WebGL片段着色器是否应该输出gl_FragColor线性的RGB值,或者为了校正显示伽玛的某些1/γ功率?如果是后者,是否需要使用特定值,或者必须配置完整的应用程序?
该WebGL的规范当前不包含"伽马","γ",或有关使用"线性",而GL_ARB_framebuffer_sRGB扩展名是不可用的WebGL.是否有其他适用的规范?如果未详细说明,当前的实现有何作用?一个很好的答案将不胜感激.
(假设我们已经成功加载或程序生成了线性颜色值;也就是说,纹理图像的伽玛不是问题.)
这是一个艰难的,但从我能够挖掘(主要来自这个电子邮件线程),似乎当前的行为是伽马校正图像线性颜色空间图像(如PNG)加载时.像JPEG这样的东西在没有任何变换的情况下被加载,因为它们已经被伽马校正.(来源:https://www.khronos.org/webgl/public-mailing-list/archives/1009/msg00013.html)这表明纹理可能会在非线性空间中传递给WebGL,这将是有问题的.我不确定自2010年底以来这是否有所改变.
在该线程的其他地方,非常明确的是,期望的行为应该是WebGL的所有输入和输出都应该在线性颜色空间中.除此之外发生的事情超出了WebGL规范的范围(这就是为什么它在这个问题上保持沉默).
对不起,如果没有权威回答你的问题,我只是在挖掘我能解决的问题.至于是否有问题你应该在着色器中进行校正,我会说答案似乎是"不",因为WebGL输出将被假定为线性,并且试图自我纠正可能导致对色彩空间进行双重转换.
| 归档时间: |
|
| 查看次数: |
2608 次 |
| 最近记录: |