XNA - HighMap

  • 3483
  • 0
  • XNA
  • 2010-08-27

XNA - HighMap

HighMap是一種很簡單產生地形的方法。
主要的想法就是把地形的高低存成一張bmp的圖,
這張圖的每一個點就表示地形的相對高度,如圖:

pic1

底部灰色圖是用來表示地形高度的High Map,顏色越深就越低。
程式的作法就是讀取High Map的像素來產生點,一個像素產生一個點,
每個點的x和z座標就是圖片的x和y座標(因為我將水平面定為xz平面),可以乘上一個倍數,
讓10X10的height map可以表示100X100或更大的地形。
而點的高度就是圖片的顏色,也可以乘上個倍數,讓高低起伏可以大一點。


再來,記得怎麼畫三角形嗎?
要特別注意的就是預設順時針定義的三角形是我們看的見的面,這在設定index的時候要小心,
所有的頂點設定完之後畫出來就像是下圖

 

pic2

這是由一個10X10的小圖所產生出來的地形,大概這麼小=>pic3
接著我們再貼上地形圖打個基本光就很像一回事了!

 

 

pic4