Compressione Normal Map 3Dc

È passato solo un mese dal lancio dell'impressionante GeForce 6800 Ultra di NVIDIA, che ATi sgancia la sua nuova bomba. Oggi debuttano le Radeon X800XT Platinum Edition e X800 Pro, riusciranno a ribaltare nuovamente la situazione nel settore delle schede video?

Avatar di Tom's Hardware

a cura di Tom's Hardware

Compressione Normal Map 3Dc

Le moderne schede video usano tecniche di compressione in molte aree. In alcuni casi, questo accade inizialmente nel chip, in altri esternamente tramite il software o i formati nei quali le informazioni sono archiviate.

La compressione delle texture (S3TC, DXTC), per esempio, è da tempo usata per ridurre la dimensione delle texture ad alta risoluzione. Le texture vengono salvate in un formatto compresso che il chip grafico riesce a leggere. Questa compressione funziona molto bene e senza sacrificare troppa qualità dell'immagine con le texture che usano il formato RGB o RGBA. Quando applicata a formati texture a due canali, invece, produce artefatti.

Marketing speak alert! 3Dc does not necessarily mean better details! 3Dc only reduces the file size of the normal map through compression, thereby saving memory bandwidth. Game developers can either improve performance by compressing the normal map or make their in-game world more detailed by using a more detailed, high-resolution normal map and then compressing it.

3Dc non significa necessariamente dettagli migliori! Semplicemente riduce la dimensione del file del normal map attraverso la compressioni, quindi riducendo l'esigenze di banda di memoria. Gli sviluppatori di giochi possono migliorare le prestazioni comprimendo le normal map oppure possono introdurre mappe più grandi e dettagliate e poi comprimerle.

Molti giochi attuali come FarCry, per esempio, usano un metodo di bump-mapping avanzato chiamato Normal Mapping. Le Normal Map sono texture speciali che contengono informazioni dettagliate su un oggetto poligonale. Come le bump map, queste normal map sono pensate per aumentare il dettaglio di un oggetti senza far uso modelli poligonali troppo complessi. Il bello è che l'illuminazione è corretta da ogni angolazione - come esempio guardate questa testa.

3Dc Normal Map Compression

Per prima cosa il designer 3D crea un modello molto dettagliato usando un numero di poligoni elevato. Successivamente, si passa a un modello semplificato, con molti meno poligoni. Le differenze tra i due modelli sono calcolate e trasformate in una texture (la normal map), che incorpora una buona parte del dettaglio che è andato perso nella semplificazione del modello originale. La normal map viene poi applicata al modello semplificato, per un effetto finale che è molto simile a quello del modello con più poligoni. Naturalmente, siccome la normal map non aggiunge dettagli geometrici, quindi l'aspetto finale non sarà mai completo come quello del modello originale.

Facciamo l'esempio di una gomma in un gioco di corse. Il primo modello sarebbe molto complesso e includerebbe un mucchio di dettagli. Quello successivo consiste solo in una forma grezza circolare composta di 16 elementi. In combinazione con una normal map, questo secondo modello sembrerà parecchio dettagliato, ma riuscirete sempre a distinguere la forma circolare approssimativa.

L'uso di normal map ha anche degli svantaggi. Per dirne uno, il carico sul processore grafico è maggiore, siccome si tratta pressapoco di aggiungere un'ulteriore texture al pixel. L'altro svantaggio è che è richiesto un maggiore ammontare di dati. Più dettagli si vogliono implementare, maggiore è la banda di memoria richiesta. Le normal map possono essere compresse con DXTC, ma questo normalmente risulta in artefatti visibili. Come S3 ha sviluppato la tecnologia S3TC quando le texture grandi sono diventate un problema, ora ATi ha sviluppato una nuova tecnica di compressione appositamente per le normal map, chiamata 3Dc. Secondo la società canadese, questo metodo può comprimere le normal map con un rapporto di 4:1 senza grandi perdite di qualità.

ATi's 3Dc compression compared to DXTC. Unfortunately, we don't know which compression ratio was used in this example. Also, 3Dc doesn't automatically guarantee better normal maps. Thanks to the compression, however, it does allow for more detailed normal maps of the same file size.

La compressione 3Dc confrontata alla DXTC. Sfortunatamente non sappiamo che rapporto di compressione è stato usato in questo esempio.

Gli sviluppatori possono sia aumentare le prestazioni dei propri giocih, siccome è possibile raggiungere lo stesso livello di dettagli usando meno banda di memoria, o aggiungere ulteriori dettagli usando normal map ad alte risoluzione compresse.

Il 3Dc sarà implementato in tutte le schede X800 e su tutte le schede basate sul core R420. I chip più vecchi non saranno in grado di usare questa caratteristica. Rimane a Microsoft decidere se aggiungere o meno 3Dc alle specifiche di DirectX, naturalmente sarebbe l'obbiettivo di ATi, che offre la tecnologia come open standard, ossia tutti la possono utilizzare senza pagare royalties.