我们目前正在使用GL_SRGB8_ALPHA8进行FBO颜色校正,但它在较暗的场景中会导致显着的色带。
是否有每个颜色通道10位的GL_SRGB8_ALPHA8版本(例如GL_RGB10_A2)?如果不是,对于这个用例有什么变通方法?
附加的图像已经添加了对比度,以使其更明显,但它在源代码中仍然很明显。

发布于 2021-08-05 18:11:52
最终我们最终得到了线性16位浮点格式我怀疑驱动程序无论如何都会在SRGB内部使用它,就像@mick-p指出的那样,我们总是受限于显示颜色深度
发布于 2021-08-05 14:39:41
从表面上看,Direct3D 9似乎支持这一点,因为它没有将sRGB编码成格式。相反,它将采样器设置为解码为线性空间,因此我看不出它如何在D3D9上不能正常工作,否则纹理将被错误过滤。否则我不知道它是如何实现的。即使是在GL_EXT_texture_sRGB_decode中,也决定(有一条注释)不启用这种类似D3D9的行为。
像往常一样,OpenGL似乎总是在追逐这个现在已经过时的应用程序接口的幽灵。它可以只有像D3DSAMP_SRGBTEXTURE这样的东西,并与之具有等价性。大概是硬件实现了它。任何条带都可能取决于显示器,因为最终必须将其向下转换为显示器的颜色深度,这可能比10位低得多。
https://stackoverflow.com/questions/58039505
复制相似问题