3DS 物理材质着色器
在高清渲染管线 (High Definition Render Pipeline, HDRP) 中,3DS 物理材质 (3DS Physical Material) 着色器与 Autodesk® 3DsMax 中的 3DS 物理材质着色器类似。当 Unity 导入一个包含材质的 FBX 时,如果该材质使用了 Autodesk 的 3DS 物理材质着色器,则会向该材质应用 HDRP 的 3DS 物理材质着色器。此着色器在 Unity 版本和 Autodesk 版本之间的材质属性和纹理输入相同。材质本身也具有类似的外观和光反应。请注意,在 Autodesk® 3DsMax 中看到的效果与在 HDRP 中看到的效果之间存在细微差别,并且 HDRP 不支持某些材质特性。
请注意,此着色器的 HDRP 实现版本使用 Shader Graph。
创建 3DS 物理材质
当 Unity 导入一个 FBX 且其中具有兼容的 3DS 物理材质着色器时,它会自动创建 3DS 物理材质。如果要手动创建 3DS 物理材质,请执行以下操作:
- 创建新的材质(菜单:Assets > Create > Material)。
- 在材质的 Inspector 中,单击 Shader 下拉选单,然后单击 HDRP > 3DSMaxPhysicalMaterial > PhysicalMaterial3DSMax。
属性
Surface Options
Surface Options 控制材质表面的整体外观以及 Unity 如何在屏幕上渲染材质。
属性 | 描述 |
---|---|
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 时,才显示此属性。 |
- - Preserve Specular Lighting |
指示是否使 Alpha 混合不降低镜面高光的强度。这可以保留透明表面上的镜面反射元素,例如阳光照射玻璃或水。 仅当 Surface Type 设置为 Transparent 时,才显示此属性。 |
- Sorting Priority | 允许更改重叠的透明表面的渲染顺序。有关更多信息以及用法示例,请参阅材质排序文档。 仅当 Surface Type 设置为 Transparent 时,才显示此属性。 |
- Receive Fog | 指示雾效是否影响透明表面。禁用后,HDRP 在计算场景中的雾效时不会考虑此材质。 |
- Transparent Depth Prepass | 指示 HDRP 是否将透明表面中的多边形添加到深度缓冲区以改进其排序。HDRP 在光照通道之前执行此操作,此过程可提高 GPU 性能。 |
- Transparent Writes Motion Vectors | 指示 HDRP 是否为使用该材质的透明游戏对象写入运动矢量。这允许 HDRP 处理透明对象的运动模糊等效果。有关运动矢量的更多信息,请参阅运动矢量文档。 仅当 Surface Type 设置为 Transparent 时,才显示此属性。 |
- Depth Write | 指示 HDRP 是否为使用该材质的游戏对象写入深度值。 |
- Depth Test | 指定由 HDRP 用于深度测试的比较函数。 |
- Cull Mode | 指定对于使用此材质的游戏对象需要剔除哪个面。选项包括: • Front:剔除网格的正面。 • Back:剔除网格的背面。 仅当禁用 Double Sided 的情况下,才显示此属性。 |
Double Sided | 指示 HDRP 是否渲染几何体中多边形的两个面。有关该功能的更多信息以及该功能可显示的属性列表,请参阅 Double-Sided 文档。 |
- Normal Mode | 指定 HDRP 用于计算背面几何体法线的模式。 • Flip:背面法线与正面法线成 180°。这也适用于材质,这意味着材质在几何体的两面看起来相同。 • Mirror:背面法线是正面法线的镜像。这也适用于材质,这意味着材质在背面反转。当想要在几何体的两面保留相同的形状(例如叶子)时,这非常有用。 • None:背面法线与正面相同。 仅当启用 Double-Sided 时,才显示此属性。 |
Receive Decals | 指示 HDRP 是否可以在该材质的表面上绘制贴花。 |
Receive SSR/SSGI | 指示是否在处理屏幕空间反射通道时使 HDRP 包含该材质。HDRP 在计算屏幕空间全局光照时也会考虑此材质。 仅当 Surface Type 设置为 Opaque 时,才会显示此属性。 |
Receive SSR Transparent | 指示是否在处理屏幕空间反射通道时使 HDRP 包含该材质。 仅当 Surface Type 设置为 Transparent 时,才显示此属性。 |
Exposed Properties
属性 | 描述 |
---|---|
BaseColorWeight | 基色的强度。 |
BaseColor | 表面的颜色。 |
BaseColorMap | 指定要在整个表面上用作反照率颜色的纹理。 |
ReflectionsWeight | 反射的亮度。 |
ReflectionsColor | 用于调节镜面反射的颜色。 |
ReflectionsColorMap | 指定要在整个表面上确定反射颜色的纹理。 |
ReflectionsRoughness | 镜面反射的光泽度。值越小,反射越锐利。 |
ReflectionsRoughnessMap | 指定要在整个表面上确定反射粗糙度的纹理。请注意,此属性仅使用纹理的红色通道。 |
Metalness | 确定表面的金属度。具有较高金属度的表面会在更大程度上反射环境,并且反照率颜色将不那么明显。 |
MetalnessMap | 指定要在整个表面上确定金属度值的纹理。 |
ReflectionsIOR | 要应用于镜面反射的折射率。这定义了材质的菲涅耳反射率,并且默认情况下是所使用的角度函数。 |
ReflectionsIORMap | 指定要在整个表面上确定镜面折射率的纹理。请注意,此属性仅使用纹理的红色通道。 |
TransparencyWeight | 材质透明度的相对量度。 |
Transparency | 材质的透明度。 |
TransparencyMap | 指定要在整个表面上确定透明度的纹理。 |
EmissionWeight | 发光效果的强度。 |
Emission | 从该材质的表面发光的颜色。发光材质在场景中显示为光源。 |
EmissionMap | 指定要在整个表面上确定发光颜色的纹理。 |
BumpMapStrength | 凹凸贴图效果的强度。 |
BumpMap | 指定将凹凸效果应用于材质的切线空间法线贴图。 |
Anisotropy | 各向异性效果的方向。负值使效果为垂直方向,正值使效果为水平方向。这会在给定方向拉伸镜面高光。 |
AnisotropyMap | 指定一个纹理来确定各向异性效果在整个表面上的强度。 |
CoatNormal | 指定应用于涂层的切线空间法线贴图。 |
CoatRoughness | 涂层镜面反射的光泽度。值越小,反射越锐利。 |
CoatThickness | 涂层的厚度。 |
CoatWeight | 涂层效果的强度。 |
CoatColor | 涂层的颜色。 |
CoatIOR | 用于涂层的折射率。 |
Advanced Options
属性 | 描述 |
---|---|
Enable GPU Instancing | 启用此复选框可以指示 HDRP 在一个批次中使用相同的几何体和材质来渲染网格(如果可能)。这样可以加快渲染速度。如果网格具有不同的材质或者硬件不支持 GPU 实例化,则 HDRP 无法在一个批次中渲染这些网格。例如,如果游戏对象具有基于对象轴心的动画,则不能对它们进行静态批处理,但 GPU 可以实例化它们。 |
Emission | 控制发射是否影响全局光照。 |
- Global Illumination | HDRP 使用此模式确定颜色发射与全局光照的相互影响。 • Realtime:选择此选项可使发射影响实时全局光照的结果。 • Baked:选择此选项可使发射仅影响烘焙过程中的全局光照。 • None:选择此选项可使发射不影响全局光照。 |
Motion Vector For Vertex Animation | 启用此复选框可以使 HDRP 为使用顶点动画的游戏对象编写运动矢量。这将消除顶点动画可能导致的重影。 |