1

いくつかの球、立方体、および長方形の壁を備えた、床としての平面を持つ単純なシーンを directx11 で作成しました。読み込まれるオブジェクトは、平面、立方体、球の 3 つだけです。ただし、立方体と球体は、スケーリング、位置、および回転が異なる複数回インスタンス化されています。これらのオブジェクトのうち 2 つは動的です。

スケールと回転が異なるオブジェクト インスタンスを考慮して、このシーン全体 (100x100x20 単位) を 0.2 単位のボクセルにボクセル化したいと思います。

ボクセル化に関するいくつかの記事を読み、「Direct3D 11 を使用した実用的なバイナリ サーフェスおよびソリッド ボクセル化」の GPU Pro 3 のソース コードを入手しました。しかし、これらの記事はすべて、単一のオブジェクトのボクセル化を示しています - それらの三角形を取り、それらをグリッドに分割します.

これらのメソッドを拡張して、複数のオブジェクト インスタンスを持つシーン全体を考慮するにはどうすればよいでしょうか?

考えられる唯一のことは、シーン全体をトップダウンで octree 分割する必要があるということです。しかし、動的なシーンの場合、これはコストが高すぎるでしょうか?

私のシーンでは、読み込まれたモデルごとにバッファを使用しています。したがって、Compute Shader でボクセル化する場合、3 つのバッファすべてを 1 つのバッファにコピーする必要がありますか? モデル インスタンスはどのように説明すればよいですか?

ありがとうございました。

4

0 に答える 0