Crytek om CryEngine 3
Sidste år til Visionday 2008 var Martin Mittring, Lead Graphics Programmer hos Crytek, forbi Lyngby og lavede et meget spændende indlæg om forskellige teknikker i deres CryEngine 2. Indlægget var så populært at han i sidste øjeblik atter i år blev fløjet til København - og denne gang kom turen til CryEngine 3.
Mittring fortalte bl.a. om deres mål efter CryEngine 2. Den nye engine skulle kunne skalere bedre og bl.a. dermed supportere Xbox og Playstation. Et af målene var selvfølgelig også bedre grafik og bedre håndtering af ressourcer, men også at lette artists og programmørers arbejde - specielt den trivielle af slagsen, så titler hurtigere kunne komme på gaden, hvilket er en ikke helt uvæsentlig parameter for game engines.
I mange spil (specielt for et par år siden) kunne et spils visuelle kvalitet betydeligt øges ved at præ-beregne lys og skygger på alle statiske modeller, som eksempelvis på vægge, gulve og andre objekter indendørs, som ikke kunne flytte sig eller ikke skulle animeres. Ulempen er selvfølgelig at lyset ikke kan flytte sig, så scenen bliver meget statisk at se på. Desuden skal lys og skygge i form af et kæmpe billede (light map) beregnes igen, når en artist tilføjer nye objekter eller ændrer på væggene, når der arbejdes på spillet, hvilket giver øget produktionstid.
En af Mittrings ideer til at øge produktiviteten er netop at så lidt som overhovedet muligt skal preberegnes. Det så man allerede i Crysis, hvor bl.a. Mittring var med til at lave en radikal ny og hurtig måde at lave Ambient Occlusion kaldet Screen Space Ambient Occlusion (SSAO), som virkelig er med til at højne det realistiske udtryk i Crysis. Så fordelene her er altså hurtigere udvikling og mere dynamiske scener - og dermed mere realistisk og lækker grafik, men ulempen er at det i langt højere grad belaster grafikkortet.
Med CryEngine 3 går Crytek over til en anden måde at beregnes lys på, som giver artists langt mere fleksibilitet og tekniske muligheder, og giver i øvrigt også langt mere stabil performance. Mittring kalder teknikken for Deferred Lighting, da det ikke helt er Deferred Shading - en anden kendt metode.
Desuden er SSAO teknikken yderligere forbedret i CryEngine 3, så effekten er mere korrekt og bidrager mere til det færdige udtryk. Den nye SSAO ses til højre:
I næsten alle computerspil bliver overflader kun belyst, hvis der er en direkte linje mellem overfladen og en lyskilde (lokal illumination). En stor del af lysbidraget til overflader kan dog også komme gennem indirekte belysning (~Global Illumination) fra andre overflader, og hvis man medtager store dele af dét lysbidrag, kan det give virkelig flotte og realistiske resultater. En af årsagerne til at alle spil ikke beregner den globale illumination er, at det er enormt beregningstungt og at den traditionelle måde for grafikkortene at lave computergrafik på, ikke lige frem ligger op til den type beregninger.
En anden større tilføjelse til CryEngine 3 er en ny metode til real-time Global Illumination, som Anton Kaplanyan fra Crytek ville præsentere senere på året, så desværre kunne Mittring ikke snakke om metoden andet end at vise et par screenshots. Det øverste screenshot er uden den nye lysalgoritme, mens den nederste er med algoritmen:
Alt i alt er det nogle ganske interessante ting Crytek har sat over i gryden, og det bliver spændende at se de nye teknologier i en færdig spiltitel, som forhåbentlig bliver lige så innovativ som Crysis, set fra et computergrafik-mæssigt synspunkt.