您想找什么?
Hero background image
电脑和控制台游戏的光影效果

本文是系列文章的第三篇,介绍了开发人员和技术美术人员如何在 Unity 中设置和使用高清渲染管道(HDRP)来实现高端图形逼真度。HDRP 代表了 Unity 实时渲染技术的飞跃,因此您可以像处理真实世界中的光线一样处理光线。

请务必阅读我们的 "如何使用高端照明 "系列中的其他文章:

高清渲染管道中的灯光照明

HDRP 包含多种不同的灯光类型和形状,可帮助您控制场景中的照明。

灯光类型

这些是可用的灯光类型,与 Unity 中的其他渲染管道类似:

  • 方向性:这就像来自无限遥远光源的光线,光线完全平行,强度不会减弱。定向灯经常代替阳光。在室外场景中,这通常是你的关键光源。
  • :这类似于现实世界中的聚光灯,形状可以是锥形、金字塔形或箱形。光斑沿 Z 轴前方以及锥形/金字塔形的边缘脱落。
  • :这是一种全向照明,可以从空间中的一个点照亮所有方向。它适用于辐射光源,如灯或蜡烛。
  • 区域:这是从特定形状(矩形、管状或圆盘)的表面投射光线。面光源的功能就像一个中心强度均匀的宽光源,就像窗户或荧光灯管。

修改点光源、点光源和区域光源随范围缩小的方式。许多 HDRP 灯光都是利用平方反比定律减弱的,就像现实世界中的光源一样。

聚光灯和区域灯还具有其他形状,可以控制每种灯光的熄灭方式,这将在下面的章节中介绍。

HDRP 聚光灯

HDRP 聚光灯有三种形状:

  • 锥形:将光线从单点投射到圆形底座上。调整外角(度)和内角(百分比)可塑造锥形并修改其角度衰减。
  • 金字塔将光线从单点投射到方形底座上。使用 "点角度"和 "长宽比"调整金字塔形状。
  • 盒子将光线均匀地投射到整个矩形空间。X 和 Y 尺寸决定了基本矩形的大小,而范围则控制着 Y 尺寸。除非选中 "范围衰减",否则该光线不会衰减。
人类发展报告区域灯

HDRP 区域灯有三种形状:

  • 长方形:将光线从矩形形状沿本地正 Z 方向投射到指定范围。
  • 管子将光线从一条线投射到各个方向,并延伸到指定范围。此灯仅在实时模式下工作。
  • 光盘将圆盘形状的光线从本地正 Z 方向投射到指定范围。此灯仅在烘焙模式下工作。
色温选项
改变发射时的光外观特性。每种灯光都有额外的特性。
颜色和温度

所有 HDRP 灯光类型都具有定义灯光外观的 "发射"属性

您可以将 "灯光外观"切换为 "颜色",并指定一种RGB 颜色。否则,请将其更改为 "滤波温度",以获得更精确的物理输入。

色温根据开氏度设置颜色。请参阅本页下方的 "照明和曝光小抄 "以作参考。

您还可以添加像滤镜一样的颜色,为光线染上另一种色调。这类似于在摄影中添加色胶

附加属性

HDRP 在 "检查器 "右上方的 "更多项目 "菜单 (⋮)下包含一些高级控制功能。选择显示其他属性,查看其他选项。

其中包括 "影响漫反射"和"影响镜面反射"的切换。例如,在剪辑或电影照明中,可以将控制明亮高光的灯光与产生柔和漫射光的灯光分开。

您还可以使用强度倍增器来调整灯光的整体强度,而不实际改变原始强度值。这对于同时变亮或变暗多盏灯非常有用。

光源层
选择光层
光源层

HDRP 允许您使用 灯光层使光线只影响场景中的特定网格。这些是图层蒙板,可以与灯光组件和网格渲染器关联。

灯光属性中,单击 "更多选项 "按钮,查看常规下的灯光层 下拉菜单。选择要与灯光关联的图层蒙板。你也可以从"更多项目 "菜单(☰)中选择 "显示其他属性"。这同样会显示常规下的 "光照层 "下拉菜单。选择要与灯光关联的图层蒙板。

渲染图层蒙版
设置渲染图层遮罩,使网格只受特定光线的影响。
渲染图层蒙版

接下来,用渲染图层蒙板设置网格渲染器。只有匹配图层蒙板上的灯光才会影响网格。这一功能对于解决漏光问题非常重要,可确保灯光只照射到预定目标。它也可以作为工作流程的一部分来设置剪辑灯光,这样只有角色才会收到专用的电影灯光。

例如,如果您想防止建筑物内部的灯光意外穿透外部墙壁,您可以为内部和外部设置特定的灯光层。这可确保您对灯光设置进行精细控制。

