Unity 线性空间和Gamma空间

官方文档说的很清楚了
https://docs.unity3d.com/Manual/LinearRendering-LinearOrGammaWorkflow.html
https://docs.unity3d.com/Manual/LinearLighting.html
区别
https://www.jianshu.com/p/b2162b298fda
https://blog.csdn.net/qq_14939027/article/details/102785503
sRGB的勾
https://docs.unity3d.com/Manual/LinearRendering-LinearTextures.html
改了一下编码的图解 这样才对

在这里插入图片描述

为啥要gamma编码

  • 人眼对暗部感知明显,亮部感知不明显,因为人眼需要在黑暗中识别危险😀
  • 人眼对于灰阶的感知是非线性的,计算机存储的0.2(x属于0-1)的灰度,相当于人眼的中灰
  • 直接把物理灰度(0-1)映射到屏幕上会出现暗部范围小,亮部范围大的情况(美术角度,人眼角度),因此需要做gamma编码
  • (灰阶不够的问题,我感觉这个也是瞎扯,我反正没懂,欢迎各位大佬指教)

以上条件我认为不充分

  • 现代液晶显示器是为了兼容旧的CRT显示器,又做了一次指数为2.2的解码

上面这个可以理解(我感觉什么人眼的都是胡扯,主要是历史遗留问题)

Gamma编码

在这里插入图片描述
公式 y = x 1 2.2 y= x^{\cfrac{1}{2.2}} y=x2.21 (上拱)
在这里插入图片描述

  1. gamma空间是旧的方法,涉及到颜色混合和光照衰减时没有线性空间计算的准确,高光可能会过曝,但是效率高
  2. linear空间是新的方法,计算更加真实,效率稍微差一点点,一些平台不支持(以后逐渐支持是趋势??)

注意:
在这里插入图片描述
这个勾的意思是如果图片是在Gamma空间下画出来的(如 photoshop)那么保持原样就可以了,否则才需要去掉勾选。与Linear和Gamma空间模式基本无关。
不要再Linear空间下多此一举把勾勾掉😱
只是采样方式不同而已,一般情况下不要去动它。

Gamma空间

原图片输入采样的时候没有Gamma矫正,直接参与计算

线性空间工作流

原图片输入采样的时候Gamma矫正了 y = x 2.2 y= x^{2.2} y=x2.2

为啥Unity默认材质下球的颜色不对

在这里插入图片描述
在这里插入图片描述
因为linear模式下多了一步操作,而Gamma模式下是直接Gamma解码的,而且这时候是没贴图的,只有光照操作。gamma空间下srgb那个勾是无效的。

多了一次编码(提亮操作)
在这里插入图片描述

HDR、Gamma、Linear、之间没有必然的联系

最后再来一张图

帮助记忆
在这里插入图片描述

可以用SD测试一下

pixel processor
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值