私はQGLWidget
3D オブジェクトを描画するために使用しています。プログラムへの入力は形状の面です。
つまり、立方体を描きたいときに、それぞれが面を表す 6 つの要素のリストを取得し、各面には各点 (x、y、z) の 4 つの点が含まれます。
描画は完了しましたが、断面フィーチャを実装しようとしています。これまでのところ、断面後の結果の形状は中空のオブジェクトです。形状が中空ではないかのように断面の結果を取得するにはどうすればよいですか?
OpenGL は「オブジェクト」を認識していません。「固体」か「中空」かわかりません。OpenGL が認識しているのは、点、線、および三角形だけです。オブジェクトをソリッドに見せたい場合は、切り取ったオブジェクトのジオメトリを計算して新しいメッシュを作成する必要があります。これを描画の入力データとして使用します。
カットアウェイ プロセスは、「構成立体ジオメトリ」とも呼ばれる「ブール幾何演算」として知られる一連の演算の一部です。そのためにグーグルで検索すると、多くの情報が見つかります。
あなたが達成しようとしているのは、2 つのジオメトリ オブジェクトに対するブール演算だと思います。この目的のために、Boost には完全なジオメトリ ライブラリがあり、このアルゴリズムの 1 つが必要です: diffまたはIntersection。例があれば、特定のオブジェクト構造に合わせて簡単に変更できます。