La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Texturing - Tessiture Daniele Marini.

Presentazioni simili


Presentazione sul tema: "Texturing - Tessiture Daniele Marini."— Transcript della presentazione:

1 Texturing - Tessiture Daniele Marini

2 Modellazione geometrica
Per ottenere il realismo ricorrere a modelli geometrici complessi non è spesso la soluzione migliore Esempi Nuvole Erba Terreno Pelle Il modello di illuminazione di Phong `e abbastanza versatile: con una scelta opportuna dei vari parametri si possono imitare diversi materiali in modo abbastanza realistico (per esempio la plastica) • comunque limitato: non si possono simulare i dettagli di un materiale, a meno di non introdurli nella geometria (ovvero aumentare il numero dei poligoni). • Invece di incrementare la complesssit`a del modello, si aggiungono particolari come parte del processo di rendering. • Le tecniche di mappatura (texture mapping) interagiscono con lo shading usando una mappa bidimensionale o texture (tessitura) come tabella di lookup, in modo da aggiungere dettagli alla superficie. • Si possono ottenere risultati ottimi dal punto di vista del fotorealismo con un limitato carico computazionale. `e ampliamente sopportato dalle schede grafiche. Durand and Cutler

3 Il colore degli oggetti
Abbiamo visto come calcolare il colore di un oggetto: dobbiamo definire il modello di illuminazione locale, cioè assegnare i parametri che descrivono come il materiale riflette la luce (parametri che descrivono la riflettanza) il modello è definito per primitive geometriche: tutte le variazioni delle caratteristiche superficiali devono essere modellate geometricamente

4 Texture mapping La tecnica usata per gestire variazioni di riflettanza è memorizzare la riflettanza come una funzione o una immagine e “mapparla” sulla superficie La funzione o immagine è detta texture map ed il processo di mappatura è detto texture mapping

5 Texture mapping Può essere classificato in base a differenti proprietà: Dimensionalità della funzione di texture Il tipo di corrispondenza tra punti della superficie e punti della texture map Se la funzione di texture è procedurale o se è essenzialmente una tabella Il texture mapping non riguarda solo la definizione del colore

6 Modellare una arancia Sfera arancione
Troppo semplice Devo modellare l’irregolarità della superficie Quanti poligoni? Troppi Soluzione più efficiente: prendere una fotografia digitale dell’arancia applicare l’immagine alla superficie Texture mapping Sono soddisfatto??

7 Modellare una arancia La superficie è comunque ancora “liscia”
rendiamo localmente irregolare la geometria Bump mapping STRATEGIA: aggiungo dettagli non nella fase di modellazione ma in fase di rendering

8 Tipologie di mapping Texture Mapping Bump mapping
Utilizzo di un pattern per determinare il colore di un frammento. I pattern possono essere: Determinati da una procedura di generazione di texture Immagine digitalizzata Bump mapping Simulazione di irregolarità geometriche superficiali attraverso la perturbazione delle normali Richiede elaborazione su ciascun frammento

9 Tipologie di mapping Displacement mapping
Perturbazione della geometria Environment (reflection mapping) Come immagine per il texture mapping uso una immagine dell’ambiente Simulazione di superfici riflettenti, cerco di ottenere un effetto simile al ray-tracing E’ un caso particolare di texture mapping

10 Texture Mapping modello geometrico applicazione della texture

11 Bump Mapping

12 Environment Mapping

13 Texture mapping 1D, 2D, 3D Texture mapping
Il texture mapping, nella sua forma più usata (color mapping) consiste nell’applicare una immagine su una superficie

14 2D Texture mapping Tutte le strategie di mapping comportano mapping tra sistemi di riferimento: Coordinate di texture: utilizzate per identificare i punti sulla immagine da mappare Coordinate parametriche: utilizzate per modellizzare curve e superfici Coordinate object o world: dove avviene il mapping (concettualmente) Coordinate window: dove l’immagine finale è prodotta In realtà possiamo avere anche 1D (colore di una linea) o 3D, ma il 2D è il più usato. Questo si pu`o fare quando si ha la descrizione parametrica della superficie soggiacente alla maglia poligonale.

15 Texture mapping Gli elementi della texture map, sono detti texels o texture elements La texture map è una matrice 2D che immaginiamo descritta da una funzione continua T(s,t) s, t sono le coordinate di texture (normalizzate in [0,1]) T sono i valori RGB (ma potrebbero essere altro) 1 1

