
HDRP抛弃了Bulitin的灯光,改用物理单位以及物理属性。那么物理灯光到底是什么?请点赞评论来支持作者,提前祝大家新年快乐。
https://connect.unity.com/p/hdrp-wu-li-deng-guang-shi-shi-yao-ke-pu-xiangconnect.unity.com同步更新unity connect,求点赞收藏
对光的研究
首先,对光的研究可分为两类:光度学,辐射度学
- 光度学:是以人眼为基础,研究可见光与物理之间的关系。
- 辐射度学:是以能量为基础,研究发光源的能量(光辐射能)。不仅仅是可见光范围,适用于所有电磁波。
光度学和辐射度学之间有什么关系了?
举个例子:可见光之外,还有红外线紫外线,虽然看不见但仍然具有能量。无论给红外线多大能量,在人眼中亮度都是0。
同理,在可见光内,人眼对不同颜色的光敏感度也有不同。记录人眼对不同频率光的敏感程度,就是光度与辐射度的对应关系,即光度函数。

光度与辐射度的关系

对亮度的研究
谈论一个物体有多亮,肯定得拥有“亮度单位”。
在Bulitin中,灯光单位即为“1单位”,超出1亮度的为HDR。
这是一个很抽象的概念,如果想重现现实中的灯光效果,只能靠人眼去判断,引擎内灯光的多少强度能与现实中一致。这很费劲,而且在相机曝光被修改时,又得重新调整所有灯光强度。

所以,在HDRP中引入了物理灯光单位。

先来看看光度学中常见的名词。

一个发光强度等于1坎德拉的理想光源,每球面度能够产生1流明光通量,总发射的光通量为4π流明。
以一个100000cd强度的点光源为例。

如果没有理解上面内容,没关系。
举个特殊栗子:
面光如果用流明,不用Nits,就会像下图一样

现在面光单位为流明,是面光的总亮度。所以随着面积的增加,单位面积的亮度会稀释。
显然我们不想这样,所以换成Nits为单位,就能让亮度保持一致。
其次,面光没有角度。所以在单位里没有坎德拉。
也可以看看Unity文档
Physical Light unitsdocs.unity3d.com其他特性
光的衰减
坎德拉是以角度为变量,
如下图,如果要保持光通量一致,远处的受光面就得增大面积
也就是说,光的衰减,与到光源距离的平方,成正比。
这点在Bulitin中也一样

衰减与距离的关系
HDRP与Bulitin灯光的最大区别就在这。
物理灯光的衰减距离,只与光源强度有关。
拖动灯光范围,只有外围一圈做了过度,中间亮度是不会变化。

而Bulitin中,灯光强度是直接在光源与外圈的距离上做了个插值。
更像是在缩放一个面片。

亮度是如何显示在摄像机上
在Bulitin的场景制作中,要时刻保证场景画面不能 过曝/欠曝。
虽然能用后期调色在小范围来控制曝光值,但总体制作思路还是集中在0-1的颜色。
更像在PS里画画。
而HDRP中,就很简单粗暴。
查看现实中光线的物理属性,直接填到灯光强度里。太阳可以是几千几万的亮度,不开后期全屏白色。
然后再用后期自动曝光来压低亮度。

- 你要大中午的太阳?12wLux直接填
- 你要阴天?1500Lux直接填
- 你要房间卧室?200Lux直接填
查表,完事

官方文档提供的2个链接:
官方文档提供的2个链接:
Physical Light unitsdocs.unity3d.comRecommended Lighting Levels in Buildingswww.archtoolbox.com
不过优缺点也挺明显

看到这里说明是真爱了,来收藏评论关注点赞吧,多谢。
下面是我的artstation地址:
https://www.artstation.com/luteliwww.artstation.com你也可以来我知乎看原来写的文章
知乎用户www.zhihu.com