3Dc

3Dc je nova tehnologija za kompresiju tekstura koja omogućuje
developerima da "spakiraju" u svoje 3D slike veći nivo detalja nego
što je prije bilo moguće. Renderiranje scene u nekom novom 3D naslovu
zahtijeva veliki broj različitih podataka koji se međusobno "bore"
za bandwidth i prostor u memoriji grafičke kartice. U igrama najveći potrošač
memorijskih resursa su teksture, što ih čini idealnim kandidatom za kompresiju.
Kompresija tekstura nije ništa novo – set algoritama koji se zove DXTC (DirectX
Texture Compression) u upotrebi je od 1999, kao i S3TC (OpenGL ekvivalent DXTC-u).
Iako su se ova dva standarda pokazala kao dobra, kartice s pixel shaderima
dovele su nove načine za upotrebu tesktura i zakomplicirale stvari (tj. smanjile
efikasnost kompresije).

Dragi dječak iz Serious Sam 2 demoa u kojem se koristi
3Dc

Da bi se shvatila 3Dc tehnologija, ključno je znati što su normal
mape. Normal mape su specijalne teksture koje se koriste za dodavanje detalja
na 3D površine. One su ekstenzija ranijih "bump map" tekstura koje
su sadržavale podatke o per-pixel visini i koje su se koristile da glatkim površinama
daju efekt izbočenosti.

Normalu možete zamisliti kao strelicu koja izlazi iz neke površine
okomito na nju. Zbog te svoje karakteristike, normale se mogu koristiti za određivanje
smjera refleksije svjetla od površine.

Normal mape

Korištenje normal mapa za povećanje detalje puno je efikasnije
nego upotreba većeg broja poligona. Normal mape se generiraju uz pomoć dvije
verzije 3D objekta – jedne s velikim brojem poligona i druge s puno manjim brojem.
Verzija s malim brojem poligona posjeduje nivo detalja koji omogućuje da se
prikaže samo generalni izgled objekta. Verzija s visokim brojem poligona pak
ima onaj broj poligona koji je potreban da se prikažu svi detalji. Tada se koristi
jednostavna aplikacija koja uzima oba ta modela, izračunava njihovu razliku
na puno točaka na površini te sprema rezultat u normal map teksturu.

Generiranje normal mapa

Korištenje normal mapa omogućuje novim naslovima poput Far Crya
da izgledaju puno bolje nego prijašnji naslovi. Nažalost, korištenje normal
mapa je veliki gutač resursa – DXTC i S3TC vrše jako slabu kompresiju istih.
Tu sada na scenu stupa 3Dc. 3Dc vrši 4:1 kompresiju normal mapa uz minimalni
gubitak kvalitete slike. Kako ovu kompresiju vrši sam hardver, utjecaj
na performanse je također minimalan. Ljepota svega je to što je implementacija
3Dc-a vrlo jednostavna ukoliko naslov koristi normal mape – primjer toga je
Serious Sam 2 demo koji je prikazan na GDC-u kojem je podrška za 3Dc dodana
doslovno "5 do 12".