您想用自然阳光渲染郁郁葱葱的雨林景观?还是遍布霉虹灯的大城市混凝土丛林?借助 Unity 高清渲染管线(HDRP),您可以用摄影师的画笔绘制场景关卡。
HDRP 可以利用高端 PC 或主机硬件,让图形达到真假莫辨的效果。为了帮助广大开发者利用 HDRP 的成品级功能制作高级光照,Unity 特推出《高清渲染管线光照指南-2022 版》。该指南已更新至 Unity 2021 LTS,并新增了几种关键的功能,以下是本指南涵盖的主题:
- HDRP 的概念、设定、摄像机和 Volumes 体积框架
- 曝光、摄像机模式、物理性摄像机设置和摄影公式
- 光的单位、类型、属性和 IES Profile 配置
- 怎样用 Physically Based Sky(物理性天空)系统营造自然的天空景观
- 完善和修改阴影、反射和实时光照效果,为场景增加深度
- Rendering Debugger(渲染调试器)的最佳用法
- 光线追踪和后处理
本文选取了指南的部分精彩内容,点击下方链接,即可免费解锁完整指南。
https://learn.u3d.cn/tutorial/hdrp_lighting_expert_guide_2022
HDRP光照概述
HDRP 可利用各种功能扩展 Unity 现有的光照系统,使场景渲染更接近真实世界的光照∶
物理光单位和曝光:HDRP 使用真实世界的光照强度和单位。匹配已知光源的规格,并使用物理摄像机设置曝光。
高级光照:利用聚光灯和面光源的附加形状选项控制灯光位置。使用光源层限制灯光对特定网格的影响。应用实时效果,如屏幕空间全局光照和屏幕空间折射。
天空景色:使用不同技术生成自然的天空。使用基于物理的天空系统程式化地模拟行星大气层,添加体积云、云层,或应用 HDRI 来模拟静态天空。
雾:用雾为场景添加深度和维度。使体积插件能够集成雾效果和前景对象,并渲染电影光束效果。保持对每个光源的体积光和阴影控制,并使用局部体积雾组件和 3D 遮罩纹理精确控制雾密度。
体积系统:HDRP 包含一个直观系统,让您可以根据摄像机位置或优先级禁用不同光照效果和设置。分层和混合体积允许对场景的每一平方进行专家级控制。
后处理:HDRP 后处理由基于现有体积系统的一系列体积覆盖进行控制。可添加抗锯齿、色调映射、色彩分级、泛光、景深以及一系列其他效果。
高级阴影:HDRP 提供针对阴影的高级美工和性能控制。可修改其色调、过滤、分辨率、内存预算和更新模式。使用接触阴影和微阴影突出小细节和额外的深度。
高级反射:反射表面可使用多项技术进行渲染。反射探针提供传统的反射映射方法,其中平面反射探针提供更多适用于平面的高级选项。屏幕空间反射(SSR)增加了一种使用深度缓冲区的实时技术。
可扩展性:HDRP 基于 Unity 的可编程渲染管线构建。经验丰富的技术美术师和图形程序员可以拓展管线,甚至使其超出现有用途。
物理光单位和强度
HDRP 使用物理光单位(PLU)衡量光强度。这些单位与现实生活中的S 照度测量相匹配,包括坎德拉、流明、勒克斯和尼特。请注意,Unity 中的1个单位 PLU 预计等于 1 米精度。
单位
物理光单位可包括光通量和照度单位。光通量代表光源发射的总光量,而照度则是指物体接收到的总光量(通常用单位面积的光通量来表示)。
因为商业光照和摄影可能会根据应用的不同而显示不同的单位,因此 Unity 支持多个物理光单位,以实现兼容性∶
- 坎德拉:一个坎德拉相当于一支蜡烛的光通量。通常也称为烛光度。
- 流明:这是光通量的 S 单位,定义为 1 坎德拉在一个立体角(球面度)上产生的光通量。通常,可以在商业灯泡规格中看到流明。Unity 聚光灯、点光源和面光源使用该单位。
- 勒克斯:光源在 1 平方米面积上发射的光通量是 1 流明时,它的照度就是 1 勒克斯。真实世界中的测光计通常以勒克斯为单位,而且 Unity 方向光通常使用该单位。
- 尼特:这是一个亮度单位,相当于 1 立方米 1 坎德拉。显示设备和 LED 面板(如电视或监控器)的亮度通常使用尼特为单位。
- EV100:它的强度相当于 EV,这是 100 ISO 胶片的曝光值(参见上述照光值公式)。由于对数行为,增加曝光值会使光照翻倍。
为了重现真实光源,需切换至技术规格上所列单位,并选择正确的光通量或亮度。HDRP 将匹配物理光单位,从而在设置强度时消除了许多臆测。
单击图标选择外部(Exterior)、内部(Interior)、装饰(Decorative)和蜡烛(Candle))的预设。如果您未明确匹配特定值,那么这些设置是一个很好的起点。
常见光照和曝光值
下述参考手册包含现实世界中常见光源的色温值和光强度。此外,它还包含不同光照场景的曝光值。
您可以在物理光单位文档中找到常用光照值的完整表格。
IES 配置文件和剪影
利用 IES 配置文件使您的点光源、聚光灯和面光源更接近于模拟真实光源的衰减。这就像是一个光照剪影,用于将特定制造商的规格应用于一种光线模式。IES 配置文件能够让您的光线更具现实感。
通过资源>导入新资源(Assets>Import New Asset)导入 IES 配置文件。导入器将自动创建具有正确强度的灯光预制件。然后,只需将预制件拖入场景视图或层级视图中,并稍微调整其色温即可。
以下是 IES 配置文件的一些来源:
现实世界制造商:飞利浦、亮通光照、Eficient Lighting Systems、阿特拉斯、欧科照明、Lamp、欧姆龙。
美术师资源:Renderman。
环境光照
在现实世界中,光线会在我们周围反射和散射。天空和地面有助于环境光照,因为随机的光子会在大气和地球之间来回反弹,并最终到达观测者。
在 HDRP 中,您可以使用视觉环境覆盖,以定义场景的天空和氛围。
使用环境模式∶动态(Ambient Mode∶Dynamic)将天空光照设置为视觉环境天空>类型(Sky>Type)中出现的当前覆盖。否则,环境模式∶静态(Ambient Mode∶Static)默认为光照(Lighting)窗口的环境(Environment)选项卡中的天空设置。
即使您的其他光源被禁用,SampleScene 也可以接收视觉环境中的一般环境光。
添加主要的阳光可实现场景的一般光照需求。环境光有助于填充阴影区域,使其不会看起来不太自然。
HDRP 包含三种不同的天空生成技术。将类型(Type)设置为 HDRI 天空(HDRI Sky)、渐变天空(Gradient Sky)或基于物理的天空(Physically Based Sky)。然后,从天空(Sky)菜单中添加适当的覆盖。
应用视觉环境天空类似于使用一个巨大的发光球体包裹整个虚拟世界。球体的彩色多边形可提供来自天空、地平线和地面的普通光线。
HDRI 天空
HDRI 天空(HDRI Sky)允许用户使用高动态范围照片制成的立方体贴图代表天空。您可以在 HDRI 网站上找到大量免费和低成本资源。资源商店(Asset Store)中的 Unity HDRI Pack 是一个很好的起点。
如果您喜欢自己探索,我们还提供一个指南,引导您拍摄自己的 HDRI。
一旦导入了 HDRI 资源,请添加 HDRL 天空(HDRLSkv)覆盖,以加载 HDRL 天空(HDRI Sky)资源。您还可以在这里微调变形 (Distortion)、旋转(Rotation)和更新模式(Update Mode)的选项。
因为天空是光照源,指定强度模式 (Intensity Mode),然后选择相应的曝光/倍增器/勒克斯(Exposure/Multiplier/Lux)值,以控制环境光照的强度。
云层动画
您可以通过程序或使用流动贴图扭曲 HDRI 贴图,为 HDRI 天空设置动画。这样就可以在静态 HDRL 上模拟风的效果,或创建更具体的 VFX。
渐变天空(Gradient Sky)
在视觉环境(Visual Environment)中选择渐变天空(Gradient SkV),以使用颜色渐变来模拟背景天空。然后添加渐变天空(Gradient Sky)覆盖。使用顶部(Top)、中间(Middle)和底部(Bottom)来确定渐变颜色。
使用渐变散射(Gradient Diffusion)来混合颜色渐变,并将强度(Intensity)调整为光照强度。
基于物理的天空
对于比渐变更真实的东西,您可以使用基于物理的天空(Physically Based Sky)覆盖。这可以在程序上生成一个融合了米氏散射和瑞利散射等现象的天空。这些可以模拟通过大气散射的光,同时重现自然天空的色彩。基于物理的天空需要方向光,以实现精确模拟。
颜色提示
应根据实际地面(例如地形,确保您的对象在该位置不会受到反射探针影响)的平均颜色选择地面颜色。
《高清渲染管线权威指南-2022版》里,还详细介绍了雾和大气散射、云、阴影、反射、实时光照效果等内容,点击下方链接即可免费解锁。
https://learn.u3d.cn/tutorial/hdrp_lighting_expert_guide_2022