回答:
スキンシェーダーのメッシュ曲率の推定値が必要な場合、最終的に解決したアルゴリズムは次のとおりです。
まず、メッシュの各エッジのスカラー曲率を計算しました。エッジの位置が、法線が場合、曲率は次のように推定されます。
これは、エッジに沿って投影された法線の差を、エッジの長さの一部として計算します。(この式を思いついた方法については、以下を参照してください。)
次に、各頂点について、それに接するすべてのエッジの曲率を調べました。私の場合、「平均曲率」のスカラー推定が必要だったため、各頂点でのすべてのエッジ曲率の絶対値の幾何平均を取ることになりました。あなたの場合、最小と最大の曲率を見つけて、それらのエッジを主要な曲率方向とすることができます(頂点法線で正規化するかもしれません)。それは少し荒いですが、それはあなたがやりたいことのためにあなたに十分な良い結果を与えるかもしれません。
この式の動機は、円に適用したときに2Dで何が起こるかを見ることです。
半径円があり(その曲率が1 / r)、円上に2つの点があり、法線がn 1、n 2であるとします。円の中心に対する点の位置は、円または球の法線が常に中心から直接指すという性質により、p 1 = r n 1およびp 2 = r n 2になります。
したがって、として半径を回復できます。p 1 | / | n 1 | または| p 2 | / | n 2 | 。ただし、一般に、頂点の位置は円の中心に対して相対的ではありません。これを回避するには、p 2 − p 1の2つを引きます。
結果は、円と球についてのみ正確です。ただし、これを拡張してもう少し「寛容」にし、任意の3Dメッシュで使用することができます。最初にベクトルをエッジの方向p 2 − p 1に射影することにより、式をより「寛容」にすることができます。これにより、これらの2つのベクトルは正確に平行ではありません(円の場合)。並列ではないコンポーネントをすべて除外します。これを行うには、正規化されたエッジベクトルで点を打ちます。 曲率
そして、この答えの一番上に現れた式があります。ところで、符号付き投影(ドット積)を使用することの良い利点は、式が符号付き曲率を与えることです:凸面では正、凹面では負です。
私が使用を想像できるもう1つのアプローチは、試していませんが、各頂点での表面の2番目の基本的な形状を推定することです。これは、頂点に接線基底を設定してから、すべての隣接する頂点をその接線空間に変換し、最小二乗法を使用して最適な2FFマトリックスを見つけることで実行できます。その場合、主な曲率方向はその行列の固有ベクトルになります。これは、それらの方向を明示的に指すエッジなしで、隣接する頂点によって「暗示された」曲率方向を見つけることができるため、興味深いように見えますが、一方で、より多くのコード、より多くの計算、そしておそらく数値的に堅牢ではありません。
このアプローチを採用した論文は、Rusinkiewiczの「三角形メッシュ上の曲率とその派生物の推定」です。これは、三角形ごとに最適な2FFマトリックスを推定し、頂点ごとにマトリックスを平均化することで機能します(法線がどのように滑らかに計算されるかに似ています)。
優れた@NathanReedの回答に別の方法を追加するだけで、離散ラプラスベルトラミで得られる平均曲率とガウス曲率を使用できます。
ガウス曲率は次のとおりです。
この痛みのすべての後、主要な離散的な曲率は次のように与えられます。
主題に興味がある場合(およびこの投稿への参照を追加する場合)、優れた読み物は次のとおり です。三角形分割2多様体の離散微分幾何演算子 [Meyer et al。2003]。
画像については、前教授のNiloy Mitraに感謝します。彼の講義のために取ったメモで見つけたからです。