Cesium では、線形 (または 2D では双線形)、エルミート、ラグランジュなど、いくつかの異なる補間方法が提供されていることを知っています。これらの方法を使用して、ポイントのセットを再サンプリングしたり、サンプリングされたポイントを近似する曲線を作成したりできます。
しかし、私が持っている質問は、Cesiumが 3D シーンをレンダリングしていて、ユーザーがあちこちでズーム/パンしているときに、 Cesium が内部的に使用する方法は何ですか? これは、プログラマーがラスターなどにアクセスできる場合ではないため、すべての途中で補間関数を直接呼び出すことはできません。Cesium は、ユーザーの制御に応じて、可能な限り迅速に独自の処理を行っています。
私の推測では、デフォルトはバイリニアですが、それがわからず、何が使用されているかを明示的に示しているドキュメントを見つけることもできません。さらに、ラグランジュ リサンプリングなど、これらのアクティビティ中にセシウムに特定のリサンプリング方法を強制的に使用させる方法はありますか? 実際、それが私がしなければならないことです: シーンのレンダリング中に Cesium にラグランジュ リサンプリングを強制的に適用させます。任意の提案をいただければ幸いです。
編集: 問題の詳細な説明は次のとおりです…</p>
セシウムを使用して地球の 3D モデルをセットアップし、グレースケール画像チップをモデル地球表面の適切な位置に配置し、その結果をセシウム ウィンドウに表示するとします。視点が地球の表面から十分に離れている場合、ウィンドウのイメージ チップ部分に表示されるピクセル数は、イメージ チップ ソースで使用できる実際のピクセル数よりも少なくなります。ダウンサンプリングが発生します。同様に、ユーザーが繰り返しズームインすると、画像チップ ソース内の実際のピクセル数よりも多くのピクセルが画像チップ全体に表示されるポイントが発生します。アップサンプリングが発生します。一般に、Cesium がピクセル データ ソースを含むフレームを描画するたびに、リサンプリングが発生します。それは最近傍(疑わしい)、線形(おそらく)、立方体、ラグランジュ、エルミート、またはさまざまなリサンプリング手法のいずれか。私の会社では、画質を確保するためにラグランジュ リサンプリングの使用を必要とする大規模な政府プログラムの一部としてセシウムを使用しています。(NGA は、そのプログラムとアナリスト ツールに最適であると判断し、それをコンプライアンス要件にしました。したがって、選択の余地はありません。)
ここに問題があります。ユーザーがモデルとやり取りしている間、たとえばズームインしている間、描画プロセスはプログラマーの制御下にありません。リサンプリングは、Cesium レイヤー自体 (うまくいけば) またはさらに下位のレイヤー (たとえば、Cesium が依存している可能性のある WebGL 関数) で行われます。したがって、このリサンプリングにどの手法が使用されているかはわかりません。さらに悪いことに、その手法がラグランジュでない場合、それを変更する方法がわかりません。
したがって、質問は次のようになります。セシウムは明示的にリサンプリングを行っていますか? もしそうなら、それはどのような技術を使用していますか? そうでない場合、セシウムが画像ファイルをマップにレンダリングするために依存している描画パッケージと関数は何ですか? (これらのレイヤーが使用している可能性のある技術や利用可能な技術を掘り下げて判断することができます。)