16 Come avviene il mapping?
Definizione della funzione M che associa un punto della texture pT ad un punto della superficie dell’oggetto 3D pO Mapping del punto pO nella sua proiezione sullo schermo pS pS(xs,ys) pO(x,y,z) pT(s,t) M rendering della texture si occupa poi di stabilitre il valore di texture da associare a ciascun pixel. Texture map Schermo Superficie 3D

17 Difficoltà Definizione di un mapping tra una superficie rettangolare (texture map) e una superficie arbitraria (es.: sfera) Assegnamo il colore nella fase di rendering....il mapping è tra coordinate window e coordinate texture: che effetto ha la proiezione prospettica?

18 Difficoltà Supponiamo di avere una superfice parametrica
Dato il pixel dell’immagine che devo assegnare lo retroproietto sulla superficie, ottengo una patch quadrangolare

19 Difficoltà Dai valori u,v della patch determino s,t
Ottengo un quadrilatero M-1 Quale valore assegno al pixel?

20 Difficoltà Aliasing: texture periodica

21 Aliasing Oppure posso fare una media pesata dei texel adiacenti
Ma dove sono finite le strisce??

22 Texture mapping Il mapping può essere diretto o inverso
Mapping diretto: l’algoritmo opera in texture space. Ogni texel viene mappato in world coord. poi trasformato e proiettato

23 Mapping diretto Definiamo una funzione che associa un texel con un punto dell’oggetto, che a sua volta verrà mappato sul piano immagine s t (x,y,z) M In coordinate non omogenee servono 3 funzioni Difetto: posso avere dei buchi o delle sovrapposizioni, non è usato

24 Mapping inverso In realtà ci servirebbe procedere in senso opposto:
nel momento in cui assegnamo il colore al pixel dell’immagine finale vogliamo sapere quali sono i valori RGB da considerare La funzione di mapping deve quindi essere invertibile Questo tipo di mapping è il più usato

25 Mapping inverso Il calcolo è eseguito in screen space. Per ogni pixel si calcola la pre-immagine del pixel individuando le sue coordinate (s,t) Questo tipo di mapping è il più usato

26 Texture mapping Maglie poligonali:
Definizione della texture nello spazio bidimensionale (s,t): coordinate di texture In fase di modellazione associare ad ogni vertice di ciascun triangolo (xi,yi,zi) il corrispondente punto nello spazio (s,t) In fase di rendering associare ad ogni frammento generato all’interno di una faccia il colore del corrispondente punto nello spazio (s,t)

27 Texture rendering di maglie poligonali

28 Texture mapping Si può definire facilmente la funzione di mapping se ho la superficie descritta in forma parametrica Basta specificare una corrispondenza tra u,v e s,t (può essere l’identità con un fattore di normalizzazione)

29 Texture mapping lineare
Mapping semplice ed invertibile Non tiene conto della curvatura della superficie descritta da u,v Va bene per mappare su un piano

30 Texture lineare Esempio: un cilindro di altezza h
y x u=0 u=0.5 E se ho superfici complesse?

31 Pipe-line di texturing
Usa una funzione di proiezione MAPPING Usa una funzione di corrispondenza Calcola posizione nello spazio mondo (x,y,z) Es: proiezione ortografica (proiettare una slide) (u,v) in (0,1) Da (0,1) a es. (256x256), trova valore in array R,G,B Applica funzione di trasformazione dei valori Modifica valore di illuminazione Applica modello illuminazione con terna R,G,B Es. moltiplica R,G,B per 1.1 per evitare valori troppo scuri

32 Funzioni di corrispondenza
Altre funzioni di corrispondenza possono essere: Wrap, repeat, tile: l’immagine viene ripetuta come una piastrella Mirror: l’immagine viene ripetuta riflettendola verticalmente o orizzontalmente Clamp: i valori esterni a (0,1) sono forzati agli estremi, il bordo dell’immagine si prolunga su tutta la superficie Border: i valori esterni a (0,1) sono resi con un colore proprio, va bene per decalcomanie

33 Funzioni di modifica Replace: rimpiazza i valori R,G,B della texture agli r,g,b del modello di illuminazione - chiamato anche glow texture Modulate: moltiplica r,g,b per R,G,B

