LAYERED TEXTURES - TEXTURES COMPOSTE
categorie→
[
3dCorso : ,
Animazione3D :
] Modifica33441580 |
TOP
4 maggio permaLink 33441580 → Intervieni l'articolo LAYERED TEXTURES - TEXTURES COMPOSTE · 0 ·
Layered textures
Si usa questo termine per definire delle textures che risultano da operazioni "cromatiche" fatte sulla combinazione di diverse bitmap pesate e interpolate secondo i meccanismi logici delle operazioni sui pixels.
Queste textures servono per definire dei materiali, ma sono concettualmente diverse dai layered shaders che invece si applicano alle geometrie e che vedremo in un prossimo tutorial.
Possiamo sostenere che si tratta delle tipiche operazioni raster, che si sono evolute progressivamente da programmi di pittura 2D, come Macdraw e Photoshop, a programmi di renderering 3D come POVRay e, nel nostro caso, MAYA.
Le coordinate di riferimento sono quelle della matrice di pixels che contiene valori R G B Alpha, dove il canale alfa può contenere sia una maschera che un valore di trasparenza o di pesatura.
Definiamo per comodità la nuova matrice, A (foreground), la precedente B (background, sfondo) e C la risultante.
Quasi tutti i programmi di painting hanno queste possibilità come modalità di scrittura:
- normale:
la texture di foreground A sostituisce quella precedente.
- C.colore = A.colore
- C.alfa = A.alfa
- Over:
la nuova texture viene applicata come una decalcomania allo sfondo. Il canale alfa funziona come una maschera e determina la forma dello stencil.
- C.colore = A.colore * A.alfa + (B.colore * (1 - B.alfa))
- In:( ritaglia )
la nuova texture si compone come un piano della texture di sfondo ritagliato nella texture di A.In pratica si vedrà la texture B dove la maschera di A è bianca (1) mentre si vedrà A quando la sua maschera è zero.
- C.color = B.colore * A.alfa
- C.alpha = B.alfa * A.alfa
- Out ( scontorna ):
è l'operazione inversa della precedente:
C.color = B.colore * (1- A.alfa )
C.alpha = B.alfa * (1 - A.alfa )- Aggiungi :
Il pixel risultante ha il colore ottenuto come somma dello sfondo B e di A pesato per la trasparenza.
- C.colore = B.colore + (A.colore * A.alfa)
- C.alfa = B.alfa
- Sottrai:
Il nuovo colore pesato per la sua trasparenza viene sottratto a B.
- C.colore = B.colore - (A.colore * A.alfa)
- C.alfa = B.alfa
- Moltiplica:
Il pixel risultante è il prodotto di A per B pesato per la trasparenza di A.
- C.colore = (B.colore *A.colore )* A.alfa
+ (1 - A.alfa)*( B.colore*A.colore)- C.alfa = B.alfa
- Differenza:
Il risultato è la differenza tra i pixel di A e di B pesato come al solito per la trasparenza di A.
- C.colore = (abs((A.colore * A.alfa) - B.colore)) * A.alfa
+ B.colore * (1 - A.alfa)- C.alfa = B.alfa
- Schiarischi:
Il pixel risultante ha il colore del pixel più luminoso pesato per la trasparenza di A.
- C.colore = (max((A.colore * A.alfa), B.colore)) * A.alfa
+ B.colore * (1 - A.alfa)- C.alfa = B.alfa
- Scurisci :
Viene assegnato al pixel risultante quello più scuro tra A e B interpolato con la trasparenza (alfa) del pixel A.
- C.colore = (min((A.colore * A.alfa), B.colore)) * A.alfa
+ B.colore * (1 - A.alfa)- C.alfa = B.alfa
- Satura:
Il colore finale è il colore di sfondo, più saturo. L'incremento è calcolato in modo proporzionale al colore di primo piano pesato per l'alfa dello sfondo.
- C.colore = B.colore + B.colore * (A.colore * A.alfa))
- C.alfa = B.alfa
- Desatura:
Il pixel risultante ha il colore dello sfondo con una saturazione diminuita proporzionalmente al colore del Pixel A pesato per la sua trasparenza. Ad esempio se il pixel di sfondo è blu il risultato sarà blu desaturato.
- C.colore = B.colore * (1 - (A.colore * A.alfa))
- C.alfa = B.alfa
- Illumina:
Il pixel risultante è una composizione dei due colori che viene modificata
schiarendola dove B è luminoso e scurendola nelle parti scure. In pratica si può pensare a B come ad una matrice di luminosità che viene applicata alla matrice A tenendo conto della sua trasparenza.
- C.colore = B.colore * (2 * A.colore * A.alfa + 1 - A.alfa)
- C.alfa = B.alfa
fare come esercizio una texture layered