Texture mapping: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Funzionamento: Mi sono dimenticato di correggere la frase dopo aver rimosso texture map
mNessun oggetto della modifica
Riga 1:
[[File:Texturedm1a2.png|thumb|(1) Modello 3D senza texture<br/>(2) Modello 3D con texture|290x290pxupright=1.3]]
Il '''texture mapping''' in [[computer grafica]] è una tecnica che permette di proiettare una o più immagini sulla superficie di un [[modello 3D]], utilizzando le [[Mappatura UV|coordinate UV]]. Una '''[[Texture (grafica)|texture]]''' è un'immagine bidimensionale in [[Grafica raster|formato raster]] che viene riprodotta su una o più facce di un modello [[poligono (computer grafica)|poligonale]] tridimensionale<ref>{{cita libro|autore=David Thomas, Kyle Orland, Scott Steinberg|titolo=The videogame style guide and reference manual|anno=2007|editore=Power Play Publishing|ISBN=978-1-4303-1305-2|url=http://www.gamestyleguide.com/VideoGameStyleGuideeBook.pdf|pagine=62|lingua=inglese}}</ref>. La texture rende il modello più dettagliato e realistico, inoltre la sovrapposizione di più texture è utilizzata ad esempio per dare degli effetti speciali ai modelli tridimensionali come luce e nebbia. La tecnica, in particolare nelle [[animazione digitale|animazioni]] 3D, unisce la rapidità di calcolo della grafica poligonale alla ricchezza di dettaglio delle immagini raster. La diffusione di tale tecnica di animazione nelle applicazioni domestiche come i videogiochi si ebbe negli anni '90; nei primi anni del decennio era ancora fattibile con velocità adeguate solo sui PC più potenti dell'epoca<ref>{{cita libro|voce=Texture mapping|titolo=Dizionario dei videogame|url=http://www.dizionariovideogiochi.it/doku.php?id=dizionario_dei_videogame_il|formato=pdf|autore=Fabio Rossi|editore=Vallardi|data=1993|ISBN=8811904226|p=389}}</ref>.
 
== Storia ==
PerchèAgli ilalbori texture mapping ha questo nome? Informalmente parlando, moltodella tempocomputer fagrafica, i piccoli dettagli dei modelli - che fossero geometrici o riconducibili al colore - erano rappresentati sul modello dell'oggetto "dipingendoli" sul modello stesso, come in una pittura [[trompe -l'oeilœil]].<ref name=":0">{{Cita libro|autore=John F. Hughes, Andries Van Dam, Morgan Mcguire, David F. Sklar, James D. Foley, Steven K. Feiner, Kurt Akeley|titolo=Computer Graphics: Principles and Practise|edizione=3|anno=|editore=|città=|p=|pp=|ISBN=}}</ref> Era possibile dipingere una piccola macchia chiara sul modello in modo sembrasse un punto luce, a prescindere dall'illuminazione nella scena. Questi dettagli erano chiamati texture, ed erano memorizzati in un [[array]] immagine. Il modellista della scena doveva anche associare ogni vertice del modello alla posizione nell'array immagine, perciò "mappare" il modello all'immagine (sebbene l'obiettivo generale fosse proprio l'opposto - questa mappatura era usata per "applicare" l'immagine sul modello, come un adesivo).
 
Presto divenne chiaro che piuttosto che mappare l'albedo (ovvero la frazione dell'energia riflessa), era possibile mappare altri parametri del modello di illuminazione, come il vettore normale.<ref name=":0" /> Il variare del vettore normale rendeva il modello come increspato o accidentato (senza modificare la geometria del modello<ref>{{Cita libro|autore=David S. Ebert, F. Kenton Musgrave, Darwyn Peachey, Ken Perlin, Steven Worley|titolo=Texturing & Modeling - A Procedural Approach|edizione=3|anno=|editore=|città=|p=|pp=|ISBN=}}</ref>); in altre parole, l'aspetto di una trama. Ma il termine "texture" era già utilizzato per dare il significato a qualcosa di diverso, così questo fu chiamato ''bump mapping'' (Blinn, 1978). In seguito divenne chiaro che si potevano anche memorizzare in una mappa piccole variazioni nella posizione della superficie, e mentre questo sarebbe stato chiamato bump mapping - dato che effettivamente aggiungeva irregolarità a una superficie - quell'espressione era comunque in uso, così venne chiamato ''displacement mapping'' (Cook, 1984).<ref name=":0" />
 
Infine, quando divennero comuni le GPU programmabili, la loro texture memory era l'unica struttura dati disponibile indirizzabile casualmente al programmatore, ed era spesso usata per memorizzare array n-dimensionali, puntatori, e altre cose (ovvero, essa era trattata come una memoria ordinaria). Perciò, il particolare significato di "texture" è piuttosto dipendente dal tempo; quando si legge un documento sulla materia, c'è bisogno di sapere quando è stato scritto per sapere comecosa il terminitermine sta a indicare.
 
== Funzionamento ==
Riga 31:
 
<math display="block">\begin{align} \phi & : S \rightarrow T \\ & : (x,y,z) \mapsto (u,v) \\ \end{align}</math>
[[File:Texture mapping space.png|miniatura|310x310pxupright=1.5|Texture space per (a) texture mapsmap 1D, (b) texture mapsmap 2D, e (c) texture mapsmap 3D]]
L'insieme <math>T</math>, spesso chiamato "'''texture space'''", è di solito solo un rettangolo che contiene l'immagine; è comune l'utilizzo del quadrato unitario <math>(u,v)\in[0,1]^2</math> (useremo le lettere <math>u</math> e <math>v</math> per le due texture coordinates). La funzione <math>\phi</math> è una mappatura ''dalla'' superficie ''alla'' texture, quando il nostro obiettivo è inserire la texture sulla superficie, questa tuttavia è la funzione di cui abbiamo bisogno.
 
Riga 61:
== Altri progetti ==
{{interprogetto|commons=Category:Textures}}
 
[[Categoria:Computer grafica]]
 
== Collegamenti esterni ==
* [http://happy-werner.hol.es/howtos/isw/parts/3d/chapter_2/chapter_2_texture_mapping.pdf ''Chapter 2: Texture Mapping''] da happy-werner.hol.es
* [http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series4/Textured_terrain.php Programmare un terreno texturizzato] usando XNA/DirectX, da www.riemers.net
 
[[Categoria:ComputerGrafica grafica3D]]