Texture (grafica): differenze tra le versioni

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Contenuto cancellato Contenuto aggiunto
m Annullate le modifiche di 80.182.85.199 (discussione), riportata alla versione precedente di Atarubot
Etichetta: Rollback
Davi.trip (discussione | contributi)
Riorganizzazione parziale e ampliamento
Riga 1: Riga 1:
Il termine '''texture''' indica l'alterazione visiva e/o tattile della continuità di una superficie<ref name=":3">{{Cita libro|nome=Renato|cognome=Bruscaglia|titolo=Incisione calcografica e stampa originale d'arte. Materiali, procedimenti, segni grafici|url=https://www.amazon.it/Incisione-calcografica-originale-Materiali-procedimenti/dp/8839200290/ref=sr_1_1?ie=UTF8&qid=1520188465&sr=8-1&keywords=renato+bruscaglia+incisione+calcografica|accesso=2018-03-04|edizione=2|data=1 settembre 1988|editore=Quattroventi|lingua=Italiano|p=|ISBN=9788839200297}}</ref>, come anche l'insieme delle variazioni cromatiche e morfologiche possedute da qualsiasi materiale presente nella realtà.<ref name=":0">{{Cita libro|nome=Francesco|cognome=Siddi|titolo=Grafica 3D con Blender|url=https://www.amazon.it/Grafica-3D-Blender-Francesco-Siddi/dp/8850333145/ref=sr_1_1?s=books&ie=UTF8&qid=1520188639&sr=1-1&keywords=grafica+3d+con+blender|accesso=2018-03-04|data=25 giugno 2014|editore=Apogeo|lingua=Italiano|ISBN=9788850333141}}</ref>
[[File:Classi di texture.png|destra|senza_cornice|557x557px]]
Il termine '''texture''' (in italiano reso come "trama") si riferisce all'insieme di variazioni cromatiche e morfologiche possedute da qualsiasi materiale presente nella realtà.<ref name=":0">{{Cita libro|autore=Francesco Siddi|titolo=Grafica 3D con Blender|anno=|editore=|città=}}</ref> Una texture, in computer grafica e nel graphic design, è comunemente un'immagine bidimensionale in [[Grafica raster|formato raster]] che viene riprodotta su una o più facce di un [[Modello 3D|modello tridimensionale]] [[Poligono (computer grafica)|poligonale]] o sul foglio virtuale.


