OpenGLで四面体メッシュをレンダリングしています。各四面体は、各面に三角形を使用して描画されます(四面体ごとに合計4つの三角形)。メッシュの内部要素を削除する簡単な方法を探しています。たとえば、メッシュの形状が単位球(原点を中心とする)の場合、四面体の各面の3つの座標を平均して、原点からの距離が最大になる面のみを描画できます。これにより、球殻が生成されます。
私が扱っているメッシュは球よりも複雑です:)。
あなたの説明に基づいて、面が1つの四面体の一部にすぎない場合、面はシェルの一部であると思います。面の各点に接続された点のリストを作成することにより、面が含まれる四面体の数を見つけることができます。次に、3つのリストすべてに共通する各リストのポイントの数を見つけます。これは、面/三角形が含まれる四面体の数です。
私が考えることができる高レベルの擬似コードは次のとおりです。
bool isPartOfShell(Triangle triangle)
{
foreach(Point p in triangle)
make a list of all connected points in p
x = the number of points common in all lists
return x == 1;
}