2011-08-30 32 views
2

我正在WPF中編寫一個3D globe控件。WPF 3D關閉項目似乎「搖擺不定」

其中大部分效果很好,但是當我從太近(例如10米或更小)看山峯時,它變得「搖擺」(即 - 相機的每一個微小移動都會改變山峯模型的頂點,所以它看起來像果凍。)

我試着玩近,遠飛機,指定在近平面上從0.001到5的範圍,在遠平面上100到1000000甚至是正無窮遠,並且它沒有幫助。

我也嘗試將模型從1/10尺寸縮放到10倍尺寸,甚至將Lat/Long/Alt到ECEF的結果舍入到釐米,米和10米單位。

沒有任何幫助,它仍然看起來搖擺不定(雖然圓到10米單位確實有幫助,在這種情況下抖動非常罕見,但它使模型變形太大而無法使用)。

我想這主要是一個精確問題。任何想法如何我可以提高精度或任何其他想法如何解決它?

Itai。

更新: 我添加了一個video顯示工件。

解決 我發現有一個與世界聯隊的建築模型同樣的問題,提出和回答here

一般來說,我懷疑這個問題是一個精確問題。解決這個問題的方法是讓實際的相機保持原點(0,0,0),同時允許它旋轉,並將所有瓷磚向相反的方向移動。

當生成每個圖塊時,我從每個圖塊的頂點減去圖塊的XYZ中心,因此最終圖塊圍繞(0,0,0)構建。

在瓷磚GeometryModel3D我設置了一個轉換轉換,因此它被放置在正確的位置。

+0

您是否嘗試將相機的移動增量調整到縮放級別?一些代碼也可以幫助我,儘管我確信這裏涉及到很多代碼,並且不想幫助您找到相關的代碼片斷。 – UrbanEsc

+0

我不明白'調整相機的移動增量到縮放的水平'意味着...相機由鍵盤,鼠標或管理員代碼控制,通常以緯/長/替換格式(有或沒有音高)。然後使用與用於構建地形模型相同的方法將位置轉換爲XYZ。 –

+0

我建議儘量「讓你的相機移動得越慢,放大得越多」。或者我可能不明白搖擺的意思。 – UrbanEsc

回答

1

我發現在世界大樓的建築模型有同樣的問題,問及回答here

一般來說,我懷疑這個問題是一個精確問題。解決這個問題的方法是讓實際的相機保持原點(0,0,0),同時允許它旋轉,並將所有瓷磚向相反的方向移動。

當生成每個圖塊時,我從每個圖塊的頂點減去圖塊的XYZ中心,因此最終圖塊圍繞(0,0,0)構建。

在瓷磚GeometryModel3D我設置了一個轉換轉換,因此它被放置在正確的位置。