我什么时候应该使用GL_SRGB8而不是GL_RGB8?

时间:2014-07-16 13:08:47

标签: opengl srgb

关于RGB和sRGB,我有(或没有)以下理解是真的吗?

  1. 我将创作的图片(.png)读入GL_SRGB8格式纹理。
    • (q)从(1)采样纹理时,硬件会从sRGB转换为线性颜色空间吗?
  2. 我将创作的图片读入GL_RGB8纹理。
    • (q)从(2)采样纹理时,硬件不会从sRGB转换为线性?
  3. 我在管道的最后阶段将GL_FRAMEBUFFER_SRGB设置为true。
    • (q)当显示后缓冲区时,硬件将从线性转换为sRGB色彩空间?
  4. 我有一个包含5个阶段的管道,每个阶段写入一个浮点纹理(GL_RGBA16F
    • (q)如果(1)和(3)为真,整个管道是线性的,直到最后阶段。

1 个答案:

答案 0 :(得分:4)

对所有人来说基本上都是肯定的。但是(3)还有一个附加约束:对于帧缓冲进行线性RGB到sRGB转换,颜色附件必须是SRGB格式本身,即sRGB纹理,渲染缓冲或带有sRGB像素格式的主窗口。