要设置灯光层,请进入HDRP 默认设置。在 "图层名称 "部分,您可以设置 0 至 7 号光照图层的字符串名称。

更多信息,包括 Light 属性的完整列表,请参阅Light 组件文档

灯锚组件
灯锚组件
灯锚

Unity 2021 LTS 及以上版本包含一个光锚系统,可通过控制摄像机与拍摄对象之间的角度和距离,帮助您快速设置灯光。它还能通过九种预设值选择常用的照明角度。

如果您需要在电影场景、产品或镜头中使用围绕角色或道具的多个灯光进行照明,光锚组件可在屏幕空间中围绕锚定目标进行快速、高效的灯光操作。

首先,确保摄像机标记为 MainCamera,然后为要控制的聚光灯添加一个光锚组件。对齐灯光和拍摄对象;现在这个位置就是聚光灯的锚点。增加锚点和聚光灯之间的距离,甚至通过在游戏视图中调整灯光的轨道、仰角和滚动来调整灯光在锚点周围的位置,而不是在场景视图中手动调整灯光的变换。

如需了解更多信息,请查看有关光锚的介绍。

物理光单位和强度

HDRP 使用物理光单位 (PLU)来测量光强。这些数据与实际生活的照度SI测量值相匹配,包括烛光、流明、勒克斯和尼特。请注意,为了准确起见,PLU 希望一个 Unity 单位等于一米。

单位

物理光单位可以包括光通量单位和照度单位。光通量表示光源发出的光总量,而照度则指物体接收到的光总量(通常以单位面积的光通量表示)。

由于商业照明和摄影可能会根据不同的应用表达不同的单位,Unity 支持多种物理光单位以实现兼容性:

  • 坎德拉一个单位相当于一支蜡烛的光通量。这通常也被称为烛光功率。
  • 流明:这是光通量的 SI 单位,定义为一个实角立体角)上的一坎德拉。您通常会在商用灯泡的规格上看到流明。与 Unity 聚光灯、点光源或区域照明灯一起使用。
  • 拉克斯在一平方米面积上发出一流明的光源,其照度为一勒克斯。现实世界中的测光表通常读取的是勒克斯。您通常会在 Unity 中将该装置与定向灯配合使用。
  • 小毛病:这是一个亮度单位,相当于每平方米一个烛光。显示设备和 LED 面板(如电视机或显示器)通常以尼特为单位测量亮度。
  • EV100:EV100 对应的强度具有 100 ISO 胶片的曝光值(请参阅本页"曝光值公式 "部分)。由于存在对数行为,增加曝光会导致照明加倍。

要重现真实光源,请切换到技术规格上列出的装置,并插入正确的光通量或亮度。HDRP 将与物理照明单位相匹配,从而消除了设置强度时的许多猜测。

单击图标可选择外部内部装饰蜡烛预设。如果没有明确匹配特定值,这些设置提供了一个很好的起点。

常用照明和曝光值

这里显示的小抄包含了现实世界中常见光源的色温和照明强度。它还包含不同照明场景的曝光值

您可以在物理光学单位文档中找到完整的照度值表。

适用于各种灯光的 IES 配置文件
应用于各种灯光的 IES 配置文件
国际教育大会简介和 cookie

使用IES 配置文件,让点光源、聚光源和区域光源紧密模仿真实光源的衰减。它的工作原理就像光饼干,可将特定制造商的规格应用于光照模式。IES 配置文件让灯光更加逼真。

从 "资产">"导入新资产 "导入 IES 配置文件导入程序会自动创建一个强度正确的光源预制件。然后将预制件拖入 "场景 "视图"层次结构"中,调整其色温即可。

环境照明

在现实世界中,光线在我们周围反射和散射。由于随机光子在大气层和地球之间反弹,并最终到达观察者,因此天空和地面都会对环境照明产生影响。

在 HDRP 中,您可以使用 "视觉环境覆盖"来定义场景的天空和总体氛围。

例如,使用环境模式:动态 ,将天空照明设置为可视化环境的天空 > 类型中显示的当前覆盖值。

否则,"环境模式":静态 默认为 "照明 "窗口"环境 "选项卡中的天空设置。

即使禁用了其他光源,视觉环境也能为样本场景提供一般环境光。

再加上太阳的主光,就完成了场景的总体照明。环境光有助于填补阴影区域,使其不会显得不自然的暗。

HDRP 包括三种不同的天空生成技术。将天空 类型设置为HDRI 天空、渐变天空基于物理的天空。然后,从Sky 菜单中添加相应的覆盖。

应用视觉环境天空类似于用一个巨大的发光球体包裹整个虚拟世界。球体上的彩色多边形提供了来自天空、地平线和地面的一般光线。

高清晰度成像天空

