HDRP光照系统讲解

Abstact

场景中的GameObejct挂载Volume组件,生成对应的Profile资源,生成的资源文件会被自动放在Scene路径下与场景名相同的文件夹中。为了使得HDRI Sky和阴影配置真正生效,需要在Light界面中将 Scene Settings Profile 这个Volume资源与之关联。

Volume

Directional Light

平行光灯的Mode为Realtime,所以它提供直接照明。只有光线照到之处才变亮。因为没有间接光照信息。ReflectionHDRP 中 的反射层级先后顺序是:先看场景中有没有Screen Space Reflection(简称SSR,屏幕空间反射),如果没有再找Reflection Probe(反射探针),如果还没有就反射天空。

Ambient Occlusion

通过明暗(光影变换)表示几何细节
c2cf9d78072781eb5db20b4055aa7d61.png
2f6fdb8fd17b1c798280345947236d70.png

环境光遮蔽针对当前镜头中全屏画面进行计算。通过计算场景中的灯光和物体周围环境,让裂缝,孔洞和物体之间交接处等区域的颜色变得更黑。在真实世界中,这些地方通常因为受到周围物体的遮蔽而变得更黑。

Anti-Aliasing

在HDRP中,我们可以使用Camera组件为画面添加抗锯齿效果。FXAA对性能的消耗少画面会变糊,其次是TAA,性能消耗最大的是SMAA(Enhanced Subpixel Morphological Antialiasing)抗锯齿效果最好的是TAA,其次是SMAA(对静态锯齿效果很好),抗锯齿效果最差的是FXAA。

Physical Light Units and Intensities

Visual Environment 组件中选择了HDRI作为天空的类型

Lux光照强度模式,此处的“光强”可以理解为整个场景的明暗,和直接光照导致的高光、暗部是有区别的。

Lux 50000:

9dee749b5fd822c3a38634ea79c95fbb.png

Lux 10000:

54bb782be1a213c6cc7a1488d263113f.png

Lux 1000 + Directional Light

b9bb9307d901fde73d660ac611b36c66.png

Lux 5000 + Directional Light + Indirect Multiplier > 1

6ac525aec2a04ab7e897678176f7415c.png

Lux光照单位表示的光照信息只有方向没有强度衰减信息,也就是说此单位适合用于表示太阳光这一类对于地球来说只有角度变化,没有强度变化的光照信息。

Light Probe

光照探针被认为是一种价廉物美,为动态物体提供间接光照信息和生成动态阴影的高性能解决方案

Bake

确保所有的静态物体被标记为Static

d196d81482cdb93b85c8ea6ef4923e58.png

对于光照烘培来说,只要确保勾选Contribute GI(贡献全局关照)和 Reflection Probe Static 选项即可。

Environment(HDRP)

可以指定所用的环境光Volume,并指定相关联的Sky作为环境光的来源。

Mixed Lighting

要想烘培全局光照,必须在这里勾选Baked Global Illumination(烘培的全局光照) 选项,然后选择光照模式: Baked Indirect 或者 Shadowmask

Baked Indirect:仅仅烘培间接光照信息

Shadowmask

  • 提供最逼真的阴影效果。不仅烘培间接光照信息,也会在Lightmap(光照贴图)中把阴影烘培进去。

  • 适用于远处存在可见物体的场景,比如在高端机器上运行的开放世界游戏。

Lightmapping Settings

Filtering

可以选择一种Denoiser(降噪算法),可以分为Direct Denoiser、Indirect Denoiser和Ambient Occlusion Denoiser选择不同的降噪算法。

一般建议是根据不同的GPU平台为这三项选择同一种降噪算法。

NVIDIA :Optix

AMD:Radeon Pro

Intel:OpenImageDenoise,基于CPU的降噪算法,可适用于所有平台。

Lightmap Padding

控制光照贴图中,按照UV分开的光照贴图区域之间的间隔太小。

如果此间隔太小,有可能造成光照贴图边缘的颜色渗透。

但是如果间隔太大,又会浪费光照贴图空间,增加贴图数量,导致光照贴图在内存中的占用增大。

Indirect Lighting Controller of Volume

间接光照信息被烘培进光照贴图中后,可以使用此Override增强整个场景的间接光照强度。

Indirect Diffuse Intensity 间接光漫反射强度

HDRP将会由烘培获得的光照贴图和光照探针上的数据乘以这个值。‘

如果值为0,那么

IDI = 4 ISI = 1551d8ea8b610f375ac4db13b9ce24126.pngValue = 16 ISI = 1ee8062c2fc3e5aec87042648581efc43.png

Indirect Specular Intensity 间接光高光强度

HDRP会将任何类型(Baked、Custom或者Realtime)的反射探针(Reflection Probe)上的数据乘以这个值。

IDI = 16 ISI = 1(same as above one)ee8062c2fc3e5aec87042648581efc43.png

IDI  =16 ISI = 104316863f946868cdff2b03003ddc6ce9.png

IDI = 0 ISI = 0

该画面中没有任何来自间接光照的漫反射和高光,没有被平行光找到的地方漆黑一片。9199da6a2fe393974a58302059e378af.png

IDI = 0 ISI = 1

该画面中只有来自间接光照的高光,没有漫反射。

d6c0d281c4393b981101c601e0de04c9.png

IDI = 1 ISI = 0

该画面中只有来自间接光照的漫反射,没有高光。

047cd7d712df383557a4a5cde4f694bf.png

IDI = 1 ISI = 1

该画面中只有来自间接光照的漫反射,也有高光。

b454a52aa49bac9b8c93ba787bda6005.png

处理阴影与环境光遮蔽

Directional Light