34 Image texture Mappare una immagine es. 256 x 256 su una superficie piana; se la superficie proiettata supera o è inferiore alla risoluzione dell’immagine: Magnification Minification

35 Texture mapping in due fasi
Si può applicare sia a superfici descritte da coordinate geometriche che parametriche Non richiede la conoscenza dell’equazione parametrica della superficie Mapping della texture su una superficie intermedia semplice (sfera, cilindro, cubo) in modo che la corrispondenza superficie-texture sia immediata (S-mapping) Mapping della superficie intermedia sull’oggetto finale (O-mapping) Una tecnica pi`u generale, che si pu`o usare senza conoscere l’equazione parametrica della superficie, `e la mappatura in due passi Si mappa la texture su una superficie intermedia semplice, in modo che la parametrizzazione (corrispondenza punti-superficie con pixel-texture) sia immediata; questa prende il nome di S-mapping • Quindi si mappa ogni punto della superficie intermedia in un punto della superficie in esame; questa prende il nome di O-mapping • La concatenazione dei due mapping genera la corrispondenza W trai pixel della texture ed i punti dell’oggetto • Il primo passaggio (S-mapping) `e in genere semplice; basta scegliere superfici facili da parametrizzare • Ad esempio si pu`o prendere come superficie intermedia un cilindro (vedi slide precedente) • Oltre al cilindro `e facile fare l’S-mapping con cubi, piani e sfere. • In genere si considera la superficie intermedia come esterna all’oggetto da tessiturare.

36 Texture mapping in due fasi
S-mapping O-mapping

37 Per la curvatura si segue un approccio a due passi:
Mappare su una sfera o un cilindro o un cubo - S mapping Mappare la struttura ottenuta sull’oggetto finale - O mapping Secondo passo:

38 Fase 1: mapping sferico u e v sono i parametri che descrivono la sfera unitaria, con u,v in [0,1]

39 Seconda fase Mapping verso l’oggetto reale. Tre possibili strategie:
Lungo le normali dalla forma intermedia alla finale Lungo le normali dalla forma finale alla intermedia Lungo i vettori dal centro della forma intermedia finale intermedia

40 Mapping cilindrico C. Weigle

41 Mapping sferico C. Weigle

42 Box mapping

43 Texture sampling Quando mappiamo le coordinate texture sull’array di texel difficilmente otteniamo un punto che corrisponde al centro di un texel Una possibilità è scegliere il texel più vicino (point sampling) Posso ottenere notevoli effetti di aliasing I quadratini azzurri sono i texel che verrebbero usati per una interpolazione con 4 texel. La mappatura W-1, associa una coordinata texture (s, t) ad ogni vertice della maglia; • Quindi a ciascun vertice di un triangolo proiettato `e associata una coordinata texture (s, t). • Durante la scan conversion del triangolo si determinano le coordinate texture di ciascun pixel interno conl’interpolazione scan-line (come abbiamo gi`a usato per la profondit`a e per lo shading di Gouraud). • Si determina quindi il valore di texture da associare al pixel arrotondando le coordinate texture all’intero pi`u vicino. In questo modo ogni pixel riceve contributo da un solo texel (texture element). Se la risoluzione della texture `e molto diversa da quella del display (ovvero la corrispondenza pixel-texel `e molti a uno o uno a molti) si incorre nell’aliasing

44 Texture sampling Posso decidere di fare una media dei texel adiacenti con un filtraggio bilineare: Trovare i 4 vicini del texel (floor e ceiling di s e t) Interpolare i texel in un parametro (s) Interpolare il risultato nell’altro parametro (t) Usare il risultato per assegnare il colore al pixel

