注意: Unity 5 ではこのシェーダーは スタンダードシェーダー へと置き換わりました。
注意: Unity 5 ではこのシェーダーは スタンダードシェーダー へと置き換わりました。
このシェーダーは、メインのテクスチャのアルファチャネルを読み取って、メッシュ形状の一部あるいはすべてを透過にできます。アルファにおいて 0 (黒)は完全に透過であり、255 (白)は完全に不透明です。メインテクスチャにアルファチャネルがない場合、オブジェクトは完全に不透明に表示されます。
ゲームで透過オブジェクトの使用は工夫が必要で、昔からグラフィックスプログラミングでよくある落とし穴として、ゲームの実行中に並び順で問題が発生するかもしれません。例えば、重なった 2 つの窓からみた視界がおかしな結果になるケースは、透過の使用の場合に昔から発生する問題です。一般論として、一定の条件下で、透過のあるオブジェクトは別のオブジェクトの前に不自然に描かれるかもしれないことを把握する必要があります。特にオブジェクトが交差していたり、何かを囲っていたり、サイズが大幅に異なるものがある場合、などで発生します。この理由から、透過オブジェクトは必要な時だけ使用し、過剰に使用しないことです。デザイナーとも透過の問題が発生しうることを認識をあわせ、いざという場合にはデザイン変更する準備を整えて、この課題を回避すべきです。
Diffuse (拡散)シェーダーと同様のシンプル( Lambertian )ライティングを使用します。表面と光がなす角度が小さくなるほどライティングが弱くなります。ライティングは角度のみに依存し、カメラの移動や回転による変更の影響は受けません。
Normal mapping (法線マップ)は細かい表面のディテールを、ポリゴンの量を増やして詳細を削り出すのではなく、テクスチャにより表現します。オブジェクトの形状は変更しないが、Normal Map (法線マップ)と呼ばれる特殊なテクスチャを使用してこのエフェクトを得ます。法線マップでは、各ピクセルのカラー値は表面法線の角度を表します。次にこの値を形状の代りに使用してライティングを行います。オブジェクトのライティングを計算するにあたり、効果的に法線マップによってメッシュの形状の影響をオーバーライドします。
Unity 外で作成した法線マップをインポートすることができます。また、通常のグレイスケール画像をインポートし、Unity 内で法線マップに変換することができます。(ここでは、スタンダードシェーダーに取って代わられた旧シェーダーを説明します。詳細は、法線マップ)を参照してください。
法線マップは接線空間( Tangent Space )を用いた法線マップです。接線空間とはモデル形状の“表面に沿った”空間です。この空間において、Z 軸は必ず表面から離れる方向を指します。接線空間による法線マップは他の“オブジェクト空間”を用いた法線マップと比較すると効果ですが、いくつかの長所があります。
Diffuse (拡散)は簡単な Lambertian (ランバート)ライティングモデルを計算します。表面のライティングは光源との角度が小さくなるにつれ弱まります。ライティングはこの角度のみに依存し、カメラの移動・回転による影響を受けません。
一般に、このシェーダーでは少ない費用でレンダリングできます。詳細については、Unity シェーダーのパフォーマンス を参照してください。