2012-04-09 9 views
1

現在、私は3D地形可視化ツールを開発中です。サーフェスは四角いタイルで論理的に覆われています。次のようにこのタイリングを可視化することができます。傾斜カメラの場合のテレインタイルスケール

Tiled earth

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

垂直カメラの場合(傾斜がない、つまりカメラが地面に垂直に見える)、すべてのタイルは、カメラの焦点距離を地面の上のカメラの高さで割ったものと同じ縮尺です。画像続い

状況を示している:

camera with no tilt

赤い三角形はない傾斜を持たないカメラであり、BGは、地上カメラの高さであり、EGは焦点距離であり、次に= AC/DF = BGをスケーリング/ EG

カメラが傾いている(ピッチ角が0でない)場合、スケールはタイルからタイルに(ポイントツーポイントでも)変更されます。その場合の各タイルのための合理的なスケールを生成するために、あらゆる種類の方法がある場合

enter image description here

は、だから私は疑問に思いますか?

+1

"computational-geometry"タグが削除されました。これは、単にCGがジオメトリで計算するのではなく、特定の分野であるためです。 –

+0

2次元図が参考になります。 –

+0

あなたの訂正ありがとう!私はそれをより明確にするためにいくつかの画像を追加しました。 – deephace

答えて

1

もっと簡単な解決策があるかもしれませんが、あなたは世界からスクリーンへの座標変換を定期的に行うことができます。

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

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

Hereは、これを「手動で」行う方法に関するチュートリアルです。

OpenGLまたはDirectXでタイルをレンダリングする場合は、do thisをはるかに簡単に行うことができます。

+0

あなたの答えをありがとう!あなたが説明したように変換行列と投影行列を用意する必要があります。これらの行列は私の場合は利用できません。 – deephace

+0

@deephaceあなたはカメラのパラメータを持っていません(またはフィッティングパラメータを構成できません)? OGL/DXを使用している場合は、これらを無料で入手できます。そうでない場合(チュートリアルのIリンカーから明らかでない場合)、そのようなマトリックスを記入する方法を説明するインターネット上のページがあります。 –

+0

レンダリングパイプラインにアクセスできないとします。この問題を解決するために、私は、カメラの位置、地上の高さ、タイルの中心、カメラの視点の位置に関する情報だけを追加の行列の構築なしで使用したいと考えています。 – deephace

関連する問題