45 Aliasing Minification: un pixel corrisponde a molti texel. La texture viene “campionata”: posso avere un effetto di mancanza di dettagli Magnification: un texel corrisponde a molti pixel. La texture viene “ingrandita” sull’immagine Si ha aliasing ogni qualvolta non ci sia corrispondenza uno-a-uno tra elementi del display (pixel) ed elementi della texture (texel). Distinguiamo due casi: (a) Magnification: un texel corrisponde a molti pixel. In questo caso un singolo texel appare come un blocco di pixel nell’immagine. Quello che si vede `e una versione ingrandita “a blocchi” della texture. `E come ingrandire una immagine digitale: se i pixel diventano troppo grossi si notano e®etti “a blocchi”. (b) Minification: (il peggiore) un pixel corrisponde a molti texel. Si dovrebbe vedere una versione rimpicciolita della texture. Ma se si usa il metodo delineato prima, in cui ad ogni pixel contribuisce un solo texel, vuol dire che ci sono texel che restano fuori.` come quando si riduce un’immagine digitale: se si sottocampiona si possono perdere particolari.

46 Texture aliasing Cosa succede se un pixel copre molti texel (minification)? Se uso il point sampling posso avere artefatti tipo seghettature e pattern nelle immagini statiche In animazione posso avere un effetto di migrazione della texture Il filtraggio bilineare va bene se non ho una minificazione eccessiva Dovrei considerare tutti i texel che vengono coperti dal pixel (area averaging, si fa la media dei pixel adiacenti) Per ridurre i tempi di calcolo della media uso delle strutture a piramide

47 Mipmapping Si calcola l’immagine a bassa risoluzione, detta mipmap
MIP-Multum in parvo (molte cose in poco spazio): occupa 4/3 della memoria dell’originale. mappatura - 12 • La soluzione `e: – per fattori di riduzione moderati, usare interpolazione bilineare nelle coordinate texture per determinare il valore (invece di arrotondare all’intero) – per fattori di riduzione significativi (maggiori di due) `e necessario tenere conto del valore di tutti i texel che ricadono nella pre-immagine del pixel (che `e – grossomodo – pi`u grande di quattro texel), facendone la media. • L’operazione `e costosa da e®ettuare on-line, per cui si preferisce immagazzinare una versione multi-risoluzione (piramide) della texture, che prende il nome di mipmap.

48 Mipmapping Per una texture di dimensioni 2n x 2n, ho un totale di n texture: Livello 0: L’originale Livello i: ½ della risoluzione del livello i-1, ciascun texel è la media di un’area 2x2 dal livello i-1 Livello 0: 1 texel

49 Mipmapping Ciascun livello della mipmap è una versione filtrata della texture originale: A livello n, ciascun texel è la media di 4n texel originali Al momento del rendering, dato un pixel da colorare, si sceglie la texture nella mipmap al livello di dettaglio che corrisponde alla copertura del pixel

50 Mipmapping Se un pixel ingloba più texel si scende di livello
d individua il livello, la terna (u,v,d) individua il texel

51 Mipmapping Posso poi adottare strategie di:
Point sampling nella mipmap Bilinear filtering nella minimap: Interpolazione dei texel sul livello d della minimap Trilinear filtering: Determinare i due livelli tra cui si posiziona la minificazione (d-1 e d+1) Eseguire un filtraggio bilineare indipendente su ciascun livello Interpolare tra i due valori filtrati L’interpolazione dei valori filtrati è in base alla alla copertura del pixel e al livello

52 Mipmapping Point sampling: si vedono le seghettature e i pattern moirè
Linear filtering: riduco le seghettature

53 Mipmapping c) Mipmapping point sampling d) Mipmapping linear filtering

54 Esempio Without MIP-mapping With MIP-mapping

55 2D Texture mapping Dobbiamo poi indicare come gestire i valori di s,t che vanno fuori range (Es.: ripetere, arrotondare....)

56 Texture mapping e shading
Il valore di colore ottenuto dal texture mapping può essere usato come tale per assegnare il colore al pixel o può essere composto al valore di riflessione diffusa del modello di Phong. Texture used as Diffuse Color Diffuse Texture Color Constant Diffuse Color Texture used as Label Durand and Cutler

57 Texture mapping e shading
Giannitrapani e Fusiello

58 Bump mapping Tecnica per far apparire corrugate superfici lisce senza alterare il modello geometrico Basata sulla alterazione della normale alla superficie prima che venga applicato il modello di shading Il bump mapping viene usato per fare apparire corrugata (con rigonfiamenti e indentazioni) una superficie liscia (es. arancia). • Cambiare la geometria per aggiungere i particolari di piccola scala non `e in genere fattibile perch´e richiederebbe un numero troppo elevato di poligoni. • Invece il bump mapping modifica le normali alla superficie (senza toccare la superficie stessa), cos`ý quando viene applicato il modello di illuminazione (Phong) l’apparenze della superficie (il suo “shading”) risulta quella della superficie corrugata che si voleva ottenere. Andries van Dam

