標準シェーダーの一つ目のマテリアルパラメータは、Rendering Mode です。ここでは、オブジェクトで透明度を使うかどうかを選択することができ、透明度を使う場合、どのブレンディングモードにするかを選びます。
Opaque - デフォルトです。透明な部分のない、一般的な固形のオブジェクトに適しています。
Cutout - 不透明と透明な領域をはっきり分ける透明効果を作成することができます。このモードでは、半透明の領域は存在せず、テクスチャは100%不透明か、まったく見えなくなるか、どちらかになります。これは、葉っぱや穴だらけでボロボロの服などの素材を形作るのに便利です。
Transparent - 透明なプラスチックやガラスなどの現実的な透明なマテリアルのようなレンダリングに適しています。このモードでは、マテリアル自体は、(テクスチャのアルファチャンネルとティントカラーのアルファに基づいた)透明度の値になります。しかし、本物の透明なマテリアルの場合と同様に、反射や照明のハイライトは、完全な明快さで表示されたままになります。
Fade - オブジェクトが鏡面反射光や反射を含んでいる場合でも、透明度の値を使ってオブジェクトを完全にフェードアウトすることができます。このモードは、オブジェクトのフェードインやフェードアウトをアニメーション化する場合に便利です。反射やハイライトもフェードアウトするので、透明なプラスチックやガラスのような透過素材を写実的にレンダリングするのには適していません。
レンダリングモード を変更すると、Unity はマテリアルにいくつかの変更を適用します。マテリアルのレンダリングモードを変更する単一の C# API はありませんが、コードで同じ変更を行うことができます。
レンダリングモード を変更したときに Unity によって行われる変更内容を確認するには、以下の操作を行います。
switch (blendMode)
{
case BlendMode.Opaque:
// Opaque Rendering Mode に関連する変更はこちら
break;
case BlendMode.Cutout:
// Cutout Rendering Mode に関連する変更はこちら
break;
case BlendMode.Fade:
// Fade Rendering Mode に関連する変更はこちら
break;
case BlendMode.Transparent:
// Transparent Rendering Mode に関連する変更はこちら
break;
}