Doom3 - FarCry

Pag. 6 - FarCry: tecnologia (2)

La versione 3.0 degli shader permette importanti migliorie non tanto dal punto di vista estetico, quanto da quello prestazionale. L'aggiornamento degli shader nasce proprio per facilitare il rendering sulle schede video di nuova generazione in modo che i programmatori abbiano la possibilità di renderizzare scenari sempre più realisti col minore impatto velocistico. I Pixel Shader 3.0 consentono istruzioni più lunghe (65535 invece che 96), cicli condizionali e il famoso branch dinamico.

Tutte queste funzioni permettono, essenzialmente, di risparmiare calcoli inutili (branch dinamico) o di farne di più in un unico passaggio (si pensi a più luci che vengono elaborate nello stesso passaggio di rendering). nVidia non si è accontentata, come è noto, del semplice supporto dei nuovi pixel shader in standard 3.0, ma le istruzioni attivabili su NV4x sono teoricamente infinite.

Per i Vertex Shader è stata introdotta la modalità Vertex Texture Lookups (simile al displacement mapping), il vertex shader fetch e le istanze geometriche. Proprio su questa ultima caratteristica vogliamo attirare la vostra attenzione in quanto si basa sul presupposto che alla scheda video 2 oggetti identici possono essere fatti elaborare con carico dimezzato se solo si andasse dal vertex buffer a recuperare le informazioni del primo oggetto clone; inoltre anche quando gli oggetti sono simili si possono renderizzare solo gli attributi che li rendono distinti e disegnare l'intera scena con un'unica chiamata di rendering. Le istanze geometriche risultano molto utili, vista la loro propensione nel favorire grossi trasferimenti di dati verso la scheda video, nella renderizzazione di particolari ripetitivi che, in particolare in FarCry, sono costituiti da alberi e cespugli (si pensi ai livelli Research o Training). Le istanze geometriche permettono anche di guadagnare potenza sul fronte CPU in quanto se si dovessero renderizzare vegetazioni lontane al nostro punto di vista si userebbero gli sprite 2D che, come si sa, incidono sul processore centrale di sistema. Anche se dovrebbe essere una opzione attivabile solo sulle più moderne schede nVidia, anche Ati consente l'abilitazione di questa utile opzione.

Altre 2 importanti caratteristiche tecnologiche di questo gioco sono il supporto dell'HDR (High Dinamic Range) e del 3Dc. L'HDR è una modalità avanzata di rappresentazione del colore, mentre il 3Dc migliora la resa del Bump Mapping.

L'HDR è famoso a chi fa grafica 3D con il calcolatore, in quanto tutti i migliori software di rendering supportano questa modalità di gestione del colore in maniera nativa. La nascita dell'HDR si basa sulla consapevolezza che l'occhio umano percepisce più tonalità di quei 16777216 descritti da un PC (256 colori per ogni componente rossa, verde e blu), per cui si è pensato di adoperare, anzichè il classico approccio a numeri interi, quello a numeri reali, descritti da mantissa ed esponente. Potenzialmente, quindi, l'HDR, permette di rappresentare sul monitor diverse componenti del colore, raggiungendo quel realismo che continua ad essere l'obiettivo principale di ogni programmatore di grafica 3D. Non vogliamo, in questa sede, dilungarci in tediose questioni tecniche, sta di fatto che l'HDR è uno strumento potentissimo che, se da un lato può incrementare il realismo, dall'altro può rendere a video molti artefatti visivi per via di luci errate.

3Dc è la tecnica di compressione con cui R420 e derivati gestiscono le nomal map via hardware. Come il bump mapping, anche la normal map si basa sul presupposto che l'informazione di superficie di un oggetto viene memorizzata come texture e ciascun elemento di questa salva 3 componenti in un vettore ortogonale alla superficie, il vettore normale. Anche se dall'ottima resa visiva, questo approccio consuma molta banda in quanto vado a trasferire la mappa normale in aggiunta a quella fondamentale; inoltre i classici algoritmi DXTC rovinano la qualità della texture. Ecco dove interviene il 3Dc di Ati: una volta che la mappa normale giunge al chip, questa viene decompressa e "posta all'attenzione" del motore di pixel shader. I vantaggi ottenibili nel risparmio di banda vanno dal 2:1 (nel caso di vettori a doppia componente) al 4:1.

Le caratteristiche del motore del gioco CryEngine continuano nel sistema di musica dinamica interattiva, illuminazione per pixel, riflessi con bump mapping, rifrazioni, trasparenze. I terreni sono renderizzati con sistema dinamico di heightmap al fine di creare scenari complessi con un basso numero di poligoni, ombre statiche, la maggior parte di tipo lightmap, alcune dinamiche, effetti perticellari, nebbia e, infine, il PolyBump. Questa tecnica di rendering è stata definita dalla stessa Crytek al fine di renderizzare paesaggi, oggetti e personaggi completi e complessi con il minor numero di dettagli poligonali. La parte più interessante sta nella resa grafica, come dimostrano i seguenti screenshot:

 

Scritto da nico64 | il 2005-02-28 00:00:00 |

Annunci Google