59 Bump mapping Giannitrapani e Fusiello

60 Bump mapping Vogliamo alterare la normale in modo che essa corrisponda alla normale ad una superficie opportunamente deformata Consideriamo un punto su una superficie parametrica p(u,v), la cui normale è definita da: Sia d(u,v) la funzione di displacement (o bump function). Ciò che vogliamo ottenere è:

61 Bump mapping Ma in realtà non vogliamo alterare la superficie. La nuova normale sarebbe: Se calcoliamo le derivate parziali: Supponendo che d() sia piccola

62 Bump mapping Il bump mapping non determina occlusioni e ombre
Cylinder w/Diffuse Texture Map Cylinder w/Texture Map & Bump Map Il bump mapping non determina occlusioni e ombre Durand and Cutler

63 Bump mapping Devo variare la normale per ciascun frammento.
Lo posso realizzare nella pipeline?? SI, programmando un fragment shader SI, effettuando varianti del bump mapping (normal mapping) Il bump mapping non è supportato in OpenGL perchè la texture è applicata dopo il calcolo dell’illuminazione

64 Normal mapping Variante di bump mapping. I texel rappresentano la normale (normal map). Nelle moderne schede grafiche esistono modalità di applicazione delle texture che consentono di eseguire il prodotto scalare tra componenti. Nella normal map i valori RGB rappresentano le normali. Se ho una seconda texture che rappresenta la direzione della luce incidente, con il prodotto scalare ho il termine per pesare la componente diffusa della riflessione lambertiana G y R x B z

65 Phong shading Interpolation of surface normals.
Note: specular highlights but no shadows – pure local illumination model

66 Texture mapping

67 Bump mapping Global Illumination:
Global illumination model with texture, bump, and reflection mapping

68 Displacement mapping Utilizzo la texture map per variare la geometria
I texel rappresentano degli offset da applicare alla geometria The geometry must be displaced before visibility is determined. Is this easily done in the graphics pipeline? With the newest generation of graphics hardware displacement mapping can be interpreted as a kind of vertex-texture mapping, where the values of the texture map do not alter the pixel color, but change the position of the vertex instead. Unlike bump mapping and normal mapping, displacement mapping can in this way produce a genuine rough surface. It is currently only implemented in a few desktop graphics adapters, and it has to be used in conjunction with adaptive tessellation techniques (that increases number of rendered polygons according current viewing settings), to produce highly detailed meshes, and to give a more 3D feel and a greater sense of depth and detail to textures which displacement mapping is applied to.

69 Displacement mapping Pharr & Hanrahan

70 Texture procedurali Utile per definire l’aspetto di elementi naturali che presentano una certa regolarità Generatore di numeri casuali (rumore bianco) Algoritmo di correlazione

71 Esempio f(x,y,z)->color

72 Texture 3D Il metodo di generazione di texture può essere utilizzato per definire texture 3D. Non ho più il problema del mapping: devo mappare un punto (s,t,r) in (x,y,z) Equivalente a fare una scultura con un materiale non uniforme (definizione di una funzione T(s,t,r) che rappresenta il materiale, es.: marmo o granito)

73 Esempio Image by Henrik Wann Jensen

74 Environment mapping Le superfici altamente riflettenti riflettono l’ambiente circostante La simulazione di questi effetti richiede informazioni globali sulla scena Ray tracing Come rendere questi effetti avendo a disposizione un modello di illuminazione locale? Attraverso le mappe di riflessione (environment map o reflection map).

75 Confronto Notare la mancanza di auto riflessioni nell’environment map

76 Environment mapping Blinn, J. F. and Newell, M. E. Texture and reflection in computer generated images. Communications of the ACM Vol. 19, No. 10 (October 1976), Il primo oggetto con environment-map è stato la Utah Teapot con una immagine di una stanza realizzata con un programma di disegno. In the paper, Blinn also included an image of a satellite, environment-mapped with an image of the earth and the sun which he drew, shown below.  Note that in both cases the objects are also being illuminated by a traditional light source to create their diffuse appearance.

77 Environment mapping Miller and Hoffman, 1984

78 Environment mapping La tecnica è stata utilizzata per realizzare effetti speciali in film degli anni ’80 e ’90.

