Zephus 发表于 2022-12-12 05:56

Unity技术美术(TA)指北——Lighting光照

原文指路:
全局光照 Global Illumination

现代游戏的光照使用了大量的全局光照。GI涵盖了许多技术和数学模型来尝试去模拟光线在场景中弹射和交互的复杂表现
精确的全局光照是很有挑战的,而且会造成非常大的计算开销。因此游戏中通常会提前用一些方法来近似地处理这些计算,而不是在游戏中实时计算
通常来说,Unity中的光照可以是实时的(直接光)或预计算的,也可以将两者结合起来以产生沉浸式的光照
烘焙全局光 Baked Global Illumination

当烘焙光照时,场景中静态物体的光照效果会被计算,然后将结果写入到纹理中,并覆盖在场景中几何体的表面以创建光照的效果
在Unity中,预计算光照可以在后台自动产生,也可以手动初始化。当预计算光照的时候,只要你不移动或者编辑那些对光照贴图有影响的物体,就可以在场景中继续工作(否则烘焙过程会重新开始)
GI系统只会关注在其Mesh Renderer组件中选择了Contribute Global Illumination属性的物体。想要使用lightmap,需要在Receive Global Illumination属性中选择Lightmaps,否则物体会使用Light Probes来照亮物体
如果GameObject被设置为从Light Probes接受GI,用户必须在场景中创建Light Probe Group物体并复制那些probes(探针),使其分布在场景中,从而精确地捕捉到场景中的光照。Light Probe Group通过空间中的一系列探针来捕获光照,其光照数据存储在磁盘上,然后在运行的时候,每个选择由Light Probes照亮的物体都会混合与其距离最近的探针中存储的光照。光照探针对于动态的物体以及不需要高精度光照的小物体非常有用,
要减少光照烘焙的时间以及光照贴图占用的空间,我们推荐在场景中尽可能多的使用光照探针(而不是烘焙光照贴图)。只有巨大的静态物体和需要高光照质量的物体需要从光照贴图中获取全局光照
渐进式光照烘焙器 Progressive Lightmapper

Progressive Lightmapper是一个基于路径追踪的光照烘焙系统。其渐进式的对光照贴图的细化和显示功能使得艺术家们可以快速对烘焙结果进行迭代。另一个优点是它可以在烘焙时对烘焙时间进行预测。
Progressive Lightmapper通过对每个texel设置单独的lightmap resolution(每个世界单位的纹理数量)来进行烘焙,而不是通过[上采样方案,依赖irradiance缓存,其他全局数据结构]。其强大之处在于其允许你烘焙光照贴图的选定部分,以加快测试和迭代。(实际烘焙的时候物体上的每单位所占texel是由烘焙器里的Lightmap Resolution和物体的Mesh Renderer里的Scale In Lightmap选项共同决定的)
Progressive Lightmapper支持Bulit-in,URP,HDRP
CPU和GPU光照烘焙器

你可以为Progressive Lightmapper选择两个backend的其中一个。Progressive CPU Lightmapper使用计算机的CPU和RAM,Progressive GPU Lightmapper使用GPU和VRAM。
(意思就是显存如果爆了就用CPU吧,内存比显存便宜很多,有钱当我没说)
实时全局光照 Real-time Global Illumination

由于能实时改变的特性,实时全局光适用于那些变化缓慢且对视觉表现有非常大影响的光源。比如在天空中运动的太阳,或者封闭走廊中的pulsating(脉动的) light。由于性能开销和延迟,实时GI在快速移动的光源或者特殊效果上的效率并不高,其更适合中高端的PC系统或者主机,或者是在小场景中用了低分辨率real-time lightmaps的高端移动设备
Enlighten

Enlighten是Unity中实时GI的backend(后端)。该系统需要为场景中的静态物体进行预计算,但也支持实时无缝添加光源和材质。当一个被预计算之后,光照的迭代时间会急剧减少
Built-in支持Enlighten,在Unity 2021LTS中,URP和HDRP也支持
光线追踪GI Ray-traced Global Illumination

光线追踪是另一种获取实时GI的形式。目前只有HDRP支持该功能,同时还需要GPU支持光线追踪。
光线追踪GI的优点在于不需要任何的预计算,而且光线是逐像素的,这意味着其不依赖给定的纹素分辨率,也不需要任何指定的UV层级来保证最优的光照。而且光追GI得迭代时间将会非常短,代价就是对GPU更高的要求,这就是为什么这项技术只能被用在支持硬件加速光追的特定硬件上。
要了解更多Unity中可用的光追效果(比如光追GI和反射),查看Activate ray tracing with Unity's High Definition Render Pipeline | NVIDIA webinar - YouTube
参考书籍:The definitive guide to lighting in the High Definition Render Pipeline for Unity 2021 LTS
更多资料

Get acquainted with HDRP settings for enhanced performance | Unity Blog
Harness the Ray Tracing capabilities of Unity's HDRP with NVIDIA | Unity Blog
Configuring Global Environment Lighting Settings - Unity 2019.4 - Unity Learn
Introduction to Lighting and Rendering - 2019.3 - Unity Learn
Configuring Lightmaps - Unity Learn
页: [1]
查看完整版本: Unity技术美术(TA)指北——Lighting光照