光照着色器 (Lit Shader)
光照着色器可用于在高清渲染管线 (High Definition Render Pipeline, HDRP) 中轻松创建逼真的材质。此着色器包括诸如次表面散射、彩虹色、顶点或像素位移以及贴花兼容性等效果的选项。有关材质、着色器和纹理的更多信息,请参阅 Unity 用户手册。
创建光照材质 (Lit Material)
要创建新的光照材质,请导航到项目的 Asset 窗口,在窗口中单击鼠标右键,然后选择 Create > Material。这会在 Unity 项目的 Asset 文件夹中添加一个新材质。在 HDRP 中创建新材质时,这些材质默认使用光照着色器。
属性
Surface Options
Surface Options 控制材质表面的整体外观以及 Unity 如何在屏幕上渲染材质。
属性 | 描述 |
---|---|
Surface Type | 指定材质是否支持透明度。具有 Transparent Surface Type 的材质比具有 Opaque Surface Type 的材质在渲染时更耗资源。根据选择的选项,HDRP 会显示更多属性。选项包括: • Opaque: • Transparent:模拟光线可以穿透的半透明材质,例如透明塑料或玻璃。 有关该功能的更多信息以及每个 Surface Type 显示的属性列表,请参阅 Surface Type 文档。 |
- Rendering Pass | 指定 HDRP 处理此材质使用的渲染通道。 • Before Refraction:在折射通道之前绘制游戏对象。这意味着 HDRP 在处理折射时包含此材质。要显示此选项,请从 Surface Type 下拉选单中选择 Transparent。 • Default:根据 Surface Type,在默认的不透明或透明渲染通道中绘制游戏对象。 • Low Resolution:在 Default 通道后以半分辨率绘制游戏对象。 • After post-process:仅适用于无光照材质。在执行所有后期处理效果之后绘制游戏对象。 |
- Blending Mode | 指定 HDRP 将材质每个像素的颜色与背景像素混合的方法。选项包括: • Alpha:使用材质的 Alpha 值来更改对象的透明度。0 表示完全透明。1 表示完全不透明,但在透明渲染过程中仍然会渲染材质。对于你希望完全可见但随着时间的推移也会逐渐消失的视觉效果(例如云),这非常有用。 • Additive:将材质的 RGB 值添加到背景颜色。材质的 Alpha 通道可调节强度。值 0 表示不进行任何添加,值为 1 表示将材质颜色的 100% 添加到背景颜色。 • Premultiply:假设已经将材质的 RGB 值乘以 Alpha 通道。当过滤图像或构建不同的层时,这可以提供比 Alpha 混合更好的结果。 仅当 Surface Type 设置为 Transparent 时,才显示此属性。 |
- - Preserve Specular Lighting |
指示是否使 Alpha 混合不降低镜面高光的强度。这可以保留透明表面上的镜面反射元素,例如阳光照射玻璃或水。 仅当 Surface Type 设置为 Transparent 时,才显示此属性。 |
- Sorting Priority | 允许更改重叠的透明表面的渲染顺序。有关更多信息以及用法示例,请参阅材质排序文档。 仅当 Surface Type 设置为 Transparent 时,才显示此属性。 |
- Receive Fog | 指示雾效是否影响透明表面。禁用后,HDRP 在计算场景中的雾效时不会考虑此材质。 |
- Back Then Front Rendering |
指示 HDRP 是否在两个单独的绘制调用中渲染该材质。HDRP 在第一个绘制调用中渲染背面,而在第二个中渲染正面。 仅当 Surface Type 设置为 Transparent 时,才显示此属性。 |
- Transparent Depth Prepass | 指示 HDRP 是否将透明表面中的多边形添加到深度缓冲区以改进其排序。HDRP 在光照通道之前执行此操作,此过程可提高 GPU 性能。 |
- Transparent Depth Postpass | 指示 HDRP 是否将多边形添加到后期处理使用的深度缓冲区。HDRP 在光照通道之前执行此操作。如果要使用需要深度信息的后期处理效果(如运动模糊或景深),启用此功能非常有用。 |
- Transparent Writes Motion Vectors | 指示 HDRP 是否为使用该材质的透明游戏对象写入运动矢量。这允许 HDRP 处理透明对象的运动模糊等效果。有关运动矢量的更多信息,请参阅运动矢量文档。 仅当 Surface Type 设置为 Transparent 时,才显示此属性。 |
- Depth Write | 指示 HDRP 是否为使用该材质的游戏对象写入深度值。 |
- Depth Test | 指定由 HDRP 用于深度测试的比较函数。 |
- Cull Mode | 指定对于使用此材质的游戏对象需要剔除哪个面。选项包括: • Front:剔除网格的正面。 • Back:剔除网格的背面。 仅当禁用 Double Sided 的情况下,才显示此属性。 |
Alpha Clipping |
指示该材质是否类似于镂空着色器 (Cutout Shader)。 有关该功能的更多信息以及该功能显示的属性列表,请参阅 Alpha Clipping 文档。 |
- Threshold | 由 HDRP 用于确定是否渲染每个像素的 Alpha 值阈值。如果像素的 Alpha 值等于或高于此阈值,则 HDRP 会渲染该像素。如果低于此阈值,则 HDRP 不会渲染该像素。默认值为 0.5。 |
- Use Shadow Threshold |
指示 HDRP 是否对 Alpha 裁剪阴影使用另一个阈值。 仅当启用 Alpha Clipping 时,才显示此属性。 |
- - Shadow Threshold |
HDRP 用于确定是否应渲染像素阴影的 Alpha 值阈值。 仅当启用 Use Shadow Threshold 时,才显示此属性。 |
- Alpha to Mask |
指示是否开启 alpha-to-coverage。如果项目使用 MSAA,alpha-to-coverage 会根据像素着色器结果 Alpha 值按比例修改多重采样覆盖率遮罩。通常用于植被抗锯齿和其他经过 Alpha 测试的着色器。 仅当启用 Alpha Clipping 时,才显示此属性。 |
- Prepass Threshold |
HDRP 用于透明深度预通道的 Alpha 值阈值。此属性的原理与上述主 Threshold 属性相同。 仅当启用 Transparent Depth Prepass 复选框时,才显示此属性。 |
- Postpass Threshold |
HDRP 用于透明深度后通道的 Alpha 值阈值。此属性的原理与上述主 Threshold 属性相同。 仅当启用 Transparent Depth Postpass 复选框时,才显示此属性。 |
Double Sided | 指示 HDRP 是否渲染几何体中多边形的两个面。有关该功能的更多信息以及该功能可显示的属性列表,请参阅 Double-Sided 文档。 |
- Normal Mode | 指定 HDRP 用于计算背面几何体法线的模式。 • Flip:背面法线与正面法线成 180°。这也适用于材质,这意味着材质在几何体的两面看起来相同。 • Mirror:背面法线是正面法线的镜像。这也适用于材质,这意味着材质在背面反转。当想要在几何体的两面保留相同的形状(例如叶子)时,这非常有用。 • None:背面法线与正面相同。 仅当启用 Double-Sided 时,才显示此属性。 |
Material Type | 指定材质的类型。允许根据选择的类型使用不同的设置对材质进行自定义。选项包括: • Subsurface Scattering:将次表面散射 (subsurface scattering) 工作流应用于材质。次表面散射工作流程可以模拟光线与半透明对象(如皮肤或植物叶子)的相互作用和穿透方式。光线穿透次表面散射材质的表面时,会在离开表面之前在不同点散射和模糊。 • Standard:将基本金属性着色器工作流程应用于材质。这是默认的 Material Type 设置。 • Anisotropy:将各向异性 (anisotropic) 工作流程应用于材质。从不同角度观看材质时,各向异性表面的高光会在外观上发生变化。使用此 Material Type 可以创建具有各向异性高光的材质。例如,拉丝金属或天鹅绒材质。 • Iridescence:将彩虹色 (Iridescence) 工作流程应用于材质。随着视角或光照角度的变化,彩虹色表面看起来会逐渐改变颜色。使用此 Material Type 可以创建诸如肥皂泡、闪光金属或昆虫翅膀之类的材质。 • Specular Color:将镜面反射颜色 (Specular Color) 工作流程应用于材质。使用此 Material Type 可以创建具有彩色镜面高光的材质。这类似于内置的镜面反射着色器 (Specular Shader)。 • Translucent:将半透明 (Translucent) 工作流程应用于材质。使用此 Material Type 和厚度贴图可以模拟半透明材质。与次表面散射材质不同,半透明材质不会模糊穿透材质的光线。 有关该功能的更多信息以及每个 Material Type 显示的属性列表,请参阅 Material Type 文档。 |
- Transmission |
指示 HDRP 是否使用厚度贴图模拟材质的半透明度。可以使用扩散配置文件 (Diffusion Profile) 来配置次表面散射和透射设置。如需了解更多信息,请参阅有关次表面散射的文档。 仅当从 Material Type 下拉选单中选择 Subsurface Scattering 时,才显示此属性。 |
Receive Decals | 指示 HDRP 是否可以在该材质的表面上绘制贴花。 |
Receive SSR/SSGI | 指示是否在处理屏幕空间反射通道时使 HDRP 包含该材质。HDRP 在计算屏幕空间全局光照时也会考虑此材质。 仅当 Surface Type 设置为 Opaque 时,才会显示此属性。 |
Receive SSR Transparent | 指示是否在处理屏幕空间反射通道时使 HDRP 包含该材质。 仅当 Surface Type 设置为 Transparent 时,才显示此属性。 |
Geometric Specular AA | 指示 HDRP 是否对此材质执行几何抗锯齿。这会修改曲面几何体表面上的平滑度值,从而消除镜面反射瑕疵。 有关该功能的更多信息以及该功能显示的属性列表,请参阅几何镜面反射抗锯齿 (Geometric Specular Anti-aliasing) 文档。 |
- Screen Space Variance | 几何镜面反射抗锯齿效果的强度(大小介于 0 和 1 之间)。较大的值会产生锯齿较少、更模糊的结果。 仅当启用 Geometric Specular AA 时,才显示此属性。 |
- Threshold | HDRP 为了减少瑕疵而从平滑度值减去的最大偏移值。 仅当启用 Geometric Specular AA 时,才显示此属性。 |
Displacement Mode | 指定 HDRP 用于更改材质表面高度的方法。选项包括: • None:不对材质应用位移。 • Vertex displacement:根据 Height Map 对网格顶点进行移位。 • Pixel displacement:根据 Height Map 对网格表面上的像素进行移位。 有关该功能的更多信息以及每个 Displacement Mode 显示的属性列表,请参阅 Displacement Mode 文档。 |
- Lock With Object Scale | 指示是否使用变换组件的缩放值更改位移高度。这样可以保持位移幅度与变换组件的缩放值之间的比率。 仅当 Displacement Mode 设置为 Vertex Displacement 或 Pixel Displacement 时,才显示此属性。 |
- Lock With Height Map Tiling Rate | 指示是否使用高度贴图 (Height Map) 的平铺值更改位移幅度。这样可以保持位移幅度与高度贴图 (Height Map) 纹理的缩放值之间的比率。 仅当 Displacement Mode 设置为 Vertex Displacement 或 Pixel Displacement 时,才显示此属性。 |
- Minimum Steps | Unity 处理像素位移时所需执行的最小纹理样本数。 仅当 Displacement Mode 设置为 Pixel Displacement 时,才显示此属性。 |
- Maximum Steps | Unity 处理像素位移时所需执行的最大纹理样本数。 仅当 Displacement Mode 设置为 Pixel Displacement 时,才显示此属性。 |
- Fading Mip Level Start | 像素位移效果开始淡出的 Mip 级别。 仅当 Displacement Mode 设置为 Pixel Displacement 时,才显示此属性。 |
- Primitive Length | Unity 应用位移贴图的网格长度(以米为单位)。 仅当 Displacement Mode 设置为 Pixel Displacement 时,才显示此属性。 |
- Primitive Width | Unity 应用位移贴图的网格宽度(以米为单位)。 仅当 Displacement Mode 设置为 Pixel Displacement 时,才显示此属性。 |
- Depth Offset | 指示 HDRP 是否根据位移修改深度缓冲区。因此,使用深度缓冲区的效果(例如,接触阴影 (Contact Shadows))可以捕获像素位移细节。 仅当 Displacement Mode 设置为 Pixel Displacement 时,才显示此属性。 |
Vertex Animation
属性 | 描述 |
---|---|
Motion Vector For Vertex Animation | 启用此复选框可以使 HDRP 为使用顶点动画的游戏对象编写运动矢量。这将消除顶点动画可能导致的重影。 |
Surface Inputs
属性 | 描述 |
---|---|
Base Map | 指定一个纹理,用于控制材质的颜色和不透明度。要为此字段指定纹理,请单击单选按钮,然后在 Select Texture 窗口中选择纹理。使用拾色器来选择材质的颜色。如果不指定纹理,这将是材质的绝对颜色。如果指定了纹理,则材质的最终颜色是您指定的纹理和所选颜色的组合。如果从 Surface Type 下拉选单中选择 Transparent,则颜色的 Alpha 值将控制材质的透明度级别。 |
Metallic | 使用此滑动条调整材质表面的金属性程度(介于 0 和 1 之间)。当表面具有较高的金属性时,它会在更大程度上反射环境,并且反照率颜色将变得不那么明显。在最高金属性级别下,表面颜色完全由来自环境的反射驱动。当表面的金属度较低时,其反照率颜色会更清晰,并且所有表面反射均在表面颜色的基础之上可见,而不是遮挡住表面颜色。 仅当在 Mask Map 中取消分配纹理时,才显示此属性。 |
Smoothness | 使用滑动条调整材质的平滑度。照射到光滑表面的每条光线都将以可预测且一致的角度反弹。对于像镜子一样反射光线的完美光滑表面,应将此属性设置为值 1。较不光滑的表面在较宽的角度范围内反射光线(因为光线会照射到微表面上的凸起),所以反射的细节较少,以更加分散的模式在表面上扩散。 仅当在 Mask Map 中取消分配纹理时,才显示此属性。 |
Metallic Remapping | 使用此最小值/最大值滑动条将 Mask Map 中的金属度值重新映射到指定的范围。Unity 不会将值钳制到新范围,而是将原始范围均匀压缩到新范围。 仅当分配一个 Mask Map 时,才显示此属性。 |
Smoothness Remapping | 使用此最小值/最大值滑动条将 Mask Map 中的平滑度值重新映射到您指定的范围。Unity 不会将值钳制到新范围,而是将原始范围均匀压缩到新范围。 仅当分配一个 Mask Map 时,才显示此属性。 |
Ambient Occlusion Remapping | 使用此最小值/最大值滑动条将 Mask Map 中的环境光遮挡值重新映射到您指定的范围。Unity 不会将值钳制到新范围,而是将原始范围均匀压缩到新范围。 仅当分配一个 Mask Map 时,才显示此属性。 |
Mask Map | 指定一个通道打包的纹理并确保其 RGBA 通道中包含以下材质贴图。 • Red:存储金属性贴图。 • Green:存储环境光遮挡贴图。 • Blue:存储细节遮罩贴图。 • Alpha:存储平滑度贴图。 有关通道打包的纹理和遮罩贴图的更多信息,请参阅遮罩贴图。 |
Normal Map Space | 使用此下拉选单选择该材质使用的法线贴图空间类型。 • TangentSpace:定义切线空间中的法线贴图。使用此类型可以在网格上平铺纹理。法线贴图纹理必须是 BC7、BC5 或 DXT5nm 格式。 • ObjectSpace:定义对象空间中的法线贴图。此类型用于平面贴图的游戏对象,如地形。法线贴图必须是 RGB 纹理。 |
Normal Map | 指定一个纹理来定义此材质的切线空间法线贴图。使用滑动条在 0 到 8 之间调节法线强度。 仅当从 Normal Map Space 下拉选单中选择 TangentSpace 时,才显示此属性。 |
Normal Map OS | 指定一个纹理来定义此材质的对象空间法线贴图。使用控制柄在 0 到 8 之间调节法线强度。 仅当从 Normal Map Space 下拉选单中选择 ObjectSpace 时,才显示此属性。 |
Bent Normal Map | 指定一个纹理来定义此材质在切线空间中的弯曲法线贴图。HDRP 使用弯曲法线贴图来模拟更精确的环境光遮挡。注意:弯曲法线贴图仅适用于漫射光照。 仅当从 Normal Map Space 下拉选单中选择 TangentSpace 时,才显示此属性。 |
Bent Normal Map OS | 指定一个纹理来定义此材质在对象空间中的弯曲法线贴图。HDRP 使用弯曲法线贴图来模拟更精确的环境光遮挡。注意:弯曲法线贴图仅适用于漫射光照。 仅当从 Normal Map Space 下拉选单中选择 ObjectSpace 时,才显示此属性。 |
Coat Mask | 指定一个纹理来定义此材质的涂层遮罩。HDRP 使用此遮罩来模拟材质上的透明涂层效果,从而模仿汽车油漆或塑料等材质。默认情况下,Coat Mask 值为 0,但可以使用控制柄以 0 到 1 之间的值调节透明图层遮罩 (Coat Mask) 效果。 |
Base UV Mapping | 使用下拉选单选择 HDRP 用于将纹理贴图到此材质表面的 UV 贴图类型。 • Unity 为一个顶点管理四个 UV 通道:UV0、UV1、UV2 和 UV3。 • Planar:从上到下的平面投影。 • Triplanar:三个方向的平面投影: X 轴:从左到右 Y 轴:从上到下 Z 轴:从前到后 Unity 将这三个投影混合在一起产生最终结果。 |
Tiling | 为 Surface Inputs 部分中的所有纹理设置 X 和 Y UV 平铺率。HDRP 使用这些 X 和 Y 值在材质表面上平铺这些纹理(在对象空间中)。 |
Offset | 为 Surface Inputs 部分中的所有纹理设置 X 和 Y UV 偏移。HDRP 使用这些 X 和 Y 值在材质表面上偏移这些纹理(在对象空间中)。 |
Detail Inputs
属性 | 描述 |
---|---|
Detail Map | 指定一个通道打包的纹理,由 HDRP 用于将微观细节添加到材质中。Detail Map 使用以下通道设置: • Red:存储灰度作为反照率。 • Green:存储细节法线贴图的绿色通道。 • Blue:存储细节平滑度。 • Alpha:存储细节法线贴图的红色通道。 有关通道打包的纹理和细节贴图的更多信息,请参阅细节贴图。 |
Detail UV Mapping | 指定要用于 Detail Map 的 UV 贴图类型。如果材质的 Base UV mapping 属性设置为 Planar 或 Triplanar,则 Detail UV Mapping 也会设置为 Planar 或 Triplanar。 Detail Map 纹理会修改材质的外观,因此默认情况下,HDRP 将 Base UV Map 的 Tiling 和 Offset 应用于 Detail Map 以同步 Detail Map 和其余材质纹理。然后,HDRP 将 Detail Map Tiling 和 Offset 属性应用于 Base Map Tiling 和 Offset 之上。例如,在平面上,如果 Base UV Mapping 的 Tiling 为 2,且此值也设置为 2,则 Detail Map 纹理在平面上的平铺率为 4。 此工作流程允许更改材质上的纹理 Tiling,而无需同时设置 Detail UV 的 Tiling。 要将 Detail UV Map 与 Base UV Map 分开单独设置,请禁用 Lock to Base Tiling/Offset 复选框。 |
- Lock to Base Tiling/Offset | 指示 Base UV Map 的 Tiling 和 Offset 属性是否影响 Detail Map。启用后,HDRP 分别将这些属性乘以 Detail UV Map 的 Tiling 和 Offset 属性。要将 Detail UV Map 与 Base UV Map 分开单独设置,请禁用此复选框。 |
Tiling | Detail Map UV 每个轴的平铺率。HDRP 使用这些 X 和 Y 值在材质表面上平铺指定给 Detail Map 的纹理(在对象空间中)。 |
Offset | Detail Map UV 每个轴的偏移。HDRP 使用这些 X 和 Y 值在材质表面上偏移指定给 Detail Map 的纹理(在对象空间中)。 |
Detail Albedo Scale | 在 0 到 2 之间调节细节贴图的反照率(红色通道)。这是一种叠加效果。默认值为 1 且不应用缩放。 |
Detail Normal Scale | 在 0 到 2 之间调节细节法线贴图的强度(绿色通道和 Alpha 通道)。默认值为 1 且不应用缩放。 |
Detail Smoothness Scale | 在 0 到 2 之间调节细节平滑度贴图的强度(蓝色通道)。这是一种叠加效果。默认值为 1 且不应用缩放。 |
Transparency Inputs
如果从 Surface Type 下拉选单中选择 Transparent,Unity 将显示此部分。有关此部分的属性的更多信息,请参阅 Surface Type 文档。
请注意,启用 Refraction 时,请确保将 Blend Mode 设置为 Alpha,否则将无法正常使用效果。如果启用 Refraction 并使用 Alpha 以外的 Blend Mode,则材质 Inspector 中会显示一条警告。
另外,请注意,HDRP 在 Pre-Refraction 渲染通道中不支持 Refraction。如果启用 Refraction 并使用 Pre-Refraction 渲染通道,则材质和 Shader Graph Inspector 中会显示一条警告。
Emission inputs
属性 | 描述 |
---|---|
Use Emission Intensity | 启用此复选框可以使用单独的 LDR 颜色和强度值来设置此材质的发射颜色。禁用此复选框则仅使用 HDR 颜色来处理颜色和发射颜色强度。启用此复选框后,将显示 Emission Intensity 属性。 |
Emission Map | 指定此材质用于发射的纹理。还可以使用拾色器选择 HDRP 乘以纹理的颜色。如果未设置发射纹理,则 HDRP 仅使用 HDR 颜色计算材质的最终发射颜色。可以在 HDR 拾色器中设置 HDR 颜色的强度。 |
Emission UV Mapping | 使用下拉选单选择 HDRP 用于 Emission Map 的 UV 贴图类型。 • Unity 为一个顶点管理四个 UV 通道:UV0、UV1、UV2 和 UV3。 • Planar:从上到下的平面投影。 • Triplanar:三个方向的平面投影: X 轴:从左到右 Y 轴:从上到下 Z 轴:从前到后 Unity 将这三个投影混合在一起产生最终结果。 • Same as Base:Unity 将使用在 Surface Inputs 中选择的 Base UV Mapping。如果表面启用了 Pixel displacement,此选项也会在发光贴图上应用位移。 |
- Tiling | 设置 Emission Map UV 的 X 和 Y 平铺率。HDRP 使用这些 X 和 Y 值在材质表面上平铺指定给 Emission Map 的纹理(在对象空间中)。 |
- Offset | 设置 Emission Map UV 的 X 和 Y 偏移。HDRP 使用这些 X 和 Y 值在材质表面上偏移指定给 Emission Map 的纹理(在对象空间中)。 |
Emission Intensity | 设置此材质的发射效果的整体强度。 使用下拉选单选择以下物理光单位之一表示强度: • 尼特 • EV100 |
Exposure Weight | 使用滑动条设置曝光对发射强度的影响程度。例如,如果创建霓虹灯管,则需要在每次曝光时应用发光效果。 |
Emission Multiply with Base | 启用此复选框可以使 HDRP 在计算发射的最终颜色时使用材质的基色。启用后,HDRP 将发光颜色乘以基色以计算最终发射颜色。 |
Emission | 控制发射是否影响全局光照。 |
- Global Illumination | HDRP 使用此模式确定颜色发射与全局光照的相互影响。 • Realtime:选择此选项可使发射影响实时全局光照的结果。 • Baked:选择此选项可使发射仅影响烘焙过程中的全局光照。 • None:选择此选项可使发射不影响全局光照。 |
Advanced options
属性 | 描述 |
---|---|
Enable GPU instancing | 启用此复选框可以指示 HDRP 在一个批次中使用相同的几何体和材质来渲染网格(如果可能)。这样可以加快渲染速度。如果网格具有不同的材质或者硬件不支持 GPU 实例化,则 HDRP 无法在一个批次中渲染这些网格。例如,如果游戏对象具有基于对象轴心的动画,则不能对它们进行静态批处理,但 GPU 可以实例化它们。 |
Specular Occlusion Mode | 使用下拉选单选择 HDRP 用于计算镜面反射遮挡的模式。 • Off:禁用镜面反射遮挡。 • From Ambient Occlusion:根据环境光遮挡贴图和摄像机的视图矢量来计算镜面反射遮挡。 • From Bent Normal:根据弯曲法线贴图来计算镜面反射遮挡。 |
Add Precomputed Velocity | 启用此复选框可以使用存储在 Alembic 文件中的预先计算的速度信息。 |