79 Environment mapping Primo passo: Secondo passo:
Rendering della scena con la camera nella posizione dello specchio Visione degli oggetti nella scena “visti” dallo specchio Secondo passo: Utilizzare la scena generata come texture

80 Global Illumination: Global illumination model with texture, bump, and reflection mapping

81 Environment mapping Difetti:
L’immagine che generiamo nel primo passaggio non è molto corretta perchè è generata senza la presenza dello specchio Su quale superficie proiettiamo la scena nel primo passo? Vorrei avere una informazione completa sulla scena in modo da poterla applicare se muovo lo specchio

82 Environment mapping L’approccio classico è fare la proiezione su una sfera Nella versione originale dell’environment mapping la superficie della sfera veniva poi convertita in un rettangolo Nella versione originale dell’environment mapping, la sfera veniva poi mappata su un rettangolo, con ovvie distorsioni ai poli.

83 Environment map Il texel dipende dalla posizione dell’osservatore
superficie eye Environment map v n r

84 Sphere mapping OpenGL supporta una variazione dell’approccio classico detto sphere mapping L’applicazione deve fornire una immagine circolare L’immagine si può ottenere con un angolo di vista molto ampio o rimappando altri tipi di proiezione

85 Sphere mapping Ciascun pixel dell’immagine corrisponde ad una direzione di osservazione

86 Box mapping Per ambienti chiusi, è naturale mappare l’ambiente in una scatola Servono 6 proiezioni, corrispondenti ad una camera che punta verso alto, basso e ai 4 lati Le sei immagini vengono trattate come un’unica environment map e da essa ricavate le informazioni di texture

87 Box mapping

88 Environment Maps Durand & Cutler

89 Environment Maps Cylindrical Panoramas Cubical Environment Map

90 Blending RGBA: A=canale alfa, indica la trasparenza
A=1 indica superficie opaca, A=0 indica superficie trasparente Variando il valore di A possiamo assegnare una data opacità (o trasparenza, 1-A) alle superfici

91 Blending Colore del frammento (source)
Colore nel frame buffer (destination) b e c sono i fattori di blending sorgente e destinazione I valori che risultano fuori range vengono clippati

92 Fog Possiamo utilizzare il blending per assegnare il colore in modo dipendente dalla distanza f = fattore di nebbia (fog factor) funzione esponenziale o lineare; modifica il colore come coefficiente di alphablending:

93 Blending La maggior difficoltà è il fatto che l’ordine con cui renderizziamo i poligoni altera il risultato finale Funziona bene con algoritmi depth-sort (algoritmo del pittore) Non dobbiamo attivare la rimozione dei poligoni nascosti perchè è necessario che tutti vengano renderizzati se sono dietro un poligono trasparente Soluzione con z-buffer: Abilitare la rimozione dei poligoni nascosti e rendere lo z-buffer read-only per i poligoni traslucidi

94 Composizione di immagini
Uno dei maggiori utilizzi del blending è per la composizione di più immagini (es.: risultati di rendering indipendenti) Devo definire opportunamente il fattore di blending per ciascuna immagine altrimenti il clipping porta a risultati insoddisfacenti Per una composizione uniforme di n immagini potrei definire dei fattori 1/n

95 Accumulation buffer Se facciamo la composizione di più immagini con la tecnica del blending possiamo perdere risoluzione colore se il frame buffer memorizza in interi Si definisce un buffer (buffer di accumulazione, di solito è in SW) con le stesse dimensioni del frame buffer, ma con maggior risoluzione (floating point)

96 Il texturing è fatto durante la rasterizzazione della primitiva
mappa punti 3D in locazioni (pixel) sul display Ciascun frammento generato viene testato per la visibilità (z-buffer) e se visibile viene calcolato lo shading Durante l’interpolazione di shading si calcola il valore di texture usando ancora interpolazione tra vertici estremi

97 Simula riflessioni a specchio senza ray tracing, chiamato anche reflection map
Si calcola la proiezione dell’ambiente su una forma determinata (sfera o cubo nel caso di ambienti chiusi) La proiezione viene trattata come una texture, ma la texture viene proiettata dal punto vista dell’osservatore Il programma applicativo deve calcolare la proiezione dell’ambiente sulla superficie intermedia (sfera o scatola)


Scaricare ppt "Texturing - Tessiture Daniele Marini."

Presentazioni simili


Annunci Google