 | |
Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum |
Qualcuno ha capito fresnel e snell? Clicca QUI per vedere il messaggio nel forum |
| jonny86 |
Ciao a tutti...
Ho visto che tra le altre cose nel progetto di quest'anno c'è uno shader (quello della sfera) che è da fare in vetro con fresnel e snell...
Io purtroppo quel giorno in cui ha spiegato ste cose non c'ero ed ora anche guardando il codice dello shader pubblicato (il myRefraction) non ci capisco molto :? ... poi c'è la funzione rayinfo che non so a cosa serva anche se penso di aver intuito che possa servire a dare un'etichetta ai raggi... ma quali, perchè e come non l'ho capito....
Insomma... se c'è qualche anima pia che ha capito sto fresnell e lo sa illustrare brevemente è ben accetto :D
Thanks. |
| Hiroj |
- Legge di Snell
quando la luce passa attraverso un oggetto trasparente subisce tre effetti: viene assorbita, viene assorbita in modo selettivo, in funzione del colore dell'oggetto trasparente e viene deviata con un angolo dipendente dall'indice di rifrazione dell'oggetto trasparente. La legge di Snell in renderman (refract(I, N, eta)) restituisce il vettore deviato uscente dall'oggetto trasparente. I è il vettore incidente, N la normale del punto sulla superficie e eta è l'indice di rifrazione.
- Legge di Fresnel
oltre alla rifrazion |
| Hiroj |
- Legge di Snell
quando la luce passa attraverso un oggetto trasparente subisce tre effetti: viene assorbita, viene assorbita in modo selettivo, in funzione del colore dell'oggetto trasparente e viene deviata con un angolo dipendente dall'indice di rifrazione dell'oggetto trasparente. La legge di Snell in renderman (refract(I, N, eta)) restituisce il vettore deviato uscente dall'oggetto trasparente. I è il vettore incidente, N la normale del punto sulla superficie e eta è l'indice di rifrazione.
- Legge di Fresnel
oltre alla rifrazion |
| Hiroj |
Eh... scusate i post precedenti... la connessione mi ha fatto qualche scherzo! :)
- Legge di Snell
quando la luce passa attraverso un oggetto trasparente subisce tre effetti: viene assorbita, viene assorbita in modo selettivo, in funzione del colore dell'oggetto trasparente e viene deviata con un angolo dipendente dall'indice di rifrazione dell'oggetto trasparente. La legge di Snell in renderman (refract(I, N, eta)) restituisce il vettore deviato uscente dall'oggetto trasparente. I è il vettore incidente, N la normale del punto sulla superficie e eta è l'indice di rifrazione.
- Legge di Fresnel
oltre alla rifrazione, la legge di Fresnel prevede anche il calcolo della riflessione della luce su un materiale trasparente. In renderman è definito in questo modo: fresnel(I, N, eta, Kr, Kt, R, T). Io non la definirei proprio una funzione visto che non restituisce direttamente un valore, ma anzi una procedura perchè memorizza all'interno di alcuni parametri che gli passiamo i valori del vettore di rifrazione e riflessione e i relativi coefficienti. I è il vettore incidente, N la normale del punto sulla superficie, eta l'indice di rifrazione, Kr il coefficiente di riflessione, Kt il coefficiente di rifrazione (o trasmissione), R il vettore di riflessione e T il vettore di rifrazione (o trasmissione). Ovviamente dopo il richiamo di questa procedura devono venir tracciati 2 raggi; uno per la riflessione e uno per la rifrazione. Il colore che resituiscono i due raggi poi verrà sommato o mixato.
- Rayinfo e le etichette dei raggi
rayinfo serve per ottenere informazioni dai raggi che colpiscono lo shader come la direzione, l'origine, la lunghezza, il nome...
Anche questa potrebbe essere considerata una procedura perchè salva in una variabile passata come parametro il valore dell'informazione che vogliamo ottenere.
Es. rayinfo("label", rayname);
dove "label" identifica l'informazione che vogliamo e rayname la variabile dove andrà a finire il risultato.
Per assegnare un'etichetta ad un raggio dobbiamo usare la trace() con qualche parametro in più: trace(P, R, "label", "raggio1"), dove P e R sono il punto di partenza e la direzione del raggio, "label" è l'informazione a cui vogliamo assegnare un valore e "raggio1" è il valore della stringa "label".
Spero di essermi spiegato correttamente e se ci fosse qualche errore prego di segnalarlo. |
|
|
|
|