Version: 6000.3
语言: 中文
Unity 中的色彩空间
Gamma 色彩空间

线性和伽玛色彩空间之间的区别

使用线性渲染时,光照方程的输入值与伽马空间中的输入值不同。这意味着根据色彩空间的不同,结果会有所不同。例如,光线照射表面具有不同的响应曲线,而图像效果的行为也不同。

光衰减

距离和基于法线的光照的衰减在两个方面有所不同:

  • 在线性模式下渲染时,执行的额外伽玛校正会使灯光的半径看起来更大。

  • 照明边缘也显示得更清晰。这可以更正确地模拟表面上的光照强度衰减。

左:在线性空间中照亮球体。右:在伽马空间中照亮球体
左:在线性空间中照亮球体。右:在伽马空间中照亮球体

线性强度响应

使用伽玛渲染时,提供给着色器在 GPU 上运行的程序。更多信息
请参阅术语表
已经对它们应用了伽玛校正。当它们用于着色器时,高亮度的颜色实际上比线性照明相比应有的更亮。这意味着随着光强度的增加,表面会以非线性方式变亮。这导致许多地方的照明可能太亮。它还可以给模型和场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表
一种褪色的感觉。使用线性渲染时,随着光照强度的增加,来自表面的响应将保持线性。这会导致更逼真的表面着色和更好的表面颜色响应。

下面的无限 3D 头部扫描图像展示了在线性照明和伽马照明下人体头部模型的不同光强度。

Lee Perry-Smith 的《无限 3D 头部扫描》,根据知识共享署名 3.0 未移植许可证获得许可(可从 www.ir-ltd.net 获得)
Lee Perry-Smith 的《无限 3D 头部扫描》,根据知识共享署名 3.0 未移植许可证获得许可(可从 www.ir-ltd.net 获得)

线性和伽玛混合

混合到帧缓冲区时,混合发生在帧缓冲区的颜色空间中。

使用伽玛空间渲染时,非线性颜色会混合在一起。这不是混合颜色的数学正确方法,并且可能会产生意想不到的结果,但它是在某些图形硬件上进行混合的唯一方法。

使用线性空间渲染时,混合发生在线性色彩空间中:这在数学上是正确的,并提供精确的结果。

下图演示了不同类型的混合:

上图:在线性色彩空间中混合会产生预期的混合结果<br/>下图:在伽马色彩空间中混合会导致过度饱和和过亮的混合
上图:在线性色彩空间中混合会产生预期的混合结果
下图:在伽玛色彩空间中混合会导致过度饱和和过亮的混合
Unity 中的色彩空间
Gamma 色彩空间