Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Robot21

Gli Shader Di Maya

Recommended Posts

da cio' che so, nei primi detti conosco solo per la lucentezza, invece il surfce shader lo usi quando ottieni appunto uno shader che , ad esempio, finisce con un nodo come il blend, infatti se provi ad applicare direttamente lo shader da quello non funzionera' ma devi usare il surface shader

Share this post


Link to post
Share on other sites

1) Se ho intuito bene, la riflessione blinn è meno netta della phong, ma che differenza c'è rispetto ad una riflessione anisotropica? E cosa distingue il phong dal phong E ?

2) Cos'è il nodo blend?


Edited by Robot21

Share this post


Link to post
Share on other sites

alla prima e' meglio che ti risponde uno che abbia piu esperienza di me,

il nodo blend color , lo hai nell' hypershade e lo usi quando vuoi mischiare due colori, oppure puo' essere usato per altri scopi.... :rolleyes:

Share this post


Link to post
Share on other sites

Phong

Blin Phong

anisotropic (adj.) an·i·so·trop·ic 1. Physics. of unequal physical properties along different axes. Cf. isotropic

A lot of

http://en.wikipedia.org/wiki/List_of_common_shading_algorithms

different between

Phong:

Represents glassy or glossy surfaces with a hard specular highlight.

Phong E:

A simpler version of the phong material. The specular highlights on the Phong E surfaces are softer than those on Phong Surfaces and Phong E surfaces render faster than Phong surfaces.

Share this post


Link to post
Share on other sites

Ciao cercherò di dare una spiegazione più o meno semplice o tanto meno comprensibile:

Tutto quello che differisce tra i vari tipi di shader non è altro che l'algoritmo di calcolo che c'è dietro agli stessi. (ovvero la sequenza di istruzioni/calcoli che il computer fa per restituirci un risultato che consiste in un'immagine nel nostro caso.)

Tra gli shader partiamo dal più semplice ovvero il lambert.

L'algoritmo di calcolo che c'è dietro il Lambert è un prodotto scalare tra la Normale N e la direzione della luce L risultato = L . N (dot product ovvero il prodotto col punto a differenza del prodotto vettoriale A x B).

Ora tutto quello che riguarda coordinate spaziali dentro Maya (ma dentro qualunque software 3D) si basa su vettori:

a scuola i vettori erano noiosi "un vettore è un elemento matematico che ha una direzione un verso e una intensità o modulo"... tutta roba che (se lo staff di treddi.com me lo concede) alquanto pallosa.

ora sul piano cartesiano (2D) ogni punto viene definito da due coordinate A(x,y) che ne determinano la posizione. Un vettore è una cosa del tipo v<<0, 1>> ovvero il punto A che si trovava a coordinate x,y ora si trova traslato per influenza del vettore v e le sue coordiante finali saranno A'(x+0,y+1). Ok ancora molto noioso.

In uno spazio 3D le cose cambiano un pochino di fondo sono sempre le stesse ma più interessanti a mio parere.

un punto P ha 3 coordinate definite dagli assi X Y e Z quindi le sue coordinate saranno per esempio P(x,y,z).

lo stesso ragionamento vale per i vettori in vettore V<<0, 1, 0>> è un vettore che ha intensità o modulo di 1 direzione sull'asse Y e verso positivo.

Ricordo che in Maya anche i colori sono vettori, dove le "coordinate" sono rappresentate dai valori RGB ovvero rosso verde e blu. il vettore B<<255, 255, 255>> indica il bianco il vettore N<<0, 0, 0>> indica il nero.

Ora il Dot Product non fa altro che la somma dei prodotti delle varie componenti dei due vettori e restituisce un valore Float(virgola mobile) come risultato ovvero:

vector $vec1 = <<2, 0, 1>>;(a, b, c)

vector $vec2 = <<-1, 3, 4>>;(d, e, f)

float $risultato = dot($vec1,$vec2) = (a*d)+(b*e)+(c*f) = (2*(-1)) + (0*3) + (1*4) = -2+0+4 = 2.0;

Ora tornando al discorso degli shader:

per il lambert abbiamo detto che il calcolo non è altro che il prodotto scalare tra la Normale del Piano e la Direzione della Luce. N . L;

se normale e direzione della luce sono perpendicolari il risultato è 0, se sono parallele il risultato è 1;

in altre parole se la luce è puntata direttamente sul piano questo apparirà del colore esatto scelto nello shader, se la luce sfiora il piano il colore sarà nero.

tutto questo perchè L . N = cos(alpha) dove alpha è l'angolo che formano la Normale con la Direzione della Luce.

quindi se sono parallele l'angolo che formano è 0 quidni cos(0)=1. se sono perpendicolari l'angolo che formano è pigreco/2 ovver 90° quindi cos(p/2)=0.

lo shader di tipo lambert applica questo principio in ogni zona della superficie per ciò avremo un tipo di illuminazione diffusa e distribuita omogeneamente senza punti di riflessione (esempio legno, carta ecc).

lo shader Phong prende il nome dall'inventore Bui Tuong Phong che ha definito il metodo di riflessione di Phong:

tiene conto di:

1 - la costante di riflessione speculare

2 - la riflessione di diffusione (modello lambert)

3 - la riflessione dell'ambiente (ovvero vede in quali punti della scena c'è luce e dove è "buio" e ne considera i valori di intensità di specularità e intensità di diffusione)

