3

プログラム可能なパイプラインを使用してフラスタム カリングを行う最も効率的な方法を知りたいです。つまり、私が正しく理解していれば、ここで説明されている方法に従っていることを意味します:幾何学的アプローチ(ちなみに、ここで説明されている唯一の方法は、少し前に私のために働いていました)、 glGetFloatv(GL_MODELVIEW_MATRIX, ...) のような関数はもう有効ではありません。最終的な頂点位置は、シェーダー ステージで計算されます。レンダリング前に確認する必要があるバウンディング ボックスの変換ごとに、クライアント側でフラスタム プレーンを計算する必要がありますか?

ありがとう。

4

1 に答える 1

1

フラスタム カリングの考え方は、そもそもポリゴンが GPU に送信されないようにすることです。これらのポリゴンは、頂点シェーダーの後にカリングされることがわかっています。したがって、頂点シェーダーがこれらのポリゴンを変換するのを防ぐことが考えられます。シェーダーを使用するかどうかにかかわらず、最善の方法は、クライアント側で錐台平面を追跡し、シーン グラフ (階層ツリーまたは単なるリストである可能性があります) を走査し、錐台の外側にあるオブジェクトをカリングすることですglGetFloatv。 GPUからデータをコピーするため、効率的ではありません。代わりにフィードバック バッファーを使用できます。

于 2016-02-08T16:56:18.847 に答える