版本:Unity 6 (6000.0)
语言:English
Unity 中的颜色空间
伽马颜色空间

线性颜色空间和伽马颜色空间的区别

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

光线衰减

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

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

  • 照明边缘也显得更加清晰。这更准确地模拟了表面上照明强度的衰减。

Left: Lighting a sphere in linear space. Right: Lighting a sphere in gamma space
左:在线性空间中照亮球体。右:在伽马空间中照亮球体

线性强度响应

使用伽马渲染时,提供给着色器在 GPU 上运行的程序。 更多信息
参见 术语表
的颜色和纹理已经应用了伽马校正。当它们在着色器中使用时,与线性照明相比,高亮度的颜色实际上比应有的亮度更高。这意味着随着光强度的增加,表面的亮度以非线性方式增加。这会导致许多地方的照明过亮。它还会使模型和场景场景包含游戏环境和菜单。可以将每个唯一的场景文件视为一个唯一的关卡。在每个场景中,放置环境、障碍物和装饰,从本质上讲,将游戏分块设计和构建。 更多信息
参见 术语表
显得褪色。使用线性渲染时,随着光强度的增加,表面的响应保持线性。这会导致更逼真的表面阴影和更漂亮的表面颜色响应。

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

Infinite 3D Head Scan by Lee Perry-Smith, licensed under a Creative Commons Attribution 3.0 Unported License (available from www.ir-ltd.net)
无限 3D 头部扫描由 Lee Perry-Smith 提供,根据知识共享署名 3.0 未移植许可证授权(可在 www.ir-ltd.net 获取)。

线性混合和伽马混合

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

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

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

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

Top: Blending in linear color space produces expected blending results<br/>Bottom: Blending in gamma color space results in over-saturated and overly-bright blends
顶部:在线性颜色空间中混合会产生预期的混合结果
底部:在伽马颜色空间中混合会导致过饱和和过亮的混合
Unity 中的颜色空间
伽马颜色空间