単一の 3D 3 次ベジエ曲線を使用して「3D リボン」をレンダリングしようとしています (リボンの幅は一定です)。最初と最後の制御点には法線ベクトルが関連付けられています (これらの点の接線に対して常に垂直であり、それらの点でのリボンのサーフェス法線を記述します)。法線ベクトルをスムーズに補間しようとしています。カーブのコース。
たとえば、文字「C」を形成する曲線が与えられ、最初と最後の制御点の両方が上向きのサーフェス法線を持っている場合、リボンは平らに始まり、地面に平行になり、ゆっくりと回転し、次に平らに終わり、最初のコントロールポイントと同じ方法。これを「スムーズに」行うには、カーブの途中で外側を向く必要があります。現時点では (この場合)、すべてのサーフェスを上向きにすることしかできませんでした (中央の外側ではありません)。これにより、中央に醜い遷移が作成されます。
説明するのは非常に難しいので、この例の現在の外観 (すべての面が上を向き、中央で鋭く反転) とどのように見えるか (滑らかな移行、面がゆっくりと回転) を示すいくつかの画像を以下に添付しました。銀色のフェイスが前面、黒色のフェイスが背面を表します。
正しくありません。現在の外観は次のとおりです。
正しいリボン http://img211.imageshack.us/img211/4659/ribbonincorrect.th.png
正しい、それはどのように見えるべきか:
正しくないリボン http://img515.imageshack.us/img515/2673/ribboncorrect.th.png
私が本当に必要としているのは、3D 3 次ベジエ曲線上の任意の点に対してこの「ハイブリッド法線ベクトル」を計算できることだけです。ポリゴンを問題なく生成できますが、スムーズに回転させる方法がわかりません。描かれているように。どうやって進めていくか完全に行き詰った!