球体とオブジェクトの 2 つのオブジェクトがあります。表面再構成を使用して作成したオブジェクトなので、オブジェクトの方程式はわかりません。オブジェクトと球が交差するとき、球上の交点を知りたいです。球と円柱があれば、方程式を解いて面積を求めることができますが、ここでの問題は、物体が一様でないことです。
球の交点または領域を見つける方法はありますか?
球体とオブジェクトの 2 つのオブジェクトがあります。表面再構成を使用して作成したオブジェクトなので、オブジェクトの方程式はわかりません。オブジェクトと球が交差するとき、球上の交点を知りたいです。球と円柱があれば、方程式を解いて面積を求めることができますが、ここでの問題は、物体が一様でないことです。
球の交点または領域を見つける方法はありますか?
三角形と球との交点を見つけることから始めます。最初に、各三角形の平面と球の交点を見つけます。これにより円が得られます。次に、線/円テストを使用して、円と三角形のエッジとの交点を 2D で見つけます。結果は、線で近似できると思われる多くの円弧になります。最終目標を知らずに、ここからどこへ行くべきか本当にわかりません。
それがあなたが求めている表面積であれば、おそらく数値的なアプローチがより良いでしょう。球をポイントで覆い、不均一なオブジェクト内の数を数えます。ポイントが内側にあるかどうかを調べるには、外側にトレースしてサーフェスとの交点を数えます (奇数の場合、ポイントは内側にあります)。必要に応じて、これにステンシル バッファーを使用できます (ステンシル シャドウと同様)。
交差のボリュームが必要な場合は、Google ですばやく検索すると、メッシュ ベースの CSG ライブラリである「carve」が表示されます。
三角形と球体から始めると、交点が得られます。
各サーフェスと交差する弧を取り、それらを組み合わせて球の周りにフェンスを作成できます。理想的には、再構築されたオブジェクトがウィングド エッジ フォーマットであるため、1 つのフェンス セグメントから次のフェンス セグメントに移動するだけで済みますが、再構築されたサーフェスでは、少しファジーなロジックを適用する必要があるかもしれません。
各フェンスのどちら側が再構築されたオブジェクトの内側にあり、どちら側が外側にあるかは、フェンスに沿ったサーフェス法線を考慮して決定できます。
次に、フェンスに沿って球をカットし、内部ビットをディスプレイに追加できます。
反対側では、球の内側にある三角形を完全に削除し、交差する三角形を切り取ることができます。