私は最近、Multilevel B-Splines を使用した分散データ補間に関する論文を読みました。
面 z(x,y)、xmin<=x<=xmax、ymin<=y<=ymax を考えてみましょう。次に、「コントロール」ポイント (黒) の 4x4 グリッドを考えます: P0 で、表面が中央のセルを覆うようにします。
サーフェス (黄色) 上の任意の点 (赤色) の z 値は、コントロール ポイントの値の加重和として概算できます。重みは、コントロール ポイントまでの距離です。
次に、中央のセルを 2x2 セルに分割し、サーフェスの周囲に 1 セルの境界線を追加します。その結果がコントロール グリッド P1 (青) です。赤い点の z 値のより正確な近似値は、P1 の 4x4 の最も近いコントロール ポイントの距離加重合計を上記の初期近似値に追加することによって見つけることができます。
同様に、繰り返しセルのサイズを半分にして、新しい制御グリッドを作成できます: P2、P3、...Pn。各グリッドは新しい「レベル」です。
新しいグリッドごとに、サーフェスに詳細が追加されます。制御グリッドはますますまばらになります。値が 0 と異なるのは、サーフェスが周囲のポイントに対して急激に変化する場合のみです。
その結果、比較的少ないメモリで大量の詳細を含むサーフェスを格納できる格納方式が可能になります。
これを Level Of Detail アルゴリズムでどのように使用できますか?
サーフェスの各 LOD タイルについて、コントロール ポイントを使用して、GPU 上の特定のレベルまで (できれば OpenGL を使用して) 三角測量したいと考えています。レベルは、タイルがカメラからどれだけ離れているかによって決まります。
うまくいけば、そのように。信じられないほど詳細なサーフェスを最小限のメモリを使用して保存し、さまざまな角度から表示して、すばやくズームイン/ズームアウトできます。
これを行う方法に関するアイデアや指針はありますか?