Blend モードは、現在のマテリアルの出力と既に描画されている背景のブレンドを表現します。技術的に言うと、このマテリアルが別のピクセルの前でレンダリングされる時、エンジンがマテリアル (Source color) と既にフレームバッファ (Destination color) にあるカラーを結合する方法の制御を可能にします。
デモ用に、カメラと 2 つのオブジェクトがある簡単なシーンを設定しました。最初のオブジェクトを用いて、Blend モードを変更するにつれて背景にどのような影響が及んでいるかを見ていきます。
Opaque
Opaque Blend モードは最も単純です。おそらくユーザーにとって一番使用頻度の高いモードです。通過または貫通しないライトで表面を定義します。プラスチック、メタル、石、より大きなその他の表面タイプに最適です。
シーンの設定 | カメラのビュー |
Masked
Masked Blend モードは、バイナリ (オン/オフ) 形式で、選択的に可視性を制御する必要のあるオブジェクトに使用します。例えば、金網のフェンスや格子をシミュレートするマテリアルを考えてみましょう。不可視な領域とソリッド (空ではない) 領域がそれぞれあります。このようなマテリアルに Masked Blend モードの使用が最適です。
透明性とレンダリング処理をしないことの違いは、留意しなくてはいけない重要な点です。ガラスのような透明な表面は、反射 (スペキュラリティ) する形でライトと作用します。Masked モードでカリングされたピクセルは 描画しない ので、この領域に反射を見ることはできません。反射もしくはスペキュラの外観を維持したい場合、Translucent Blend モードを使用するか、レイヤーマテリアルを作成します。
さらに、これらの機能はマスクされている領域ではレンダリングしないので計算の必要が全くなく、GPU でのパフォーマンスを節約することができます。
シーンの設定 | カメラのビュー |
Masked Blend モードを使用時は、Opacity Mask Clip Value プロパティに特別な注意をはらわなくてはいけません。このプロパティは、カットオフ ポイントとして使用されるオパシティマスク テクスチャの値を制御する 0-1 のスカラー値を保持します。この値を超えると darker ピクセルとなりレンダリングされません。
Opacity Mask Clip Value (スライダーをドラッグしてプレビューする) | マテリアル ネットワーク |
前述の例で、マテリアルの Two Sided プロパティは True (チェックあり) に設定されています。ボックスの中が見える理由はこの設定にあります。
ここで表示する相互作用の例にもかかわらず、Opacity Mask Clip Value プロパティはランタイム時に変更できる設計にはなっていません。
Translucent
Translucent Blend モードは、何らかの形で透過処理が必要なオブジェクトに使用します。
Blend モードはオパシティ値またはテクスチャを受け取り、黒い領域が完全に透過している表面、白い領域が完全に不透明な表面、その間のさまざまな影のグラデーションが対応する透明レベルの結果へ適用することにより機能します。つまり、グレーのオパシティテクスチャは、背景の一部のみを透過した処理がされているように見えるオブジェクトを持つことができます。
シーンの設定 | カメラのビュー |
透過処理のされたマテリアルを使用する場合は、現時点ではスペキュラリティ (鏡面反射性) がサポートされていないことを考慮することが重要です。つまり、表面上で反射を見ることはできません。以下とのようなネットワークで キューブマップ を使用すると、このような反射に見せかけることができます。
加算
Additive Blend モードは、マテリアルのピクセルを背景のピクセルへ追加します。この機能は、Photoshop の Linear Dodge (Add) ブレンドモードと非常に似ています。つまり、ピクセル全ての値は一緒に 混ぜ合わされて、黒は透明でレンダリングされるので暗い部分がありません。Blend モードは、火、スチーム、ホログラムなどの特殊効果に実用的です。
Translucent Blend モード同様に、Blend モードはスペキュラリティ (例えば反射) を考慮しません。ユーザーはブレンドの付加的な性質をおそらく使用しないと思いますが、上記の Translucen セクションで紹介したキューブマップの手法で反射のような効果をシミュレーションすることが可能です。
シーンの設定 | カメラのビュー |
Modulate
Modulate Blend モードは、マテリアルの値を背景のピクセルに対して乗算します。この機能は Photoshop の Multiply ブレンドモードと非常に似ています。
上のグラフでは、マテリアルはシェーディング モデルが Unlit でブレンドモードが_Modulate_ に設定されています。
シーンの設定 | カメラのビュー |
Modulate ブレンドモードは、一部のパーティクル エフェクトで最適なものです。しかし、ライティングや透過分離をサポートしていないため注意を払わなければなりません。
モード | 説明 |
---|---|
BLEND_Opaque | 最終カラーはソースカラーになります。つまり、マテリアルは背景の上に描画されるということです。ブレンドモードは光源処理と互換性があります。 |
BLEND_Masked | OpacityMask > OpacityMaskClipValue の場合、最終カラーはソースカラーになります。そうでなければ、ピクセルは破棄されます。ブレンドモードは光源処理と互換性があります。 |
BLEND_Translucent | 最終カラーは「ソースカラー * オパシティ + Dest カラー * (1-オパシティ)」となります。このブレンドモードは、動的な光源処理と互換性が ありません。 |
BLEND_Additive | 最終カラーは「ソースカラー + Dest カラー」となります。このブレンドモードは、動的な光源処理と互換性が ありません。 |
BLEND_Modulate | 最終カラーは「ソースカラー + Dest カラー」となります。デカール マテリアルでない限り、このブレンドモードは動的な光源処理とは互換性が ありません。 |