0

特定のクワッドに対して返される値が u 軸の値によってのみ変化するプロパティを持つピクセル シェーダーを作成しています。つまり、u が固定されている場合、v が変化してもカラー出力は一定です。

ピクセルで色を計算するための計算は比較的高価です。つまり、ピクセルごとに複数のサンプルを実行するか、ループなどを行います。

v-invariance プロパティを利用する方法はありますか? 私がCPUでこれを行っていた場合、明らかに一度計算された値をキャッシュするだけですが、並列処理のためにそれは当てはまらないと思います. テクスチャの生成を CPU 側に移動して、シェーダーが Texture1D にアクセスできるようにすることは可能かもしれませんが、それがどれほど高速になるかはわかりません。

GPU カードでこの状況に適合するパラダイムはありますか?

乾杯

4

1 に答える 1

1

データを 1D テクスチャに保存し、それをピクセル シェーダーでサンプリングすることは、良い解決策のようです。GPU はテクスチャ キャッシング機能を使用できるようになり、多くのピクセルが 1D テクスチャから同じ値を使用しているという事実を利用できるようになります。これは非常に高速である必要があります。テクスチャのフェッチとキャッシュは、GPU のレンダリングが非常に効率的である主な理由の 1 つです。

ピクセル シェーダーで値を計算するか、ルックアップ テーブル テクスチャを使用するかのトレードオフを行うのが一般的です。音に合わせて複雑な計算を行っているため、ルックアップ テクスチャを使用すると、確実にパフォーマンスが向上します。

このテクスチャを GPU で生成することもできますが、CPU に移動する必要はありません。既存のシェーダー コードをプリパスとして使用して、この 1D テクスチャにレンダリングするだけです。

于 2013-03-24T17:36:41.177 に答える