2

私の質問は非常に基本的です。

HLSLシェーダー命令またはシェーダーコード内に、GPUがインデックスバッファーの配列内で最大になっている現在の場所にアクセスする方法はありますか?GraphicsDevice.DrawIndexedPrimitives()メソッドを介してVertexBuffersとIndexBuffersをメッシュごとにグラフィックスパイプラインに渡すXNA GameStudio4.0を使用しています。GPUが内部でIndexBufferを反復処理することは知っていますが、GPUが現在あるIndexBuffer内のエントリを確認できることを期待していました。

擬似コードで私が何を意味するかを表現するには:IndexBuffer [i]、ここで、GPUが現在処理しているiの値を知りたいです。

その理由は、現在レンダリングされているポリゴンを知りたいのですが、単一の頂点は常に複数のポリゴン間で共有されているため、頂点を知っているだけではわかりません。

私の質問は明確ですか、誰かが私を助けることができますか?

前もって感謝します。

4

1 に答える 1

0

簡単な答え: 頂点を共有せず、ポリゴン ID を頂点属性として含めます。

テッセレーションに関する特別な事実を知っていれば、より洗練された答えが得られる可能性があります (たとえば、テッセレーションが球体である、または UV がグリッド内に配置されているなど - ポリゴンの配置が予測可能である)。

于 2013-03-07T01:42:29.307 に答える