HDRI Sky可让您使用高动态范围 (HDRI) 照片制作的立方体地图来表现天空。您可以在网上找到许多免费或低成本的 HDRI 来源。资产商店中的Unity HDRI 包就是一个很好的起点。如果你觉得自己很有冒险精神,我们还有一份关于如何拍摄自己的 HDRI 的指南

导入 HDRI 资产后,添加 HDRI 天空覆盖 以加载 HDRI 天空资产。您还可以通过它调整失真旋转更新模式等选项。

由于天空是照明光源,因此请指定强度模式,然后选择相应的曝光/倍增器/光通量值来控制环境照明的强度。有关强度和曝光值的示例,请参阅上述照明和曝光小抄。

动画云层

您可以将 HDRI Sky 制作成动画,并通过程序或流程图对 HDRI 贴图进行变形。这样,您就可以在静态 HDRI 上伪造风的效果,或制作其他特定的特效。

天空渐变色
上、中、下三层颜色融合成渐变天空。
渐变天空

选择 渐变天空视觉环境中选择 "渐变天空",用颜色斜坡逼近背景天空。然后添加 "渐变天空覆盖"。使用顶部中间底部来确定渐变的颜色。

使用渐变扩散混合颜色斜坡,并根据照明强度调节强度。

基于物理的天空

要想获得比渐变更逼真的效果,请使用 基于物理的天空覆盖.

这种程序化生成的天空结合了氏散射和瑞利散射等现象,模拟了光线在大气中的散射,再现了自然天空的色彩。基于物理的天空需要定向光来进行精确模拟。

低悬雾演示
使用底座高度和最大高度来创建低悬雾。
雾和大气散射

烟、雾、霾是电影摄影的传统工具。它们有助于增加舞台灯光的深度和维度,或营造一种氛围。

在 HDRP 中使用Fog也能获得类似的优势。它的不透明度取决于物体与相机的距离。雾气还可以隐藏 "相机远剪切平面",将远处的几何体融合到场景中。

雾覆盖界面
烟雾覆盖
全球大雾

HDRP 将全局迷雾作为迷雾覆盖来实现。在这里,由于雾气与摄像机的距离以及其世界空间高度,雾气会以指数形式消散。

在场景中的音量上设置雾覆盖基底高度决定了一个边界,在这个边界上,持续的浓雾开始变薄,并向上移动。雾密度继续以指数形式减弱,直至达到最大高度

同样,雾气衰减距离最大雾气距离也可以控制雾气如何随着与摄像机距离的增加而减弱。在恒定颜色和现有天空颜色之间切换颜色模式

体积雾
体积雾更准确地呈现前景几何图形
体积雾

启用 "体积雾 "模拟大气散射。确保在 "灯光">"画面设置"(相机下或HDRP 默认设置)中选中 "体积"。此外,在HDRP 管道资产中启用体积雾

体积雾距离Volumetric Fog Distance)设置了从 "摄像机近剪切平面 "到 "体积照明缓冲区 "背面的距离(以米为单位)。这会在大气中填充一种空气材料,部分遮挡范围内的游戏对象。

体积照明

体积照明可以模拟渲染戏剧性的太阳光,如日落时分云层后的绉绉光线或穿过树叶的光线。

每个灯光组件(区域灯光除外)都有一个体积测量组。选中 "启用",然后设置乘法器阴影调光器。实时或混合模式灯光会在体积雾中产生 "神光线"。倍增器可调节光强,而阴影调光器则可控制阴影表面对光线的切割效果。

样本场景中的 2 号房间设有天窗和体积雾。玻璃柜的框架从天花板的阳光中雕刻出体积阴影。调大阴影暗淡度,放大倍增器来强化效果。

从局部体积三维纹理样本中提取密度掩模纹理
从局部体积三维纹理样本中提取密度掩模纹理
局部体积雾

如果您想要比 "雾气覆盖 "功能更详细的雾气效果,HDRP 还可提供 局部体积雾(在 HDRP 12 之前称为密度体积组件)。

这是音量系统之外的一个独立组件。从菜单(GameObject > Rendering > Local Volumetric Fog)或右键单击层次结构(Rendering > Local Volumetric Fog)创建一个局部体积雾游戏对象

这将生成一个充满雾气的边界框。调整大小、轴控制和混合/渐变选项。默认情况下,雾是均匀的,但您可以在 "密度蒙版纹理 "分节下的 "纹理"字段中应用3D纹理。这样,用户就能更灵活地调整雾的外观。

从 "软件包管理器">"本地体积 3D 纹理样本"中下载示例,或按照文档步骤创建您自己的密度蒙板。

为动画添加一些滚动速度并调整平铺。这样,体积雾就可以在场景中轻轻滚动。

