Skip to main content

PBS Displace Metallic (PBS置换金属材质)

PBS Displace Metallic (PBS置换金属材质)

image.png


PBS_DisplaceMetallic(PBS置换金属材质)组件可以通过VertexDisplaceMap(顶点置换贴图)设置和WorldSpaceVertexOffsetMap(世界空间顶点偏移贴图)沿顶点法线方向位移网格的顶点。

字段列表 (Fields)

字段名 (英文) 类型 描述 (中文)
HighPriorityIntegration Bool 高优先级集成:是否将此材质标记为高优先级渲染,可能用于特殊效果或性能优化。
TextureScale Float2 纹理缩放:控制主纹理(漫反射、自发光等)在U/V方向上的缩放比例。
TextureOffset Float2 纹理偏移:控制主纹理在U/V方向上的偏移量。
AlbedoColor ColorX 漫反射颜色:基础漫反射颜色色调。
AlbedoTexture AssetRef<ITexture2D> 漫反射纹理:应用于表面的基础漫反射纹理。
EmissiveColor ColorX 自发光颜色:基础自发光颜色。
EmissiveMap AssetRef<ITexture2D> 自发光贴图:定义自发光强度的纹理,与自发光颜色相乘。
NormalMap AssetRef<ITexture2D> 法线贴图:用于增加表面细节法线信息的2D纹理资产。
NormalScale Float 法线强度:法线贴图效果的强度系数。
OcclusionMap AssetRef<ITexture2D> 环境光遮蔽贴图:用于增强表面阴影细节的纹理。
VertexDisplaceMap AssetRef<ITexture2D> 顶点置换贴图:灰度纹理,用于控制顶点沿法线方向的位移强度(0=黑,1=白)。
VertexDisplaceMagnitude Float 顶点置换幅度:位移的缩放倍数。
VertexDisplaceBias Float 顶点置换偏置:位移的基础偏移量,用于调整位移的中心点。
VertexDisplaceMapScale Float2 顶点置换贴图缩放:控制置换贴图在U/V方向上的缩放比例。
VertexDisplaceMapOffset Float2 顶点置换贴图偏移:控制置换贴图在U/V方向上的偏移量。
UVDisplaceMap AssetRef<ITexture2D> UV置换贴图:用于偏移UV坐标的纹理,可改变纹理采样位置。
UVDisplaceMagnitude Float UV置换幅度:UV偏移的缩放倍数。
UVDisplaceBias Float UV置换偏置:UV偏移的基础偏移量。
UVDisplaceMapScale Float2 UV置换贴图缩放:控制UV置换贴图在U/V方向上的缩放比例。
UVDisplaceMapOffset Float2 UV置换贴图偏移:控制UV置换贴图在U/V方向上的偏移量。
WorldspaceVertexOffsetMap AssetRef<ITexture2D> 世界空间顶点偏移贴图:RGB纹理,基于世界位置为顶点置换贴图提供额外的坐标偏移(R通道偏移x,G通道偏移y)。
WorldspaceOffsetMagnitude Float2 世界空间偏移幅度:控制世界空间偏移在U/V方向上的缩放。
WorldspaceVertexOffsetMapScale Float2 世界空间顶点偏移贴图缩放:控制世界空间偏移贴图在U/V方向上的缩放比例。
WorldspaceVertexOffsetMapOffset Float2 世界空间顶点偏移贴图偏移:控制世界空间偏移贴图在U/V方向上的偏移量。
WorldspaceOffsetPerVertex Bool 逐顶点世界空间偏移:是否对每个顶点单独应用世界空间偏移(若禁用,则使用对象中心)。
Culling Culling 剔除模式:指定渲染时剔除正面、背面或不剔除。
AlphaHandling AlphaHandling Alpha处理模式:定义透明度的处理方式(如不透明、裁剪、混合)。
AlphaClip Float Alpha裁剪阈值:当AlphaHandling为裁剪模式时,低于此值的Alpha将被完全裁剪。
OffsetFactor Float 深度偏移因子:与OffsetUnits共同调整深度偏移,用于解决Z-fighting问题。
OffsetUnits Float 深度偏移单位:与OffsetFactor共同调整深度偏移。
RenderQueue Int 渲染队列:指定材质的渲染顺序(数值越小越早渲染)。
Metallic Float 金属度:控制材质的金属外观程度(0=非金属,1=金属)。
Smoothness Float 光滑度:控制材质表面的光滑程度,影响反射的清晰度。
MetallicMap AssetRef<ITexture2D> 金属度贴图:用于逐像素控制金属度的纹理。
_regular AssetRef<Shader> 常规着色器:用于不透明渲染的着色器变体。
_transparent AssetRef<Shader> 透明着色器:用于透明渲染的着色器变体。

用法 (Usage)

PBS Displace Metallic 着色器可以通过 VertexDisplaceMap 设置和 WorldSpaceVertexOffsetMap 沿顶点法线方向位移网格的顶点。

VertexDisplaceMap (顶点置换贴图)

该纹理是一个强度图,范围从0(黑色)到1(白色)。网格中的每个顶点都根据以下公式沿其法线方向以相同的因子位移:

V'n ← Vn + Nn × [ T'(x,y) × M + B ]

其中:

  • V'n 是顶点 n 位移后的位置。
  • Vn 是顶点 n 的原始位置。
  • Nn 是顶点 n 的法线向量。
  • T(x,y) 是纹理映射,其中 x 和 y 在 [-1,1] 范围内,T(x,y) 在 [0,1] 范围内。
  • T'(x,y) 是经过 VertexDisplaceMapScale 缩放和 VertexDisplaceMapOffset 偏移后的纹理映射。
  • M 是 VertexDisplacementMagnitude(顶点置换幅度)。
  • B 是 VertexDisplaceBias(顶点置换偏置)。
  • xy 通常为0(但请参阅下面的 WorldSpaceVertexOffsetMap)。

重要的是要意识到,(x,y) 仅仅是纹理中每个顶点摆动所基于的位置,与顶点的位置无关。

因此:

  • T 以及 VertexDisplaceMapScale 和 VertexDisplaceMapOffset 影响顶点沿其法线方向围绕原始位置的“摆动”,范围为 [0,1]。
  • N 是顶点围绕原始位置“摆动”的方向和基本幅度。
  • M 放大摆动的效果。
  • B 影响顶点摆动的中心点。如果要使摆动围绕中心均匀分布(即覆盖 T(x,y) 的完整范围),可将 B 设置为 -M/2

WorldSpaceVertexOffsetMap (世界空间顶点偏移贴图)

由于材质可能应用于同一对象在不同世界位置的多个实例,如果所有实例都以完全相同的方式位移,看起来会很奇怪。WorldSpaceVertexOffsetMap 根据对象的世界位置对顶点位移进行额外的修改。此外,此贴图允许每个顶点受 VertexDisplaceMap 中不同位置的影响,而不仅仅是 (0,0) 点。

WorldSpaceVertexOffsetMap 的纹理贴图是一个 RGB 颜色图。

如果顶点位于全局位置 X, Z(忽略 Y 位置),则在应用纹理缩放和偏移后,纹理的值为 R, G, B(每个值在 [0,1] 范围内)。这些值对位移的影响如下:

  • R 通道是添加到上面 VertexDisplaceMap 公式中 x 的偏移量。
  • G 通道是添加到上面 VertexDisplaceMap 公式中 y 的偏移量。

示例 (Examples)

Froox 展示了位移贴图如何影响棕榈树叶子的形状。请注意,他使用从0到1的持续弹跳线性插值来模拟风的效果。
观看视频:Palm Tree Wind 示例

参见 (See Also)