UDN
Search public documentation:

ShaderModel2FallbackJP
English Translation
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

Shader Model 2 フォールバック

本書の概要:Shader Model 2 フォールバック パスの概要。

本書の変更ログ:Daniel Wrightにより作成。

概要

UE3 は、フォールバックパスを介して、Shader Model 2 カードをいつでも必要な時にサポートします。

バージョン

Shader Model 2 カードの基本サポートは、 QA_APPROVED_BUILD_DEC_2006 に追加されました。主な変更点は、 SM2 でブレンディングされる浮動小数点の不足へのフォールバック追加や、互換性のあるグローバルシェーダの追加や、フォールバックマテリアルシステムの作成です。

QA_APPROVED_BUILD_FEB_2007 から、フォールバックマテリアルは、マテリアルエディタに公開されており、GPU モーフ 頂点ファクトリは一時的に無効になっています。

QA_APPROVED_BUILD_APR_2007 では、DOFAndBloomGather フォールバックが実装されました。

QA_APPROVED_BUILD_OCT_2007 では、SM2 Fallback がシーン カラーに LDR レンダリング ターゲットを使用するように変更され、大幅に最適化されました。

パスの選択

SM2 パスは、自動的にサポートしているハードウェアに使用されます。SM3ハードウェアでは、他のパラメータの後に、コマンドラインで-forceshadermodel2 を指定することにより、SM2 パスが選択されます。

HDR

QA_APPROVED_BUILD_OCT_2007 以後

SM2 パスウェイの HDR が、SM3 パスウェイの HDR とは異なる処理をされます。これは、いかなる SM2 カードもアルファ ブレンディングから浮動小数点レンダリング ターゲットをサポートしないためです。World DPG の BasePass は、浮動小数点「スクラッチ」レンダリング ターゲットにレンダリングされます。HDR カラーは rgb に格納され、シーン深度はアルファに格納されます。BasePass の直後に、シーン カラーは LDR レンダリング ターゲットにコピーされます。これは、ハードウェア ブレンディングが、残りのフレームに使用されるようにするためです。シーン深度は、残りのフレームでスクラッチ レンダリング ターゲットから読み取られます。シーン カラー レンダリング ターゲットは、線形空間に格納されます。これは、暗いカラーでの極端なバンディングに結果しますが、レンダリング ターゲットがガンマ空間にいる場合、いかなる SM2 カードも線形空間でのアルファ ブレンディングをサポートしないので、必要となります。LDR シーン カラー ターゲットは、そのアルファ チャンネルに輝度率を格納します。これは、ブルーム ポスト プロセス エフェクトによって使用されます。輝度率は単なる概算であり、間違っていることもあるので、過度なブルームを避けるために微調整が必要です。

LDR シーン カラー パスウェイは、以前の浮動小数点ブレンディング エミュレーションよりもほぼ 2 倍速いことに留意してください。これは解決の数が大幅に減少されることによります。

QA_APPROVED_BUILD_OCT_2007 以前

エミュレートされたステージ

UE3 では、HDR カラーを可能にするため、Scene Color (シーン カラー) を浮動小数点形式で格納します。現在、SM3 をサポートするすべてのハードウェアは、浮動小数点ブレンディングもサポートする (6200 のような低級なカードを除く) ので、シーン カラーへのブレンディングはまったく問題ありません。 一方で、SM2カードは、浮動小数点レンダリングターゲットへのブレンディングをサポートしませんが、浮動小数点ターゲットからのレンダリングやサンプリング(フィルタリングではなく)をすべてサポートします。UE3 は、SM2パスでHDR を使用し、シェーダで浮動小数点ブレンディングを実行します。下記にエミュレートした段階の総合的なリストを記載します:

  • Height fog(高さフォグ)
  • Fog Volumes(フォグボリューム)
  • Bloom effect (ブルーム効果) (統合したバージョンではない)
  • すべての変調可能なシャドウ
  • すべてのライトパス
  • 半透明性

半透明性は特別なケースです。LDR バッファにブレンドされ、最終パスでHDR シーンカラーに統合されています。つまりこれは、どの半透明性も 1 より高いコンポーネントでは色を放出できませんが、シーンカラーと統合された結果は、1 より高くなります。結果として、透明なサーフェス(ウィンドウなど)を通して表示されたオブジェクトは、同じような明るさになりません。半透明性は、このパスでは正確さに欠け、例えば、光線で帯域化が発生します。この方法のその他の制限は、Decal と変調シャドウ(各描画呼び出しにつき、1 つのレイヤーになるということがわかっている)を除き、変調ブレンディングがまったくサポートされていないことです。

パフォーマンスとのかかわり合い

シェーダ内で浮動小数点ブレンディングを行うことは、余分なテクスチャ検索といくらかの追加の演算命令が必要となります。これらは、どちらか言うとそれほど負荷をかけません。現在は、以前のステージからの出力サーフェスが次のステージの入力テクスチャにコピーされ、これは、すべてのライトで調節されたシャドウと Decal の後に起こります。これは、非常に非効率であり、QA_APPROVED_BUILD_OCT_2007 で最適化されました。

グローバル シェーダ フォールバック

  • 分岐型PCF シェーダは SM2 パスには使用されていません。有能なシャドウフィルタリングシェーダのみが、4 tap 原型版 PCFを行い、サポートされている場合は、ハードウェア PCF を使用します。
  • テクスチャ密度ビューモードは、このパスでは無効にされており、PS2.0で利用可能でない、スクリーンスペース傾き関数が必要です。
  • シェーダ複雑度ビューモードはこのパスでは、無効になっています。
  • DOFAndBloomGather は、16 ポイントサンプルを行い、 各サンプルと平均のbloom color off を演算する代わりに、bloom color off の平均を演算します。これは、可視的にエイリアシングを発生されますが、64 ALU命令内にシェーダを適合する必要があります。

他のグローバルシェーダは、不変のものに使用されます。

マテリアル フォールバック

shader model 2 のマテリアルをコンパイル時、各マテリアルは、不変にコンパイルされます。シェーダモデル制限 ( 64 ALU 以上、または、 値32 のTex 命令、 4 以上のテクスチャ依存度など) によりこれが失敗すると、マテリアルがコンパイルされるまで、specular(スペキュラー)、 normal(法線)、 diffuse(ディフューズ)および emissive(エミッシブ)、の順で値を一度に下げます。これは、自動または生成フォールバックと呼ばれています。生成処理が完全にスキップされた場合、Fallback Materialを指定することによりアーティストはオーバーライドすることができ、 Fallback Material がかわりにshader model 2で使用されます。