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。


Lighting
https://www.kuanmi.top/2023/02/23/Lighting/
作者
KuanMi
发布于
2023年2月24日
许可协议