Normal mapping

Da Wikipedia, l'enciclopedia libera.
Normal mapping usato per aggiungere dettaglio a maglie semplificate.

Nella grafica 3D, il normal mapping, o "Dot3 bump mapping", è una tecnica usata per simulare l'illuminazione di urti e ammaccature. È usata per aggiungere dettagli senza utilizzare altri modelli poligonali. Un normal map è generalmente una immagine RGB che corrisponde alle coordinate X,Y e Z di una normale superficie da una più dettagliata versione dell'oggetto. Un uso comune di questa tecnica è quello di migliorare l'aspetto e i dettagli di un modello poligonale scarno, tramite la creazione di un normal map di un modello poligonale dettagliato.

Storia[modifica | modifica sorgente]

L'idea di attingere a dettagli geometrici per creare un modello poligonale complesso è stata introdotta nel "Fitting Smooth Surface to Dense Polygon Meshes" (letteralmente "Montaggio di Superficie Levigata su Dense Maglie Poligonali") da Krishnamurthy e Levoy, durante il SIGGRAPH del 1996, dove questo approccio venne usato per creare il displacement mapping su curve NURBS. Nel 1998, vennero presentati due articoli che contenevano l'idea di trasferire, tramite normal mapping, dettagli da maglie di modelli poligonali complessi a modelli composti da pochi poligoni: articoli accademici come "Appearance Preserving Simplification" di Jonathan David Cohen (SIGGRAPH 1998), e "A general method for preserving attribute values on simplified meshes" di Paolo Cignoni (IEEE Visualization 1998).

Il primo ha presentato un particolare algoritmo di semplificazione vincolata, che durante il processo di semplificazione tiene traccia di come i dettagli che vengono perduti possano essere mappati sulla maglia semplificata. Il secondo ha presentato un approccio più semplice: si disaccoppia la maglia ad alta concentrazione poligonale da quella a bassa concentrazione poligonale e si permette la ricreazione dei dettagli persi in modo da non dipendere dal modo in cui il modello a bassa concentrazione poligonale è stato creato. Quest'ultimo approccio (con qualche piccola variazione) è ancora utilizzato dalla maggior parte strumenti attualmente disponibili.

Normal mapping nei videogiochi[modifica | modifica sorgente]

Normal mapping interattivi erano possibili, almeno in origine, solo su PixelFlow, una macchina di rendering parallelo costruita dall'Università della Carolina del Nord a Chapel Hill. Fu successivamente possibile eseguire il normal mapping su workstation di fascia alta della SGI usando rendering multi-pass e operazioni di framebuffer, o su Hardware PC di fascia bassa, con qualche trucco legato all'uso di texture palettizzate. Ad ogni modo, con l'avvento degli shader nei personal computer e nelle console da videogiochi, il normal mapping si è diffuso nei software proprietari di tipo commerciale, utilizzati da aziende creatrici di videogames, a partire dal tardo 2003 e negli anni successivi in giochi open source. La popolarità del normal mapping per rendering in tempo reale è dovuta all'ottimo rapporto tra qualità e requisiti di processo, a dispetto di altri metodi di produzione simili. La sua efficienza è stata resa possibile, in gran parte, dallo scaling dei dettagli in base alla distanza degli oggetti, una tecnica che permette di ridurre selettivamente i dettagli di un normal map di una data texture: questo significa che le superfici più lontane richiederanno simulazioni di illuminazione meno complesse.

Il normal mapping di base può essere implementato in ogni hardware che supporti texture pallettizzate. La prima console di gioco che ha sperimentato il normal mapping è stata il Sega Dreamcast. Comunque, l'Xbox di Microsoft è stata la prima console ad usare largamente l'effetto in videogiochi. In quella generazione di console solo la Playstation 2 di Sony soffrì la mancanza del supporto integrato al normal mapping. Molti giochi per Xbox 360 e PlayStation 3 si basano in gran parte sul normal mapping e si sta diffondendo l'implementazione del parallax mapping. Il Nintendo 3DS è una console portatile in cui è stato mostrato l'utilizzo di normal mapping, come dimostrato da Resident Evil: Revelations e Metal Gear Solid 3: Snake Eater, in edizione portatile sulla console Nintendo.

Voci correlate[modifica | modifica sorgente]

Note[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]

informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica