2

バイナリ スペース パーティション ツリーによって指定された 3D ボリュームがあります。通常、これらはポリゴン モデルから作成され、分割されたポリゴンはツリー ノード内に既に格納されています。

しかし、私のものはそうではないので、ポリゴンはありません。すべてのノードには、切断面以外には何もありません (たとえば、法線と原点の距離によって与えられます)。したがって、ツリーは、作成されたすべてのカットによって定義されるソリッド 3D ボリュームを表します。ただし、視覚化するには、このボリュームのポリゴン メッシュが必要です。どうすればそれを効率的に再構築できますか?

大雑把な方法は、葉の無限の半空間を十分な大きさの多面体 (立方体など) に変換し、それらのすべてをツリーの上に押し上げて、通過するすべてのノードの平面で切断することです。ツリーのバランスが取れていない可能性があるため(たとえば、凸多面体から愚かに作成された場合)、これは非常にコストがかかるようです。古典的な解決策はありますか?

4

1 に答える 1

1

ポリゴンサーフェスを復元するには、平面と交差する必要があります。ポリゴンの各頂点は3つの平面の交差によって生成され、各エッジは2つの平面の交差によって生成されます。しかし、これを効率的で数値的に安定させることは簡単な作業ではありません。だから私はqhullqhalfの一部である使用を提案します。の入力と出力のドキュメントはここにあります。もちろん、ライブラリとして(およびからの機能を)使用することができます。qhalfqhullqhalf

于 2012-10-23T18:15:40.627 に答える