Finalmente NV40: GeForce 6800 Ultra

Finalmente NV40: GeForce 6800 Ultra

Poco più di un anno è passato dal fallimentare debutto delle soluzioni GeForce FX 5800, meglio note con la sigla NV30. NVIDIA ha molto imparato dai propri errori e, con la prima scheda basata su architettura NV4x, ritorna prepotentemente all'attacco nel mercato delle schede video di fascia più alta.

di , pubblicato il nel canale Schede Video
NVIDIAGeForce
 

High Precision Dynamic Range (HPDR)

Chiunque osservi una scena 3D resta colpito dalla complessità degli oggetti, dall'elevato numero di dettagli visualizzati e dal generale realismo ottenibile. Un elemento estremamente complesso da riprodurre in una scena 3D ma di elevatissima importanza nell'ottenimento di una visualizzazione realistica è sicuramente la corretta riproduzione dell'illuminazione.
Questo è tanto più difficile quanto si alternano parti della scena con forte illuminazione, con altre in ombra se non quasi completamente al buio.

hpdr.jpg (30967 bytes)

L'immagine qui sopra riprodotta è proveniente da un demo sviluppato da Paul Debevec alcuni anni fa per la Games Developer Conference, mirante proprio a mostrare la complessità dell'illuminazione di una scena in presenza di forti sorgenti d'illuminazione, alternate a parti al buio. Le elaborazioni richieste per generare una scena di questo tipo, mantenendo piena leggibilità degli oggetti e dei dettagli anche se con evidenti e forti contrasti d'illuminazione, sono elevatissime.

Nell'immagine, le parti con luce diretta sono estremamente chiare, a contrasto con quelle in ombra nelle quali dominano i colori scuri ma l'illuminazione riflessa permette di apprezzare il dettaglio delle superfici.

In passato è sempre stato molto difficile riuscire a riprodurre al meglio questo tipo d'illuminazioni. I per-pixel frame buffer standard a 32bit, infatti, permettono di utilizzare solo 255 valori per indicare i differenti livelli d'illuminazione di un oggetto, troppo pochi per poter rappresentare correttamente la dinamica di una scena con forti alternanze di luci e ombre.

L'occhio umano riesce a percepire un dynamic range, tra oggetti illuminati e non , pari a circa 14dB, con andamento logaritmico. Questo vuol dire che vengono meglio definiti i particolari scuri più che quelli illuminati, visti più indistintamente come luce e quindi tendenti al bianco.
Il dynamic range standard di un frame buffer a 32bit per pixel è pari a circa 2,4dB, quindi insufficiente per la percezione dell'occhio umano a distinguere i dettagli.

La tecnologia NVIDIA High Precision Dynamic Lightning, implementata nel chip NV40, permette di renderizzare scene così complesse ottenendo una superiore dinamica. Questa tecnica utilizza 3 differenti fasi per ottenere il rendering della scena: light transport, tone mapping e color and gamma correction.

Il grado con il quale le singole superfici della scena riflettono la luce viene calcolato e salvato in uno speciale buffer HDR; il contributo di più sorgenti luminose viene sommato. L'output dell'operazione di light transport è l'HDR per-pixel radiance, valore che può essere pari a qualsiasi numero a seconda di quanto il pixel e soggetto a illuminazione all'interno della scena. L'algoritmo calcola, quindi, quali oggetti risultino visibili e quindi debbano essere mostrati nella scena.
Il risultato ottenuto è una compressione del livello dinamico dell'illuminazione presente nella scena, ma comunque con una superiore precisione rispetto a quanto possibile con altre tecniche.

Correzioni nei colori e nel gamma dell'immagine vengono applicate così da meglio adattare la scena al tipo di display utilizzato. Per via dell'andamento logaritmico della percezione dell'occhio umano, si richiede superiore precisione in prossimità delle zone nere, dove i dettagli sono maggiormente visibili, e inferiore vicino alle zone bianche.

Una tecnica spesso utilizzata per rendere la dinamica delle luci al meglio è quella sRGB; a fronte di un gamma space a 8-bit e di un range da 0 a 1, sRGB permette di avere maggiore precisione in prossimità dello 0, superfici scure, rispetto a quelle più illuminate, riprendendo parte dell'andamento logaritmico dell'occhio umano. Questo permette di ottenere un risultato qualitativamente superiore al tradizionale RGB, ma con valori non lineari e comunque con un notevole margine di errore al proprio interno.

sRGB si è rivelata essere una buona via per memorizzare i colori, in quanto da un punto di vista di elaborazione richiede poca potenza di calcolo e si abbina bene allo standard utilizzato da Microsoft per Windows e a quella che è la tipica riproduzione di oggetti e immagini nel web.

sRGB, tuttavia, non è un valido strumento per gestire illuminazione, soprattutto quando questa viene sovrapposta con più luci in una scena, in quanto in sRGB i colori non possono essere sommati, e quindi le luci sommate. Per ottenere questo risultato i colori devono essere convertiti, richiedendo ulteriori elaborazioni, oppure si può evitare l'operazione di conversione ottenendo però una perdita di dettaglio e di precizione.

La tecnologia EXR implementata nel chip NV40, derivata direttamente dallo standard OpenEXR (sito web a questo indirizzo), permette di ottenere un dynamic range pari a 12dB, con precisione logaritmica a 11bit. Queste specifiche sono già state integrate all'interno delle API DirectX 9 e con NV40 trovano un pieno supporto hardware.

NV40 supporta nativamente sia EXR che sRGB; la seconda tecnica è indicata per la memorizzazione dei colori dei pixel che compongono i singoli oggetti di una scena, mentre EXR permette di elaborare cosa siano questi colori e come questi siano soggetti alle differenti luci presenti all'interno della scena.

exr_1.jpg (32074 bytes)
con EXR: differenza di 9000:1 tra le intensità delle sorgenti d'illuminazione

exr_2.jpg (49992 bytes)
senza EXR: differenza di 100:1 tra le intensità delle sorgenti d'illuminazione

Osservando in dettaglio le due immagini si nota come la prima vanti una superiore precisione dei dettagli, in modo particolare quando questi sono meno soggetti alle luci. Le parti illuminate non diretttamente sono meno soggette alla pura illuminazione, restituendo un dettaglio più fedele degli oggetti; in particolare, basti confrontare la parte destra del pavimento nelle due immagini per vedere il superiore dettaglio della prima scena.

 
^