Version: 2019.4
材质参数
反照率颜色和透明度

渲染模式 (Rendering Mode)

此处的标准着色器材质采用了默认参数并且未分配任何值或纹理。Rendering Mode 参数已突出显示。
此处的标准着色器材质采用了默认参数并且未分配任何值或纹理。Rendering Mode 参数已突出显示。

标准着色器中的第一个材质参数为 Rendering Mode。此参数允许您选择对象是否使用透明度,如果是,使用哪种类型的混合模式。

  • Opaque - 此项为默认设置,适用于没有透明区域的普通固体对象。

  • Cutout - 用于创建在不透明区域和透明区域之间具有硬边的透明效果。在这种模式下,没有半透明区域,纹理为 100% 不透明或不可见。使用透明度来创建材质的形状时(如树叶或者有孔洞和碎布条的布料),这非常有用。

  • Transparent - 适用于渲染逼真的透明材质,如透明塑料或玻璃。在此模式下,材质本身将采用透明度值(基于纹理的 Alpha 通道和色调颜色的 Alpha),但与真实透明材质的情况一样,反射和光照高光将保持完全清晰可见。

  • Fade - 允许透明度值完全淡出对象,包括对象可能具有的任何镜面高光或反射。如果要对淡入或淡出的对象进行动画化,此模式将非常有用。它不适合渲染逼真的透明材质,如透明塑料或玻璃,因为反射和高光也会淡出。

使用脚本来更改渲染模式

当您更改渲染模式时,Unity 将对材质应用许多更改。没有单个 C# API 可以更改材质的渲染模式,但是您可以在代码中进行相同的更改。

要查看在您更改渲染模式时 Unity 所做的更改,请执行以下操作:

  1. 下载 Unity 内置着色器的源代码。请参阅自行创建着色器以查看相关说明。
  2. 打开 StandardShaderGUI.cs 文件。
  3. 找到文件中如下所示的区域,并查看每种渲染模式的更改。
switch (blendMode)
        {
            case BlendMode.Opaque:
               // 此处是与不透明 (Opaque) 渲染模式相关的更改
                break;
            case BlendMode.Cutout:
                // 此处是与镂空 (Cutout) 渲染模式相关的更改
                break;
            case BlendMode.Fade:
                // 此处是与淡入淡出 (Fade) 渲染模式相关的更改
                break;
            case BlendMode.Transparent:
                // 此处是与透明 (Transparent) 渲染模式相关的更改
                break;
        }

此图像中的头盔罩使用 Transparent 模式渲染而成,因为它应该表示具有透明属性的真实物理对象。此处的头盔罩正在反射场景中的天空盒。
此图像中的头盔罩使用 Transparent 模式渲染而成,因为它应该表示具有透明属性的真实物理对象。此处的头盔罩正在反射场景中的天空盒。
这些窗户使用了 Transparent 模式,但在纹理中定义了一些完全不透明的区域(窗框)。来自光源的镜面反射将反射透明区域和不透明区域。
这些窗户使用了 Transparent 模式,但在纹理中定义了一些完全不透明的区域(窗框)。来自光源的镜面反射将反射透明区域和不透明区域。
此图像中的全息图使用 Fade 模式渲染而成,因为它应该表示部分淡出的不透明对象。
此图像中的全息图使用 Fade 模式渲染而成,因为它应该表示部分淡出的不透明对象。
此图像中的草使用 Cutout 模式渲染而成。此模式为对象提供了清晰的锐利边缘(通过指定截止阈值进行定义)。Alpha 值高于此阈值的图像的所有部分都是 100% 不透明的,而低于此阈值的所有部分都是不可见的。在图像的右侧,可看到材质设置和所用纹理的 Alpha 通道。
此图像中的草使用 Cutout 模式渲染而成。此模式为对象提供了清晰的锐利边缘(通过指定截止阈值进行定义)。Alpha 值高于此阈值的图像的所有部分都是 100% 不透明的,而低于此阈值的所有部分都是不可见的。在图像的右侧,可看到材质设置和所用纹理的 Alpha 通道。
材质参数
反照率颜色和透明度