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|
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 ==
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
== 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|
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
|