【Unity】Unity中的Linears和Gamma

闲橙砸
2023-11-06

Linears和Gamma

在Unity中

Edit -> Project Settings -> Player -> Other Settings

有个Color Space的选项,可以选择GammaLinear两个选项。

其含义是Unity是否对输入的默认贴图(注意法线贴图等不存在这个问题)进行转换处理。

选择Gamma时,Unity不会在后台将图片进行转换,输入的即使是经过矫正的图片,Unity也不会处理。

选择Linear时,Unity会利用GPU对图片进行采样,剔除矫正,转换到线性空间,然后才将此图片传递给Shader处理,处理后的图片会再加上Gamma矫正,再显示到屏幕上。

如果选择了Gamma,那Unity不会对输入和输出做任何处理,换句话说,Remove Gamma Correction 、Gamma Correction都不会发生,除非你自己手动实现。

如果选了Linear,那么就是上文提到的统一线性空间的流程了。对于sRGB纹理,Unity在进行纹理采样之前会自动进行Remove Gamma Correction,对于Linear纹理则没有这一步。而在输出前,Unity会自动进行Gamma Correction再让显示器输出。

使用Linears工作流效果会相对直观(注意黑白贴图(金属度粗糙度等仅用灰度值的贴图)要取消勾选Srgb选项)

互相切换时会重新导入素材!

切换会影响最终美术效果!

参考:

unity Liner颜色空间和Gamma颜色空间折腾 - 程序员大本营

Unity Gamma校正转为线性空间 - UWA Blog


阅读4
分享
写评论...