Version: 2022.1
Standard Shader Material Inspector
Albedo Color and Transparency

Rendering Mode

A Standard Shader material with default Properties and no values or textures assigned. The Rendering Mode Property is highlighted.
A Standard Shader material with default Properties and no values or textures assigned. The Rendering Mode Property is highlighted.

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

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

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

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

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

Changing the Rendering Mode using a script

When you change the Rendering Mode, Unity applies a number of changes to the Material. There is no single C# API to change the Rendering Mode of a Material, but you can make the same changes in your code.

To see the changes that Unity makes when you change the Rendering Mode:

  1. Download the source code for Unity’s built-in shaders. See Make your own shader for instructions.
  2. 打开 StandardShaderGUI.cs 文件。
  3. Locate the area of the file that looks like this, and observe the changes for each Rendering Mode.
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 通道。
Standard Shader Material Inspector
Albedo Color and Transparency