【发布时间】:2017-11-03 08:33:16
【问题描述】:
我想澄清一下 sRGB 颜色空间及其在 OpenGL 中的每通道 8 位表示。在深入研究该主题后,我发现将图像存储在 sRGB 中只是为了补偿显示器所做的相反伽马操作,该操作出于兼容性原因“模仿”了旧 CTR 本质上所做的操作。人眼具有类似非线性响应的事实只是一个巧合,与伽马校正无关(正如许多令人困惑的文章声称的那样),因为输出将是linear again anyway。
假设这个理解是正确的,在 OpenGL 中我们有 GL_SRGB8_ALPHA8 格式的纹理,每个通道有 8 位。然而,由于 0~255 的范围与线性 RGB 纹理相同,这是否意味着要将每通道 8 位的线性纹理转换为 sRGB,颜色值保持不变,一个简单的“标志”告诉 OpenGL:看这个 0~255范围不是线性的,所以将它们解释为曲线? sRGB 每通道 16 位图像(例如 16 位 PNG)怎么样?
【问题讨论】: