0

1 回のパスで複数のレンダー ターゲットにシーンをレンダリングできるかどうか (または、クライアント コードを使用して複数回描画するよりも高速な方法) を考えています。さまざまな寸法 (512 x 512、256 x 256、128 x 128、64 x 64 など) の複数のテクスチャにレンダリングされているコードを最適化したいと考えています。

元のターゲットから派生したミップ マップを使用できることはわかっていますが、色をブレンドしたくありません。ミップ マッピングはいくつかのテクセルから平均を取ると思いますが、私の目的のためには、グラフィックス カードによってレンダリングされる、レタッチされていないレンダリングが必要です。これを可能にするミップマップの設定があれば、それも実現可能な解決策として考えられます。

ちなみに、ミップマップがCPUまたはGPUで生成されるかどうかは誰にもわかりませんか?

読んでくれてありがとう。

4

2 に答える 2

1

あなたの質問に対する解決策はありません。MRT は異なる解像度では動作しません。ミップマッピングでは、オリジナルとまったく同じように見える小さなテクスチャを生成できません。実際、それを行う方法は絶対にありません。新しいグラフィックス カードでは、ミップマップが GPU で生成されます。1 つの質問: なぜ正方形のターゲットにレンダリングするのですか?

于 2010-08-02T09:33:13.873 に答える
0

Quang Anh が言うように、あなたが求めていることを正確に行う方法はありません。それで、あなたは実際に何を達成しようとしていますか?

ミップマップの縮小時に発生するブレンディングが気になる場合は、レンダー ターゲットを取得し、ポイント サンプリングを使用して別のレンダー ターゲットに (「フルスクリーン」クワッドで) レンダリングしてみませんか? (そして、必要なサイズごとにそれを繰り返します。)


次のコメントを追加しました。

深さ (または深さに類似したデータ) が含まれていて、ピクセルあたりの最大 (または最小) 深さを知る必要があり、毎回画像の解像度を半分にしている場合:

ポイントサンプリングを使用して、あるレンダーターゲットを別のレンダーターゲットにレンダリングすることにより、同じスケーリング手法を使用できます (上記の私の元の回答で説明したように)。また、ピクセル シェーダーでは、出力イメージで 1 ピクセルになる 4 つのピクセルをサンプリングします。出力するピクセルとして、4 つの値から最大 (または最小) の値のピクセルを選択するだけです。

(サンプルを並べるために必要な数学は、演習として残しておきます。)

于 2010-08-02T10:42:47.533 に答える