== Definizione ==
In base al grado di casualità dell'immagine, le texture possono essere disposte lungo uno spettro che va da texture ''regolari'' a texture ''stocastiche'', collegate da transizioni graduali.<ref>{{Cita web|url=http://graphics.cs.cmu.edu/projects/nrt/|titolo="Near-regular Texture Analysis and Manipulation." Yanxi Liu, Wen-Chieh Lin, and James Hays. SIGGRAPH 2004}}</ref>
Una "texture" è definita come la qualità visibile e tattile della superficie di un oggetto<ref name=":1">{{Cita libro|nome=Richard|cognome=Poulin|titolo=The Language of Graphic Design-updated and Revised: An Illustrated Handbook for Understanding Fundamental Design Principles|url=https://www.amazon.it/Language-Graphic-Design-updated-Revised-Understanding/dp/1631596179/ref=sr_1_2?ie=UTF8&qid=1520237578&sr=8-2&keywords=the+language+of+graphic+design|accesso=2018-03-05|data=2018-08-16|editore=Rockport Pub|lingua=Inglese|p=|citazione=Texture is defined as the look and feel of any surface|ISBN=9781631596179}}</ref>, che sia liscio, rugoso, morbido, o duro, ed è essenzialmente un effetto visivo che aggiunge ricchezza e dimensione a una qualunque composizione.<ref>{{Cita libro|nome=Richard|cognome=Poulin|titolo=The Language of Graphic Design-updated and Revised: An Illustrated Handbook for Understanding Fundamental Design Principles|url=https://www.amazon.it/Language-Graphic-Design-updated-Revised-Understanding/dp/1631596179/ref=sr_1_2?ie=UTF8&qid=1520237578&sr=8-2&keywords=the+language+of+graphic+design|accesso=2018-03-05|data=2018-08-16|editore=Rockport Pub|lingua=Inglese|ISBN=9781631596179}}</ref> Il termine "texture" deriva dal latino ''textura'', rete, tessitura<ref>{{Cita libro|nome=Walter William|cognome=Skeat|titolo=A Concise Etymological Dictionary of the English Language|url=https://www.amazon.com/Concise-Etymological-Dictionary-English-Language/dp/1333713770/ref=sr_1_2?ie=UTF8&qid=1520236776&sr=8-2&keywords=etymological+dictionary+a+concise|accesso=2018-03-05|data=2017-10-17|editore=Forgotten Books|lingua=En|p=|ISBN=9781333713775}}</ref><ref>{{Cita web|url=http://www.treccani.it/vocabolario/textura/|titolo=textura in Vocabolario - Treccani|sito=www.treccani.it|lingua=it-IT|accesso=2018-03-05}}</ref>; il primo uso italiano risale al 1985.<ref>{{Cita libro|nome=Francesco|cognome=Sabatini|nome2=Vittorio|cognome2=Coletti|titolo=Il Sabatini Coletti dizionario della lingua italiana 2008. Con CD-ROM|url=https://www.amazon.it/Sabatini-Coletti-dizionario-lingua-italiana/dp/8852501738/ref=sr_1_1?ie=UTF8&qid=1520190273&sr=8-1&keywords=il+sabatini+coletti+dizionario+della+lingua+italiana+2008.+con+cd-rom|accesso=2018-03-04|data=1 luglio 2007|editore=Rizzoli Larousse|lingua=Italiano|ISBN=9788852501739}}</ref> L'espressione italiana "testura" è poco usata.<ref name=":3" />
* '''Texture regolari''': queste texture sono sostanzialmente i ''pattern'' discussi sotto. Un esempio di texture strutturata è un muro di pietra o un pavimento con piastrelle.
* '''Texture stocastiche''': queste texture si presentano come affette da [[Rumore (immagine)|rumore]].
Una texture è dunque un'immagine che rappresenta le forme e i colori della superficie di un oggetto o di un essere vivente, e la cui applicazione caratterizza ciò che su cui si sta lavorando in un'opera grafica.


== Caratteristiche generali ==
== La texture nel graphic design ==
Una ''texture'' è il modo in cui una superficie si presenta all'occhio; una texture è dunque usata per attribuire un tono visivo e può influenzare l'aspetto e la percezione di un lavoro di grafica. Essa è utilizzata per attrarre o allontanare l'interesse verso un elemento in base alla piacevolezza della texture stessa.<ref name=":1">{{Cita web|url=https://www.youtube.com/watch?v=hECQpBM0b0Q|titolo=‘Texture’ Visual element of Graphic Design Ep5/45 [Beginners guide to Graphic Design]|autore=TastyTuts}}</ref> Nel graphic design ci sono due tipi di texture, in base al contenuto dell'immagine: '''texture immagine''' e '''pattern'''.


=== Texture immagine ===
=== Classificazione ===
Una ''image texture'' (texture immagine) è formata dalla combinazione di forme organiche o geometriche e colore. Può essere semplice o complessa e generalmente ha un modo di apparire casuale, affinché manifesti un look e una percezione particolari; stuzzica i sensi, all'occhio piace guardare una texture di questo tipo.<ref name=":1" /> Non è possibile trovarci nulla di particolare, ma nel complesso provoca una percezione di emozioni e nonostante questo una sensazione di tatto.


==== Per casualità ====
Una texture immagine può essere ambientale, biologica, artificiale.<ref name=":1" /> Una texture immagine ambientale, può consistere, per esempio, in legno, grano, sabbia, acqua, pietra o le stelle del cielo. Una texture immagine biologica può consistere in pelle umana, manto animale, piume, o impronte. Le texture immagine artificiali possono essere dipinti, illustrazioni, dadi, abiti, documenti, tipografie, effetti fotografici e così via.
In base al grado di casualità dell'immagine, le texture possono essere disposte lungo uno spettro che va da texture "regolari" a texture "stocastiche", collegate da transizioni graduali:<ref>{{Cita web|url=http://graphics.cs.cmu.edu/projects/nrt/|titolo=Near-Regular Texture Analysis and Manipulation|sito=graphics.cs.cmu.edu|lingua=en|accesso=2018-03-04}}</ref>
* '''Texture regolari''' Un esempio di texture strutturata è un muro di pietra o un pavimento con piastrelle.
* '''Texture stocastiche''' – Queste texture si presentano come affette da [[Rumore (immagine)|rumore]].
[[File:Classi di texture.png|destra|senza_cornice|330x330px]]


=== Pattern ===
==== Per tipo ====
Vi sono tre tipi o classificazioni di texture nella comunicazione visiva:<ref name=":1" />
* '''Fisica''' o '''letterale''' – Una ''tactile texture'', anche definita come ''physical'' o ''literal texture'', è un variazione tattile effettiva della superficie di un oggetto. Per esempio, legno, grano, sabbia, pelo, vetro, cuoio, tela, e metallo, presentano tutti una texture fisica. Questo tipo di texture si differenzia dalla ''visual texture'' in quanto possiede una qualità fisica che può essere percepita solo dal tocco umano.
* '''Visuale''' – L'illusione di una texture fisica sulla superficie di un oggetto è identificata come ''visual texture''. Questi effetti illusori possono essere ottenuti attraverso l'uso di elementi progettuali come punti, linee, forme, luci, toni, contrasti e ''patterns''.
* '''Implicita''' – Una ''implied texture'' è una texture visuale che non trova alcuna base nella realtà di ogni giorno. È usata spesso in opere astratte.

=== Cos'è un ''pattern''? ===
[[File:Adobe Illustrator Pattern Punktmuster.svg|miniatura|190x190px|Esempio di pattern]]
[[File:Adobe Illustrator Pattern Punktmuster.svg|miniatura|190x190px|Esempio di pattern]]
Una ''pattern texture'' o più semplicemente [[pattern]], è un'immagine formata dalla combinazione di forme organiche o geometriche e colore, e tecnicamente, un motivo o un disegno che si ripete, secondo una simmetria e un ordine. I pattern possono essere semplici o complessi, ma a differenza delle texture immagine, essi appaiono molto più strutturati e richiamano il senso della vista piuttosto che la capacità emozionale.<ref name=":1" /> In genere si tratta di motivi decorativi, tessuti, figure astratte.
Una ''pattern texture'' o più semplicemente [[pattern]], è un'immagine formata dalla combinazione di forme organiche o geometriche e colore, e tecnicamente, un motivo o un disegno che si ripete, secondo una simmetria e un ordine. I pattern possono essere semplici o complessi, ma a differenza delle altre texture, essi appaiono molto più strutturati e richiamano il senso della vista piuttosto che capacità emozionali.<ref>{{Cita pubblicazione|cognome=TastyTuts|data=2016-02-18|titolo=‘Texture’ Visual element of Graphic Design Ep5/45 [Beginners guide to Graphic Design]|accesso=2018-03-05|url=https://www.youtube.com/watch?v=hECQpBM0b0Q}}</ref> In genere si tratta di motivi decorativi, tessuti, figure astratte.


In grafica come in architettura il pattern diventa uno strumento per comunicare, creare equilibri, generare piacere estetico, questo secondo gli studi di [[Ernst Gombrich]] si colloca generalmente in una posizione intermedia tra gli estremi costituiti da caos e ridondanza.<ref>{{Cita web|url=http://www.mirabiliaweb.net/blog/design/239-pattern-per-comunicare-in-grafica-e-architettura-i-nostri-poster-ispirati-al-lavoro-dello-studio-mecanoo.html|titolo=Pattern per comunicare in grafica e architettura – i nostri poster ispirati al lavoro dello studio mecanoo|autore=Giuseppe Gallo}}</ref> La ridondanza viene definita dalla teoria dell'informazione come la ripetizione costante di una serie di messaggi sempre uguali o comunque perfettamente prevedibili, il caos come una successione di messaggi imprevedibili. Nel primo caso, una volta compresa la chiave comunicativa, il messaggio diviene privo di interesse e il ricevente non pone più attenzione ad esso, nel secondo caso, quando la sequenza di messaggi non presenta alcuna regola riconoscibile né è possibile individuare alcun percorso logico organizzato, si attiva un meccanismo psicologico di rifiuto, la comunicazione svanisce. Stabiliti gli estremi, bisogna definire una situazione di equilibrio, un'alta quantità di informazioni all'interno di una logica compositiva chiara e riconoscibile. Tantissimi tra artisti ([[Vasilij Vasil'evič Kandinskij|Kandinskij]], [[Paul Klee|Klee]]), studiosi, architetti si sono occupati di pattern o ne hanno sfruttato le qualità all'interno delle loro opere, partendo dalla ripetizione dello stesso elemento senza variazioni, inserendo all'interno del pattern diversi elementi, aumentando la quantità dell'informazione, senza superare la soglia oltre la quale si genera il caos.
In grafica come in architettura il pattern diventa uno strumento per comunicare, creare equilibri, generare piacere estetico, questo secondo gli studi di [[Ernst Gombrich]] si colloca generalmente in una posizione intermedia tra gli estremi costituiti da caos e ridondanza.<ref name=":4">{{Cita news|lingua=it-it|nome=Giuseppe|cognome=Gallo|url=http://www.mirabiliaweb.net/blog/design/239-pattern-per-comunicare-in-grafica-e-architettura-i-nostri-poster-ispirati-al-lavoro-dello-studio-mecanoo.html|titolo=Pattern per comunicare in grafica e architettura – i nostri poster ispirati al lavoro dello studio mecanoo|accesso=2018-03-05}}</ref> Tantissimi tra artisti ([[Vasilij Vasil'evič Kandinskij|Kandinskij]], [[Paul Klee|Klee]]), studiosi, architetti si sono occupati di pattern o ne hanno sfruttato le qualità all'interno delle loro opere, partendo dalla ripetizione dello stesso elemento senza variazioni, inserendo all'interno del pattern diversi elementi, aumentando la quantità dell'informazione, senza superare la soglia oltre la quale si genera il caos.<ref name=":4" />


== La texture in computer grafica ==
== Le texture nella computer grafica 3D ==
Oltre che per la determinazione dei materiali stessi, nella [[computer grafica 3D]] le texture sono indispensabili anche per altri scopi:<ref name=":0" />
Quando un utente cerca di replicare il mondo reale, realizza immediatamente che difficilmente qualunque superficie non sia caratterizzata. Il legno si sviluppa nella ruvidità, la pelle con le rughe, i vestiti presentano una struttura a intreccio, la pittura mostra i segni del pennello o del rullo che l'ha posata sul muro. E il metallo liscio mostra i segni del processo di lavorazione. I materiali che prima erano senza una caratteristica specifica diventano rapidamente ricoperti di segni, denti, macchie, graffi, impronte digitali e sporcizia.

Tecnicamente, nella computer grafica, le texture vengono applicate alla superficie di un materiale e ne influenzano lo [[Ombreggiatura|shading]]. Oltre che per la questione riguardante la determinazione dei materiali stessi, nella [[computer grafica 3D]] le texture sono indispensabili anche per altri scopi:<ref name=":0" />
* '''Raffigurare immagini''': se disponiamo di una scena all'interno della quale deve essere visualizzata una fotografia, un'illustrazione, una scrittura (le pagine di un libro, per esempio) e così via.
* '''Raffigurare immagini''': se disponiamo di una scena all'interno della quale deve essere visualizzata una fotografia, un'illustrazione, una scrittura (le pagine di un libro, per esempio) e così via.
* '''Aggiungere dettaglio''': non sempre è opportuno aumentare il livello di un modello incrementandone il numero di vertici, anzi, tale situazione, oltre un certo grado è da evitarsi. In alcuni casi, per esempio l'aggiunta di "sporco" , la [[Modellazione 3D|modellazione]] non può essere di alcuna utilità. Le texture possono venire in aiuto per rappresentare superfici che dispongono di dettagli molto irregolari (lo sporco), allo stesso modo di superfici suddivise in modo regolare (una pavimentazione, i mattoni di un muro e così via).
* '''Aggiungere dettaglio''': non sempre è opportuno aumentare il livello di dettaglio di un modello tridimensionale incrementandone il numero di vertici, anzi, tale situazione, oltre un certo grado è da evitarsi. In alcuni casi, per esempio l'aggiunta di "sporco" , la [[Modellazione 3D|modellazione]] non può essere di alcuna utilità. Le texture possono venire in aiuto per rappresentare superfici che dispongono di dettagli molto irregolari (lo sporco), allo stesso modo di superfici suddivise in modo regolare (una pavimentazione, i mattoni di un muro e così via).

=== Storia ===
Cronologia delle idee e degli sviluppi riguardanti le texture nell'ambito della computer grafica 3D:
* '''1974''' – [[Edwin Catmull]] introduce il ''[[texture mapping]]''<ref>{{Cita pubblicazione|nome=Edwin Earl|cognome=Catmull|data=1974-01-01|titolo=A subdivision algorithm for computer display of curved surfaces.|accesso=2018-03-05|url=http://dl.acm.org/citation.cfm?id=907242}}</ref>, seguito nel 1976 da [[Jim Blinn]] e [[Martin Newell]].<ref name=":2">{{Cita pubblicazione|nome=James F.|cognome=Blinn|data=1976-10-01|titolo=Texture and reflection in computer generated images|rivista=Communications of the ACM|volume=19|numero=10|pp=542–547|accesso=2018-03-05|doi=10.1145/360349.360353|url=http://dl.acm.org/citation.cfm?id=360349.360353|nome2=Martin E.|cognome2=Newell}}</ref> Il ''texture mapping'' consiste nel prendere un'immagine bidimensionale che rappresenti la superficie di un oggetto, per poi applicarla (mapparla) a un oggetto tridimensionale generato al computer – similmente a come si applica la carta da parati su un muro spoglio.<ref>{{Cita libro|nome=Mike|cognome=Morrison|titolo=Becoming a Computer Animator|url=https://www.amazon.co.uk/Becoming-Computer-Animator-Mike-Morrison/dp/0672304635|accesso=2018-03-05|edizione=Pap/Cdr edition|anno=1994|editore=Sams Publishing|lingua=En|p=|ISBN=9780672304637}}</ref>
* '''1976''' – Jim Blinn e Martin Newell introducono l'''[[enviromental mapping]]''.<ref name=":2" /><ref>{{Cita web|url=http://www.pauldebevec.com/ReflectionMapping/|titolo=Reflection Mapping History|sito=www.pauldebevec.com|accesso=2018-03-05}}</ref>
* '''1976''' – Nell'ambito delle texture procedurali, Blinn e Newell impiegano la [[sintesi di Fourier]].<ref name=":5">{{Cita libro|nome=David S.|cognome=Ebert|nome2=F. Kenton|cognome2=Musgrave|nome3=Darwyn|cognome3=Peachey|titolo=Texturing and Modeling, Third Edition: A Procedural Approach|url=https://www.amazon.com/Texturing-Modeling-Third-Procedural-Approach/dp/1558608486/ref=dp_ob_title_bk|accesso=2018-03-05|edizione=3|data=2002-12-16|editore=Morgan Kaufmann|lingua=En|p=|ISBN=9781558608481}}</ref>
* '''1978''' – Jim Blinn introduce il ''[[bump mapping]]''.<ref name=":6">{{Cita pubblicazione|nome=James F.|cognome=Blinn|data=1978-08-23|titolo=Simulation of wrinkled surfaces, Simulation of wrinkled surfaces|rivista=ACM SIGGRAPH Computer Graphics|volume=12|numero=3|pp=286, 286–292, 292|accesso=2018-03-05|doi=10.1145/800248.507101, 10.1145/965139.507101|url=http://dl.acm.org/citation.cfm?id=800248.507101,%20http://dl.acm.org/citation.cfm?id=965139.507101|nome2=James F.|cognome2=Blinn}}</ref>
* '''1978''' – Fu e Lu propongono una tecnica di generazione delle texture sintattica e grammar-based.<ref name=":6" />
* '''1979-1980''' – Schacter e Ahuja impiegano la sintesi di Fourier e modelli stocastici di vario tipo, per generare le texture di [[Simulatore di volo|simulatori di volo]].<ref name=":5" />
* '''1982''' e '''1984''' – Rispettivamente, Fournier, Fussell, Carpenter, e Haruyama, Barsky, propongono di usare metodi di suddivisione stocastica ("frattale") per generare le texture.
* '''1984''' – [[Robert L. Cook]] introduce il ''[[displacement mapping]]''.<ref name=":5" />
* '''1984''' – Cook descrive il sistema ''[[shade trees]]'', che è uno dei primi sistemi per cui è conveniente generare texture procedurali durante il [[rendering]]. Gli ''shade trees'' abilitano l'uso di differenti modelli di [[Ombreggiatura|shading]] per ogni superficie oltre che per le sorgenti luminose e l'attenuazione attraverso l'atmosfera. Poiché gli input al modello di shading possono essere manipolati proceduralmente, gli ''shade trees'' rendono possibile usare le texture per controllare qualunque parte del calcolo dello shading. Texture a colori e trasparenti, [[Reflection mapping|''reflection mapping'']], [[bump mapping|''bump mapping'']], [[displacement mapping|''displacement mapping'']], e [[solid texturing|''solid texturing'']], possono essere implementati usando gli ''shade trees''.
* '''1985''' – [[Ken Perlin]], Darwyn Peachey, e Geoffrey Gardner introducono teniche di texturing 3D (''[[solid texturing]]'').<ref name=":5" /> Nella seconda metà degli anni Ottanta, tecniche procedurali per creare texture realistiche, come il marmo, legno, pietra e altri materiali naturali, guadagnano popolarità.<ref name=":5" /> Una texture procedurale di una superficie marmorea non usa un'immagine scansionata per definire i valori cromatici, ma piuttosto algoritmi e funzioni matematiche.<ref name=":5" />
* '''1985''' – Perlin descrive un linguaggio completo di generazione procedurale delle texture e getta le basi per la più popolare classe di texture procedurali in uso oggi, ovvero quelle basate sul ''noise'' ([[Rumore di Perlin|rumore]]), una primitiva della generazione di texture stocastiche.<ref name=":5" />
* '''1986''' – [[Nelson L. Max]] introduce l'''[[horizon mapping]]''.<ref>{{Cita libro|nome=Nelson L.|cognome=Max|titolo=Advanced Computer Graphics|url=https://link.springer.com/chapter/10.1007/978-4-431-68036-9_10|accesso=2018-03-05|data=1986|editore=Springer, Tokyo|lingua=en|pp=145–156|ISBN=9784431680383|DOI=10.1007/978-4-431-68036-9_10}}</ref>
* '''1987''' – Reeves, Salesin e Cook presentano un algoritmo per produrre ombre anti-aliased usando una ''image texture'' basata su una ''depth image'' di una scena renderizzata a partire dalla posizione della fonte luminosa.<ref name=":5" />
* '''1991''' – Turk, Witkin e Kass descrivono modelli di sintesi di texture ispirati ai processi biochimici, che producono (fra altri effetti) i pattern di pigmentazione delle pelli degli animali.
* '''1991''' Sims descrive un sistema di sintesi in cui le texture procedurali, rappresentate come espressioni [[Lisp|LISP]], sono automaticamente modificate e combinate da un sistema di programmazione genetico.<ref name=":5" /> Per mezzo di selezioni interattive tra le texture risultanti, l'utente di un sistema può guidare l'evoluzione simulata di una texture verso la direzione voluta.<ref name=":5" />
* '''1995''' – Pedersen inventa un modo per permettere all'utente di posizionare liberamente ''texture patches'' su una superficie, e al tempo stesso minimizzare la distorsione della mappatura.<ref name=":5" />
* '''1996''' – [[Venkat Krishnamurthy]] e [[Marc Levoy]] introducono il ''[[normal mapping]]''.<ref>{{Cita web|url=http://www.graphics.stanford.edu/papers/surfacefitting/|titolo=Fitting Smooth Surfaces to Dense Polygon Meshes|sito=www.graphics.stanford.edu|accesso=2018-03-05}}</ref>
* '''2000''' – Praun, Finkelstein, e Hoppe introducono le ''[[lapped textures]]'', nelle quali molti piccoli campioni della texture sono posizionati su una superficie in modo da sovrapporsi, in accordo a un campo vettoriale definito dall'utente, che guida l'orientamento e la scala dei campioni.<ref name=":5" />
* '''2001''' – Turk, Wei e Levoy generano una texture sintetica da dei campioni e "fanno crescere" questa proprio sulla superficie designata, tenendo in considerazione la sua forma e parametrizzazione.<ref name=":5" />


=== Texture mapping ===
=== Texture mapping ===
{{vedi anche|Texture mapping}}
{{vedi anche|Texture mapping}}
Per permettere all'utente di replicare la superficie di un oggetto reale sul proprio modello tridimensionale, gran parte dei software consente il '''texture mapping''': se si possiede un'immagine, detta in questo caso ''texture map'', ''image texture'', o semplicemente ''texture'', è possibile eseguire una mappatura ([[mappatura UV]]) dell'immagine sulla superficie del modello.
Per permettere all'utente di replicare la superficie di un oggetto reale sul proprio modello tridimensionale, gran parte dei software consente il ''texture mapping'': se si possiede un'immagine, detta in questo caso ''texture map'', ''image texture'', o semplicemente ''texture'', è possibile eseguire una mappatura ([[mappatura UV]]) dell'immagine sulla superficie del modello.


=== Texture procedurali ===
=== Texture procedurali ===
[[File:Procedural Texture.jpg|miniatura|162x162px|Texture di una grata realizzata in modo procedurale]]
Le texture procedurali (''procedural textures'') sono delle texture generate matematicamente.<ref name=":0" /> Sono utilizzate per simulare in genere il legno, il marmo, il granito, la pietra, il metallo, e altro.[[File:Procedural Texture.jpg|miniatura|162x162px|Texture di una grata realizzata in modo procedurale]]'''Vantaggi'''
Le '''texture procedurali''' (''procedural textures'') sono delle texture generate matematicamente.<ref name=":0" /> Sono utilizzate per simulare in genere il legno, il marmo, il granito, la pietra, il metallo, e altro.

'''Storia'''

Fin dalla nascita del [[texture mapping]], un gran numero di ricercatori utilizzavano comunque modelli di texturing per generare immagini piuttosto che scansionarle o dipingerle. Nel 1976, [[Jim Blinn]] e Newell impiegarono la [[sintesi di Fourier]]. Nel 1978, Fu e Lu proposero una tecnica di generazione sintattica grammar-based. Nel 1979, Schacter e Ahuja utilizzarono la sintesi di Fourier e modelli stocastici di vario tipo per generare immagini per [[Simulatore di volo|simulatori di volo]].<ref name=":2">{{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à=}}</ref> Nel 1982, Fournier, Fussell e Carpenter, e nel 1984, Haruyama e Barsky proposero l'utilizzo della suddivisione stocastica ("frattale") per generare le texture. Altri ricercatori svilupparono modelli di texture statistici, che analizzavano le proprietà delle texture naturali e dopo riproducevano le texture dai dati raccolti (Gagalowicz e Ma nel 1985, Garber nel 1981).

Nel 1984, Cook descrisse il sistema "shade trees"<ref name=":2" />, che fu uno dei primi sistemi per cui era conveniente generare texture procedurali durante il [[rendering]]. Gli shade trees abilitavano l'uso di differenti modelli di [[Ombreggiatura|shading]] per ogni superficie oltre che per le sorgenti luminose e per l'attenuazione attraverso l'atmosfera. Poiché gli input al modello di shading possono essere manipolati proceduralmente, gli shade trees rendono possibile usare le texture per controllare qualunque parte del computo dello shading. Texture a colori e trasparenti, [[reflection mapping]], [[bump mapping]], [[displacement mapping]], e [[solid texturing]], possono essere implementati usando gli shade trees.

Nel 1985, Perlin descrisse un linguaggio completo per la generazione di texture procedurali e gettò le fondamenta della classe più conosciuta di texture procedurali in uso oggi<ref name=":2" />, ovvero quella basate sul ''[[rumore di Perlin]]'', una primitiva di generazione di texture stocastiche.

Nel 1991, Turk, Witkin e Kass descrissero modelli di sintesi di texture, ispirati dai processi biochimici che producono (fra altri effetti), i pattern di pigmentazione sulle pelli degli animali. Nello stesso anno, Sims descrisse un sistema di sintesi in cui le texture procedurali rappresenta come espressioni LISP, sono automaticamente modificate e combinate da un sistema di programmazione genetico. Attraverso la selezione interattiva fra le texture risultanti, l'utente del sistema può direzionare l'evoluzione simulata della texture.

'''Vantaggi'''


Fra i vantaggi dell'utilizzo di texture procedurali<ref name=":0" /><ref name=":2" />:
Fra i vantaggi dell'utilizzo di texture procedurali:<ref name=":0" /><ref name=":5" />
* Vengono create interamente all'interno del software, pertanto non c'è bisogno di importare alcun riferimento esterno (immagini o altro).
* Vengono create interamente all'interno del software, pertanto non c'è bisogno di importare alcun riferimento esterno (immagini o altro).
* Sono ''seamless'', ossia prive di punti di discontinuità visibili (ricoprono l'oggetto in modo uniforme indipendentemente dalla disposizione delle facce).
* Sono ''seamless'', ossia prive di punti di discontinuità visibili (ricoprono l'oggetto in modo uniforme indipendentemente dalla disposizione delle facce).
Riga 57: Riga 69:
'''Svantaggi'''
'''Svantaggi'''


Fra gli svantaggi dell'utilizzo di texture procedurali<ref name=":2" />:
Fra gli svantaggi dell'utilizzo di texture procedurali:<ref name=":5" />
* Una texture procedurale può essere difficile da costruire e debuggare. La programmazione è spesso dura, e programmare una descrizione del pattern implicito è specialmente difficile in casi non banali.
* Una texture procedurale può essere difficile da costruire e debuggare. La programmazione è spesso dura, e programmare una descrizione del pattern implicito è specialmente difficile in casi non banali.
* Una texture procedurale, ovvero il risultato della programmazione, può essere una sorpresa. È spesso più facile prevederlo quando si scansiona o di dipinge una texture immagine.
* Una texture procedurale, ovvero il risultato della programmazione, può essere una sorpresa. È spesso più facile prevederlo quando si scansiona o di dipinge una texture immagine.
Riga 64: Riga 76:


=== Texture sintetizzate ===
=== Texture sintetizzate ===
Le '''texture sintetizzate''' sono delle texture che a differenza delle texture procedurali, vengono generate a partire da un'immagine, attraverso un confronto o un'estensione.
Le texture sintetizzate sono delle texture che a differenza delle texture procedurali, vengono generate a partire da un'immagine, attraverso un confronto o un'estensione.


Gli algoritmi di sintesi delle texture sono intesi per creare una immagine di output che rispetti questi requisiti:
Gli algoritmi di sintesi delle texture sono pensati per creare una immagine di output che rispetti questi requisiti:
* L'output deve avere la dimensione data dall'utente.
* L'output deve avere la dimensione data dall'utente.
* L'output deve essere quanto più possibile simile al campione.
* L'output deve essere quanto più possibile simile al campione.
Riga 95: Riga 107:
'''Sintesi di texture pixel-based'''
'''Sintesi di texture pixel-based'''


Questi metodi, utilizzando i campi di Markov<ref>{{Cita web|url=http://www.texturesynthesis.com/nonparaMRF.htm|titolo="Texture synthesis via a noncausal nonparametric multiscale Markov random field." Paget and Longstaff, IEEE Trans. on Image Processing, 1998}}</ref>, il campionamento non-parametrico<ref>{{Cita web|url=http://graphics.cs.cmu.edu/people/efros/research/EfrosLeung.html|titolo="Texture Synthesis by Non-parametric Sampling." Efros and Leung, ICCV, 1999}}</ref>, la quantizzazione di vettori a struttura d'albero<ref>{{Cita web|url=http://graphics.stanford.edu/papers/texture-synthesis-sig00/|titolo="Fast Texture Synthesis using Tree-structured Vector Quantization" Wei and Levoy SIGGRAPH 2000}}</ref>, e analogie d'immagine<ref>{{Cita web|url=http://mrl.nyu.edu/projects/image-analogies/|titolo="Image Analogies" Hertzmann et al. SIGGRAPH 2001}}</ref>, sono alcuni degli algoritmi di sintesi di texture più semplici e di successo. Essi tipicamente sintetizzano una texture in un ordine scan-line trovando e copiando pixel dalla più prossima vicinanza locale nella texture sintetizzata. Questi metodi sono molto utili per il completamento dell'immagine. Possono essere vincolati, come nelle analogie d'immagine, per eseguire molte attività interessanti. Essi sono tipicamente accelerati con alcune forme di una tecnica di approssimazione del vicino più prossimo, dato che la ricerca esaustiva per il migliore pixel è alquanto lenta. La sintesi può essere anche eseguita in multirisoluzione, come per esempio attraverso l'impiego di un campo casuale di Markov di multiscala non casuale e non parametrica<ref>{{Cita web|url=http://www.texturesynthesis.com/nonparaMRF.htm|titolo="Texture synthesis via a noncausal nonparametric multiscale Markov random field." Paget and Longstaff, IEEE Trans. on Image Processing, 1998}}</ref>.
Questi metodi, utilizzando i campi di Markov<ref name=":7">{{Cita web|url=http://www.texturesynthesis.com/nonparaMRF.htm|titolo=Semi Causal Nonparametric Markov Random Field Texture Synthesis|sito=www.texturesynthesis.com|accesso=2018-03-05}}</ref>, il campionamento non-parametrico<ref>{{Cita web|url=http://graphics.cs.cmu.edu/people/efros/research/EfrosLeung.html|titolo=Efros and Leung Texture Synthesis|sito=graphics.cs.cmu.edu|accesso=2018-03-05}}</ref>, la quantizzazione di vettori a struttura d'albero<ref>{{Cita web|url=http://graphics.stanford.edu/papers/texture-synthesis-sig00/|titolo=Fast Texture Synthesis using Tree-structured Vector Quantization|sito=graphics.stanford.edu|accesso=2018-03-05}}</ref>, e analogie d'immagine<ref>{{Cita web|url=http://mrl.nyu.edu/projects/image-analogies/|titolo=NYU Media Research Lab {{!}} Projects {{!}} Image Analogies|sito=mrl.nyu.edu|accesso=2018-03-05}}</ref>, sono alcuni degli algoritmi di sintesi di texture più semplici e di successo. Essi tipicamente sintetizzano una texture in un ordine scan-line trovando e copiando pixel dalla più prossima vicinanza locale nella texture sintetizzata. Questi metodi sono molto utili per il completamento dell'immagine. Possono essere vincolati, come nelle analogie d'immagine, per eseguire molte attività interessanti. Essi sono tipicamente accelerati con alcune forme di una tecnica di approssimazione del vicino più prossimo, dato che la ricerca esaustiva per il migliore pixel è alquanto lenta. La sintesi può essere anche eseguita in multirisoluzione, come per esempio attraverso l'impiego di un campo casuale di Markov di multiscala non casuale e non parametrica<ref name=":7" />.


'''Sintesi di texture patch-based'''
'''Sintesi di texture patch-based'''
Riga 107: Riga 119:
== Bibliografia ==
== Bibliografia ==
* David S. Ebert, F. Kenton Musgrave, Darwyn Peachey, Ken Perlin, Steven Worley, ''Texturing & Modeling, A Procedural Approach'', 3ª ed.
* David S. Ebert, F. Kenton Musgrave, Darwyn Peachey, Ken Perlin, Steven Worley, ''Texturing & Modeling, A Procedural Approach'', 3ª ed.
* [http://www.cs.princeton.edu/courses/archive/fall10/cos526/papers/ashikhmin01a.pdf Michael Ashikhmin. ''Synthesizing natural textures''. New York, NY, USA, 2001. ACM.]
* Michael Ashikhmin. ''[http://www.cs.princeton.edu/courses/archive/fall10/cos526/papers/ashikhmin01a.pdf Synthesizing natural textures]''. New York, NY, USA, 2001. ACM.
* [https://pdfs.semanticscholar.org/0b4b/1c92fc087cce17975a8f9a487bf8df2c8bbb.pdf David Benson and Joel Davis. ''Octree textures''. ACM Trans. Graph., July 2002.]
* David Benson and Joel Davis. ''[https://pdfs.semanticscholar.org/0b4b/1c92fc087cce17975a8f9a487bf8df2c8bbb.pdf Octree textures]''. ACM Trans. Graph., July 2002.
* [https://www.microsoft.com/en-us/research/wp-content/uploads/1976/10/p542-blinn.pdf J. F. Blinn and M. E. Newell. ''Texture and reflection in computer generated images''. Communications of the ACM, October 1976.]
* J. F. Blinn and M. E. Newell. ''[https://www.microsoft.com/en-us/research/wp-content/uploads/1976/10/p542-blinn.pdf Texture and reflection in computer generated images]''. Communications of the ACM, October 1976.
* [http://www.cs.jhu.edu/~misha/ReadingSeminar/Papers/DeBry02.pdf David (grue) DeBry, Jonathan Gibbs, Devorah DeLeon Petty, and Nate Robins. ''Painting and rendering textures on unparameterized models''. ACM Trans. Graph., July 2002.]
* David DeBry, Jonathan Gibbs, Devorah DeLeon Petty, and Nate Robins. ''[http://www.cs.jhu.edu/~misha/ReadingSeminar/Papers/DeBry02.pdf Painting and rendering textures on unparameterized models]''. ACM Trans. Graph., July 2002.
* [http://www1.cs.columbia.edu/CAVE/publications/pdfs/Dana_TOG99.pdf Kristin J. Dana, Bram van Ginneken, Shree K. Nayar, and Jan J.Koenderink. ''Reflectance and texture of real-world surfaces''. ACM Trans. Graph., January 1999.]
* Kristin J. Dana, Bram van Ginneken, Shree K. Nayar, and Jan J.Koenderink. ''[http://www1.cs.columbia.edu/CAVE/publications/pdfs/Dana_TOG99.pdf Reflectance and texture of real-world surfaces]''. ACM Trans. Graph., January 1999.
* [http://www.cs.ubc.ca/~little/cpsc425/efrosLeung99.pdf Alexei A. Efros and Thomas K. Leung. ''Texture Synthesis by Non-Parametric Sampling''. In Proceedings of the International Conference on Computer Vision-Volume 2, Washington, DC, USA, 1999. IEEE Computer Society.]
* Alexei A. Efros and Thomas K. Leung. ''[http://www.cs.ubc.ca/~little/cpsc425/efrosLeung99.pdf Texture Synthesis by Non-Parametric Sampling]''. In Proceedings of the International Conference on Computer Vision-Volume 2, Washington, DC, USA, 1999. IEEE Computer Society.
* [https://smartech.gatech.edu/bitstream/handle/1853/31995/2000_ieee_tvcg_001.pdf Steven Haker, Sigurd Angenent, Allen Tannenbaum, Ron Kikinis, Guillermo Sapiro, and Michael Halle. ''Conformal Surface Parameterization for Texture Mapping''. IEEE Transactions on Visualization and Computer Graphics, April 2000.]
* Steven Haker, Sigurd Angenent, Allen Tannenbaum, Ron Kikinis, Guillermo Sapiro, and Michael Halle. ''[https://smartech.gatech.edu/bitstream/handle/1853/31995/2000_ieee_tvcg_001.pdf Conformal Surface Parameterization for Texture Mapping]''. IEEE Transactions on Visualization and Computer Graphics, April 2000.
* [http://nameless.cis.udel.edu/class_data/cg/heckbert_bidirectional.pdf Paul S. Heckbert. ''Adaptive radiosity textures for bidirectional ray tracing''. SIGGRAPH Comput. Graph., September 1990.]
* Paul S. Heckbert. ''[http://nameless.cis.udel.edu/class_data/cg/heckbert_bidirectional.pdf Adaptive radiosity textures for bidirectional ray tracing]''. SIGGRAPH Comput. Graph., September 1990.
* [http://www-ui.is.s.u-tokyo.ac.jp/~takeo/papers/i3dg2001.pdf Takeo Igarashi and Dennis Cosgrove. ''Adaptive unwrapping for interactive texture painting''. In Proceedings of the 2001 Symposium on Interactive 3D Graphics, I3D ’01, New York, NY, USA, 2001. ACM.]
* Takeo Igarashi and Dennis Cosgrove. ''[http://www-ui.is.s.u-tokyo.ac.jp/~takeo/papers/i3dg2001.pdf Adaptive unwrapping for interactive texture painting]''. In Proceedings of the 2001 Symposium on Interactive 3D Graphics, I3D ’01, New York, NY, USA, 2001. ACM.
* [https://www.cs.rutgers.edu/~dpai/papers/DyRT.pdf Doug L. James and Dinesh K. Pai. ''DyRT: Dynamic response textures for real time deformation simulation with graphics hardware''. In Proceedings of the 29th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH ’02, New York, NY, USA, 2002. ACM.]
* Doug L. James and Dinesh K. Pai. ''[https://www.cs.rutgers.edu/~dpai/papers/DyRT.pdf DyRT: Dynamic response textures for real time deformation simulation with graphics hardware]''. In Proceedings of the 29th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH ’02, New York, NY, USA, 2002. ACM.
* [https://www.cs.drexel.edu/~david/Classes/CS586/Papers/p271-kajiya.pdf J. T. Kajiya and T. L. Kay. Rendering fur with three dimensional textures. SIGGRAPH Comput. Graph., July 1989.]
* J. T. Kajiya and T. L. Kay. ''[https://www.cs.drexel.edu/~david/Classes/CS586/Papers/p271-kajiya.pdf Rendering fur with three dimensional textures]''. SIGGRAPH Comput. Graph., July 1989.
* [https://www.cs.utah.edu/~shirley/papers/interactive95.pdf Paulo W. C. Maciel and Peter Shirley. ''Visual navigation of large environments using textured clusters''. In Proceedings of the 1995 Symposium on Interactive 3D Graphics, I3D ’95, New York, NY, USA, 1995. ACM.]
* Paulo W. C. Maciel and Peter Shirley. ''[https://www.cs.utah.edu/~shirley/papers/interactive95.pdf Visual navigation of large environments using textured clusters]''. In Proceedings of the 1995 Symposium on Interactive 3D Graphics, I3D ’95, New York, NY, USA, 1995. ACM.
* [http://hd.media.mit.edu/tech-reports/TR-234.pdf Kris Popat and Rosalind W. Picard. ''Novel Cluster-Based Probability Model for Texture Synthesis, Classification, and Compression''. In Visual Communications and Image Processing, 1993.]
* Kris Popat and Rosalind W. Picard. ''[http://hd.media.mit.edu/tech-reports/TR-234.pdf Novel Cluster-Based Probability Model for Texture Synthesis, Classification, and Compression]''. In Visual Communications and Image Processing, 1993.
* [http://papers.cumincad.org/data/works/att/4308.content.pdf Michael P. Salisbury, Michael T. Wong, John F. Hughes, and David H. Salesin. ''Orientable textures for image-based pen-and-ink illustration''. In Proceedings of the 24th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH ’97, New York, NY, USA, 1997. ACM Press/Addison-Wesley.]
* Michael P. Salisbury, Michael T. Wong, John F. Hughes, and David H. Salesin. ''[http://papers.cumincad.org/data/works/att/4308.content.pdf Orientable textures for image-based pen-and-ink illustration]''. In Proceedings of the 24th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH ’97, New York, NY, USA, 1997. ACM Press/Addison-Wesley.
* [http://www.cc.gatech.edu/~turk/my_papers/reaction_diffusion.pdf Greg Turk. ''Generating textures on arbitrary surfaces using reaction-diffusion''. SIGGRAPH Comput. Graph., July 1991.]
* Greg Turk. ''[http://www.cc.gatech.edu/~turk/my_papers/reaction_diffusion.pdf Generating textures on arbitrary surfaces using reaction-diffusion]''. SIGGRAPH Comput. Graph., July 1991.
* [https://pdfs.semanticscholar.org/0148/8053bdd9a96afd1c12ea42b90184e66652d3.pdf Andrew Witkin and Michael Kass. ''Reaction-diffusion textures''. SIGGRAPH Comput. Graph., July 1991.]
* Andrew Witkin and Michael Kass. ''[https://pdfs.semanticscholar.org/0148/8053bdd9a96afd1c12ea42b90184e66652d3.pdf Reaction-diffusion textures]''. SIGGRAPH Comput. Graph., July 1991.
* [https://graphics.stanford.edu/papers/texture-synthesis-sig00/texture.pdf Li-Yi Wei and Marc Levoy. ''Fast texture synthesis using tree-structured vector quantization''. In Proceedings of the 27th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH ’00, New York, NY, USA, 2000. ACM Press/Addison-Wesley.]
* Li-Yi Wei and Marc Levoy. ''[https://graphics.stanford.edu/papers/texture-synthesis-sig00/texture.pdf Fast texture synthesis using tree-structured vector quantization]''. In Proceedings of the 27th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH ’00, New York, NY, USA, 2000. ACM Press/Addison-Wesley.
* [http://www.graphics.cornell.edu/pubs/2002/2002/WPG02.pdf B. Walter, S. N. Pattanaik, and D. P. Greenberg. ''Using Perceptual Texture Masking for Efficient Image Synthesis''. Computer Graphics Forum, 2002.]
* B. Walter, S. N. Pattanaik, and D. P. Greenberg. ''[http://www.graphics.cornell.edu/pubs/2002/2002/WPG02.pdf Using Perceptual Texture Masking for Efficient Image Synthesis]''. Computer Graphics Forum, 2002.
* [http://www.unilim.fr/pages_perso/guillaume.gilet/Recherche/pdf/CGF09.pdf G. Gilet and J.M. Dischler. ''A Framework for Interactive Hypertexture Modeling'']
* G. Gilet and J.M. Dischler. ''[http://onlinelibrary.wiley.com/doi/10.1111/j.1467-8659.2009.01436.x/abstract A Framework for Interactive Hypertexture Modeling].'' Computer Graphics Forum, 2009.


== Voci correlate ==
== Voci correlate ==

Versione delle 14:00, 5 mar 2018

Il termine texture indica l'alterazione visiva e/o tattile della continuità di una superficie[1], come anche l'insieme delle variazioni cromatiche e morfologiche possedute da qualsiasi materiale presente nella realtà.[2]

Definizione

Una "texture" è definita come la qualità visibile e tattile della superficie di un oggetto[3], che sia liscio, rugoso, morbido, o duro, ed è essenzialmente un effetto visivo che aggiunge ricchezza e dimensione a una qualunque composizione.[4] Il termine "texture" deriva dal latino textura, rete, tessitura[5][6]; il primo uso italiano risale al 1985.[7] L'espressione italiana "testura" è poco usata.[1]

Caratteristiche generali

Classificazione

Per casualità

In base al grado di casualità dell'immagine, le texture possono essere disposte lungo uno spettro che va da texture "regolari" a texture "stocastiche", collegate da transizioni graduali:[8]

  • Texture regolari – Un esempio di texture strutturata è un muro di pietra o un pavimento con piastrelle.
  • Texture stocastiche – Queste texture si presentano come affette da rumore.

Per tipo

Vi sono tre tipi o classificazioni di texture nella comunicazione visiva:[3]

  • Fisica o letterale – Una tactile texture, anche definita come physical o literal texture, è un variazione tattile effettiva della superficie di un oggetto. Per esempio, legno, grano, sabbia, pelo, vetro, cuoio, tela, e metallo, presentano tutti una texture fisica. Questo tipo di texture si differenzia dalla visual texture in quanto possiede una qualità fisica che può essere percepita solo dal tocco umano.
  • Visuale – L'illusione di una texture fisica sulla superficie di un oggetto è identificata come visual texture. Questi effetti illusori possono essere ottenuti attraverso l'uso di elementi progettuali come punti, linee, forme, luci, toni, contrasti e patterns.
  • Implicita – Una implied texture è una texture visuale che non trova alcuna base nella realtà di ogni giorno. È usata spesso in opere astratte.

Cos'è un pattern?

Esempio di pattern

Una pattern texture o più semplicemente pattern, è un'immagine formata dalla combinazione di forme organiche o geometriche e colore, e tecnicamente, un motivo o un disegno che si ripete, secondo una simmetria e un ordine. I pattern possono essere semplici o complessi, ma a differenza delle altre texture, essi appaiono molto più strutturati e richiamano il senso della vista piuttosto che capacità emozionali.[9] In genere si tratta di motivi decorativi, tessuti, figure astratte.

In grafica come in architettura il pattern diventa uno strumento per comunicare, creare equilibri, generare piacere estetico, questo secondo gli studi di Ernst Gombrich si colloca generalmente in una posizione intermedia tra gli estremi costituiti da caos e ridondanza.[10] Tantissimi tra artisti (Kandinskij, Klee), studiosi, architetti si sono occupati di pattern o ne hanno sfruttato le qualità all'interno delle loro opere, partendo dalla ripetizione dello stesso elemento senza variazioni, inserendo all'interno del pattern diversi elementi, aumentando la quantità dell'informazione, senza superare la soglia oltre la quale si genera il caos.[10]

Le texture nella computer grafica 3D

Oltre che per la determinazione dei materiali stessi, nella computer grafica 3D le texture sono indispensabili anche per altri scopi:[2]

  • Raffigurare immagini: se disponiamo di una scena all'interno della quale deve essere visualizzata una fotografia, un'illustrazione, una scrittura (le pagine di un libro, per esempio) e così via.
  • Aggiungere dettaglio: non sempre è opportuno aumentare il livello di dettaglio di un modello tridimensionale incrementandone il numero di vertici, anzi, tale situazione, oltre un certo grado è da evitarsi. In alcuni casi, per esempio l'aggiunta di "sporco" , la modellazione non può essere di alcuna utilità. Le texture possono venire in aiuto per rappresentare superfici che dispongono di dettagli molto irregolari (lo sporco), allo stesso modo di superfici suddivise in modo regolare (una pavimentazione, i mattoni di un muro e così via).

Storia

Cronologia delle idee e degli sviluppi riguardanti le texture nell'ambito della computer grafica 3D:

  • 1974Edwin Catmull introduce il texture mapping[11], seguito nel 1976 da Jim Blinn e Martin Newell.[12] Il texture mapping consiste nel prendere un'immagine bidimensionale che rappresenti la superficie di un oggetto, per poi applicarla (mapparla) a un oggetto tridimensionale generato al computer – similmente a come si applica la carta da parati su un muro spoglio.[13]
  • 1976 – Jim Blinn e Martin Newell introducono l'enviromental mapping.[12][14]
  • 1976 – Nell'ambito delle texture procedurali, Blinn e Newell impiegano la sintesi di Fourier.[15]
  • 1978 – Jim Blinn introduce il bump mapping.[16]
  • 1978 – Fu e Lu propongono una tecnica di generazione delle texture sintattica e grammar-based.[16]
  • 1979-1980 – Schacter e Ahuja impiegano la sintesi di Fourier e modelli stocastici di vario tipo, per generare le texture di simulatori di volo.[15]
  • 1982 e 1984 – Rispettivamente, Fournier, Fussell, Carpenter, e Haruyama, Barsky, propongono di usare metodi di suddivisione stocastica ("frattale") per generare le texture.
  • 1984Robert L. Cook introduce il displacement mapping.[15]
  • 1984 – Cook descrive il sistema shade trees, che è uno dei primi sistemi per cui è conveniente generare texture procedurali durante il rendering. Gli shade trees abilitano l'uso di differenti modelli di shading per ogni superficie oltre che per le sorgenti luminose e l'attenuazione attraverso l'atmosfera. Poiché gli input al modello di shading possono essere manipolati proceduralmente, gli shade trees rendono possibile usare le texture per controllare qualunque parte del calcolo dello shading. Texture a colori e trasparenti, reflection mapping, bump mapping, displacement mapping, e solid texturing, possono essere implementati usando gli shade trees.
  • 1985Ken Perlin, Darwyn Peachey, e Geoffrey Gardner introducono teniche di texturing 3D (solid texturing).[15] Nella seconda metà degli anni Ottanta, tecniche procedurali per creare texture realistiche, come il marmo, legno, pietra e altri materiali naturali, guadagnano popolarità.[15] Una texture procedurale di una superficie marmorea non usa un'immagine scansionata per definire i valori cromatici, ma piuttosto algoritmi e funzioni matematiche.[15]
  • 1985 – Perlin descrive un linguaggio completo di generazione procedurale delle texture e getta le basi per la più popolare classe di texture procedurali in uso oggi, ovvero quelle basate sul noise (rumore), una primitiva della generazione di texture stocastiche.[15]
  • 1986Nelson L. Max introduce l'horizon mapping.[17]
  • 1987 – Reeves, Salesin e Cook presentano un algoritmo per produrre ombre anti-aliased usando una image texture basata su una depth image di una scena renderizzata a partire dalla posizione della fonte luminosa.[15]
  • 1991 – Turk, Witkin e Kass descrivono modelli di sintesi di texture ispirati ai processi biochimici, che producono (fra altri effetti) i pattern di pigmentazione delle pelli degli animali.
  • 1991 – Sims descrive un sistema di sintesi in cui le texture procedurali, rappresentate come espressioni LISP, sono automaticamente modificate e combinate da un sistema di programmazione genetico.[15] Per mezzo di selezioni interattive tra le texture risultanti, l'utente di un sistema può guidare l'evoluzione simulata di una texture verso la direzione voluta.[15]
  • 1995 – Pedersen inventa un modo per permettere all'utente di posizionare liberamente texture patches su una superficie, e al tempo stesso minimizzare la distorsione della mappatura.[15]
  • 1996Venkat Krishnamurthy e Marc Levoy introducono il normal mapping.[18]
  • 2000 – Praun, Finkelstein, e Hoppe introducono le lapped textures, nelle quali molti piccoli campioni della texture sono posizionati su una superficie in modo da sovrapporsi, in accordo a un campo vettoriale definito dall'utente, che guida l'orientamento e la scala dei campioni.[15]
  • 2001 – Turk, Wei e Levoy generano una texture sintetica da dei campioni e "fanno crescere" questa proprio sulla superficie designata, tenendo in considerazione la sua forma e parametrizzazione.[15]

Texture mapping

Lo stesso argomento in dettaglio: Texture mapping.

Per permettere all'utente di replicare la superficie di un oggetto reale sul proprio modello tridimensionale, gran parte dei software consente il texture mapping: se si possiede un'immagine, detta in questo caso texture map, image texture, o semplicemente texture, è possibile eseguire una mappatura (mappatura UV) dell'immagine sulla superficie del modello.

Texture procedurali

Le texture procedurali (procedural textures) sono delle texture generate matematicamente.[2] Sono utilizzate per simulare in genere il legno, il marmo, il granito, la pietra, il metallo, e altro.

Texture di una grata realizzata in modo procedurale

Vantaggi

Fra i vantaggi dell'utilizzo di texture procedurali:[2][15]

  • Vengono create interamente all'interno del software, pertanto non c'è bisogno di importare alcun riferimento esterno (immagini o altro).
  • Sono seamless, ossia prive di punti di discontinuità visibili (ricoprono l'oggetto in modo uniforme indipendentemente dalla disposizione delle facce).
  • Si adattano alle modifiche della mesh. Ciò significa che se viene effettuata un'operazione booleana tra due mesh, le nuove superfici create saranno sempre caratterizzate dalla texture procedurale.
  • La dimensione di una texture procedurale è di solito misurata in kilobyte, mentre quella di una texture immagine è di solito misurata in megabyte.
  • Una rappresentazione procedurale non ha una risoluzione fissa. In molti casi essa può fornire una texture completamente dettagliata prescindendo da quanto vicino la si sta guardando (non importa quanto sia alta la risoluzione).
  • Una rappresentazione procedurale può essere parametrizzata, quindi può generare una classe di texture relative piuttosto che essere limitata a una texture immagine fissa.

Svantaggi

Fra gli svantaggi dell'utilizzo di texture procedurali:[15]

  • Una texture procedurale può essere difficile da costruire e debuggare. La programmazione è spesso dura, e programmare una descrizione del pattern implicito è specialmente difficile in casi non banali.
  • Una texture procedurale, ovvero il risultato della programmazione, può essere una sorpresa. È spesso più facile prevederlo quando si scansiona o di dipinge una texture immagine.
  • Calcolare una texture procedurale può essere un'operazione più lenta, piuttosto che accedere una texture immagine memorizzata.
  • L'aliasing può essere un problema nelle texture procedurali. L'antialiasing può essere difficoltoso.

Texture sintetizzate

Le texture sintetizzate sono delle texture che a differenza delle texture procedurali, vengono generate a partire da un'immagine, attraverso un confronto o un'estensione.

Gli algoritmi di sintesi delle texture sono pensati per creare una immagine di output che rispetti questi requisiti:

  • L'output deve avere la dimensione data dall'utente.
  • L'output deve essere quanto più possibile simile al campione.
  • L'output non deve avere artefatti visibili come discontinutià, blocchi e spigoli non tangenti.
  • L'output non deve essere ripetuto, cioè le stesse strutture nell'immagine di output non devono comparire in più posizioni.

Questi sono i metodi e algoritmi che sono stati oggetto di ricerche e sviluppo per la sintesi delle texture:

Tiling

Il modo più semplice di generare una grande immagine è di piastrellarla. Questo significa che copie multiple del campione sono semplicemente copiate e incollate, fianco a fianco. Il risultato è raramente soddisfacente. Ad eccezione di rari casi, ci saranno discontinuità fra le piastrelle e l'immagine risulterà molto ripetitiva.

Sintesi stocastica

La sintesi stocastica delle texture produce un'immagine attraverso la scelta casuale di valori di colore per ogni pixel, influenzata solamente da parametri di base come la minima luminosità, il colore medio o il massimo contrasto. Questi algoritmi si prestano bene solo con texture stocastiche, altrimenti producono risultati completamente insoddisfacenti in quanto ignorano ogni tipo di struttura all'interno dell'immagine campione.

Sintesi di texture strutturate single purpose

Gli algoritmi di questa famiglia utilizzano un procedura adattata per creare un'immagine di output, ovvero sono limitati a un singolo tipo di texture strutturata. Perciò, questi algoritmi possono essere solo applicati a texture strutturate e solo a texture con una struttura molto simile. Per esempio, un algoritmo single purpose (per unico scopo), potrebbe produrre immagini ad alta qualità di muri di pietra.

Chaos mosaic

Questo metodo, proposto dal gruppo per la grafica web di Microsoft, è un versione rifinita del tiling e si sviluppa nei seguenti tre passaggi:

  1. L'immagine di output è completamente coinvolta nel tiling. Il risultato è un'immagine ripetitiva con discontinuità visibili.
  2. Casualmente, parti selezionate di dimensione casuale del campione, vengono copiate e incollate nell'immagine di output. Il risultato è quindi un'immagine non ripetitiva con discontinuità visibili.
  3. L'immagine di output è filtrata per smussare gli spigoli.

Il risultato è una texture immagine accettabile, che non è troppo ripetitiva e non contiene troppi artefatti. Ma ancora, questo metodo è insoddisfacente perché la smussatura nel passaggio 3 rende l'immagine di output visibilmente sfocata.

Sintesi di texture pixel-based

Questi metodi, utilizzando i campi di Markov[19], il campionamento non-parametrico[20], la quantizzazione di vettori a struttura d'albero[21], e analogie d'immagine[22], sono alcuni degli algoritmi di sintesi di texture più semplici e di successo. Essi tipicamente sintetizzano una texture in un ordine scan-line trovando e copiando pixel dalla più prossima vicinanza locale nella texture sintetizzata. Questi metodi sono molto utili per il completamento dell'immagine. Possono essere vincolati, come nelle analogie d'immagine, per eseguire molte attività interessanti. Essi sono tipicamente accelerati con alcune forme di una tecnica di approssimazione del vicino più prossimo, dato che la ricerca esaustiva per il migliore pixel è alquanto lenta. La sintesi può essere anche eseguita in multirisoluzione, come per esempio attraverso l'impiego di un campo casuale di Markov di multiscala non casuale e non parametrica[19].

Sintesi di texture patch-based

La sintesi di texture patch-based crea una nuova texture copiando e cucendo insieme texture a offset vari, similmente all'uso di uno strumento di clonazione per sintetizzare manualmente una texture. Il quilting dell'immagine e il texture graphcut sono i migliori algoritmi conosciuti per la sintesi di texture patch-based. Questi algoritmi tendono a essere più effettivi e veloci dei metodi di sintesi di texture pixel-based.

Animazione del quilting dell'immagine

Chemistry based

Le texture realistiche possono essere generate da simulazioni di complesse reazioni chimiche con fluidi coinvolti, cioè sistemi reazione-diffusione. Si pensa che questi sistemi mostrino comportamenti che sia qualitativamente equivalenti ai processi reali (morfogenesi) riscontrabili in natura, come per esempio le striature di animali (conchiglie, pesci, gatti selvatici...).

Note

  1. ^ a b (IT) Renato Bruscaglia, Incisione calcografica e stampa originale d'arte. Materiali, procedimenti, segni grafici, 2ª ed., Quattroventi, 1º settembre 1988, ISBN 9788839200297. URL consultato il 4 marzo 2018.
  2. ^ a b c d (IT) Francesco Siddi, Grafica 3D con Blender, Apogeo, 25 giugno 2014, ISBN 9788850333141. URL consultato il 4 marzo 2018.
  3. ^ a b (EN) Richard Poulin, The Language of Graphic Design-updated and Revised: An Illustrated Handbook for Understanding Fundamental Design Principles, Rockport Pub, 16 agosto 2018, ISBN 9781631596179. URL consultato il 5 marzo 2018.
    «Texture is defined as the look and feel of any surface»
  4. ^ (EN) Richard Poulin, The Language of Graphic Design-updated and Revised: An Illustrated Handbook for Understanding Fundamental Design Principles, Rockport Pub, 16 agosto 2018, ISBN 9781631596179. URL consultato il 5 marzo 2018.
  5. ^ (EN) Walter William Skeat, A Concise Etymological Dictionary of the English Language, Forgotten Books, 17 ottobre 2017, ISBN 9781333713775. URL consultato il 5 marzo 2018.
  6. ^ textura in Vocabolario - Treccani, su www.treccani.it. URL consultato il 5 marzo 2018.
  7. ^ (IT) Francesco Sabatini e Vittorio Coletti, Il Sabatini Coletti dizionario della lingua italiana 2008. Con CD-ROM, Rizzoli Larousse, 1º luglio 2007, ISBN 9788852501739. URL consultato il 4 marzo 2018.
  8. ^ (EN) Near-Regular Texture Analysis and Manipulation, su graphics.cs.cmu.edu. URL consultato il 4 marzo 2018.
  9. ^ TastyTuts, ‘Texture’ Visual element of Graphic Design Ep5/45 [Beginners guide to Graphic Design], 18 febbraio 2016. URL consultato il 5 marzo 2018.
  10. ^ a b Giuseppe Gallo, Pattern per comunicare in grafica e architettura – i nostri poster ispirati al lavoro dello studio mecanoo. URL consultato il 5 marzo 2018.
  11. ^ Edwin Earl Catmull, A subdivision algorithm for computer display of curved surfaces., 1º gennaio 1974. URL consultato il 5 marzo 2018.
  12. ^ a b James F. Blinn e Martin E. Newell, Texture and reflection in computer generated images, in Communications of the ACM, vol. 19, n. 10, 1º ottobre 1976, pp. 542–547, DOI:10.1145/360349.360353. URL consultato il 5 marzo 2018.
  13. ^ (EN) Mike Morrison, Becoming a Computer Animator, Pap/Cdr edition, Sams Publishing, 1994, ISBN 9780672304637. URL consultato il 5 marzo 2018.
  14. ^ Reflection Mapping History, su www.pauldebevec.com. URL consultato il 5 marzo 2018.
  15. ^ a b c d e f g h i j k l m n o (EN) David S. Ebert, F. Kenton Musgrave e Darwyn Peachey, Texturing and Modeling, Third Edition: A Procedural Approach, 3ª ed., Morgan Kaufmann, 16 dicembre 2002, ISBN 9781558608481. URL consultato il 5 marzo 2018.
  16. ^ a b James F. Blinn e James F. Blinn, Simulation of wrinkled surfaces, Simulation of wrinkled surfaces, in ACM SIGGRAPH Computer Graphics, vol. 12, n. 3, 23 agosto 1978, pp. 286, 286–292, 292, DOI:10.1145/800248.507101, 10.1145/965139.507101. URL consultato il 5 marzo 2018.
  17. ^ (EN) Nelson L. Max, Advanced Computer Graphics, Springer, Tokyo, 1986, pp. 145–156, DOI:10.1007/978-4-431-68036-9_10, ISBN 9784431680383. URL consultato il 5 marzo 2018.
  18. ^ Fitting Smooth Surfaces to Dense Polygon Meshes, su www.graphics.stanford.edu. URL consultato il 5 marzo 2018.
  19. ^ a b Semi Causal Nonparametric Markov Random Field Texture Synthesis, su www.texturesynthesis.com. URL consultato il 5 marzo 2018.
  20. ^ Efros and Leung Texture Synthesis, su graphics.cs.cmu.edu. URL consultato il 5 marzo 2018.
  21. ^ Fast Texture Synthesis using Tree-structured Vector Quantization, su graphics.stanford.edu. URL consultato il 5 marzo 2018.
  22. ^ NYU Media Research Lab | Projects | Image Analogies, su mrl.nyu.edu. URL consultato il 5 marzo 2018.

Bibliografia

Voci correlate

Collegamenti esterni

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