Version: Unity 6.0 (6000.0)
言語 : 日本語
Transparent/Bumped Diffuse
Transparent Parallax Diffuse

Transparent Bumped Specular

ノート: Unity 5 で スタンダードシェーダー が導入され、このシェーダーと置き換えられました。

このシェーダーの考慮点はベーステクスチャのアルファチャネルが透過領域と Specular Map (鏡面マップ)ともに定義することです。

Transparent プロパティ

ノート: Unity 5 では、このシェーダーに代わるものとして スタンダードシェーダー を導入しています。

このシェーダーは、メインテクスチャのアルファチャンネルを読み取り、メッシュ形状の一部あるいはすべてを透明にできます。アルファチャンネルでは、 0 (黒) は完全に透明、255 (白) は完全に不透明です。メインテクスチャにアルファチャンネルがない場合、オブジェクトは完全に不透明な状態で表示されます。

ゲーム内で透明なオブジェクトを使用する場合は扱いに注意が必要です。グラフィックスプログラミングの従来の問題により、ゲーム内でソートの問題が発生する可能性があるためです。例えば、2 つのウィンドウを同時に見たときにおかしな結果が表示される場合、透明度の使用に関して昔からある問題が発生しています。一般的に注意すべきことは、ある透明オブジェクトが別のオブジェクトの前に通常とは異なる形で描画される可能性があることです。 特に、オブジェクトが交差していたり、互いを囲っていたり、サイズが大きく異なっていたりする場合は注意が必要です 。そのため、透明オブジェクトは必要な場合にのみ使用し、過度に使用しないようにしてください。また、このようなソートの問題が発生する可能性があることをデザイナーに周知し、設計を変更してこれらの問題を防げるよう準備をしておく必要があります。

法線マッププロパティ

Diffuse (拡散) シェーダーと同様に、簡単な Lambertian (ランバート) ライティングモデルを計算します。表面のライティングはライトとの角度が小さくなるにつれ弱まります。ライティングは角度のみに依存し、カメラの移動や回転による変更の影響は受けません。

Normal mapping (法線マップ) は細かい表面のディテールを、ポリゴンの量を増やして実際にディテールを削り出すのではなく、テクスチャによりシミュレートします。実際にオブジェクトの形状は変更しませんが、Normal Map (法線マップ) と呼ばれる特殊なテクスチャを使用してこの効果を得ます。法線マップでは、各ピクセルのカラー値は表面法線の角度を表します。次にこの値を形状の代わりに使用してライティングを計算します。オブジェクトのライティングを計算するにあたり、効果的に法線マップによってメッシュの形状の影響をオーバーライドします。

法線マップの作成

Unity の外部で作成された法線マップをインポートできます。また、通常のグレースケールの画像をインポートして Unity 内から法線マップに変換することもできます。(このページでは、スタンダードシェーダー に取って代わられた古い機能のシェーダーについて説明しますが、スタンダードシェーダーでの法線マップ の使用方法について詳しく知ることができます)

技術的な詳細

法線マップは、接空間タイプの法線マップです。接空間とはモデル形状の “表面に沿った” 空間です。この空間において、Z 軸は必ず表面から離れる方向を指します。接空間による法線マップは他の “オブジェクト空間” タイプの法線マップと比較すると少し高コストですが、いくつかの長所があります。

  1. モデルの変形に使用できます。つまり変形している平面において、バンプは維持され、正しく機能します。
  2. モデルの異なる部分に法線マップのパーツを再利用することができます、あるいは別のモデルに使用できます。

Specular (鏡面)プロパティ

Specular (鏡面) は、Diffuse (拡散) と同様のシンプルな (Lambertian) ライティングに加えて、ビューアー依存の鏡面ハイライトを計算します。これは Blinn-Phong ライティングモデルと呼ばれます。表面の角度や、ライトの角度、ビューアングルに依存する鏡面のハイライト効果が見られます。ハイライトは実際にはリアルタイム表現に適した、光源のぼやけた反射をシミュレーションするための方法です。ハイライトのぼかしの度合いは、InspectorShininess スライダーで制御します。

これに加えて、メインのテクスチャのアルファチャンネルは鏡面マップ (“グロスマップ” と呼ばれる場合もあります) として動作し、オブジェクトのどの領域が他の部分より強く反射するかを定義します。アルファの黒色の領域は鏡面反射が 0 となり、白色の領域は完全な鏡面反射となります。これはオブジェクトの異なる領域で鏡面の反射レベルを変更する必要がある場合に非常に有効です。例えば、錆びた金属などは低い鏡面性を使用し、磨かれた金属は高い鏡面性を使用します。口紅は肌よりも鏡面性が高く、肌は綿の服よりも高い鏡面性を有します。良好に作成された鏡面マップについては、プレイヤーに与える印象の度合いが大きく異なる可能性があります。

Performance

一般的にこのシェーダーのレンダリングコストはやや高いです。詳細については、シェーダーのパフォーマンスのページ を参照してください。

TransBumpedSpecular

Transparent/Bumped Diffuse
Transparent Parallax Diffuse