Shading - Normalipercro.sssup.it/marcello/didattica/AA2007/10_Shading_TextureMappi… · Texture...
Transcript of Shading - Normalipercro.sssup.it/marcello/didattica/AA2007/10_Shading_TextureMappi… · Texture...
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
ShadingShading -- NormaliNormali
�� Dalla Dalla meshmesh al colore di ogni pixel dellal colore di ogni pixel dell’’oggetto oggetto sullo schermo.sullo schermo.
�� Ci servono le normali:Ci servono le normali:��NormaleNormale ad ad unauna facciafaccia
�� Ma Ma sappiamosappiamo cheche spessospesso la mesh la mesh èè solo solo unun’’approsimazioneapprosimazione quindiquindi……....
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
ShadingShading -- NormaliNormali
�� In questo caso possiamo usare le In questo caso possiamo usare le ““verevere”” normali, per verticenormali, per vertice
�� DiDi solitosolito associate associate aiai verticivertici e e passatepassate allaalla schedascheda graficagraficainsiemeinsieme ad ad essiessi
�� CalcolabiliCalcolabili come media come media delledellenormalinormali allealle faccefacce adiacentiadiacenti ad ad un un verticevertice
�� Per Per oggettioggetti poligonalipoligonali, , èènecessarionecessario ““sdoppiaresdoppiare”” i i verticivertici e e passarepassare due due diverse diverse normalinormali
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
ShadingShading -- InterpolazioneInterpolazione
��Date le normali ai vertici, come Date le normali ai vertici, come colorare lcolorare l’’interno del poligono ?interno del poligono ?
��Flat shadingFlat shading
��GouraudGouraud interpolationinterpolation
��PhongPhong interpolationinterpolation
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
ShadingShading -- FlatFlat
��Considera il colore costante sul poligonoConsidera il colore costante sul poligono
��Usa la normale alla facciaUsa la normale alla faccia
��Equivalente al campionamento di un solo Equivalente al campionamento di un solo puntopunto
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
ShadingShading -- GouraudGouraud
�� Calcola il colore in ogni verticeCalcola il colore in ogni vertice
�� Interpola linearmente i coloriInterpola linearmente i colori
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
DiDi default Open GL:default Open GL:1)1) PrendePrende in input in input varivari attributiattributi perper--
verticevertice ((posizioneposizione, , colorecolore, light , light source, texture coordinates, etc.)source, texture coordinates, etc.)
2)2) CalcolaCalcola un un colorecolore finale per finale per ogniogniverticevertice utilizzandoutilizzando un un certocerto modellomodellodidi illuminazioneilluminazione (OpenGL (OpenGL usausaPhongPhong))
3)3) Per Per ogniogni pixel, pixel, interpolainterpolalinearmentelinearmente i i valorivalori associatiassociati aiai tretreverticivertici per per ottenereottenere ilil colorecolore del del pixel (ad pixel (ad esempioesempio GouraudGouraud shading)shading)
4)4) ScriveScrive ilil colorecolore del pixel del pixel nelnel frame frame bufferbuffer
ShadingShading –– GouraudGouraud (esempio)(esempio)
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
ShadingShading -- GouraudGouraud
��Problema:Problema:
�� Interpola linearmente i colori ma il Interpola linearmente i colori ma il modello di illuminazione non modello di illuminazione non èè linearelineare
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
ShadingShading -- PhongPhong
�� Interpola le normali, poi calcola il Interpola le normali, poi calcola il colorecolore
��OK, ma quante normali ?OK, ma quante normali ?
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
ShadingShading -- RiepilogoRiepilogo
��FLAT : FLAT : ccff = f (= f (NNff))
��GOURAUD:GOURAUD: ccvivi = f (= f (NNvivi) )
ccv1 v1 ccv2 v2 ccv3v3 vengono interpolati vengono interpolati trilinearmentetrilinearmente sul sul
triangolotriangolo
��PHONG:PHONG: ccpp = f (= f (NNpp) )
NNpp èè il risultato dellil risultato dell’’interpolazione delle interpolazione delle NNvivi . .
LL’’equazione di illuminazione viene valutata equazione di illuminazione viene valutata
per ogni pixelper ogni pixel ((perper--pixelpixel--lightinglighting). ).
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
TextureTexture MappingMapping
�� TextureTexture coordinatescoordinates associate ai vertici del triangolo =>> associate ai vertici del triangolo =>> corrispondenza tra spazio dello corrispondenza tra spazio dello schemoschemo ((fragmentfragment) e ) e texturetexture--spacespace. .
Colore di ogni pixel determinato in base a tale Colore di ogni pixel determinato in base a tale corrispondenza. corrispondenza.
La La texturetexture equivale ad una funzione: T(s,t) = (r, g, b)equivale ad una funzione: T(s,t) = (r, g, b)
a volte si parla di coordinate (u,v) invece che di (s,t). Di sola volte si parla di coordinate (u,v) invece che di (s,t). Di solito le ito le coordinate (u,v) si intendono normalizzate nellcoordinate (u,v) si intendono normalizzate nell’’intervallo (0,1).intervallo (0,1).
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
ParametrizzazioneParametrizzazione
��Ad ogni vertice deve essere associata Ad ogni vertice deve essere associata una una ““texturetexture coordinatecoordinate”” in modo da in modo da associare ad ogni triangolo una associare ad ogni triangolo una porzione dellporzione dell’’immagineimmagine
��Esistono vari modi per eseguire questo Esistono vari modi per eseguire questo compito...compito...
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
ParametrizzazioneParametrizzazione -- ProiezioneProiezione
�� Possiamo proiettare lo spazio di Possiamo proiettare lo spazio di texturetexturesullsull’’oggetto, dopo averlo oggetto, dopo averlo mappatomappato su una superficie su una superficie (cubo, cilindro, sfera) che circonda l(cubo, cilindro, sfera) che circonda l’’oggetto stesso oggetto stesso ((openglopengl permette di farlo in modo automatico)permette di farlo in modo automatico)
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
ParametrizzazioneParametrizzazione -- UnfoldingUnfolding
�� Possiamo tagliare la superficie dellPossiamo tagliare la superficie dell’’oggetto e oggetto e ““stenderlastenderla”” sullo spazio di sullo spazio di texturetexture (opportunamente (opportunamente scalata)scalata)
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
Texture coordinates Texture coordinates -- InterpInterp..
�� A quali punti in A quali punti in texturetexturespace corrispondono i space corrispondono i vertici in world space?vertici in world space?
�� UtilizziamoUtilizziamo unaunainterpolazioneinterpolazione linearelineare::
�� UnaUna rettaretta in world space in world space corrispondecorrisponde ad ad unauna rettarettain texture spacein texture space
Texture map
s
t
Triangolo in world space
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
(x1, y1), (s1, t1)(x2, y2), (s2, t2)
(x3, y3), (s3, t3)
3
13
11
13
11 syy
yys
yy
yysR
−
−+
−
−−=
3
23
22
23
21 syy
yys
yy
yysL
−
−+
−
−−=
R
LR
LL
LR
L sxx
xxs
xx
xxs
−
−+
−
−−= 1
Texture coordinates Texture coordinates -- InterpInterp..
v1 v2
v3
PLPRP
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
Pipeline e Texture MappingPipeline e Texture Mapping
�� QuestoQuesto tipotipo didi interpolazioneinterpolazione in in realtrealtàà avvieneavviene in screen in screen space space durantedurante la la rasterizzazionerasterizzazione del del poligonopoligono
�� La La proiezioneproiezione prospetticaprospettica peròperò fafa sisi cheche distanzedistanze ugualiugualilungolungo unauna linealinea in world space non in world space non corrispondanocorrispondano a a distanzedistanze ugualiuguali lungolungo unauna linealinea in screen spacein screen space
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
Pipeline e Texture MappingPipeline e Texture Mapping
�� EE’’ possibilepossibile applicareapplicare un texture mapping un texture mapping correttocorretto prospetticamenteprospetticamente ((ovviamenteovviamente ad un ad un costocosto))
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
ComportamentoComportamento aiai bordibordi: Repeat: Repeat
(0,0)(0,0)
(1,1)(1,1)
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
(0,0)(0,0)
(1,1)(1,1)
ComportamentoComportamento aiai bordibordi: Clamp: Clamp
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
TextureTexture ModesModes
� REPLACE: Il colore della texture SOSTITUISCE quello del materialeDECAL: Il colore della texture si mescola a mò di adesivo su quellodel materiale (se la texture è trasparente, si vede anche il materiale)
� MODULATE: Il colore della texture modula quello del materiale� BLEND Il colore della texture agisce da fattore di “blending” fra un
colore esterno e quello del materiale
Sa*TaSrgb*(1-Trgb)+Brgb*TrgbBLEND
Sa*TaSrgb*TrgbMODULATE
SaSrgb*(1-Ta)+Trgb*TaDECAL
TaTrgbREPLACE
Result transparencyResult colorMode
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
TextureTexture MappingMapping -- FilteringFiltering
�� Gli elementi della Gli elementi della texturetexture, ovvero i suoi pixel, , ovvero i suoi pixel, vengono indicati con il termine di vengono indicati con il termine di texelstexels
�� In generale non cIn generale non c’è’è una corrispondenza 1 a 1 fra una corrispondenza 1 a 1 fra pixelspixels sullo schermo e sullo schermo e texelstexels::
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
TextureTexture MappingMapping -- MagnificationMagnification
��Nel primo caso (Nel primo caso (MagnificationMagnification) ) èèpossibile applicare un filtraggio di due possibile applicare un filtraggio di due tipitipi
Nearest Linear
Media lineare del quadrato 2x2 dei texel con le coordinate piùvicine al centro del pixel
Colore del texel con le coordinate più vicine al centrodel pixel
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
TextureTexture MappingMapping –– NearestNearest FilteringFiltering
Texture map Poligono lontano dall’osservatore in screenspace
Poligono rasterizzato in screen space
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
TextureTexture MappingMapping -- MinificationMinification
�� Nel secondo caso (Nel secondo caso (MinificationMinification) tali modalit) tali modalitààdi filtraggio non sempre danno risultati di filtraggio non sempre danno risultati soddisfacentisoddisfacenti
�� Se lSe l’’oggetto oggetto èè lontano molti lontano molti texeltexelcorrispondono ad un solo pixel sullo schermocorrispondono ad un solo pixel sullo schermo
�� Usando un filtraggio Usando un filtraggio nearestnearest o o linearlinear vengono vengono utilizzati fra uno e 4 utilizzati fra uno e 4 texelstexels
�� Muovendo lMuovendo l’’oggetto i oggetto i texeltexel interessati interessati cambiano rapidamente e si ha uno cambiano rapidamente e si ha uno sgradevole sfarfallio (sgradevole sfarfallio (flashingflashing))
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
MipmappingMipmapping
��Si utilizzano versioni a varie risoluzioni Si utilizzano versioni a varie risoluzioni della della texturetexture ((prefilteringprefiltering))
��La media dei La media dei texelstexels èè coscosììprecomputataprecomputata correttamentecorrettamente
Spaziorichiesto: al massimo 1.3333 volte lo spaziodella texture originale:
1+0.25+.25*.25+0.25*0.25*0.25+…
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
MipmapMipmap MathMath
�� DefiniamoDefiniamo un un fattorefattore didi scalascala, , ρρ==texelstexels/pixel/pixel
�� ρρ èè ilil massimomassimo frafra ρρxx e e ρρyy
�� PuòPuò essereessere derivatoderivato dalledalle matricimatrici diditrasformazionetrasformazione
�� DefiniamoDefiniamo λλ=log=log2 2 ρρ
�� λλ indicaindica qualequale livellolivello didi mipmapmipmap utilizzareutilizzare
�� LivelloLivello 0 = texture a 0 = texture a massimamassima risoluzionerisoluzione
�� Se Se λλ<0 <0 cosacosa significasignifica??
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
MipmappingMipmapping
��Le modalitLe modalitàà di di filteringfiltering possibili possibili utilizzando livelli di utilizzando livelli di mipmapmipmap sono:sono:
��linearlinear e e nearestnearest tra i vari livelli di tra i vari livelli di mipmapmipmap
��linearlinear e e nearestnearest per il livello di per il livello di mipmapmipmapselezionatoselezionato
��totale di 4 combinazionitotale di 4 combinazioni
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
Filtering ExampleFiltering Example
Level 0
Level 2
Level 1
s=0.12, t=0.1ρ=1.4λ=0.49
NEAREST_MIPMAPNEAREST_MIPMAP_NEAREST:level 0, pixel (0,0)
NEAREST_MIPMAPNEAREST_MIPMAP_LINEAR:level 0CL [combination of pixels
(0,0), (1,0), (1,1), (0,1)]
LINEAR_MIPMAPLINEAR_MIPMAP_NEAREST
{level 0, pixel (0,0)} * 0.51
+ {level 1, pixel (0,0)} * 0.49
LINEAR_MIPMAPLINEAR_MIPMAP_LINEAR:
{level 0, CL} * 0.51
+ {level 1, CL} * 0.49
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
MipmappingMipmapping
��Esempio:Esempio:
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
RIEPILOGORIEPILOGO
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
RiepilogoRiepilogo
�� MODELLAZIONE MODELLAZIONE –– FASE OFFLINE:FASE OFFLINE:
ProcessoProcesso didi definizionedefinizione delldell’’AmbienteAmbiente VirtualeVirtuale e e deidei suoisuoi componenticomponenti::
-- proprietproprietàà geometrichegeometriche-- proprietproprietàà otticheottiche-- proprietproprietàà fisichefisiche-- proprietproprietàà acusticheacustiche, etc., etc.
DalDal puntopunto didi vista vista visivovisivo, , ilil risultatorisultato del del processoprocesso èè unauna ““shapeshape””, , ovveroovvero unauna forma forma geometricageometrica, , solitamentesolitamente unauna meshmesh poligonalepoligonale definitadefinita dada::
-- unauna listalista didi N N verticivertici {{VV11, V, V22, , ……, V, VNN}} dove:dove:
VVii = [X= [Xii, Y, Yii, , ZZii]]
-- unauna listalista didi M M faccefacce {{FF11, F, F22, , ……, F, FMM}} cheche specificanospecificano la la connettivitconnettivitàà deidei verticivertici::
FFii = [V= [Vi1i1, V, Vi2i2, V, Vi3i3] ] supponendosupponendo faccefacce triangolaritriangolari
-- unauna listalista didi K K materialimateriali {M{M11,M,M22,,……,M,MKK}, }, associatiassociati a a unauna facciafaccia, o a , o a gruppigruppi didifaccefacce ((subsetssubsets):):
MMii = [= [MMi_ambi_amb, , MMi_difi_dif, , MMi_speci_spec]]MMi_xxxi_xxx = [= [RRi_xxxi_xxx,, GGi_xxxi_xxx,, BBi_xxxi_xxx]]
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
RiepilogoRiepilogo
�� MODELLAZIONE MODELLAZIONE -- TEXTURING:TEXTURING:
�� Ad Ad ogniogni materialemateriale puòpuò essereessere associataassociata ancheanche unauna texturetexture
�� In In questoquesto casocaso èè necessarionecessario specificarespecificare ancheanche::
�� unauna listalista didi NNTT texture verticestexture vertices {{TVTV11, TV, TV22, , ……, TV, TVNTNT}} dove:dove:
TVTVii = [= [SSii, T, Tii]] --> > texture coordinatestexture coordinates
�� ll’’associazioneassociazione tratra la la listalista didi verticivertici {V} {V} e la e la listalista didi texture vertices texture vertices {TV}{TV}
�� unauna listalista didi MMTT texture facestexture faces {{TFTF11, TF, TF22, , ……, TF, TFMTMT}} dove:dove:
TFTFii = [= [TVTVmm, , TVTVnn, , TVTVll] ] supponendosupponendo faccefacce triangolaritriangolari
�� ll’’associazioneassociazione tratra la la listalista didi verticivertici {V} {V} e la e la listalista didi texture vertices texture vertices {TV}{TV}
�� ll’’associazioneassociazione tratra la la listalista didi faccefacce {F} {F} e la e la listalista didi texture faces texture faces {TF} {TF}
�� SpessoSpesso {F} = {TF}{F} = {TF}
�� unauna listalista didi NNTEX TEX textures textures {{TexTex11, Tex, Tex22, , ……, , TexTexNTNT}} dove dove TexTexii = bitmap= bitmap
�� ll’’associazioneassociazione tratra la la listalista didi materialimateriali {M} {M} e la e la listalista didi textures textures {TEX}{TEX}
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
RiepilogoRiepilogo
MeshMeshMesh
MaterialMaterialMaterial
TextureTextureTexture
SubsetSubsetSubsetSubsetSubsetSubset SubsetSubsetSubset
MaterialMaterialMaterial MaterialMaterialMaterial
TextureTextureTexture
{V, F, TV, TF, M, TEX} {V, F, TV, TF, M, TEX}
{S{S11}}⊆⊆{F}{F} {S{S22}}⊆⊆{F}{F} {S{S33}}⊆⊆{F}{F}
MM11 MM22MM33
TT11 TT22
SSii : : FFjj, F, Fj+1j+1, , ……, , FFj+kj+k
[V[Vj1j1, V, Vj2j2, V, Vj3j3] ]
[TV[TVi1i1, TV, TVi2i2, TV, TVi3i3] ]
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
RiepilogoRiepilogo
�� RENDERING (FASE REALRENDERING (FASE REAL--TIME)TIME)
�� DiDi ogniogni oggettooggetto delladella scenascena, in , in relazionerelazione allaalla posizioneposizione e e allaalla direzionedirezione didi vista, vista, vengonovengonotrasformatitrasformati i i verticivertici dallodallo spaziospazio 3D (3D (objectobject--space coordinatesspace coordinates) a ) a unouno spaziospazio 2D (2D (window window
coordinatescoordinates).).
�� SuccessivamenteSuccessivamente, , vieneviene determinatodeterminato ((mediantemediante operazionioperazioni didi lightinglighting) o ) o indicatoindicato ((direttamentedirettamente) ) ililcolorecolore deidei pixel pixel corrispondenticorrispondenti aiai verticivertici trasformatitrasformati
�� QuindiQuindi, a , a partirepartire daidai coloricolori didi questiquesti pixel, pixel, vengonovengono ricavatiricavati i i coloricolori ((shadingshading) ) didi tuttitutti i pixel i pixel intermediintermedi
DatiDati necessarinecessari::
-- coordinate coordinate verticivertici oggettooggetto
-- coordinate coordinate puntopunto didi vistavista
DatiDati necessarinecessari::
-- coordinate coordinate verticivertici oggettooggetto
-- normalinormali
-- coordinate coordinate puntopunto didi vistavista
-- coordinate e coordinate e tipotipo didi luciluci
-- colorecolore o o materialimateriali
DatiDati necessarinecessari::
-- coordinate coordinate verticivertici--pixelpixel
-- ((normalinormali))
-- datidati faccefacce
RealtRealtàà Virtuale: il presente, il passato, il futuroVirtuale: il presente, il passato, il futuroShadingShading e e TextureTexture MappingMapping
RiepilogoRiepilogo
�� RENDERING (FASE REALRENDERING (FASE REAL--TIME)TIME)
�� Se Se ll’’oggettooggetto èè associatoassociato ad ad unauna o o pipiùù texturestextures, , esseesse vengonovengono compostecomposte con i con i colori/materialicolori/materialisottostantisottostanti
�� VengonoVengono infineinfine effettuateeffettuate le le operazionioperazioni didi zz--buffering buffering ((risoluzionerisoluzione visibilitvisibilitàà), ), blendingblending
((trasparenzatrasparenza) e opzionalmente ) e opzionalmente altrealtre operazionioperazioni nellonello spaziospazio didi finestrafinestra ((eses. . antialiasingantialiasing etc.)etc.)
DatiDati necessarinecessari::
-- coordinate coordinate verticivertici--pixelpixel
-- texture coordinatestexture coordinates
-- datidati faccefacce
-- coloricolori / / materialimateriali
DatiDati necessarinecessari::
-- coordinate pixelcoordinate pixel
-- alphaalpha
-- coloricolori / / materialimateriali