私は3Dモデリングアプリケーションを持っています。今は両面メッシュを描画していますが、オブジェクトが閉じているときには片面に切り替える必要があります。閉じた多角形メッシュが反転していますか?
ポリゴンメッシュが閉じている(境界線がない/完全に周期的な)場合、オブジェクトが現在反転しているかどうかを常に確認して、自動的に修正する必要があるようです。
フリップされているということは、法線がオブジェクトからではなくオブジェクトを指し示すことを意味します。私の巻き線の規則と現在のフロントフェイスの設定が一致していないため、反転されていますが、法線から直接法線を計算するので、法線を見るのは簡単な方法です。
私が考えていたことの1つは、バウンディングボックスを取り出し、最高点を見つけて、その通常点が上下にあるかどうかを確認することでした。もしそれがダウンしていれば、オブジェクトは反転します。
しかし、このソリューションは縮退したジオメトリや浮動小数点エラーでエラーが発生する可能性があります。私は1つの点しか見ていないためです。私は6軸のすべてのエクステントを得ることができたと思いますが、それはちょっと良いクルージュのように思えますが、適切な解決策ではありません。
これを行うための堅牢で簡単な方法はありますか?堅牢なハードも働くだろう.. :)これはそこに着くための堅牢な、しかし遅い方法です
「反転した」とはどういう意味なのか、つまりx、y、zに反転していることを説明してください。 –
法線が内側を指している場合(外側を指している必要があるため)、彼はそれを意味すると思います。 –
あなたはアプリを書いているので、すべての三角形が「右手のルール」に従うという規約を紹介できますか?すなわち、ポイント0からポイント2までの三角形の周りに右手を巻きつける場合、法線は親指の方向を指します。 –