HDRP 对局部体积雾进行了体素化处理,以提高性能,不过体素化处理可能会显得粗糙。要减少混叠,可使用密度蒙版纹理 并增加混合距离来柔化雾的边缘。

在 HDRP 12 及以上版本中,您可以在 HDRP 管道资产中启用高达 256x256x256 的本地体积分辨率。这样就能产生更精确、更大规模的效果。

HDRI Sky 上的云层
云层出现在 HDRI 天空前方。
云彩

没有云的天空是不完整的。在 HDRP 12 及以上版本中,使用 云层生成自然的云层,与天空和视觉环境覆盖相得益彰。

体积云生成具有实际厚度的逼真云层,并对光照和风力做出反应。

默认云图通道
默认云图的四个通道
云层

云层是一种二维纹理,你可以使用带有红色和绿色通道的流图来控制矢量位移。它位于天空前方,提供了在地面上投射阴影的选项。

在 "播放模式 "下,使用 "云彩图层 "为天空添加轻微的动感,使背景更具活力。

在本地卷或全局卷中,启用 "视觉环境 "中的 "背景云"。然后添加云层 覆盖

云图本身是一种使用圆柱投影的纹理,其中的 RGBA 通道都包含不同的云纹理(分别为积云、层云、卷云和缕云)。然后,您可以使用 "云图层 "控制来混合每个通道,并建立您所需的云层。​.有两个图层,四个通道,可以模拟和混合多达八个云景。根据自己的喜好修改云的动画、光照、颜色和阴影。

体积云

如果您的云需要与光线互动,请使用体积云。它们可以渲染阴影、接收雾气和创建体积光轴。将它们与 "云图层 "云组合在一起或单独添加。

要在您的系统中启用体积云:

  • HDRP 资产:转到照明 > 体积云 > 体积云
  • 本地或全球音量:添加体积云 覆盖

高级和手动云控制选项允许您为每种类型的云定义地图。

有关云层体积云覆盖的更多信息,请参阅HDRP 中的云文档。请参阅Unity 2021.2 中的新照明功能,深入了解体积云。

每盏灯的阴影设置
每盏灯的阴影设置
阴影

没有黑暗,我们就无法感知光明。精心布置的阴影可以为场景增添深度和维度,与灯光本身一样增添个性。HDRP 包含许多功能,可对阴影进行微调,防止渲染效果看起来平淡无奇。

阴影地图

阴影渲染使用的是一种称为阴影映射的技术,在这种技术中,纹理存储了光线视角下的深度信息。

找到 "灯光 "组件的 "阴影 "分节,修改阴影贴图更新模式分辨率。更高的分辨率和更新频率设置成本更高。

块状阴影示例
透视反差与块状阴影
透视混叠

对于定向光来说,阴影贴图会覆盖场景的很大一部分,这可能会导致透视混叠问题。与距离较远的像素相比,距离相机较近的阴影贴图像素看起来参差不齐,呈块状。

Unity 通过层叠阴影贴图解决了这一问题,下一节将对此进行说明。

阴影级联
阴影级联可减少透视混叠。
阴影级联

级联阴影贴图会将摄像机成像区域划分为多个区域,每个区域都有自己的阴影贴图。这样可以减少透视混叠的影响。

阴影覆盖界面
阴影覆盖
阴影覆盖

HDRP 通过以下功能为您提供额外的阴影级联控制功能 阴影覆盖.使用每个音量的级联设置来指示各自级联的开始和结束位置。

切换 "显示级联"按钮,以便更直观地显示级联分割。只要稍加调整,就能将透视混叠降到最低。

触点阴影覆盖界面
接触阴影覆盖
接触阴影

阴影贴图通常无法捕捉到小细节,尤其是在两个网格表面相连的明显边缘。HDRP 可以使用 "接触阴影覆盖"生成这些 "接触阴影"。

接触阴影是一种屏幕空间效果,依赖于框架内的信息进行计算。画面外的物体不会产生接触阴影。它们主要适用于屏幕足迹较小的阴影细节。

确保在"框架设置"中启用 "接触阴影"。您还可以在 "照明质量设置 "的 "接触阴影覆盖"下调整管道资产中的采样计数

在 2021 LTS 和更新的版本中,该功能得到了改进,可以与 Terrain 和 SpeedTree 配合使用。在博客上阅读更多内容。

微影

即使是微小的阴影细节,HDRRP 也能扩展到 "材质 "中。微阴影使用法线和环境闭塞贴图来渲染非常精细的表面阴影,而无需使用网格几何图形本身。

将 "微阴影覆盖"添加到场景中的卷标,并调整不透明度。但请注意,微阴影只适用于定向灯。

这些内容有帮助吗?
是的!
还行。