2012-02-19 73 views
1

我已經設法在C#中實現Marching Cubes算法。到目前爲止,我已經嘗試了算法渲染一個球體。這很容易,因爲密度函數對代碼來說不是很複雜。基於體素地形的適當密度函數?

但現在我想要得到的算法,進一步去渲染遊戲的一些有趣的地形。所以我需要適合這個任務的密度函數。 我頭上的第一件事就是體積佩林噪音。沒關係,但我正在尋找沒有凸形的地形,我的意思是,現在沒有洞穴和類似的幾何形狀。

好的,我知道,一個簡單的高度圖可以完成這項工作,但我想要一個體素生成的地形。什麼類型的密度函數需要僞代碼來實現它們?

回答

2

您可以輕鬆地將高度圖轉換爲體素地形。您的高度圖中的每個像素對應於體素世界中的一列體素。對於高度圖中給定的像素讀取高度。然後遍歷相應列中的每個體素,如果它小於參考高度,則將其設置爲「固定」;如果超過參考高度,則將其設置爲「空」。

這裏是一些sample code使用PolyVox庫。

+0

謝謝。我認爲這是一個好方法! – B3y0nd3r 2012-02-19 16:54:34