3D コンピュータ グラフィックスの分野において、マルチ レンダー ターゲット(MRT) は、プログラマブルレンダリング パイプラインが複数のレンダー ターゲット テクスチャに同時に画像をレンダリングできるようにする、最新のグラフィックス プロセッシング ユニット(GPU)の機能です。これらのテクスチャは、他のシェーダへの入力として使用したり、 3D モデルに適用されるテクスチャ マップとして使用したりできます。OpenGL 2.0 および Direct3D 9 で導入されたMRTは、ビデオ ゲームなどのリアルタイム 3D アプリケーションに非常に役立ちます。MRT が登場する前は、プログラマは各レンダー ターゲット テクスチャに対して 3D シーンを 1 回描画するように GPU にコマンドを発行する必要がありました。その結果、冗長な頂点変換が発生し、可能な限り高速に実行することが期待されるリアルタイム プログラムでは、非常に時間がかかる可能性がありました。MRT では、プログラマは各レンダー ターゲットの出力値を返すピクセル シェーダを作成します。このピクセル シェーダは、1 回の描画コマンドですべてのレンダー ターゲットにレンダリングします。
MRT の一般的な用途は、ディファード シェーディングです。これは、フォワード シェーディングとは異なり、個々のオブジェクトではなく 3D シーン全体の照明計算を一度に実行するシェーディング プロセスです。これをリアルタイムで実行するために、MRT は、照明計算に必要な情報を複数のレンダリング ターゲットに格納するために使用されます。これらの情報は、シーン全体が描画された後に、照明された最終イメージを計算するために使用されます。通常、1 つのレンダリング ターゲットにはオブジェクトの色と表面の情報が格納され、もう 1 つのレンダリング ターゲットには、光の反射を計算するために使用されるシーンの表面法線と深度情報が格納されます。追加のレンダリング ターゲットを使用して、表面の鏡面反射やアンビエント オクルージョンデータ などの情報を格納できます。
参照
- ディファードシェーディングは、リアルタイムで実行するためにMRTに大きく依存するシェーディングプロセスです。
