标准着色器中的第一个材质参数为 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;
}