2010-04-26 77 views
2

我正在潛入3D編程中,目前正在學習編寫一個基於高度圖生成地形的程序地形生成器。我也想實現一些物理和我的第一次嘗試在地形碰撞是通過簡單地檢查當前位置與高度圖。然而,這對於小物體無法很好地工作,因爲您必須通過獲取物體的最近頂點的高度差來計算高度,並且這樣做每次檢查都很慢。計算三維空間中的地形高度

Beleive me我試着用google搜索它,但這裏有太多垃圾和數百萬博客張貼破解新手教程到處,基本上沒有關於這個主題的真實信息,我找不到任何解釋它甚至命名任何通常使用的技術。

我並不是要求代碼或完整的解決方案,但如果有人知道一種特別的技術,可以在已經生成和平滑的地形上計算高分辨率高度圖,我會很高興,因爲我可以研究它進一步當我知道我在找什麼。

感謝

回答

3

如果有什麼你做了地形基於這些高度位置與它們的x/y位置合併一組四邊形。現在,存儲這些四邊形的法線。現在,您正在做一個簡單的工作,就是這個點在多邊形檢查的這一側,它非常快速地計算 - 表面法線和檢查點之間點積的符號。這就像背面剔除,大多數3D系統都會有例程來處理這個問題。

+0

不是一個壞主意,我要去尋找到它,給了我一些想法,謝謝:)我會回到它的明天,當我測試過它。 – 2010-04-26 02:43:58

+0

你的suggetions肯定會讓我朝着正確的方向發展,謝謝你:) – 2010-04-26 18:34:52

0

我強烈建議您首先在2D世界高度圖內開始,然後一旦掌握了高度圖的工作方式,然後在3D世界中進行編程。

本教程最好地描述了我的意思。 http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series1/Terrain_from_file.php

查找到Unity也: http://vimeo.com/73273585

+0

4年前,這個問題沒有問題,但它已經回答了一個完美的答案。從2D世界開始並不會有什麼幫助,因爲這個問題是關於靈活和快速的方法來高精度地計算地圖中一點的高度而不會減慢程序的速度。不是關於從高度圖渲染地形。 – 2014-02-10 02:43:15