Maya
  • Magnificat
    #29396
    Hát ez nem ennyire egyszerű. Régebben voltak voxel alapú játékmotorok, ilyenre épült anno a Commanche-tól kezdve a Tiberian Sun és Red Alert 2 járműmegjelenítésén át az Outcast-ig jópár cucc. Úgy tudom az volt a gond, hogy bizonyos mennyiségű részlet felett már annyira őrült nagy adatmennyiségekkel kellett dolgozni, hogy a polygon gyorsabb volt. Egy polygonnál ugye a vertexeket kell tárolni, azt hogy melyik vertexek között vannak élek, face-ek, merre mutatnak a normal vektorok, és hol vannak a textúra koordináták (legalábbis obj esetén így van). természetesen sok más számolást kell ezek alapján végrehajtani (függően attól hogy hogy állnak a vertexek, milyen a betekintési szög, a shader, a textúra, bump map, stb...), de tárolni magát nem kell olyan egetverően sok adatot. Voxel esetén viszont tárolni kell minden egyes kis térbeli pont pozícióját és színét. ez ugyan csak két dolognak tűnik, de amíg pl egy fél képernyőnyi polygont le lehet írni 3 vertexből mondjuk, addig voxelekből lehet, hogy 1000 is kell... nem olyan rég (pár éve) viszont ki lett fejlesztve egy Sparse Voxel Octree nevű adatstruktúra, amiben tárolva a dolgokat részletes dolgokat is lehet effektíven megjeleníteni, csak mivel az utóbbi 10-20 év a polygonokról szólt, így a hardver nem erre van fejlesztve. Az octree struktúra erre jó, gyakorlatilag itt azt jelentené tudtommal, hogy minden kocka 8 egyenlő méretű, kisebb kockára bontható a távolság alapján (legalábbis anno LY mester ilyet mesélt), és így jobban lehet tömöríteni a textúrát megjelenítéskor, illetve a Level of Detail (távolság függvényében csökkenti a részletességet) sokkal egyszerűbb, mint polygonoknál, ahol ugye vagy 2-3-4-5 külön modellt gyárt a motor, és távolság függvényében az aktuális modellt jeleníti meg. Emellett több más előnye is lenne, pl raytracing esetén sokkal egyszerűbbek lennének a számítások, sok felmerülő probléma (pl monitorról kilógó polygonok vágása) fel sem merül, rombolni lehetne gond nélkül akár voxel méretre is a dolgokat... Most már egész pofás dolgokat tud, de egyenlőre mivel nincs rá hardver, ezért pl cuda-val számoltatják a dolgokat...
    http://www.youtube.com/watch?v=lpfaFrazOn4

    csak az animációval van még tudtommal gond... meg hogy az egész statikus perpill, a fények is rajta. tehát amíg valami csak áll és X fény vetül rá, addig jó, de mozgatni (komplex animációban, nem csak jobbra-balra)...
    Remélem nem mondtam túl nagy baromságokat, és spec így tudom ebben a pillanatban, bár nem foglalkoztam túl sokat a témával. Az biztos, hogy Carmack nagyúr az id Tech6 motorban már elég erősen akarta használni dolgokra, nem tudom végül mennyi lesz/lett belőle...