4 - la costante di lucentezza specificata per il materiale.

definiamo ora delle variabili:

luce ambiente = Ia; (somma delle luci)

intensità di specular = Is;

intensità di diffuse = Id;

costante di specular = Ks;

costante di diffusione = Kd;

costante ambientale = Ka;

costante di lucentezza = kl;

lgh = luci prese in considerazione;

N = normale;(vettore)

L = direzione luce;(vettore)

R = raggio parallelo al punto in considerazione (il calcolo è ripetuto per ogni punto della superficie)(vettore)

V = vettore che identifica la direzione della camera rispetto al punto.

il risultato® in ogni punto è dato da: (il "." indica il dot product)

R = Ka*Ia + SOMMATORIA[lgh] (Kd(N.L)Id + Ks((V.R)^Kl)Is )

Un calcolo un po più complesso ma che aumenta di molto i tempi di calcolo con un risultato veramente buono anche se non sempre.

Il Phong-E è una versione diversificata dal Phong dove il controllo del riflesso (specular) è più graduale rispetto a phong ma comunque più netto rispetto a Blinn.

James (Jim) Blinn era uno scienziato che lavorava per la NASA quindi era quanto c'è di più lontano da un cretino

lo shader Blinn funziona allo stesso modo dei due solo che inserisce nell'algoritmo un indice di rifrazione in modo tale da creare intorno al punto di riflessione una sfumatura che a mio parere rispecchia piu degli altri due il reale (comunque l'aspetto artistico che c'è poi dietro la grafica guiderà "l'artista" a scegliere lo shader in base al risutlato che vuole ottenere e che ritiene sia il piu corretto o semplicemente più bello).

tra tutti gli shader (standard) questo è quello che necessita maggiore tempo di calcolo.

Lo shader anisotropico si basa sull'anisotropia del punto di specular ovvero che il punto di specularità non varia in base alla forma dell'oggetto ma in base a una forma e direzione data. Quindi siamo noi a decidere in che modo questo punto speculare deve essere posizionato sulla superficie ed è per questo che lo shader anisotropico viene utilizzato per simulare pellicole cinematografiche e i CD.

Ora venendo all'ultimo shader ovvero il Surface:

questo shader "SE NE FREGA" del posizionamento delle luci. Se vogliamo uno shader che sia uguale per tutta la superficie possiamo usare uno shader di qeusto tipo.

Attenzione però questo non vuol dire che questo shader non può simulare zone più o meno illuminate:

l'uso di questo shader varia in molti modi...

1 - se lo colleghiamo a un Light Info Node possiamo creare delle zone più o meno illuminate sulla superficie in modo tale che sia verosimile.

2 - sempre attraverso un Light Info Node possiamo creare delle occlusionMap basate non su una ipotetica ambient light ma da una fonte luminosa vera e propria in modo da eliminare le zona di ombra eccessiva.

3 - sempre con un Light Info Node possiamo Bakare delle texure per esempio di un pavimento là dove una zona di pavimento sarà sempre in ombra a causa di un oggetto statico nella scena. Mi spiego meglio: se avessimo una strada con un lampione, se sia la luce che il lampione non si muovo possiamo salvare l'ombra creata dal lampione direttamente sulla texture del pavimento in modo tale da non dover fa calcolare a Maya il raytracing o raycasting.

4 - con un Sempler Info Node possiamo fare in modo che la supreficie sia sempre illuminata ai bordi e piu scura la parte che guarda la camera per simulare il contrasto dato da una eventuale luce posteriore.

5 - si possono creare shader di tipo cartoon..

insomma qualche uso lo si trova.

Per quanto riguarda lo Shading Map mi pare che applichi solo un colore piatto per creare tipo delle maschere vettoriali e shader non realistici stile cartoon non l'ho studiato molto sorry.

l'Hair tube shader serve per creare lo shader dei capelli ma non mi piace sinceramente preferisco partire da zero con un anisotropico (alla fine non è altro che un anisotropico apposito)

Lo Use Background serve a creare delle ShadowMaps

Il Layared non è altro che uno shader che contiene più shader su vari livelli

Poi c'è il CgFX Shader sinceramente so solo che esiste ma non ho idea di cosa serva e in che modo si usi quindi non vorrei sparare qualche cavolata.

Per rispondere in Breve alla tua domanda posso dirti che le differenze principali tra i vari shader sono i modi un cui gestiscono i punti di specular (se presenti) e gli algoritmi che hanno alle spalle.

La scelta degli shader da utilizzare deve essere fatta in base a qualità che si vuole raggiungere (ma soprattutto quale effetto si vuole raggiungere) capacità della macchina sui cui si farà il rendering, tempo a disposizione e di conseguenza ottimizzazione del rate frame/minuti.

Spero di essere stato chiaro ma soprattutto d'aiuto o quanto meno di aver dato una delucidazione...

buon lavoro/studio

ciauz!!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...
Aspetta! x