7

四角形の配列をボクセル フィールドに変換するコードを記述する必要があります。機能させるのは簡単なはずですが、高速化するのはそれほど簡単ではありません。

私が使用できるライブラリやソースコードを知っている人はいますか? 誰かが以前にこれをやったに違いないと確信しています。

編集: アルゴリズムは、モデルの内部もボクセルで埋める必要があります。シェルだけでは不十分です。

4

2 に答える 2

8

@Alexandre C. によって投稿されたボクセレーション リンクは良さそうです。

ここでは、フォトニクス/EM シミュレーションのために、通常の四角形/三角形モデルを屈折/イプシロン値のインデックスの立方体配列に変換するときに、この問題をどのように解決したかについて簡単に説明します。

  1. シーンの BSP ツリーを作成します。(はい、そうです)
  2. モデルまたはソリューション スペース全体で X、Y、Z を定期的に反復します。(各軸の間隔は、目的のボクセル ディメンションと等しくする必要があります。)
  3. x/y/z ループの各ポイントで、ポイントを BSP ツリーと照合します。エンティティ内にある場合は、その時点でボクセルを作成し、ソース モデル (BSP ノードから参照) に基づいてその属性 (色、テクスチャ座標など) を設定します。 (最適化のヒント: 最も内側のループが Y 軸 (垂直軸) に沿っており、地形または XZ 方向のサーフェスを作成している場合、ボクセルを作成するたびに Y ループを終了できます。)

  4. 保存

  5. 利益!

BSP の構築は唯一のやや複雑な部分です (一見したよりもはるかに簡単です) が、Web のいたるところで陰陽について文書化されています。これは、ほぼすべてのモデル形状で機能し、衝突検出や可視性の決定などに使用できる優れたツリーも提供します。

また、このプロセス全体はコンパイル時または専用ツールを使用して実行する必要があることに注意してください (実行時に使用するツリーとボクセル フィールドを含むファイルが生成されることは明らかです)。XNA を使用している場合、コンテンツ パイプラインに何でも簡単にインポートできます。

于 2010-11-27T19:25:10.673 に答える
1

マーチング キューブ アルゴリズムを確認します。問題のコンテキストでそれを逆にする必要があると思います!;)

于 2010-11-27T18:59:25.800 に答える