Magasságmező
Domborzat tárolásához és megjelenítéséhez lehet használni magasságmezőt. Ebben az esetben a felület egyes rácspontokra eső magasságértékeket egy képfájlban tárolhatjuk. A terrain.zip fájlban van rá egy példa.
- A
load_height_map
segítségével tölthető be a kép. Ez egy különheight_map
struktúrát használ az adatok tárolására. - A magasságmezőt a
draw.c
fájlban lévődraw_height_map
függvénnyel rajzoltathatjuk ki. A magasságmezőt alapvetően ez az egység négyzet felé rajzolja. Nekünk kell a megfelelő transzformációkat elvégezni, hogy a magasságmező jó helyen legyen. - A betöltő és a megjelenítő a normálvektorokat is kiszámolja. Ezt csak abban az esetben tudja megtenni, ha ismert, hogy kirajzolásnál mekkora lesz a magasságmező. A betöltő a második paraméterként ezt a paramétert várja. (A példában éppen ezért szerepel az, hogy a magasságmező legmagasabb pontja 3, és az eredetileg 1x1 méretű négyzetet 16x16 méretűre nagyítjuk.
- A példa csak diffúz fényt használ. Érdemes próbálgatni más paraméterezéssel is.