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

    织物

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

    创建织物 Shader Graph

    要在 Shader Graph 中创建织物材质,可采用以下任一方式:

    • 修改现有的 Shader Graph。

      1. 在 Shader Editor 中打开 Shader Graph。
      2. 在 Graph Settings 中,选择 HDRP 目标。如果没有,请选择 Active Targets,单击 Plus 按钮,然后选择 HDRP。
      3. 在 Material 下拉选单中,选择 Fabric。
    • 创建新的 Shader Graph。

      1. 选择 Assets > Create > Shader Graph > HDRP,然后单击 Fabric Shader Graph。

    上下文

    此主栈材质类型具有自己的一组图形设置 (Graph Settings)。由于设置和块之间的关系,这会影响哪些块与图相关。本节介绍该主栈材质类型默认添加的块,以及哪些块可以设置该主栈材质类型的图形设置 (Graph Settings) 中的属性。

    如需了解图形设置与块之间的关系的更多信息,请参阅上下文和块 (Contexts and Blocks)。

    Vertex Context

    Default

    创建新的织物主栈时,默认情况下,Vertex Context 包含以下块:

    属性 描述 设置依赖项 默认值
    Position 每个顶点的对象空间顶点位置。 无 CoordinateSpace.Object
    Normal 每个顶点的对象空间顶点法线。 无 CoordinateSpace.Object
    Tangent 每个顶点的对象空间顶点切线。 无 CoordinateSpace.Object

    Relevant

    默认情况下,此主栈材质类型将所有 Vertex 块添加到 Vertex Context,并且没有其他相关的块。

    Fragment Context

    Default

    创建新的织物主栈时,默认情况下,Fragment Context 包含以下块:

    属性 描述 设置依赖项 默认值
    Base Color 材质的基色。 无 Color.grey
    Normal Tangent Space 材质在切线空间中的法线。 • Fragment Normal Space 设置为 Tangent CoordinateSpace.Tangent
    Bent Normal 片元的弯曲法线。HDRP 使用弯曲法线贴图来模拟更精确的环境光遮挡。弯曲法线仅适用于漫射光照。 • Material 设置为 Eye、Fabric、Hair、Lit 或 StackLit CoordinateSpace.Tangent
    Smoothness 材质的平滑度。照射到光滑表面的每条光线都将以可预测且一致的角度反弹。对于像镜子一样反射光线的完美光滑表面,应将此属性设置为值 1。较不光滑的表面在较宽的角度范围内反射光线(因为光线会照射到微表面上的凸起),所以反射的细节较少,以更加分散的模式在表面上扩散。 无 0.5
    Ambient Occlusion 材质的环境光遮挡。此功能模拟游戏对象表面上某个片元的遮挡,此处由材质中存在的细节投射,而不是由网格几何体投射。值为 0 表示片元被完全遮挡并显示为黑色。值为 1 表示该片元完全不被遮挡,并且环境颜色不变。 无 1.0
    Specular Color 材质的镜面反射颜色值。这定义了镜面高光的亮度和着色颜色。 无 Color.grey
    Emission 从该材质的表面发光的颜色。发光材质在场景中显示为光源。 无 Color.black
    Alpha 材质的 Alpha 值。此设置决定了材质的透明度。期望值范围为 0 - 1。 无 1.0

    Relevant

    根据使用的 Graph Settings,Shader Graph 可向 Fragment Context 添加以下块:

    属性 描述 设置依赖项 默认值
    Alpha Clip Threshold 由 HDRP 用于确定是否渲染每个像素的 Alpha 值阈值。如果像素的 Alpha 值等于或高于此阈值,则 HDRP 会渲染该像素。如果低于此阈值,则 HDRP 不会渲染该像素。默认值为 0.5。 • 启用 Alpha Clipping 0.5
    Alpha Clip Threshold Depth Postpass 由 HDRP 用于透明深度后通道的 Alpha 值阈值。如果像素的 Alpha 值等于或高于此阈值,则 HDRP 会渲染该像素。如果低于此阈值,则 HDRP 不会渲染该像素。默认值为 0.5。 • 启用 Alpha Clipping
    • 启用 Transparent Depth Postpass
    0.5
    Alpha Clip Threshold Depth Prepass 由 HDRP 用于透明深度预通道的 Alpha 值阈值。如果像素的 Alpha 值等于或高于此阈值,则 HDRP 会渲染该像素。如果低于此阈值,则 HDRP 不会渲染该像素。默认值为 0.5。 • 启用 Alpha Clipping
    • 启用 Transparent Depth Prepass
    0.5
    Alpha Clip Threshold Shadow 由 HDRP 用于确定是否应渲染像素阴影的 Alpha 值阈值。如果像素的 Alpha 值等于或高于此阈值,则 HDRP 会渲染该像素。如果低于此阈值,则 HDRP 不会渲染该像素。默认值为 0.5。 • 启用 Use Shadow Threshold 0.5
    Anisotropy 各向异性效果的方向。负值使效果为垂直方向,正值使效果为水平方向。 • 启用 Anisotropy 0.0
    Baked Back GI 仅应用于网格背面的全局光照 (GI) 值。替代了内置的漫射 GI 解决方案。
    仅当启用 Override Baked GI 设置时,才显示此端口。
    • 启用 Override Baked GI 0.0
    Baked GI 仅应用于网格正面的全局光照 (GI) 值。替代了内置的漫射 GI 解决方案。 • 启用 Override Baked GI 0.0
    Depth Offset 着色器用来增加片元深度的增量值。此块要求输入视差遮挡贴图节点的结果以产生真实的结果。 • 启用 Depth Offset 0.0
    Diffusion Profile 用于次表面散射和透射的扩散配置文件 (Diffusion Profile)。 • Material Type 设置为 Subsurface Scattering 或 Translucent 0.0
    Normal Object Space 材质在对象空间中的法线。 • Fragment Normal Space 设置为 Object CoordinateSpace.Object
    Normal World Space 材质在世界空间中的法线。 • Fragment Normal Space 设置为 World CoordinateSpace.World
    Specular AA Screen Space Variance 几何镜面反射抗锯齿效果的强度(大小介于 0 和 1 之间)。较大的值会产生锯齿较少、更模糊的结果。 • 启用 Specular AA 0.0
    Specular AA Threshold HDRP 为了减少瑕疵而从平滑度值减去的最大值。 • 启用 Specular AA 0.0
    Specular Color 材质的镜面反射颜色值。这定义了镜面高光的亮度和着色颜色。 无 Color.grey
    Specular Occlusion 镜面反射全局光照的强度的乘数。 • Specular Occlusion Mode 设置为 Custom 1.0
    Subsurface Mask 屏幕空间模糊效果在材质上的强度。 • Material 设置为 Lit
    • Material Type 设置为 Subsurface Scattering
    1.0
    Tangent Object Space 对象空间中的各向异性方向。这会在给定方向拉伸镜面高光。 • Material 设置为 Lit
    • Material Type 设置为 Anisotropy
    • Fragment Normal Space 设置为 Object
    或
    • Material 设置为 StackLit
    • Fragment Normal Space 设置为 Object
    或
    • Material 设置为 Fabric 且 Material Type 设置为 Silk
    • Fragment Normal Space 设置为 Object
    CoordinateSpace.Object
    Tangent Tangent Space 切线空间中的各向异性方向。这会在给定方向拉伸镜面高光。 • Material 设置为 Lit
    • Material Type 设置为 Anisotropy
    • Fragment Normal Space 设置为 Tangent
    或
    • Material 设置为 StackLit
    • Fragment Normal Space 设置为 Tangent
    或
    • Material 设置为 Fabric 且 Material Type 设置为 Silk
    • Fragment Normal Space 设置为 Tangent
    CoordinateSpace.Tangent
    Tangent World Space 世界空间中的各向异性方向。这会在给定方向拉伸镜面高光。 • Material 设置为 Lit
    • Material Type 设置为 Anisotropy
    • Fragment Normal Space 设置为 World
    或
    • Material 设置为 StackLit
    • Fragment Normal Space 设置为 World
    或
    • Material 设置为 Fabric 且 Material Type 设置为 Silk
    • Fragment Normal Space 设置为 World
    CoordinateSpace.World
    Thickness HDRP 用于估算透射的表面厚度。 • Material Type 设置为 Subsurface Scattering 并启用 Transmission
    或
    • Material Type 设置为 Transluscent
    或
    • Refraction Model 未设置为 None
    1.0

    Graph Settings

    Surface Options

    属性 描述
    Material Type 指定织物着色器代表的材质类型。选项包括:
    • Cotton Wool:受 Imageworks 布料模型启发的变体。
    • Silk:基于各向异性 DinseyGGX BRDF 模型的织物变体。
    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 时,才显示此属性。
    - Receive Fog 指示雾效是否影响透明表面。禁用后,HDRP 在计算场景中的雾效时不会考虑此材质。
    - Depth Test 指定由 HDRP 用于深度测试的比较函数。
    - Depth Write 指示 HDRP 是否为使用该材质的游戏对象写入深度值。
    - Cull Mode 指定对于使用此材质的游戏对象需要剔除哪个面。选项包括:
    • Front:剔除网格的正面。
    • Back:剔除网格的背面。
    仅当禁用 Double Sided 的情况下,才显示此属性。
    - Sorting Priority 允许更改重叠的透明表面的渲染顺序。有关更多信息以及用法示例,请参阅材质排序文档。
    仅当 Surface Type 设置为 Transparent 时,才显示此属性。
    - 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 时,才显示此属性。
    - - Preserve Specular Lighting 指示是否使 Alpha 混合不降低镜面高光的强度。这可以保留透明表面上的镜面反射元素,例如阳光照射玻璃或水。
    仅当 Surface Type 设置为 Transparent 时,才显示此属性。
    Alpha Clipping 指示该材质是否类似于镂空着色器 (Cutout Shader)。
    有关该功能的更多信息以及该功能显示的属性列表,请参阅 Alpha Clipping 文档。
    - Use Shadow Threshold 指示 HDRP 是否对 Alpha 裁剪阴影使用另一个阈值。
    仅当启用 Alpha Clipping 时,才显示此属性。
    - Alpha to Mask 指示是否开启 alpha-to-coverage。如果项目使用 MSAA,alpha-to-coverage 会根据像素着色器结果 Alpha 值按比例修改多重采样覆盖率遮罩。通常用于植被抗锯齿和其他经过 Alpha 测试的着色器。
    仅当启用 Alpha Clipping 时,才显示此属性。
    Double Sided Mode 指定 HDRP 如何渲染网格几何体中多边形的面。选项包括:
    • Disabled:仅渲染多边形的一个面。
    • Enabled:渲染多边形的两个面。在此模式下,背面的法线与正面相同。
    • Flipped Normals:渲染多边形的两个面。在此模式下,背面法线与正面法线成 180°。这也适用于材质,这意味着材质在几何体的两面看起来相同。
    • Mirrored Normals:渲染多边形的两个面。在此模式下,背面法线是正面法线的镜像。这也适用于材质,这意味着材质在背面反转。当想要在几何体的两面保留相同的形状(例如叶子)时,这非常有用。

    有关该功能的更多信息,请参阅双面 (Double-sided)。
    Fragment Normal Space 指定该材质使用的法线贴图空间。
    • TangentSpace:定义切线空间中的法线。使用此类型可以在网格上平铺纹理。
    • ObjectSpace:定义对象空间中的法线。此类型用于平面贴图的游戏对象,如地形。
    • WorldSpace:定义世界空间中的法线贴图。
    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) 文档。
    Depth Offset 指示 HDRP 是否根据位移修改深度缓冲区。因此,使用深度缓冲区的效果(例如,接触阴影 (Contact Shadows))可以捕获像素位移细节。
    Subsurface Scattering 指示材质是否支持次表面散射。要禁用材质特定区域中的次表面散射,请使用 Subsurface Mask。
    - Transmission 指示 HDRP 是否使用厚度贴图模拟材质的半透明度。可以使用扩散配置文件 (Diffusion Profile) 来配置次表面散射和透射设置。如需了解更多信息,请参阅有关次表面散射的文档。
    仅当从 Material Type 下拉选单中选择 Subsurface Scattering 时,才显示此属性。

    Advanced Options

    属性 描述
    Specular Occlusion Mode HDRP 用于计算镜面反射遮挡的模式。选项包括:
    • Off:禁用镜面反射遮挡。
    • From AO:根据环境光遮挡贴图和摄像机的视图矢量来计算镜面反射遮挡。
    • From AO and Bent Normal:根据环境光遮挡贴图、弯曲法线贴图和摄像机的视图矢量来计算镜面反射遮挡。
    • Custom:允许你指定自己的镜面反射遮挡值。
    Override Baked GI 指示此材质是否忽略场景中的全局光照 (GI) 并改用自定义 GI 值。启用此设置可将两个烘焙 GI 块添加到 Fragment Context 以控制材质的 GI。禁用此设置可使材质使用场景的 GI。
    Support Lod Crossfade 指示当网格从一个 LOD 级别移动到另一个 LOD 级别时 HDRP 是否处理抖动。
    Add Precomputed Velocity 指示是否使用存储在 Alembic 文件中的预先计算的速度信息。

    限制

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

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