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

    织物主节点

    您可以在高清渲染管线 (High Definition Render Pipeline, HDRP) 中使用织物材质 (Fabric Material) 来渲染各种类型的织物。织物材质使用棉绒或各向异性丝绸作为基础,并支持各种其他效果,例如次表面散射 (Subsurface Scattering),使您能够创建逼真的织物。

    创建和编辑织物材质

    织物材质使用 Shader Graph 主节点,这意味着无法在 Inspector 中编辑该节点的任何属性。织物材质使用 Shader Graph 主节点,因此您需要使用特定的过程来创建和编辑使用该节点的材质。有关如何执行此操作的更多信息,请参阅使用 Shader Graph 自定义 HDRP 材质。

    将该节点应用于材质时,Surface Options 和 Exposed Properties 在材质的 Inspector 中变为可编辑状态。

    属性

    主节点有一些属性,每种材质也有一些属性。主节点属性位于 Shader Graph 本身内部,分为两部分:

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

      材质属性位于使用此着色器的材质的 Inspector 窗口中。

    织物主节点输入端口

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

    属性 类型 阶段 描述
    Vertex Position 矢量 3 顶点 每个顶点的材质的对象空间位置。
    Vertex Normal 矢量 3 顶点 材质的对象空间法线。
    Vertex Tangent 矢量 3 顶点 材质的对象空间切线。
    BaseColor 矢量 3 片元 材质的颜色。要分配图像,请将采样的 Texture2D 连接到该主节点。
    SpecularOcclusion 矢量 1 片元 镜面反射全局光照的强度的乘数。仅当 Specular Occlusion Mode 设置为 Custom 时,才会显示此端口。
    Normal 矢量 3 片元 切线空间中的点的法线。要处理此属性,应该使用多个贴图。一个是基础贴图,还有一个是用于添加更多细节的织物线程贴图。
    BentNormal 矢量 3 片元 点的弯曲法线。
    Smoothness 矢量 1 片元 主要镜面高光的外观。照射到光滑表面的每条光线都将以可预测且一致的角度反弹。对于像镜子一样反射光线的完美光滑表面,应将此属性设置为值 1。对于较粗糙的表面,请将此属性设置为较低的值。
    AmbientOcclusion 矢量 1 片元 漫射全局光照的强度的乘数。将此值设置为 0 可移除所有全局光照。
    SpecularColor 矢量 3 片元 镜面高光的颜色。要分配图像,请将采样的 Texture2D 连接到该主节点。
    Diffusion Profile 扩散配置文件 片元 指定材质用于次表面散射和/或透射的扩散配置文件 (Diffusion Profile)。仅当启用 Subsurface Scattering 或 Transmission 时,才会显示此端口。
    SubsurfaceMask 矢量 1 片元 指示次表面散射是否应影响着色点。仅当启用 Subsurface Scattering 设置时,才会显示此端口。
    Thickness 矢量 1 片元 HDRP 用于估算透射的表面厚度。仅当启用 Transmission 设置时,才会显示此端口。
    Tangent 矢量 3 片元 切线空间中的点的切线。当表面具有非 null 的各向异性值时,这很有用。仅当 Material Type 设置为 Silk 时,才会显示此端口。
    Anisotropy 矢量 1 片元 镜面反射术语中有关点局部基础的不对称程度。仅当 Material Type 设置为 Silk 时,才会显示此端口。
    Emission 矢量 3 片元 材质的发光颜色值。分配的 RGB 值应在 0-255 之间。强度值应在 -10 和 10 的范围内。
    Alpha 矢量 1 片元 材质的 Alpha 值。材质将此值用于透明度和/或 Alpha 裁剪。HDRP 期望此值的范围是 0 到 1。仅当 Material Type 设置为 Silk 时,才会显示此端口。
    AlphaClipThreshold 矢量 1 片元 HDRP 用于确定是否应渲染材质每个像素的 Alpha 值阈值。如果像素的 Alpha 值等于或高于此阈值,则 HDRP 会渲染该像素。如果低于此阈值,则 HDRP 不会渲染该像素。仅当启用 Alpha Clipping 设置时,才会显示此端口。
    BakedGI 矢量 3 片元 用可设置的值替换内置的漫射全局光照 (GI) 解决方案。仅适用于网格的正面。仅当启用 Override Baked GI 设置时,才会显示此端口。
    BakedBackGI 矢量 3 片元 用可设置的值替换内置的漫射 GI 解决方案。仅适用于网格的背面。仅当启用 Override Baked GI 设置时,才会显示此端口。
    DepthOffset 矢量 1 片元 着色器用来增加片元深度的增量值。仅当启用 Depth Offset 设置时,才会显示此端口。

    织物主节点设置菜单

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

    属性 描述
    Precision 选择着色器处理的计算精度。较低的精度计算速度更快,但是会引起一些问题,例如镜面高光的强度不正确。
    • Inherit:使用全局精度设置。这是最高精度的设置,因此使用此值不会导致任何精度问题,但是着色器计算速度比其他值要慢。
    • Float:使用单精度浮点指令。此选项使每次计算的资源消耗减少,从而加快计算速度。
    • Half:使用半精度浮点指令。这是速度最快的精度级别,意味着使用该精度级别的计算需要的处理资源最少。此精度设置最有可能导致问题,例如量化(条带)瑕疵和强度削波。
    Surface Type 使用下拉选单定义材质是否支持透明度。具有 Transparent Surface Type 的材质比具有 Opaque Surface Type 的材质在渲染时更耗资源。根据选择的 Surface Type,HDRP 会显示更多属性。
    - Blend Preserves Specular 指示 Alpha 混合是否影响镜面波瓣。例如,对于渲染窗户很有用。
    - Fog 启用此复选框可以允许雾效影响透明表面。禁用后,HDRP 在计算场景中的雾效时不会考虑此材质。要显示此选项,请从 Surface Type 下拉选单中选择 Transparent。
    - Sort Priority 允许更改重叠的透明表面的渲染顺序。
    - Depth Write 启用此复选框可以使 HDRP 为使用该材质的透明游戏对象写入深度值。
    - 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:深度测试始终通过,不会与存储的值进行比较。
    Alpha Clipping 启用或禁用 Alpha 裁剪。此属性可以控制着色器的行为是否像镂空着色器 (Cutout Shader) 一样。镂空着色器是一种具有不透明和透明部分的着色器类型。
    Double-Sided 指定 HDRP 是否渲染几何体中多边形的两个面。还可以指定 HDRP 如何解释背面的法线。选项包括:
    • Enabled:HDRP 渲染几何体中多边形的两个面。
    • Disabled:HDRP 不渲染几何体中多边形的两个面。
    • Flipped Normals:背面法线与正面法线成 180°。这也适用于材质,这意味着材质在几何体的两面看起来相同。
    • Mirrored Normals:背面法线是正面法线的镜像。这也适用于材质,这意味着材质在背面反转。当想要在几何体的两面保留相同的形状(例如叶子)时,这非常有用。
    Energy Conserving Specular 如果镜面反射效果较强,启用此复选框可使 HDRP 减少材质的漫射颜色。这使得材质的光照更加一致,从而使材质看起来更加精确。
    Material Type 指定织物着色器代表的材质类型。选项包括:
    • Cotton Wool:受 Imageworks 布料模型启发的变体。
    • Silk:基于各向异性 GGX BRDF 模型的织物变体。
    Subsurface Scattering 指示材质是否支持次表面散射。要禁用材质特定区域中的次表面散射,请使用 Subsurface Mask。
    Transmission 指示材质是否支持透射。
    Receive Decals 指示 HDRP 是否可以在该材质的表面上绘制贴花。
    Receive SSR 指示是否在处理屏幕空间反射通道时使 HDRP 包含该材质。
    Add Precomputed Velocity 指示该材质是否使用存储在 Alembic 文件中的预先计算的速度信息。
    Specular Occlusion Mode 设置 HDRP 用于计算镜面反射遮挡的模式。
    • Off:禁用镜面反射遮挡。
    • From AO:根据环境光遮挡贴图和摄像机的视图矢量来计算镜面反射遮挡。
    • From AO and Bent Normal:根据环境光遮挡贴图、弯曲法线贴图和摄像机的视图矢量来计算镜面反射遮挡。
    • Custom:允许您指定自己的镜面反射遮挡值。
    Override Baked GI 启用此设置可以显示两个烘焙 GI 输入端口。这使得该材质会忽略场景中的全局光照,而允许您提供自己的全局光照值并自定义该材质的外观。
    Depth Offset 启用此设置可以显示 DepthOffset InputPort,然后可将此项用于增加片元的深度值并将片元推离摄像机。
    Support LOD CrossFace 指示在对纹理进行采样的过程中从一个 LOD 级别移到另一个 LOD 级别时是否发生抖动。
    Override ShaderGUI 允许覆盖此 Shader Graph 使用的 ShaderGUI。如果为 true,则会显示 ShaderGUI 属性,该属性允许指定要使用的 ShaderGUI。
    - ShaderGUI 要使用的 ShaderGUI 类的全名,包括类路径。

    Material Properties

    这些属性与在 Shader Graph 的 Blackboard 中显示的属性一起,位于 Inspector 的 Exposed Properties 部分中。如果将 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)