Unity内置管线升级URP之色彩空间(伽马、sRGB、Gamma Space和Linear Space)

本文内容

unity从推出SRP渲染管线后,相继为使用者基于SRP定制了两套渲染管线:URP和HDRP。越来越多的手游团队也开始着手于从Built-in管线升级到URP管线。那从Built-in升级到URP有个比较大的变化之一是什么呢,就是色彩空间从Gamma Space转到了Linear Space。那随之而来可能会出现些什么问题呢,比如:“相同的场景和光照,升级后变暗”、“个人定制化的PBR显示不正确了”、“特效显示不正确了”等等。本文主要讨论造成这些问题的缘由。

伽马(Gamma)

为什么要讨论Gamma这个概念,就先从人眼对光亮度的非线性感知说起。

举个例子,夜晚时,当人处于一个漆黑的房间,这时点亮1盏100瓦的灯,人眼会觉得很明显的变亮了。接着点亮第2盏100瓦的灯,人眼会觉得有亮了很多,但亮度的变化会没有第一盏灯亮强烈。然后继续依次点灯,当灯数量增长到一定多,比如50盏100瓦的灯,现在不论是熄灭一盏灯还是再点亮一盏灯,人眼都基本没有任何亮度变化的感知了。
在这里插入图片描述
但是呢,对于灯发射的光子数量,却还是在继续的变化。当你点亮1盏灯时,有1x的光子数量进入人眼,当2盏灯时,有2x的光子数量进入人眼,50盏灯时,就会有50x的光子数量进入人眼。

如果把光子数量和对应人眼感知看到的亮度表示成一张图片,就会有下边这样子一个光子数量线性,但肉眼看起来非线性物理光强图。
在这里插入图片描述
在此图中有一个特殊地方,用于表现中间调,名为中性灰,也叫做18%的灰。高于此点的即为亮部,低于此点的即为暗部
在这里插入图片描述

相机是怎么存储图像的呢?不论说是胶片相机还是数码相机,都是无法直接感知真实世界的颜色,而是通过光子数量来存储颜色(接下里主要讨论的是数码相机)。相机的光感原件通过均匀的信号采样,存储下采样到的光子数量,就得到了一张图像。

假如采样10个信号,可以发现亮部采样了大约80%个点,而暗部采样了大约20%个点。
在这里插入图片描述
这时会出现一个问题。亮部采样点足够多,表现充分;而暗部采样过少,表现不足,出现很明显的色阶情况,如下图一样。(注:下图色阶数值

  • 15
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值