4

3D メッシュから始めて、そのメッシュのポリゴン間のエッジとコーナーに丸みを帯びた外観を与えるにはどうすればよいでしょうか?


他のアプローチを思いとどまらせることなく、現在私が問題に取り組んでいる方法は次のとおりです。

正多面体のメッシュが与えられた場合、メッシュのエッジに丸みを帯びた外観を与えることができます。そのためには、各ポリゴンをその平面に沿ってスケーリングし、各シリンダーがそのポリゴンと交わる各ポリゴンに正接するようにシリンダー セグメントを使用してエッジを接続します。

キューブを含む例を次に示します。

キューブ

ポリゴンをスケーリングした後の立方体は次のとおりです。

ポリゴンをスケーリングした後の立方体

円柱を使用してポリゴンのエッジを接続した後の立方体は次のとおりです。

角の丸い立方体

私が問題を抱えているのは、特に各コーナーで 3 つ以上のエッジが交わる場合に、ポリゴン間のコーナーを処理する方法を考え出すことです。また、通常の多面体だけでなく、すべての閉じた多面体で機能するアルゴリズムも必要です。

4

5 に答える 5

2

コメントに画像を入れることができないため、これを回答として投稿します。

サトルポイント

これは、2 人の兄弟がキャンプをしている画像です。

サトルポイント

彼らは単純なテントを急勾配のウォールリーの真ん中に並べて配置しました (これはテントにとって悪い場所の 1 つですが、それはポイントではありません)。そのため、各テントの一方の端が上を向いています。4 つの正方形が交わる点にサトル ポイントがあります。各テントの上部の 2 つのエッジと、下向きの 2 つのエッジは、通常どおり丸くすることができます。しかし、収束点では、両方向で曲率が異なるため、球体を使用することはできません。これは、Svante のソリューションを除外します。

自己交差

次の画像は、側面から見た場合の 3D ポリゴンを示しています。反対側から穴が開けられた鋭利なものです。左が丸め前、右が丸め後の画像です。

代替テキスト .

鋭いエッジから取り除かれた質量は、ドリル穴の端を含みます。

ここには他にも見るべきものがあります。ドリル穴の側面は非常に大きなポリゴンである可能性があります (穴ではなくスリットとしましょう)。それでも、上部で小さな半径しか得られません。ポリゴンをスケーリングするだけではなく、隣接するポリゴンを考慮する必要があります。

凸面

質量のみを削除していると言いますが、これはジオメトリが凸状である場合にのみ当てはまります。投稿した画像を見てください。しかしここで、視聴者がボリューム内にいると仮定します。半径はあなたから遠ざかるため、質量が追加されます。

NURBS

私は NURBS のスペシャリストではありません。ただし、制約は次のようになります。NURBS パッチのコーナーは、縮小されたポリゴンのコーナーと同じ位置にある必要があります。コーナーの NURBS サーフェスの法線ベクトルは、ポリゴンの法線と等しくなければなりません。これは、NURB エッジがポリゴン エッジに続く直線になることを保証するのに十分なはずです。また、法線は、ポリゴンと NURBS パッチの間の境界でエッジが見えないようにします。

私は自分で計算するだけです。NURBS は単なるポリゴンです。未知の係数と制約がいくつかあります。これにより、解くことができる連立方程式 (多くの場合線形) が得られます。

于 2010-08-16T13:19:23.193 に答える
1

ここでは、三角形化された丸い 3D ボックスを生成するための単一の C++ ヘッダーがあります。コードは C++ ですが、他のコーディング言語への移植も簡単です。また、クワッドなどの他のプリミティブ用に変更するのも簡単です。

https://github.com/nepluno/RoundCornerBox

于 2016-12-28T07:04:00.223 に答える
1

そのコーナーで交わる面の数に上限はありますか?

CAGD の概念を採用するかもしれません。特に、Non-Uniform Rational B-Splines (NURBS) に興味があるかもしれません。

あなたの現在のアプローチ - いくつかの固定された幾何学的プリミティブを接着することは、問題を解決するには柔軟性に欠ける可能性があります。NURBS に慣れるには数学的な作業が必要ですが、ニーズにより適している場合があります。

于 2010-08-14T22:32:52.550 に答える
1

シリンダーエッジアプローチを推定すると、コーナーは球体である必要があります。円柱と同じ半径を持ち、円柱の軸の交点を中心とする球セグメント。

于 2010-08-15T01:09:08.310 に答える