b-rep モデリング システムを構築するための優れた実装戦略やリソースを持っている人はいますか?
OpenCascade は明らかに b-rep モデリング用の優れたライブラリです (FreeCad と PythonOCC で使用されているものはどちらも非常に優れています) が、ライブラリは巨大で複雑であり、b-rep モデリングの「エンジン」について学ぶための良い出発点ではない可能性があります。
私はかなりの量の研究論文を読みました。基本的な数学はすべてが機能する理由を理解するのに役立ちますが、実装に関するいくつかの疑問が残りました。
ハーフエッジデータ構造は、b-rep 実装でボディに関する情報を格納するための推奨される方法のようです。
したがって、順不同でいくつかの質問があります。
ハーフエッジのデータ構造を使用して、レンダリングは通常どのように実装されますか? 立体の境界に基づく三角測量?
円形面/曲面は通常どのように実装されますか? たとえば、私が読んだ b-rep の基本的な紹介の 1 つのシリンダーは、プリズムとして内部に保存されていました。押し出された三角形であり、メタデータは、それらが実際に円形であることを示すキャップ面について保存されました。
ブール演算は通常どのように実装されますか? 交差曲線に沿って BSP ツリーを生成し、それらのツリーを組み合わせて新しいジオメトリを生成することについて読んだことがあります。ブール演算を実装する他の方法はありますか?また、どのような長所/短所がありますか?
ありがとう!
コード例を提供したい場合は、言語について心配する必要はありません。質問は、アルゴリズム/データ構造の実装の詳細に関するものです。