3. 7. 2009

Atomontage - Voxel engine

Voxel je, i když to asi všichni víme, volumetrický pixel. Pokud se obraz na monitoru skládá z mnoha bodíků - pixelů, tak "trojrozměrný pixel" tvoří základní stavební kámen v 3D prostoru, asi tak, jako kostky Lega. S trochou nadsázky se dá říct, že pomocí voxelů lze vymodelovat cokoli až na atomové bázi, což dalece překračuje myšlenku a možnosti současné i budoucí polygonové grafiky, až na úroveň hyper-realismu.

Má to pochopitelně několik háčků. Hned ten první jsou hardwarové nároky. I kdyby současné GPU byly schopné akcelerovat voxely (údajně to v nějaké formě možné je, ale neznám detaily), zůstávají tady nepřiměřené paměťové orgie. Proto většina her mívá modelovaný pouze povrch objektů či terénu, přičemž se nejde někam "prokopat". Obvykle navíc mají hry mnohem menší rozlišení a samplovací měřítko (ne nepodobné na Amize ve 2D - 2x2 až 4x4 pixely). Pokud byla tato technologie uvedena někde v devadesátých letech do praxe, znamenalo to poměrně velký průlom, jelikož tehdejší 3D enginy na bázi polygonů nebyly schopné ani vzdáleně podobné excesy s povrchem krajiny například. Ale jak výkon rostl, staly se voxely zoufale nepoužitelné pro komplexnější modely, nemluvě o efektech či texturách. Také modelování takových objektů zabere více času, než polygony. Takže se od voxelů postupně upustilo.

Podle mne jsou ale voxely do budoucna jedinou možností, jak udělat hyper-realistickou grafiku. Bude to samozřejmě trvat ještě dlouho, protože právě s pamětí a detailností modelů je dneska největší problém, i když samotný výkon strojů je pomalu dostatečný. Možná to bude za deset let, kdy se komplexita polygonových modelů "vymkne kontrole" a bude snazší to dělat rovnou voxely. Toliko moje predikce.

Komplexní voxelový model přináší drasticky mnoho výhod. Po straně grafické - jakýkoliv model lze "rozbít na prvočinitele", aniž by se tím přidělávala práce programátorovi. Z hlediska fyziky lze na voxely navázat realistickou hmotnost , tvrdost nebo druh povrchu - fyzika se opět přiblíží realismu. To samé s propustností světla, tepla nebo kolize objektů. Takový engine nahradí jakýkoliv jiný, polygonový, ať jsou jeho účely či specializace jakékoliv. Bude to ale samozřejmě znamenat nové vzdělání pro grafiky či modeláře, ale když hovoříme o zjednudušení procesu z miliard polygonů na scéně, tak by to nemuselo být kontraproduktivní.

Her s voxelovou grafikou není mnoho, ale zároveň se mezi nimi vyskytují i dost zásadní hry. Dovolil jsem si tady připomenout ty nejznámější.

1992 - Commanche Maximum Overkill - patrně první hra, která voxely proslavila - potřeboval 386 a 4 MB RAM.

1994 - Robinson's Requiem - simulátor přežití na opuštěném ostrově.

1994 - Armored Fist - první ze série simulátorů tanku.

1997 - Blade Runner - voxelové světla a kouřové efekty hře dodaly ještě více atmosféry.

1997 - Shadow of the Third Moon - voxelům se také daří na Amize, pokud máte alespoň procesor 030 či vyšší.

1998 - Delta Force - perfektní simulátor vojenských jednotek, který v době boomu 3D akcelerátorů trochu zapadl.

1999 - Outcast - jedna z nejlepších skoro zapomenutých voxelových her (I can see you, Ulukai!).

1999 - Command and Conquer Tiberian Sun - voxelový povrch krajiny umožňoval pomocí granátů dělat i zákopy (ne snad, že by to někdo v praxi využíval).

2008 - Voxelstein - nezávislý projekt naplno ukazuje možnosti voxelů se vším všudy - ale na realismus nezbyl čas ;).

Vývoj voxelové grafiky není tak překotný, jako vývoj polygonové, ale samotný fakt, že se někdo voxely po tak dlouhou dobu zabývá napovídá, že lidé v tomto systému vidí budoucnost (a to nejenom nutně pro povrchy terénů). Poslední komerční hrou s voxelovým enginem je ruská hra Perimeter, i když nevypadá nějak excelentněm je důležitým důkazem, že je o voxely zájem.

Je poměrně pravděpodobné, že je to pouze otázka výrobců grafických karet, kdy začnou svoje GPU optimalizovat pro akceleraci výpočtů voxelů. Stejně tak by nebylo od věci nějakou z přespříštích generací konzolí vybavit právě procesorem na pomocné výpočty pro voxely. Kombinace těchto událostí by mohla vést k podobnému grafickému boomu, jako v polovině devadesátých let s 3D akcelerací.

Aby toto všechno vůbec vzniklo, musí vidět investoři ve voxelech potenciál výdělku, takže nějaké prezentace. Před pár dny jsem se v rámci odborné diskuze dostal k projektu Atomontage, od jednoho "šíleného Slováka". Prohlédnul jsem si veškerou obrazovou i videodokumentaci a zůstává mi rozum stát. Jestli tohle je dílo prakticky jediného člověka (hovoří se o "malém týmu"), nedovedu si představit, co by s tím udělalo vhodné vývojařské studio. Práce na Atomontage začaly v roce 2004 a po pěti letech jsou výsledky dechberoucí. Videa si můžete stáhnout přímo na oficiálních stránkách, ale některé obrázky jsem nasypal rovnou sem, protože mne prostě fascinují.

Ukázka samplingu voxelů - ideální pro optimalizaci bez jakéhokoliv složitého programování - prostě "snížíte rozlišení".


Detailní záběr na vyhlazování voxelů.


A na závěr "tradiční" krajinka. Pěkná práce se světlem.

Atomontage jistě není nějakou ultimátní záležitostí pro realistickou grafiku, ale je podle mého pozorování nejpokročilejší verzí voxelů, co jsem kdy kde viděl (v hrách). Zejména videa ukazují, jak lze "snadno" simulovat kouř ve vzduchu, fyziku vody, particle efekty a další. Nevím, jestli se toho dožiju, ale pevně věřím, že obecně voxely jsou budoucností nejen pro grafiku, ale i pro gamedesign. Ty možnosti jsou doslova neomezené.