Zanir » Blog Archive » Program 15 – ASE Loader

Program 15 – ASE Loader

26.07.2004

027_ASE_loader_0Program 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é 027_ASE_loader_1textový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

Pridať komentár