Graphics 为什么在使用JPEG图片时必须使用2.2的gamma?

Graphics 为什么在使用JPEG图片时必须使用2.2的gamma?,graphics,3d,renderer,gamma,spectral,Graphics,3d,Renderer,Gamma,Spectral,在渲染过程中,纹理文件的gamma值为2.2。但是普通颜色不需要这种伽马校正,特别是如果RGB值来自光谱特征 那么,为什么我必须在纹理文件中使用2.2的gamma? 为什么在CG世界中我们使用2.2伽马图像? 为什么我们不将实色图像的gamma值设置为1?大多数硬件和驱动程序都假定您使用的gamma值为2.2(或sRGB,非常类似)。因此,如果您尝试使用线性RGB信息(即伽马值为1.0)显示原始文件,则显示图像将过于明亮 3D图形硬件是为游戏开发人员而不是图形研究人员设计的,因此他们希望输入(如

在渲染过程中,纹理文件的gamma值为2.2。但是普通颜色不需要这种伽马校正,特别是如果RGB值来自光谱特征

那么,为什么我必须在纹理文件中使用2.2的gamma? 为什么在CG世界中我们使用2.2伽马图像?
为什么我们不将实色图像的gamma值设置为1?

大多数硬件和驱动程序都假定您使用的gamma值为2.2(或sRGB,非常类似)。因此,如果您尝试使用线性RGB信息(即伽马值为1.0)显示原始文件,则显示图像将过于明亮

3D图形硬件是为游戏开发人员而不是图形研究人员设计的,因此他们希望输入(如纹理缓冲区)是使用2.2伽马编码的资产,与线性编码相比,使用相同的比特数,可以在感知强度方面提供更统一的步骤


如果您控制整个渲染管道,那么您当然可以使用线性RGB(或其他线性光谱采样),并在最后将结果发送到显示器或文件时应用gamma。

谢谢您的回答。如果我渲染一个多边形(使用256步灰度的渐变贴图),我可能(最终)验证渲染引擎是否可以将纹理的2.2 gamma转换为正确的值,以获得光谱数据RGB gamma 1.0的平衡图像。因此,我有效地获得了一个线性图像。但是,如果我使用一种具有RGB 1.1.1和gamma 1的材质,在反照率中,结果会是什么?物理白色或只是RGB值?@tofuw如果你想要物理上正确的颜色,那么你需要渲染超过3个波长(R,G,B),并添加散射和光偏振等内容如果你使用基本引擎渲染,那么你总是只获得R,G,B。然后渲染后,你可以将结果颜色存储为一组波长,或者将其处理为曲线。。。通过重新计算R,G,B来可视化它。。。。前一段时间做了类似的事情,这是可行的(重建的白噪声在RGB上也会变成白色)