2012-04-09 96 views
1

我正在研究3D地形可視化工具。表面邏輯上用正方形瓷磚覆蓋。這種平鋪可以可視化如下:傾斜攝像頭的地形坡度比例尺

Tiled earth

假設我希望藉助這些圖塊的圖片。需要根據爲每個瓦片單獨計算的當前相機比例來選擇圖片的細節等級。

在垂直相機(無傾斜,即相機垂直看地面)的情況下,所有瓷磚都具有相同的比例,這是相機焦距在相機高度上劃分的地面高度。

繼圖描繪的情況:

camera with no tilt

其中紅色三角形是相機不具有傾斜,BG是照相機距地面高度和EG是焦距,則比例= AC/DF = BG/EG

但是,如果攝像機有傾斜(即俯仰角不爲0),則比例將從瓦片變爲瓦片(即使從點到點)。

enter image description here

所以我想如果有什麼樣的方法來產生合理的規模在這種情況下,每個區塊?

+1

刪除了「computational-geometry」標籤,因爲CG是一個特定的學科,不是簡單的用幾何學計算。 – 2012-04-09 17:23:04

+0

2d圖將會有所幫助。 – 2012-04-09 17:23:49

+0

感謝您的更正!我添加了幾張圖片以使其更清晰。 – deephace 2012-04-09 20:23:19

回答

1

可能有(幾乎可以肯定)一個更直接的解決方案,但你可以做的是規則的世界屏幕座標轉換。

你只需要獲取瓦片邊界點的座標,並計算出屏幕上哪些像素會投影(當然你可以獲得浮點精度)。由此,我相信你可以計算你所提到的「規模」。

這適用於世界空間中的任意一點或一組點。

Here是關於如何「手工」操作的教程。

如果您使用OpenGL或DirectX渲染瓦片,則可以更輕鬆地對do this進行渲染。

+0

感謝您的回答!正如你所描述的,我需要有變換和投影矩陣。這些矩陣在我的情況下不可用。 – deephace 2012-04-09 20:38:52

+0

@deephace你沒有你的相機參數(或不能補充擬合參數)?如果你使用的是OGL/DX,你可以免費獲得這些。如果不是,(如果從教程I連接器中不清楚),互聯網上的頁面會介紹如何填寫此類矩陣。 – 2012-04-09 20:43:57

+0

假設我根本無法訪問渲染管道。爲了解決這個問題,我只想使用有關攝像機位置,地面高度,平鋪中心和攝像機仰視位置的信息,而無需構建其他矩陣。 – deephace 2012-04-09 20:52:14