Program 15 – ASE Loader
26.07.2004
Program je až na pár drobností totožný s OpenGL programom 27. Najväčší rozdiel je v spôsobe uloženia vrcholov, u DX sú uložené v špecialnom bufferi (ktorý môže byť v pamäti grafickej karty), ale u OpenGL sú v pamäti programu.
Súbory ase vytvara 3ds max ako ASCII scene export. Je to textový formát. Všeobecne majú textové formáty oproti binárnym tú výhodu, že ich dáta sú uložené textovým popisným spôsobom a preto nie je problém importovať potrebné časti so súboru. Textové súbory sú zase väčšie a pomalšie sa načítavajú. Načítanie ase súboru som urobil, preto lebo 3ds max exportuje veľa rôznych dát, pričom načítavať ich s 3ds súboru je obtiažne, lebo poriadny popis neexistuje. Ďalšia nevýhoda 3ds je, že neobsahuje všetky informácie ( napr. chybajú normálové vektory).
3ds max obsahuje modul pre výpočet globálneho modelu osvetlenia – radiosity. To umožňuje docieliť veľmi realistické osvetlenie modelov. Jeho nevýhodou je, že je statické t.j. nie je možné hýbať so svetlom alebo s osvetľovanými predmetmi v realnom čase. 3ds max umožňuje vyrenderovať osvetlenie modelu do textúry ( vytvárať lightmap-i). Pre lightmap-i sa vygenerujú nové textúrové koordinácie. Vynásobením lightmap-i a základnej textúry docielime reálne osvetlenie modelu.
Ďalej v programe je použitá detekcia kolízie guli s modelom. Kolízia sa počíta podľa smeru pohybu, zohľadňuje všetky polygóny, ktoré kolidujú s guľov pričom spracuváva ich v poradí ako do nich guľa vráža. Ak guľa narazí do polygónu potom sa po ňom šmýka až pokiaľ sa neskončí súčasný krok, alebo pokiaľ nenastane ďalšia kolízia.
V programe je aj gravitácia a skoky. Ak je gravitácia tak, okrem kolízie kamery s okolím testujem aj kolíziu so zemou. Ak sme na zemi môžeme vyskočiť. Ak nie sme na zemi tak účinkom gravitácie padáme dole.
zdrojové texty a program – 710kB bez jpeglibmm.lib
model s 3ds max – 90kB