Answers:
我们知道,在PNG,BMP等中,存储的像素值不在线性RGB空间中。
这不一定是真的。您可以将所需的任何色彩空间存储到图像中,甚至不需要是色彩(例如法线贴图)。
alpha通道通常是线性的。Alpha通道不会显示,但通常是用于透明度(或其他用途)的非彩色术语。由于它们不需要在监视器上显示,因此没有理由将其存储在伽玛空间中。如果这样做,您将不必要地在alpha值的下限失去精度。正如Julien Guertault很好地解释的那样,法线贴图遵循类似的推理路线。
图像文件格式本身不考虑伽玛值,而是存储未经修改的像素值,因为创作程序(例如Photoshop)决定存储这些值,因此RGB和alpha通道与图像文件格式没有区别(除非存在潜在的有损压缩策略,但这是另一个主题)。
但是,当您在Photoshop中创作图像时,它们会在包括Alpha通道的sRGB空间中显示在屏幕上,因此,如果您创作Alpha通道时依靠的是感知到的像素亮度代表透明度,那么可以说Alpha也存储在伽玛空间。但是,如果您通过在Photoshop中使用图层透明度来创作Alpha,则该Alpha会线性存储(例如,将50%透明图层存储为Alpha = 128)。
因此,最后取决于您如何编写数据,将数据存储在哪个空间以及如何解释数据。同样要考虑的是,值的非线性分布是否可以为您带来任何精度优势。颜色值存储在sRGB中,因为人类视觉系统对光亮度做出对数响应,因此在黑暗中拥有比黑暗中更多的细节以减少可感知的条带是有意义的,但是您可以问这样的分布是否有益于存储法线贴图或粗糙度值在纹理中。