32

建設的なソリッド ジオメトリテクニックを使用してシェイプを構築する場合、レンダリング用のワイヤフレーム メッシュを構築するにはどうすればよいですか? CSG シェイプを直接レンダリングするアルゴリズムは知っていますが、一度だけワイヤフレーム メッシュに変換して、「通常どおり」レンダリングできるようにしたいです。

もう少し詳細を追加します。「ここに立方体、ここに球体との交点、ここに円柱を引く」などの形状の説明があれば、ポリゴン メッシュを計算できるようにしたいと考えています。

4

7 に答える 7

4

これらのライブラリは、あなたが望むことをしているようです:

www.solidgraphics.com/SolidKit/carve-csg.com/gts.sourceforge.net/

于 2010-04-25T17:53:17.033 に答える
3

「三角多面体の構成立体幾何学」(1990) Philip M. Hubbard doi:10.1.1.34.9374も参照してください。

于 2010-07-11T08:44:36.367 に答える
2

役に立つと思われる Google Scholar のリンクをいくつか紹介します。

要約から分かることは、基本的な考え方は、CSG モデルで利用可能なボリューム データからポイント クラウドを生成し、次にいくつかのより一般的なアルゴリズムを使用して 3D で顔のメッシュを生成し、そのポイント クラウドに適合させることです。

編集:さらに調査を行うと、この種の操作は「CSGからB-Rep(境界表現)への変換」と呼ばれます。その文字列を検索すると、便利な PDF が表示されます。

http://www.scielo.br/pdf/jbsmse/v29n4/a01v29n4.pdf

さらに詳しく説明すると、重要なアルゴリズムは「マーチング キューブ アルゴリズム」と呼ばれます。基本的に、CSG モデルを使用してボクセルを含むオブジェクトのボリューム モデルを作成し、マーチング キューブ アルゴリズムを使用してボクセル データから 3D メッシュを作成します。

于 2010-01-04T23:23:26.477 に答える
1

私はBRL-CADアプリケーションMGEDで運が良かったので、CSGを使用して平面を交差させ、コマンドラインのg-stlコマンドを使用して境界表現を抽出することにより、凸多面体を構築できます。http://brlcad.org/Malcolmを確認して ください

于 2012-05-08T00:03:01.733 に答える
1

入力プリミティブを多面体メッシュに変換できる場合は、libigl の C++ メッシュ ブーリアン ルーチンを使用できます。以下は、メッシュ (VA、FA) と別のメッシュ (VB、FB) の結合を計算します。

igl::mesh_boolean(VA,FA,VB,FB,"union",VC,FC);

ここで、VA は頂点位置の 3 行列による #VA であり、FA は VA への三角形インデックスの 3 行列による #FA などです。libigl で使用される手法は、Joe の回答で言及されている 2 つの手法とは異なります。三角形のすべてのペアが互いに交差し (空間加速度を使用)、結果のサブ三角形が出力サーフェスに属するかどうかに分類されます。

于 2015-04-20T21:32:22.843 に答える