私は数週間問題に取り組んできましたが、自分のアプローチを過度に複雑にしないようにしたいところまで来ました。これは iOS の OpenGL ES 2.0 で行われていますが、原則は普遍的であるため、答えが純粋に数学的な形式であることは気にしません。これが概要です。
次の式でベジエ曲線を生成するために使用している制御点とともに、3D 空間に 2 つの点があります。
B(t) = (1 - t) 2 P 0 + 2(1 - t)tP 1 + t 2 P 2
始点/終点はかなり大きな球体の動的座標に配置されているため、x/y/z は大きく変化し、静的ソリューションはあまり実用的ではありません。現在、GL_LINE_STRIP を使用してポイントをレンダリングしています。次のステップは、GL_TRIANGLE_STRIP を使用して曲線をレンダリングし、高さに対する幅を制御することです。
この簡単な議論によると、私の問題を解決する良い方法は、曲線の方向を考慮して、両側に沿って曲線に平行な点を見つけることです。合計 3 つの曲線を作成し、インデックスを渡してさまざまな幅のベジェ曲線を作成し、それを描画したいと思います。
また、それぞれの質問の特定の問題を解決するように見える補間とLoop-Blinn 手法の使用についての話もあります。ただし、解決策は、私が求めているものには複雑すぎると思います。テクスチャをミックスに持ち込むことにも興味がありません。後でシェーダーで計算する色を使用して三角形を描画することを好みます。
したがって、Trilinear Interpolation、Catmull-Rom スプライン、Loop-Blinn の論文をさらに読んだり、サンプリングをさらに詳しく調べたりする前に、どの方向が最善の策である可能性が最も高いかを確認したいと思います。問題の最も基本的な形は、3D 空間でポイントを取得し、次のポイントがプロットされる方向を考慮して、それに沿って 2 つの平行なポイントを見つけることだと言えると思います。
お時間をいただきありがとうございます。他にご不明な点がございましたら、お知らせください。追加できるよう最善を尽くします。