レンダーターゲットとは
コンピュータグラフィックスプログラミングでは、レンダーターゲットは、表示される次のフレームが描画されるコンピュータメモリの領域です。 レンダリング速度を上げるために最もよく使用されますが、レンダリングターゲットは通常、グラフィックスプロセッシングユニット(GPU)の近くのグラフィックスカード上の専用メモリの領域にあります。 概念はほぼ同じですが、レンダーターゲットに関連する実装と命名規則に若干の違いがあります。 これらは、使用されているプログラミング言語またはライブラリに依存します。一部の言語では、バックバッファ、フレームバッファオブジェクト、またはダブルバッファと呼ばれます。 また、特に3次元(3D)コンピューターグラフィックスでは、レンダーターゲットを使用してオブジェクトにテクスチャを描画し、コンパイル時に最終表示イメージを最適化することができます。 場合によっては、複数のレンダーターゲット(MRT)を使用して、フレームのさまざまな部分をさまざまなサーフェスに描画し、最終的なターゲットに合成することができます。
レンダーターゲットの概念は、ダブルバッファリングで使用されるプロセスに似ています。 画像は基本的にオフスクリーンサーフェスに描画されます。これは実際にはメモリの領域です。そのため、次のフレームをディスプレイデバイスまたはスクリーンに描画する時間になると、可能な限り迅速に処理できます。の描画機能はすでに実行されています。 多くの実装におけるレンダーターゲットとの違いは、使用されるメモリの領域がグラフィックカード上にあり、ハードウェアまたはGPUの他の側面を介して管理できることです。これにより、ソフトウェア管理のダブルバッファリング設計よりもはるかに効率的かつ高速になります。
3Dコンピュータグラフィックスプログラミングの場合、レンダーターゲットを使用して、表面テクスチャに画像を使用するオブジェクトのレンダリングを最適化できます。 レンダリングコンテキストはグラフィックスハードウェア内にあるため、3Dオブジェクトの非常に高速なラスタライズが可能になります。 この方法で特殊効果を描画することもできます。これにより、グラフィック情報のほとんどがグラフィックカード上で短い距離だけ移動されるため、バックバッファーでの最終シーンのアセンブリが非常に高速になります。
使用されているグラフィックスハードウェア、ドライバー、およびライブラリにより、レンダーターゲットの動作に多少の違いが生じる可能性があります。 特定の制約の1つは、MRTの使用にあります。MRTでは、グラフィックカードが同時に使用できるターゲットの数を決定します。 一部のカードでは、レンダリングターゲットのハードウェアサポートがまったくありませんが、通常、代替の方法で同様の機能を実現できます。