「マーチング四面体アルゴにあいまいさがあるのはなぜですか?」という質問に答えるため。マーチングキューブ法で最初にあいまいさが生じる理由を理解する必要があります。
立方体に2つの対角線上にある「正の」頂点と2つの対角線上にある「負の」頂点がある場合、あいまいさが発生する可能性があります。頭を悩ませるのに少し時間がかかりましたが、あいまいさの問題は、理論的には、互いに互換性のない隣接する立方体の等値面パッチを作成できることです。それは明らかな部分です。興味深い部分は、2つのあいまいな構成からの2つの隣接する等値面パッチは、一方が「負の」頂点を分離し、もう一方が「正の」頂点を分離する場合にのみ互換性がないことです。
これは、Rephael Wengerのすばらしい本「IsosurfacesGeometry、Topology&Algorithms」からの関連する引用です(2つ以上のリンクを投稿できないため、この本の関連するすべての画像を1つに統合しました)。
立方体の3次元等値面パッチの境界は、立方体の各正方形ファセットの等値面を定義します。一部の構成の等値面パッチがファセットの負の頂点を分離し、隣接する構成の等値面パッチが正の頂点を分離する場合、共通ファセットの等値面エッジは整列しません。図2.16の等値面パッチは、どのファセットの正の頂点も分離しません。さらに、構成の回転または反射で導出された等値面パッチも、ファセット上の正の頂点を分離しません。したがって、隣接する2つの立方体の等値面パッチは、それらの境界に適切に配置されます。同様に有効ですが、組み合わせて区別されます。
これが意味するのは、使用されるすべてのあいまいな構成が同じパターンに従う場合(つまり、常に「負の」頂点を分離する場合)、トポロジ的に不正確なサーフェスを生成することは不可能であるということです。また、単一の等値面に対して「両方の世界からの」構成を使用すると、問題が発生します。
同じあいまいさの解決パターンを使用して構築されたサーフェスには、このような不要なエラーが含まれている可能性があります(Thomas Lewiner Helio Lopes、Antonio Wilson Vieira、Geovan Tavaresによる「マーチングキューブのケースのトポロジカル保証付きの効率的な実装」の記事から引用)。あなたが言ったように、水密になります。
これを実現するには、図2.16に示す22の固有の構成(標準の14または15ではない)に基づくルックアップテーブルを使用する必要があります。
さて、ついに元の質問に戻りましょう-なぜマーチング四面体は曖昧さに悩まされないのですか?同じ理由で、上記のように実行した場合、マーチングキューブにあいまいさはありません。これは、あいまいな構成解決の2つの利用可能なバリアントのいずれかを任意に使用することを選択したためです。マーチングキューブでは、これがオプションであるかどうかはまったくわかりません(少なくとも私にとっては、多くの掘り下げを行う必要がありました)が、マーチング四面体では、アルゴリズム自体によって実行されます。RephaelWengerの本からの別の引用は次のとおりです。
通常のグリッドキューブの構成はあいまいですが、四面体分解にはありません。あいまいな構成はどうなりましたか?これらの構成は、三角形分割を選択することで解決されます。たとえば、図2.31では、最初の三角測量により、図2.22の2B-IIに対応する2つのコンポーネントを持つ等値面パッチが得られ、2番目の三角測量では2B-Iに対応する1つのコンポーネントを持つ等値面パッチが得られます。
図2.31で、立方体が2つの異なる方法で四面体にスライスされる方法に注意してください。このスライスまたは他のスライスの選択は、あいまいさを解決する秘密のソースです。
すべてのキューブに同じパターンを使用するだけであいまいさの問題を解決できるのなら、なぜもっと複雑な解決策についての本や論文がたくさんあるのでしょうか。Asymptotic Deciderなどが必要なのはなぜですか?私が知る限り、それはすべてあなたが達成する必要があることに帰着します。トポロジーの正確さ(たとえば、穴がない)で十分な場合は、すべての高度な機能は必要ありません。上記の「マーチングキューブの効率的な実装」の記事に示されているような問題を解決したい場合は、さらに深く掘り下げる必要があります。
Rephael Wengerの著書「IsosurfacesGeometry、Topology&Algorithms」の関連する章を読んで、これらのアルゴリズムの性質、問題とは何か、問題はどこから来ているのか、どのように解決できるのかを理解することを強くお勧めします。
Li Xiaoshengが指摘したように、最初にマーチングスクエアのアルゴを注意深く調べることで、基本をよりよく理解できます。実際、全体の答えはLi Xiaoshengによって定められたので、説明を少し拡張しました。