Lighting
前言
随便记一下HDRP中打光和烘培的一些要点和坑
光的来源
大致分实时光和烘焙光。
实时光
来自于实时平行光、点光等。
烘焙
可以是光照贴图,或者光照探针。
烘焙注意点
- 模型的光照UV是否合理
- 重叠
- 不相邻或者角度差距多大而UV却靠在一起
- 注意单面
- 尽量防止要渲染的面可以“看到”反面
- 注意单面处的阴影漏光(添加额外的提供阴影的物体)
- 室内场景注意反弹次数,大于10
- 噪点产生原因
- 采样次数太少导致随机性
- 分析是环境采样太少还是间接照明反射太少
- 采样次数太少导致随机性
- 面光补光注意光照强度是平均分部到面上每个点的
- 面光强度和距离平方成反比,不应该拿来作为窗口补光,要调整天空的曝光强度。
- Debug时关闭过滤,调整至没有黑块且大致均匀后再过滤。
背面问题
没有银弹,只能根据不同的模型,不同的精度需求来调整。大致调整的方向如下:
尽量减少背面,力求模型全封闭且没有重叠的面。
上述条件很难达成,为了模型的简洁,不可能保证没有重叠的面,而且场景中也不能保证没有重叠的面。
这时要调整Backface Tolerance
,意指如何确定一个面是朝向背面的。目的是确保不计算朝向背面的无效面,然后用周围的像素来填充,防止黑色块扩散。
但是这个值如果调整过大,会导致很多本是正常的面也计入无效面,即使填充周围像素,也有可能不能覆盖,导致大范围的黑色色块。
而如果这个值太小,会导致本该无效的面被记为有效面,然后无效面的黑色会渗出到周围,也会导致黑色块。
所以应该宁可面被判定无效然后被周围填充,也不能让无效面被判定有效导致污染贴图。
还有和分辨率相关的问题,如果一个模型在光照贴图中的占比太小,光照贴图中的一个像素对应到场景中,有两种状态,也会导致伪影。常见于各个模型的拼接处,但这种一般会被周围的像素来填充,影响不太大。
双面问题
不要滥用双面来解决背面问题。一是增加了渲染压力,二是本该无效的面,因为启用了双面导致了成为了有效面,然后又没有光照,黑色会渗出。
具体黑色渗出的范围和Lightmap Padding
有关。
单位
candela
是发光强度(人眼感知到的可见光的亮度,光束在特定方向上的亮度)的单位,简称“坎”,符号cd。普通蜡烛的发光强度1cd。
Lumen
光通量,光源发出的可见光总量的量度。从一球面度发出一cd光源的光具有一流明的光通量。
Lux
每平方米流明。
照度单位。向 1 平方米的面积上发出 1 流明光通量的光源的照度为 1 勒克斯。
Nits
尼特(坎德拉每平方米)
亮度单位。描述可见光源的表面功率。当使用这个单位时,光源的总功率取决于光源的大小。
Exposure value (EV)
曝光值。
EV指快门速度与光圈f值的组合。
EV100指当感光度为ISO100、光圈系数为F1、曝光时间为1秒时,曝光量定义为0。