0

現在、3D地形視覚化ツールに取り組んでいます。表面は論理的に正方形のタイルで覆われています。このタイリングは、次のように視覚化できます。

タイル張りの地球

これらのタイルに絵を描きたいとしましょう。写真の詳細レベルは、タイルごとに個別に計算される現在のカメラスケールに従って選択する必要があります。

垂直カメラ(傾斜なし、つまりカメラが地面に対して垂直に見える)の場合、すべてのタイルは同じスケールで、カメラの焦点距離を地上のカメラの高さで割ったものになります。

次の図は状況を示しています。

傾きのないカメラ

ここで、赤い三角形は傾きのないカメラ、BGは地上からのカメラの高さ、EGは焦点距離、スケール= AC / DF = BG / EG

ただし、カメラに傾きがある場合(つまり、ピッチ角が0でない場合)、スケールはタイルからタイルに(ポイントからポイントにさえ)変更されます。

ここに画像の説明を入力してください

それで、その場合、タイルごとに合理的なスケールを生成するための親切な方法があるのだろうか?

4

1 に答える 1

1

より簡単な解決策があるかもしれませんが(ほぼ確実にあります)、あなたができることは、通常の世界から画面への座標変換です。

タイルの境界点の座標を取得し、これらが画面上のどのピクセルに投影されるかを計算します(もちろん、浮動小数点の精度が得られます)。これから、あなたが言及している「スケール」を計算できると思います。

これは、ワールド空間内の任意のポイントまたはポイントのセットに適用できます。

これを「手作業で」行う方法のチュートリアルです

OpenGLまたはDirectXを使用してタイルをレンダリングしている場合は、これをはるかに簡単に行うことができます。

于 2012-04-09T19:55:16.940 に答える