高清渲染管线 (High Definition Render Pipeline) 中的光源
使用光源组件可在场景中创建光源。光源组件控制光的形状、颜色和强度。还控制光是否在场景中投射阴影,以及更多高级设置。
创建光源
可通过两种方式在场景中添加光源。可以创建新的光源游戏对象,也可以向现有游戏对象添加光源组件。
要创建新的光源游戏对象,请执行以下操作:
- 在 Unity 编辑器中,选择 GameObject > Light。
- 选择要添加的光源类型。
Unity 创建一个新的游戏对象,并附加一个光源组件,以及另一个高清渲染管线 (HDRP) 组件:HD Additional Light Data。Unity 将新的光源游戏对象放置到场景中,以 Scene 窗口中的当前视图为中心。
要向现有游戏对象添加光源组件,请执行以下操作:
- 选择要添加光源的游戏对象。
- 在 Inspector 中,单击 Add Component。
- 找到 Rendering 部分,然后单击 Light。这将创建一个新光源,并将其附加到当前选定的游戏对象。还会添加 HD Additional Light Data HDRP 组件。
或者,可以在 Add Component 窗口中搜索“Light”,然后单击 Light 以添加光源组件。
配置光源
要配置光源的属性,请在场景中选择一个附加了光源组件的游戏对象。在 Inspector 窗口中查看光源的属性。
HDRP 包含多种类型的光源。虽然 HDRP 光源有许多共同的属性,但每一个光源都有自己的独特行为和属性集合。
有关如何配置逼真灯具的更多详细信息,请参阅在 Unity 中创建高质量灯具专家指南。有关光源强度的一般性指南,请参阅物理光单位。
属性
光源可用的属性显示在单独的部分中。每个部分都包含一些所有光源共有的属性,还有一些属性用于自定义该特定类型光源的行为。这些部分还包含更多选项,如果你希望微调光源行为,则可以显示出这些选项。这些部分是:
Animation
为了使光源能够与 Animation 窗口配合使用,在单击 Add Property 按钮时,需要使用 HD Additional Light Data 组件中的属性,而不是光源组件本身中的属性。如果确实编辑了光源组件中的属性,则会修改 HDRP 不支持的内置光源值。或者,也可以使用 Record 按钮并直接在 Inspector 中修改值。
General
General 属性控制光源的类型、HDRP 处理该光源的方式,以及该光源是影响场景中的所有对象还是只影响特定光源层中的游戏对象。
属性 | 描述 |
---|---|
Type | 定义光源的类型。不同类型的光源会有不同的行为,因此在您更改 Type 后,Inspector 中的属性将发生变化。可选的类型为: • Directional • Point • Spot • Area |
Mode | 指定光源模式,HDRP 使用光源模式来确定如何烘焙光源(如果有)。可选的模式为: • Realtime:Unity 会在运行时为实时光源执行光照计算,每帧进行一次。 • Mixed:混合光源整合了实时光照和烘焙光照的元素。 • Baked:Unity 在 Unity 编辑器中为烘焙光源执行光照计算,并将结果作为光照数据保存到磁盘中。请注意,烘焙面光源不支持软衰减/范围衰减。 |
Light Layer | 一种遮罩,允许选择此光源影响的光源层。受影响的光源仅照亮包含匹配渲染层遮罩 (Rendering Layer Mask) 的网格渲染器或地形。 仅当启用此部分的更多选项时,才显示此属性。 |
光源类型指南
Type | 描述 |
---|---|
聚光灯 (Spot) | 从指定位置并在指定范围内发光,亮度在该范围内逐渐减弱。聚光灯将发出的光线限制为某个角度,从而形成一个锥形的照明区域。锥体的中心指向光源游戏对象的前进方向(Z 轴)。聚光灯圆锥体边缘的光线也会减弱。增大 Spot Angle 的值可增大锥形的宽度。 |
方向光 (Directional) | 在场景中产生类似于阳光的效果。像阳光一样,方向光是远距离光源,HDRP 认为它们在无限远处。方向光没有任何可识别的光源位置,您可以将光源游戏对象放置在场景中的任何位置。方向光可照亮场景中的所有游戏对象,就好像光线是平行的,并且总是来自同一个方向。这种光源会忽略光源本身与目标游戏对象之间的距离,所以光照不会随着距离而减弱。 |
点光源 (Point) | 从空间中的某一点向所有方向投射光线。照射到表面的光线的方向是从接触点返回到光源游戏对象中心的线。光强度随着与光源之间距离的增加而减弱,当达到 Range 字段中指定的距离时,光强度变为零。光强度与光源距离的平方成反比。这被称为平方反比定律 (Inverse-square law),类似于光在现实世界中的情况。 |
面光源 (Area) | 从一个表面投射光线。光线从矩形表面均匀地照向所有方向。 |
限制
面光源当前不支持织物和毛发材质。这意味着它们不会照亮使用以下任何项目的材质,也不能投射这些材质的阴影:
Shape
这些设置用于定义此光源影响的区域。每种光源类型都有自己独特的 Shape 属性。
聚光灯
属性 | 描述 |
---|---|
Shape | HDRP 聚光灯可以使用三种形状。 • 圆锥 (Cone):将光线从游戏对象所在位置的一个点投射到圆形底部,就像一个圆锥体。要改变圆形底部的半径,可以更改 Outer Angle 和 Range 属性。 • 棱锥 (Pyramid):将光线从游戏对象所在位置的一个点投射到一个边长等于圆锥直径的正方形底部。 • 盒体 (Box):将光线均匀投射在一个由水平和垂直大小定义的矩形区域。除非选中 Range Attenuation,否则此光源不会衰减。 |
Outer Angle | 聚光灯圆锥底部的角度,以度为单位。此属性仅适用于圆锥形光源。 |
Inner Angle (%) | 确定内锥和外锥之间的衰减开始位置。较大的值会导致聚光灯边缘的光线淡出。较低的值会阻止边缘的光线淡出。此属性仅适用于圆锥形光源。 |
Spot Angle | 这是一个角度(以度为单位),可确定使用棱锥形状的聚光灯的大小。 |
Aspect Ratio | 调整棱锥聚光灯的形状,从而创建一个矩形聚光灯。将此属性设置为 1 可产生方形投影。值小于 1 将使光线从起点开始变宽。如果值大于 1,将使光线延长。此属性仅适用于棱锥形光源。 |
Radius | 光源的半径。这会影响镜面高光的大小、漫射光照衰减以及烘焙阴影、光线追踪阴影和 PCSS 阴影的柔和度。 |
Size X | 适用于盒体。调整盒体光源的水平大小。任何光都不会照射到设定的范围之外。 |
Size Y | 适用于盒体。调整盒体光源的垂直大小。任何光都不会照射到设定的范围之外。 |
方向光
属性 | 描述 |
---|---|
Angular Diameter | 允许以角度为单位设置远距离光源的面积。这会影响镜面高光的大小以及烘焙阴影、光线追踪阴影和 PCSS 阴影的柔和度。 |
点光源
属性 | 描述 |
---|---|
Radius | 定义光源的半径。这会影响镜面高光的大小、漫射光照衰减以及烘焙阴影和光线追踪阴影的平滑度。 |
面光源
属性 | 描述 |
---|---|
Shape | HDRP 面光源可以使用三种形状。 • 矩形 (Rectangle):从游戏对象所在位置和方向的一个矩形形状朝垂直方向投射光线,投射出由 Range 确定的范围。 • 管道 (Tube):从游戏对象所在位置的一条线朝所有方向投射光线,投射出由 Range 确定的范围。目前,此形状仅适用于 Realtime Mode。 • 圆盘 (Disc):从游戏对象所在位置和方向的一个圆盘形状朝垂直方向投射光线,投射出由 Range 确定的范围。目前,此形状仅适用于 Baked Mode。 |
Size X | 适用于矩形。定义矩形光源的水平大小。 |
Size Y | 适用于矩形。定义矩形光源的垂直大小。 |
Length | 适用于管道。定义灯管的长度。光源的中心是变换位置,光源本身对称地从中心延伸出去。此 Length 是指从灯管一端到另一端的距离。 |
Radius | 适用于圆盘。定义圆盘灯的半径。 |
Celestial Body (Directional only)
这些设置可以定义将光源用作具有基于物理的天空 (Physically Based Sky) 的天体时的光源行为。
属性 | 描述 |
---|---|
Affect Physically Based Sky | 使用基于物理的天空 (Physically Based Sky) 时,这会沿该光源的方向在天空中显示一个太阳圆盘。太阳圆盘的直径、颜色和强度与该方向光的属性匹配。 仅当启用此部分的更多选项时,才显示此属性。 |
- Flare Size | 控制天体周围的光晕大小(以度为单位)。 |
- Flare Falloff | 控制随着与光源的角度增加时光晕强度的衰减率。 |
- Flare Tint | 控制天体的光晕着色。 |
- Surface Texture | 为天体的表面设置 2D(圆盘)纹理。这将用作乘数。 |
- Surface Tint | 为天体表面着色。 |
- Distance | 控制太阳圆盘的距离。如果在天空中有多个太阳圆盘并需要更改圆盘的排序顺序,则此属性很有用。HDRP 在 Distance 值较大的太阳圆盘之上绘制 Distance 值较小的太阳圆盘。 仅当启用此部分的更多选项时,才显示此属性。 |
Emission
这些设置用于定义光源的发光行为。可以设置光源的颜色、强度和最大范围。如果没有在 Light Inspector 中看到这些属性,请确保显示了更多选项。大部分光源都有共同的 Emission 属性。下面是多个光源类型共有的属性列表,然后是仅适用于单个光源类型的独特属性。
共享属性
属性 | 描述 |
---|---|
Color Temperature | 启用此复选框可以设置该光源的色温模式。色温模式可根据红色到蓝色开尔文温标调整光源的颜色。启用此复选框后,将隐藏 Color 属性并显示 Filter 和 Temperature 属性。如果禁用此复选框,则 Inspector 中仅显示 Color 字段,并以此作为光源颜色,没有色温。 |
- Filter | 允许使用拾色器来选择光源滤光器的颜色。HDRP 使用此属性和 Temperature 属性来计算光源的最终颜色。 |
- Temperature | 允许选择一个温度,HDRP 使用该温度根据红色到蓝色开尔文温标来计算颜色。可以沿着标尺本身移动滑动条,也可以在滑动条标尺下方的字段中指定确切温度值。 此属性在滑动条右侧包括一个图标,表示与当前值集最匹配的光源。此图标也是一个按钮,可以单击该按钮来访问与实际光源匹配的预设值列表。 |
Color | 允许使用拾色器来选择光源的颜色。 |
Intensity | 光强度。强度通过以下单位来表示: • 聚光灯可以使用流明、坎德拉、勒克斯和 EV100。 • 方向光只能使用勒克斯。 • 点光源可以使用流明、坎德拉、勒克斯和 EV100。 • 面光源可以使用流明、尼特和 EV100。 通常,光传播得越远,强度就会变得越弱。唯一的例外是方向光,无论距离多远,强度都是一样的。对于其余的光源类型,值越小,光线就会在距离光源越近的位置开始衰减。值越大,光线就会在距离光源越远的位置开始衰减。 此属性在滑动条右侧包括一个图标,表示与当前值集最匹配的光源。此图标也是一个按钮,可以单击该按钮来访问与实际光源匹配的预设值列表。 |
Range | 此光源的影响范围。定义发射的光线能够到达的距离。此属性适用于除了方向光以外的所有光源类型。 |
Indirect Multiplier | 场景中间接光的强度。如果值为 1,则会模拟真实的光照行为。如果值为 0,则会禁用此光源的间接光照。如果在 Lighting Settings(菜单:Window > Rendering > Lighting Settings)中同时禁用了实时 (Realtime) 和烘焙 (Baked) 全局光照,则 Indirect Multiplier 属性不起作用。 |
Cookie | 光源投影的 RGB 纹理。例如,为光源创建轮廓或图案化光照。纹理形状对于聚光灯和方向光应该是 2D,而对于点光源应该是立方体。请务必以默认纹理类型导入剪影纹理。此属性适用于聚光灯、面光源(仅限矩形面光源)、方向光和点光源。 如果未指定,棱锥光源和盒形光源将使用隐式 4x4 白色剪影。 |
IES Profile | 描述光源轮廓的 IES 文件。如果设置了剪影和 IES 配置文件,则使用它们的线性平均值。(如果在光照烘焙期间同时使用 IES 配置文件和剪影,则仅会使用剪影)。 |
IES cutoff angle (%) | IES 配置文件的截光角(以外角的百分比表示)。在烘焙光照贴图期间,不使用此参数。 |
Affect Diffuse | 启用此复选框可对该光源应用漫射光照。 仅当启用此部分的更多选项时,才显示此属性。仅在实时或混合光源模式下可用。 |
Affect Specular | 启用此复选框可对该光源应用镜面反射光照。 仅当启用此部分的更多选项时,才显示此属性。仅在实时或混合光源模式下可用。 |
Range Attenuation | 启用此复选框可以使该光源在其范围内均匀发光。这会阻止光线在边缘周围淡出。当屏幕上未显示范围限制并且你不希望光的边缘淡出时,此设置很有用。此属性适用于除了方向光以外的所有光源类型。 仅当启用此部分的更多选项时,才显示此属性。仅在实时或混合光源模式下可用于面光源类型。 |
Fade Distance | 光线开始淡出时光源与摄像机之间的距离。以米为度量单位。此属性适用于除了方向光以外的所有光源类型。 仅当启用此部分的更多选项时,才显示此属性。仅在实时或混合光源模式下可用。 |
Intensity Multiplier | 应用于光强度的乘数。不影响强度值,仅在光照计算期间应用。还可以通过时间轴、脚本或动画来修改此属性。通过这些参数,可以将光线淡入淡出,而无需存储其原始强度。 仅当启用此部分的更多选项时,才显示此属性。仅在实时或混合光源模式下可用。 |
Display Emissive Mesh | 启用此复选框可以使 Unity 使用此光源的大小、颜色和强度来自动生成包含发光材质的网格。Unity 会自动将网格和材质添加到光源组件所附加到的游戏对象。此属性适用于矩形光源和灯管。 仅当启用此部分的更多选项时,才显示此属性。(如果同时使用 IES 配置文件和剪影,则仅会显示剪影)。 |
Include For Ray Tracing | 启用该复选框可以在摄像机启用了 Ray Tracing Frame Setting 时激活此光源。这适用于光栅化和光线追踪通道。 仅当启用此部分的更多选项时,才显示此属性。仅在实时或混合光源模式下可用。 |
聚光灯
属性 | 描述 |
---|---|
Reflector | 启用此复选框可模拟聚光灯后面的反射面。聚光灯是其背面被反射面部分遮挡的点光源。模拟这个反射面会增加聚光灯的强度,因为反射面反射的光最初是向后反射的,旨在加强聚光灯方向上的强度。 |
方向光
属性 | 描述 |
---|---|
Size X | 投影的剪影纹理的水平大小(以像素为单位)。 仅当在 Light Inspector 中设置了 Cookie 时,才显示此属性。 |
Size Y | 投影的剪影纹理的垂直大小(以像素为单位)。 仅当在 Light Inspector 中设置了 Cookie 时,才显示此属性。 |
Volumetrics
这些设置用于定义此光源的体积行为。更改这些设置可以改变该光源在大气散射时的行为。除面光源外的所有光源类型都具有相同的 Volumetric 属性。仅在实时或混合光源模式下可用。
共享属性
属性 | 描述 |
---|---|
Enable | 启用此复选框可通过体积雾模拟光散射。如果启用此属性,则可以编辑 Dimmer 和 Shadow Dimmer 属性。 |
Dimmer | 将此光源的体积光照效果变暗。 |
Shadow Dimmer | 将此光源的体积雾效果变弱。如果将此属性设置为 0,可以加快体积散射的计算速度。 |
Shadows
使用此部分可以调整该光源投射的阴影。
Unity 在此部分中显示的额外属性取决于在 General 部分中设置的 Mode 属性。Unity 还会根据在 Unity 项目的 HDRP 资源中设置的 Filtering Quality 属性来确定是否显示额外属性。
• 有关 HDRP 中的阴影过滤的更多信息,请参阅阴影过滤。
• 有关 HDRP 中的可用过滤质量预设列表,请参阅过滤质量表。
属性
Shadow Map
此部分仅在实时或混合光源模式下可用。
属性 | 描述 |
---|---|
Enable | 启用此复选框可以使该光源投射阴影。 |
Update Mode | 使用下拉选单选择 HDRP 用于确定何时更新阴影贴图的模式。 有关可用模式的信息,请参阅 HDRP 中的阴影文档。 |
Resolution | 设置光源的阴影贴图的分辨率。使用下拉选单选择要从哪种质量模式获得分辨率。如果未启用 Use Quality Settings,或选择 Custom,请在输入字段中设置以像素为单位的分辨率。 较高的分辨率会以牺牲 GPU 性能和内存使用量为代价来提高阴影的保真度,因此,如果遇到任何性能问题,请尝试使用较低的值。 |
Near Plane | 游戏对象开始投射阴影时与光源之间的距离,以米为单位。 |
Shadowmask Mode | 定义此光源的阴影遮罩行为。有关每种阴影遮罩模式 (Shadowmask Mode) 的详细信息,请参阅阴影遮罩的相关文档。仅当 General 下的 Mode 设置为 Mixed 时,此属性才可见。 |
Slope-Scale Depth Bias | 使用滑动条设置一个偏差;HDRP 将此偏差加到该光源的阴影贴图中的距离以避免自相交。此偏差与阴影贴图中表示的多边形的斜率成比例。 仅当启用此部分的更多选项时,才显示此属性。 |
Normal Bias | 控制此光源在被照射表面的法线上应用的法线偏差值。 仅当启用此部分的更多选项时,才显示此属性。 |
Custom Spot Angle | 启用此复选框可以使用自定义角度来渲染阴影贴图。 仅当从 Type 下拉选单中选择 Spot 并启用此部分的更多选项时,才显示此属性。 |
Shadow Angle | 使用滑动条设置用于阴影贴图渲染的自定义角度。 仅当启用 Custom Spot Angle 并启用此部分的更多选项时,才显示此属性。 |
Shadow Cone | 使用滑动条设置该面光源用于投射阴影的阴影圆锥的光圈。仅当从 Type 下拉选单中选择 Rectangle 时,才显示此属性。 |
EVSM Exponent | 使用滑动条设置该面光源用于深度变形的指数。EVSM 通过此指数来修改其阴影分布表示。增加此值可减少漏光并更改阴影的外观。仅当从 Type 下拉选单中选择 Rectangle 并启用此部分的更多选项时,才显示此属性。 |
Light Leak Bias | 使用此滑动条可以设置 HDRP 用于防止通过场景几何体漏光的偏差。增大此值可以防止漏光,但会损失一些阴影柔和度。仅当从 Type 下拉选单中选择 Rectangle 并启用此部分的更多选项时,才显示此属性。 |
Variance Bias | 使用滑动条解决 EVSM 中的数值精度问题。仅当从 Type 下拉选单中选择 Rectangle 并启用此部分的更多选项时,才显示此属性。 |
Blur Passes | 使用滑动条设置 HDRP 对此阴影贴图执行的模糊通道数。增大此值可柔化阴影,但会影响性能。仅当从 Type 下拉选单中选择 Rectangle 并启用此部分的更多选项时,才显示此属性。 |
Dimmer | 将此光源投射的阴影变弱,这样阴影就会更快淡出并变得透明。 仅当启用此部分的更多选项时,才显示此属性。 |
Tint | 指定 HDRP 是否应该为该光源投射的阴影进行着色。此选项会影响动态阴影、接触阴影 (Contact Shadows) 和阴影遮罩 (ShadowMask)。不会影响烘焙阴影。可以使用此行为来更改阴影的颜色和透明度。 仅当启用此部分的更多选项时,才显示此属性。 |
Penumbra Tint | 指定色调是否仅应当影响阴影的半影。如果启用此属性,则 HDRP 仅将颜色色调应用于阴影的半影。如果禁用此属性,则 HDRP 会将颜色色调应用于包括半影的整个阴影。要更改 HDRP 对阴影进行着色的颜色,请参阅上面的 Tint 属性。 仅当启用此部分的更多选项时,才显示此属性。 |
Fade Distance | 阴影开始淡出时摄像机与光源之间的距离(以米为单位)。此属性适用于聚光灯和点光源。 仅当启用此部分的更多选项时,才显示此属性。 |
Link Light Layer | 启用此复选框可对阴影和光照使用同一光源层 (Light Layer)。如果启用此功能,则 HDRP 会使用 General 部分中的 Light Layer 下拉选单中的光源层进行阴影处理。如果禁用此功能,则 HDRP 会使用此部分中的 Light Layer 下拉选单进行阴影处理。 仅当启用此部分的更多选项时,才显示此属性。要访问此属性,请在 HDRP 资源中启用 Light Layers。 |
Light Layer | 使用下拉选单设置 HDRP 用于阴影处理的光源层。因此,该光源仅为使用匹配光源层的游戏对象投射阴影。有关使用光源层进行阴影处理的更多信息,请参阅阴影光源层。 仅当启用此部分的更多选项时,才显示此属性。要访问此属性,请禁用 Link Light Layer 复选框。 |
Contact Shadows
此部分仅在实时或混合光源模式下可用。
属性 | 描述 |
---|---|
Enable | 向此光源添加接触阴影 (Contact Shadows)。使用下拉选单选择接触阴影的质量模式。选择 Custom 可显示一个复选框,允许根据需要启用或禁用接触阴影。 |
Baked Shadows
此部分仅在烘焙光源模式下可用。
属性 | 描述 |
---|---|
Enable | 启用此复选框可以使该光源投射阴影。 |
Near Plane | 游戏对象开始投射阴影时与光源之间的距离,以米为单位。 |
High Filtering Quality 属性
在 HDRP 资源中,从 Filtering Quality 下拉选单中选择 High 即可显示以下属性。
属性 | 描述 |
---|---|
Shadow Softness | 定义面光源阴影的行为。较大的柔和度值模拟较大的发光半径,而较小的值则是模拟精准光源。较大的值将增加阴影模糊度,具体取决于接受阴影的像素与阴影投射物之间的距离。 |
Blocker Sample Count | HDRP 在对接受阴影的像素与阴影投射物之间的距离求值时使用的样本数。值越大,准确性就越高。 |
Filter Sample Count | HDRP 模糊阴影时使用的样本数量。值越大,产生的结果就越平滑。 |
Minimum Size of the Filter | 整个阴影的模糊效果的最小大小(无论像素与阴影投射物之间的距离有多远)。值越大,产生的结果就越模糊。 |
实时光源剪影:
HDRP 允许将 RenderTexture 用作光照剪影。但是,出于性能考虑,如果对 RenderTexture 进行任何更改,HDRP 不会自动更新剪影图集。要通知系统 RenderTexture 内容已更改,从而使系统将更改上传到剪影图集,请在 RenderTexture 上调用 IncrementUpdateCount()
。如果不这样做,则系统不会更新剪影。