PBS Displace Metallic (PBS置换金属材质)
PBS Displace Metallic (PBS置换金属材质)
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(顶点置换偏置)。x和y通常为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 示例

No comments to display
No comments to display