2016-11-18 6 views
0

私は3Dメッシュを持っており、その表面に3Dベジェ線を描画したいと思います。最善のアプローチは何でしょうか?既存のメッシュの上にベジェを描く

メッシュを描画し、その表面の点を選択し、それらの点に基づいてベジェを描画するために必要なコードがすべてあるものとします。

素朴なアプローチは、単純にいくつかの点を選択し、それらを通過するベジェを描画することですが、その面上にあるのではなくメッシュと交差することができます。このための簡単な解決策はありますか?

+0

「上にいる」とはどういう意味ですか? –

+0

それほど簡単ではありません。 1つの方法は、メッシュのパラメータ化(例えば、テクスチャ座標)を計算し、この空間内のベジェ曲線を定義し、それを表面上に持ち上げることである。しかし、このアプローチは、ひずんでいるようなパラメタリゼーションにも問題があります。別の選択肢は、細分スキームを採用し、細分されたポイントをメッシュ上に投影することであろう。しかし、これは適切なベジェ曲線を生成せず、投影操作は通常ユニークではありません。 –

答えて

0

メッシュの三角形にカーブを配置するとします。その場合、曲線は滑らかではありません(導関数は連続ではありません)。これは、三角形のエッジでメッシュが滑らかでないためです。

問題がなければ、単純な解決策ではなく、各三角形の部分で曲線を分割することができます。これは、メッシュのエッジで曲線の終点の制御点を選択することによって交差します。私はこれをどうやって行うのか分かりません。おそらく、離散化された入力曲線に対してメッシュのエッジ上の最も近い点を探すことによってです。

ベジエ曲線の一部はベジエ曲線ですので、入力曲線を分割した後に既存の描画コードを使用することができます。

関連する問題