光照主节点
您可以在高清渲染管线 (High Definition Render Pipeline, HDRP) 中使用光照主节点 (Lit master node) 来渲染自定义的基于物理的材质。该节点支持各种效果,例如此表面散射、各向异性、彩虹色、镜面反射颜色和半透明。
光照主节点是 Lit Shader Graph 的目标节点。该节点包含可以附加到其他 Shader Graph 节点的端口,因此您可以编辑控制材质外观的属性。要自定义材质,必须使用自定义的值来覆盖附加到这些字段的输入值。
创建和编辑光照材质
要创建和编辑使用此主节点的材质,请参阅创建和编辑 HDRP Shader Graph。从 Shader Graph 创建材质时,在 Blackboard 中显示的属性将显示在 Exposed Properties 部分中。
属性
主节点有一些属性,使用主节点的材质也有一些属性。材质属性位于使用此着色器的材质的 Inspector 中,而主节点属性位于 Shader Graph 内本身的以下两个部分中:
- 主节点输入端口:主节点本身上的 Shader Graph 输入端口。您可以将这些端口连接到其他节点的输出端,或者在某些情况下,输入您自己的值。
- 主节点设置菜单:此部分的设置可用于自定义主节点并显示更多输入端口。
主节点输入端口
下表描述了光照主节点上的输入端口,包括用于每个端口的属性类型和着色器阶段。如需了解着色器阶段的更多信息,请参阅着色器阶段。
属性 | 类型 | 阶段 | 描述 |
---|---|---|---|
Vertex Position | 矢量 3 | 顶点 | 每个顶点的材质的对象空间位置。 |
Vertex Normal | 矢量 3 | 顶点 | 每个顶点的材质的对象空间法线。 |
Vertex Tangent | 矢量 3 | 顶点 | 每个顶点的材质的对象空间切线。 |
Base Color | 矢量 3 | 片元 | 材质的颜色。要分配图像,请将采样的 Texture2D 连接到该主节点。 |
Normal | 矢量 3 | 片元 | 像素的法线。要修改坐标空间,请使用 Fragment Normal Space 设置。 |
Bent Normal | 矢量 3 | 片元 | 片元的弯曲法线。 |
Subsurface Mask | 矢量 1 | 片元 | 屏幕空间模糊效果在材质上的强度。 仅当 Material Type 设置为 Subsurface Scattering 时,才会显示此端口。 |
Tangent | 矢量 3 | 指定一个纹理来定义切线空间中像素的各向异性效果方向。这会在给定方向拉伸镜面高光。 仅当 Material Type 设置为 Anisotropy 时,才会显示此端口。 |
|
Anisotropy | 矢量 1 | 片元 | 这会在给定方向拉伸镜面高光。负值使效果为垂直方向,正值使效果为水平方向。 仅当 Material Type 设置为 Anisotropy 时,才会显示此端口。 |
Thickness | 矢量 1 | 片元 | 透射效果的强度。值越大意味着区域越厚,而区域越厚传输的光量越少。期望范围 0 - 1。 仅当 Material Type 设置为 Subsurface Scattering 或 Translucent 时,才会显示此端口。 |
Diffusion Profile | 扩散配置文件 | 片元 | 指定材质用于次表面散射和/或透射的扩散配置文件 (Diffusion Profile)。 仅当 Material Type 设置为 Subsurface Scattering 或 Translucent 时,才会显示此端口。 |
Iridescence Mask | 矢量 1 | 片元 | 彩虹色效果的强度。 仅当 Material Type 设置为 Iridescence 时,才会显示此端口。 |
Iridescence Layer Thickness | 矢量 1 | 片元 | 彩虹色的厚度。这会修改效果的颜色。 仅当 Material Type 设置为 Iridescence 时,才会显示此端口。 |
Specular Color | 矢量 3 | 片元 | 镜面高光的颜色。 仅当 Material Type 设置为 Specular Color 时,才会显示此端口。 |
Coat Mask | 矢量 1 | 片元 | 此遮罩可以模拟材质上的透明涂层效果,从而模仿汽车油漆或塑料等材质。 |
Metallic | 矢量 1 | 片元 | 材质的金属性值,1 表示金属,0 表示非金属。 |
Smoothness | 矢量 1 | 片元 | 照射到光滑表面的每条光线都将以可预测且一致的角度反弹。对于像镜子一样反射光线的完美光滑表面,应将此属性设置为值 1。较不光滑的表面在较宽的角度范围内反射光线(因为光线会照射到微表面上的凸起),所以反射的细节较少,以更加分散的模式在表面上扩散。 |
Ambient Occlusion | 矢量 1 | 片元 | 漫射全局光照的强度的乘数。将此值设置为 0 可移除所有全局光照。 |
Specular Occlusion | 矢量 1 | 片元 | 镜面反射全局光照的强度的乘数。 仅当 Specular Occlusion Mode 设置为 Custom 时,才会显示此端口。 |
Emission | 矢量 3 | 片元 | 发光颜色及其强度。 |
Alpha | 矢量 1 | 片元 | 定义材质的 Alpha 值。用于透明度和/或 Alpha 裁剪。期望范围 0 - 1。 |
Alpha Clip Threshold | 矢量 1 | 片元 | 设置 HDRP 用于确定是否应渲染每个像素的 Alpha 值阈值。如果像素的 Alpha 值等于或高于此阈值,则 HDRP 会渲染该像素。 仅当启用 Alpha Clipping 设置时,才会显示此端口。 |
Alpha Clip Threshold Depth Prepass | 矢量 1 | 片元 | 设置 HDRP 用于透明深度预通道的 Alpha 值阈值。 仅当表面类型设置为 Transparent 并启用 Transparent Depth Prepass 设置时,才会显示此端口。 |
Alpha Clip Threshold Depth Postpass | 矢量 1 | 片元 | 设置 HDRP 用于透明深度后通道的 Alpha 值阈值。 仅当启用 Transparent Depth Postpass 设置时,才会显示此端口。 |
Alpha Clip Threshold Shadow | 矢量 1 | 片元 | 设置 Alpha 裁剪阴影的单独阈值。 仅当表面类型设置为 Transparent 并启用 Alpha Clipping 和 Use Shadow Threshold 设置时,才会显示此端口。 |
Specular AA Screen Space Variance | 矢量 1 | 片元 | 几何镜面反射抗锯齿效果的强度(大小介于 0 和 1 之间)。较大的值会产生锯齿较少、更模糊的结果。 仅当启用 Geometric Specular AA 设置时,才会显示此端口。 |
Specular AA Threshold | 矢量 1 | 片元 | HDRP 为了减少瑕疵而从平滑度值减去的最大值。 仅当启用 Geometric Specular AA 设置时,才会显示此端口。 |
RefractionIndex | 折射率定义了真空中光速与材质介质中光速之间的比率。值越高产生的折射越强烈。 仅当 Refraction Model 设置为非 None 的值时,才会显示此端口。 |
||
Transmittance Color | 折射材质可以使穿过它们的光着色。使用此输入来定义该颜色。 仅当 Refraction Model 设置为非 None 的值时,才会显示此端口。 |
||
Transmittance Absorption Distance | 设置 Transmittance Color 以最高强度影响入射光的对象厚度。 仅当 Refraction Model 设置为非 None 的值时,才会显示此端口。 |
||
Distortion Vector | 矢量 2 | 片元 | 设置光穿过材质的失真矢量。仅当 Surface Type 设置为 Transparent 并启用 Distortion 设置时,才会显示此端口。 |
Distortion Blur | 矢量 1 | 片元 | 设置失真的模糊强度。 仅当 Surface Type 设置为 Transparent 并启用 Distortion 设置时,才会显示此端口。 |
Baked GI | 矢量 3 | 片元 | 用可设置的值替换内置的漫射全局光照 (GI) 解决方案。仅适用于网格的正面。 仅当启用 Override Baked GI 设置时,才会显示此端口。 |
Baked Back GI | 矢量 3 | 片元 | 用可设置的值替换内置的漫射全局光照 (GI) 解决方案。仅适用于网格的背面。 仅当启用 Override Baked GI 设置时,才会显示此端口。 |
Depth Offset | 矢量 1 | 片元 | 着色器用来增加片元深度的增量值。 仅当启用 Depth Offset 设置时,才会显示此端口。 |
主节点设置菜单
要查看这些属性,请单击主节点右上角的齿轮图标。
属性 | 描述 |
---|---|
Precision | 选择着色器处理的计算精度。较低的精度计算速度更快,但是会引起一些问题,例如镜面高光的强度不正确。 • Inherit:使用全局精度设置。这是最高精度的设置,因此使用此值不会导致任何精度问题,但是着色器计算速度比其他值要慢。 • Float:使用单精度浮点指令。此选项使每次计算的资源消耗减少,从而加快计算速度。 • Half:使用半精度浮点指令。这是速度最快的精度级别,意味着使用该精度级别的计算需要的处理资源最少。此精度设置最有可能导致问题,例如量化(条带)瑕疵和强度削波。 |
Surface Type | 使用下拉选单定义材质是否支持透明度。具有 Transparent Surface Type 的材质比具有 Opaque Surface Type 的材质在渲染时更耗资源。根据选择的 Surface Type,HDRP 会显示更多属性。有关该功能的更多信息以及每个 Surface Type 显示的属性列表,请参阅 Surface Type 文档。 |
Rendering Pass | 使用下拉选单设置 HDRP 处理此材质使用的渲染通道。 • Before Refraction:在折射通道之前绘制游戏对象。这意味着 HDRP 在处理折射时包含此材质。要显示此选项,请从 Surface Type 下拉选单中选择 Transparent。 • Default:根据 Surface Type,在默认的不透明或透明渲染通道中绘制游戏对象。 • Low Resolution:在 Default 通道后以半分辨率绘制游戏对象。 仅当 Surface Type 设置为 Transparent 时,才会显示此设置。 |
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 在计算场景中的雾效时不会考虑此材质。 仅当 Surface Type 设置为 Transparent 时,才会显示此设置。 |
Back Then Front Rendering | 启用此复选框可以使 HDRP 在两个单独的绘制调用中渲染该材质。HDRP 在第一个绘制调用中渲染背面,而在第二个中渲染正面。 仅当 Surface Type 设置为 Transparent 时,才会显示此设置。 |
Transparent Depth Prepass | 启用此复选框可以将透明表面中的多边形添加到深度缓冲区以改进其排序。HDRP 在光照通道之前执行此操作,此过程可提高 GPU 性能。 仅当 Surface Type 设置为 Transparent 时,才会显示此设置。 |
Transparent Depth Postpass | 启用此复选框可以将多边形添加到后期处理使用的深度缓冲区。HDRP 在光照通道之前执行此操作。如果要使用需要深度信息的后期处理效果(如运动模糊或景深),启用此功能非常有用。 仅当 Surface Type 设置为 Transparent 时,才会显示此设置。 |
Transparent Writes Motion Vector | 启用此复选框可以使 HDRP 为使用该材质的透明游戏对象写入运动矢量。这允许 HDRP 处理透明对象的运动模糊等效果。有关运动矢量的更多信息,请参阅运动矢量文档。 仅当 Surface Type 设置为 Transparent 时,才会显示此设置。 |
Refraction Model | 使用下拉选单选择 HDRP 用于处理折射的模型。 • None:不发生折射。选择此选项将禁用折射。 • Box:这是一种盒体形状模型,入射光通过平面进入并通过平面离开。为空心表面选择此选项。 • Sphere:这是一种球体形状模型,可产生放大镜般的折射效果。为实体表面选择此选项。 • Thin:薄形盒体表面类型,相当于固定厚度为 5cm 的盒体。请为类似窗户的薄形表面选择此选项。 仅当 Surface Type 设置为 Transparent 时,才会显示此设置。 |
Distortion | 启用此复选框可以扭曲穿过该透明材质的光。 仅当 Surface Type 设置为 Transparent 时,才会显示此设置。 |
- Distortion Blend Mode | 设置 HDRP 对重叠的失真表面进行混合的模式。 仅当 Surface Type 设置为 Transparent 并启用 Distortion 设置时,才会显示此设置。 |
- Distortion Depth Test | 选中此复选框可使靠近摄像机的游戏对象隐藏失真效果,否则始终可以看到该效果。如果未启用此功能,则失真效果将显示在渲染的上层。 仅当 Surface Type 设置为 Transparent 并启用 Distortion 设置时,才会显示此设置。 |
Depth Write | 启用此复选框可以使 HDRP 为使用该材质的透明游戏对象写入深度值。 仅当 Surface Type 设置为 Transparent 时,才会显示此设置。 |
Cull Mode | 使用下拉选单选择对于使用该材质的透明游戏对象需要剔除哪个面。要显示此选项,请从 Surface Type 下拉选单中选择 Transparent。 • Front:剔除几何体的正面。 • Back:剔除几何体的背面。 仅当 Surface Type 设置为 Transparent 时,才会显示此设置。 |
Depth Test | 渲染对象时,Unity 使用 DepthTest 来检查该对象是否位于另一个对象后面。Unity 为了做到这一点,会测试给定对象像素的 z 值并与深度缓冲区中存储的值进行比较。默认情况下,DepthTest 设置为 Less Equal,允许原始对象出现在测试参考对象的前面。使用下拉选单可选择用于深度测试的比较函数。每个比较函数会更改着色器的渲染方式。要显示此选项,请从 Surface Type 下拉选单中选择 Transparent。 • Disabled:不执行深度测试。 • Never:深度测试始终不通过。 • Less:如果像素的 z 值小于存储的值,则深度测试通过。 • Equal:如果像素的 z 值等于存储的值,则深度测试通过。 • Less Equal:如果像素的 z 值小于或等于 Z 缓冲区值,则深度测试通过。这会将测试的像素渲染到另一个像素的前面。 • Greater:如果像素的 z 值大于存储的值,则深度测试通过。 • Not Equal:如果像素的 z 值不等于存储的值,则深度测试通过。 • Greater Equal:如果像素的 z 值大于或等于存储的值,则深度测试通过。 • Always:深度测试始终通过,不会与存储的值进行比较。 仅当 Surface Type 设置为 Transparent 时,才会显示此设置。 |
Double Sided | 启用此设置可以使 HDRP 渲染几何体中多边形的两个面。有关该功能的更多信息以及该功能可显示的属性列表,请参阅 Double-Sided 文档。 |
Fragment Normal Space | 使用此下拉选单选择该材质使用的法线贴图空间类型。 • TangentSpace:定义切线空间中的法线。使用此类型可以在网格上平铺纹理。法线贴图纹理必须是 BC7、BC5 或 DXT5nm 格式。 • ObjectSpace:定义对象空间中的法线。此类型用于平面贴图的游戏对象,如地形。法线贴图必须是 RGB 纹理。 • WorldSpace:定义世界空间中的法线贴图。 |
Alpha Clipping | 启用此设置可以使该材质像镂空着色器 (Cutout Shader) 一样。然后,HDRP 会丢弃 Alpha 值低于 Threshold 值的像素。 |
Use Shadow Threshold | 启用此设置可为 Alpha 裁剪阴影设置另一个阈值。 |
Material Type | Material Type 属性用于指定材质类型,允许根据选择的 Material Type 使用不同的设置对材质进行自定义。有关可用材质类型的更多信息,请参阅 Material Type。 |
Transmission | 启用此复选框可以使 HDRP 使用厚度贴图模拟对象的半透明度。可以使用扩散配置文件 (Diffusion Profile) 资源来配置次表面散射和透射设置。如需了解更多信息,请参阅有关次表面散射的文档。 仅当 Material Type 设置为 Subsurface Scattering 时,才会显示此设置。 |
Energy Conserving Specular | 如果镜面反射效果较强,启用此复选框可使 HDRP 减少材质的漫射颜色。这使得材质的光照更加一致,从而使材质看起来更加精确。 仅当 Material Type 设置为 Specular Color 时,才会显示此端口。 |
Receive Decals | 启用此设置可以允许 HDRP 在该材质的表面上绘制贴花。 |
Receive SSR | 启用此设置可以在处理屏幕空间反射通道时使 HDRP 包含该材质。 |
Add Precomputed Velocity | 启用此设置可以使用存储在 Alembic 文件中的预先计算的速度信息。 |
Geometric Specular AA | 启用此设置可以使 HDRP 对该材质执行几何抗锯齿。这会修改曲面几何体表面上的平滑度值,从而消除镜面反射瑕疵。有关该功能的更多信息以及该功能显示的属性列表,请参阅几何镜面反射抗锯齿 (Geometric Specular Anti-aliasing) 文档。 |
Specular Occlusion Mode | 设置 HDRP 用于计算镜面反射遮挡的模式。 • Off:禁用镜面反射遮挡。 • From AO:根据环境光遮挡贴图和摄像机的视图矢量来计算镜面反射遮挡。 • From AO and Bent Normal:根据环境光遮挡贴图、弯曲法线贴图和摄像机的视图矢量来计算镜面反射遮挡。 • Custom:允许您指定自己的镜面反射遮挡值。 |
Override Baked GI | 启用此设置可以显示两个烘焙 GI 输入端口。这使得该材质会忽略场景中的全局光照,而允许您提供自己的全局光照值并自定义该材质的外观。 |
Depth Offset | 启用此设置可以显示 DepthOffset InputPort,然后可将此项用于增加片元的深度值并将片元推离摄像机。 |
DOTS instancing | 启用 GPU 实例化以便与 Hybrid Renderer 一起使用。 |
Support LOD CrossFade | 指示在对纹理进行采样的过程中从一个 LOD 级别移到另一个 LOD 级别时 HDRP 是否处理抖动。 |
Material Inspector
这些属性位于 Inspector 的 Exposed Properties 部分中,与在 Shader Graph 的 Blackboard 中显示的属性一起列出。如果将 Override ShaderGUI 设置为 true
,则不会显示 Material Properties 部分,而是显示您指定的 ShaderGUI。
属性 | 描述 |
---|---|
Enable GPU Instancing | 启用此设置可以指示 HDRP 在一个批次中使用相同的几何体和材质来渲染网格(如果可能)。这样可以加快渲染速度。如果网格具有不同的材质或者硬件不支持 GPU 实例化,则 HDRP 无法在一个批次中渲染这些网格。例如,如果游戏对象具有基于对象轴心的动画,则不能对它们进行静态批处理,但 GPU 可以实例化它们。 |
Emission | 定义材质的发光颜色值。期望正值。 |
Motion Vector For Vertex Animation | 指示 HDRP 是否应估算动画的运动矢量。 |