docs.unity3d.com
    显示 / 隐藏目录

    毛发主节点

    您可以在高清渲染管线 (High Definition Render Pipeline, HDRP) 中使用毛发材质 (Hair Material) 来渲染毛发。为了创建逼真的头发效果,这种情况会使用称为毛发卡片的层。每张毛发卡片代表毛发的不同部分。如果使用半透明毛发卡片,必须手动对这些卡片进行排序,以便这些卡片在每个方向上查看都是从后到前顺序排列。

    像光照着色器 (Lit Shader) 一样,毛发着色器 (Hair Shader) 没有实现 Inspector。因此,需要使用基于节点的着色器编辑器 Shader Graph 来配置毛发材质。

    毛发主节点是 Hair Shader Graph 的目标节点。该节点包含可以附加到其他 Shader Graph 节点的端口,因此您可以编辑控制毛发材质外观的属性。要自定义毛发材质,必须使用自定义的值来覆盖附加到这些字段的输入值。

    创建和编辑毛发材质

    毛发材质使用 Shader Graph 主节点,这意味着你需要使用特定的方法来创建和编辑毛发材质。有关如何执行此操作的更多信息,请参阅创建和编辑 HDRP Shader Graph。从 Shader Graph 创建材质时,在 Blackboard 中显示的属性将显示在 Exposed Properties 部分中。

    属性

    主节点有一些属性,使用主节点的材质也有一些属性。材质属性位于使用此着色器的材质的 Inspector 中,而主节点属性位于 Shader Graph 内本身的以下两个部分中:

    • 主节点输入端口:主节点本身的 Shader Graph 输入端口,您可以将这些端口连接到其他节点的输出端,或者在某些情况下,将您自己的值添加到这些端口。
    • 主节点设置菜单:此部分的设置可用于自定义主节点并显示更多输入端口。

    主节点输入端口

    下表描述了毛发主节点上的输入端口,包括用于每个端口的属性类型和着色器阶段。如需了解着色器阶段的更多信息,请参阅着色器阶段。

    属性 类型 阶段 描述
    Position 矢量 3 顶点 毛发卡片或样条线的顶点位置。
    Diffuse Color 矢量 3 片元 像素的颜色。要分配贴图,请连接采样的 Texture2D。
    Specular Occlusion Float 片元 镜面反射全局光照的强度的乘数。仅当从 Specular Occlusion Mode 下拉选单选择 Custom 时,才会显示此端口。
    Normal 矢量 3 片元 毛发卡片的法线。
    Bent Normal 矢量 3 片元 毛发卡片的弯曲法线。
    Smoothness Float 片元 设置主要镜面高光的外观。照射到光滑表面的每条光线都将以可预测且一致的角度反弹。对于像镜子一样反射光线的完美光滑表面,应将此属性设置为值 1。对于较粗糙的表面,请将此属性设置为较低的值。
    Ambient Occlusion Float 片元 漫射全局光照的强度的乘数。将此值设置为 0 可移除所有全局光照。
    Transmittance 矢量 3 片元 设置从后面穿透毛发的镜面反射光照的比例。这是基于每个颜色的通道,因此您可以使用此属性来设置穿透光的颜色。将此属性设置为 (0, 0, 0) 可以阻止任何光线穿透毛发。将此属性设置为 (1, 1, 1) 可以使大量白光通过毛发透射,从而产生强烈的效果。
    Rim Transmission Intensity Float 片元 设置毛发边缘周围的背光毛发强度。将此属性设置为 0 可以完全消除透射效果。
    Hair Strand Direction 矢量 3 片元 使用毛发卡片进行建模时设置毛发的流动方向(从发根到发尖)。
    Alpha Float 片元 设置毛发的覆盖率/不透明度。将此值设置为 0 可使毛发完全透明。将此值设置为 1 可使毛发完全不透明。
    Alpha Clip Threshold Float 片元 设置 HDRP 用于确定是否应渲染每个像素的 Alpha 值阈值。如果像素的 Alpha 值等于或高于此阈值,则 HDRP 会渲染该像素。如果低于此阈值,则 HDRP 不会渲染该像素。仅当启用 Alpha Clipping 设置时,才会显示此端口。
    Alpha Clip Threshold (Depth Prepass) Float 片元 设置 HDRP 用于确定是否应从深度预通道中丢弃片元的 Alpha 值阈值。
    仅当启用 Alpha Clipping 和 Transparent Depth Postpass 设置时,才会显示此端口。
    Alpha Clip Threshold (Depth Postpass) Float 片元 设置 HDRP 用于确定是否应从深度后通道中丢弃片元的 Alpha 值阈值。
    仅当启用 Alpha Clipping 和 Transparent Depth Postpass 设置时,才会显示此端口。
    Alpha Clip Threshold (Shadow Pass) Float 片元 设置 HDRP 用于确定是否应渲染片元阴影的 Alpha 值阈值。
    仅当启用 Use Shadow Threshold 设置时,才会显示此端口。
    Specular AA Screen Space Variance Float 片元 设置几何镜面反射抗锯齿效果的强度(大小介于 0 和 1 之间)。较大的值会产生锯齿较少、更模糊的结果。
    仅当启用 Geometric Specular AA 设置时,才显示此端口。
    Specular AA Threshold Float 片元 设置 HDRP 为了减少瑕疵而从平滑度值减去的最大值。
    仅当启用 Geometric Specular AA 设置时,才会显示此端口。
    Specular Tint 矢量 3 片元 设置主要镜面高光的颜色。
    Specular Shift Float 片元 修改主要镜面高光的位置。
    Secondary Specular Tint 矢量 3 片元 设置次要镜面高光的颜色。
    Secondary Smoothness Float 片元 控制次要镜面高光的外观。增加此值可使高光更小。
    Secondary Specular Shift Float 片元 修改次要镜面高光的位置。
    Baked GI 矢量 3 片元 用可设置的值替换内置的漫射 GI 解决方案。仅适用于网格的正面。
    仅当启用 Override Baked GI 设置时,才显示此端口。
    Baked Back GI 矢量 3 片元 用可设置的值替换内置的漫射 GI 解决方案。仅适用于网格的背面。
    仅当启用 Override Baked GI 设置时,才显示此端口。
    Depth offset Float 片元 设置着色器用来增加片元深度的增量值。此属性将片元推离摄像机,有助于减轻毛发卡片的平坦外观。
    仅当启用 Depth Offset 设置时,才会显示此端口。

    主节点设置菜单

    要查看这些属性,请单击主节点右上角的齿轮图标。

    属性 描述
    Precision 选择着色器处理的计算精度以计算出如何渲染毛发。较低的精度计算速度更快,但是会引起一些问题,例如镜面高光的强度不正确。
    • Inherit:使用全局精度设置。这是最高精度的设置,因此使用此值不会导致任何精度问题。
    • Float:使用单精度浮点指令。此选项使每次计算的资源消耗减少,从而加快毛发着色器中的计算速度。这种较低的精度级别可能会引起一些问题,特别是对于镜面高光,这种情况下可能具有错误的强度或剧烈的过渡。
    • Half:使用半精度浮点指令。这是速度最快的精度级别,意味着使用该精度级别的计算需要的处理资源最少。这种精度设置最有可能导致问题。对于毛发着色器,Half 精度目前正处于实验阶段。
    Surface Type 使用下拉选单定义材质是否支持透明度。具有 Transparent Surface Type 的材质比具有 Opaque Surface Type 的材质在渲染时更耗资源。根据选择的 Surface Type,HDRP 会显示更多属性。有关该功能的更多信息以及每个 Surface Type 显示的属性列表,请参阅 Surface Type 文档。
    Double-Sided 启用此设置可以使 HDRP 渲染几何体中多边形的两个面。有关该功能的更多信息以及该功能可显示的属性列表,请参阅 Double-Sided 文档。
    Alpha Clipping 启用此复选框可以使该材质像镂空着色器 (Cutout Shader) 一样。启用此功能会显示更多属性。有关该功能的更多信息以及该功能显示的属性列表,请参阅 Alpha Clipping 文档。
    - Use Shadow Threshold 启用此设置可为 Alpha 裁剪阴影设置另一个阈值。
    Receive Decals 启用此复选框可以允许 HDRP 在该材质的表面上绘制贴花。
    Receive SSR (Transparent) 启用此设置可以在处理屏幕空间反射通道时使 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,然后可将此项用于增加片元的深度值并将片元推离摄像机。此设置可用于减轻毛发卡片的平坦外观。
    Use Light Facing Normal 启用此设置可以使毛发法线始终面向光源。这可以模仿毛发的行为。
    Override ShaderGUI 允许覆盖此 Shader Graph 使用的 ShaderGUI。如果为 true,则会显示 ShaderGUI 属性,该属性允许指定要使用的 ShaderGUI。
    - ShaderGUI 要使用的 ShaderGUI 类的全名,包括类路径。

    Material Inspector

    这些属性位于 Inspector 的 Exposed Properties 部分中,与在 Shader Graph 的 Blackboard 中显示的属性一起列出。如果将 Override ShaderGUI 设置为 true,则不会显示 Material Properties 部分,而是显示您指定的 ShaderGUI。

    属性 描述
    Enable GPU Instancing 启用此复选框可以指示 HDRP 在一个批次中使用相同的几何体和材质来渲染网格(如果可能)。这样可以加快渲染速度。如果网格具有不同的材质或者硬件不支持 GPU 实例化,则 HDRP 无法在一个批次中渲染这些网格。例如,如果游戏对象具有基于对象轴心的动画,则不能对它们进行静态批处理,但 GPU 可以实例化它们。
    Emission 控制发射是否影响全局光照。
    - Global Illumination 使用下拉选单选择颜色发射与全局光照的相互影响。
    • Realtime:选择此选项可使发射影响实时全局光照的结果。
    • Baked:选择此选项可使发射仅影响烘焙过程中的全局光照。
    • None:选择此选项可使发射不影响全局光照。
    Motion Vector For Vertex Animation 启用此复选框可以使 HDRP 为使用顶点动画的游戏对象编写运动矢量。这将消除顶点动画可能导致的重影。

    限制

    面光源当前不支持织物和毛发材质。这意味着它们不会照亮使用以下任何项目的材质,也不能投射这些材质的阴影:

    • 棉/绒着色器
    • 丝绸着色器
    • 毛发着色器
    • 织物主栈
    • 毛发主栈
    返回到顶部
    Copyright © 2023 Unity Technologies — 商标和使用条款
    • 法律条款
    • 隐私政策
    • Cookie
    • 不要出售或分享我的个人信息
    • Your Privacy Choices (Cookie Settings)