algoritmo ray casting
SPIEGAZIONE
- Posiziono lo schermo focale dal lato opposto del Pov
- In questo modo dal PoV traccio i fotoni a ritroso che attraversano il pixel (fase di mappatura)
- il raggio non si ferma, bensì continua fino ad intersecare un oggetto. Quindi calcolo l’intersezione con il primo oggetto della scena che il raggio raggiunge, ovvero quello che sta in front-ground (calcolo l’intersezione = ovvero se e dove colpiscono lo schermo)
OSSERVAZIONi
- quanti raggi traccio? tanti quanti i numero di pixel (risoluzione)
SPIEGAZIONE PRIMITIVE DI RENDERING
- se l’algoritmo può processare modelli 3d fatti di tri-mesh, allora le primitive sono triangoli.
- in base alla primitiva, cambia la formula per calcolare l’intersezione con l’oggetto della scena
LOGICA CALCOLO INTERSEZIONE
- …raggio: p+k*d
- …intersezione
- …occlusione
ESERCIZI
calcolare un raggio primario
set problemi
- dati iniziali:
- piano definito da un punto a
- qunadi il piano attraversa 𝐚 e il suo vettore normale n corrisponde all’orientamento del piano
- problema1: definire tutti i possibili punti q che stanno sul piano
- equazione di u piano: (𝐚 − 𝐪) * n = 0
- con q=punto di posizione incognita → coordinata z costante
ovvero definire i punti q che mi danno un prodotto vettoriale nullo tra n ed a-q
- problema2: definire il fattore moltipliacativo con cui spostare un punto affinchè tocchi il piano
- equazione risolutrice
- problema3: intersezione raggio sfera
- fa l’esempio con un circonferenza ma si applica nel 3d
- ridefinisce il valore di q con quello del raggio da p
- RIPASSO GEOMETRIA ANALITICA DELLE SUPERIORI:
equazione risolutrice
in sostanza ho preso l’equazione di una retta e l’ho intersecata ad una circonferenza calcolando un sistema. L’eq. di 2° grado si calcola come al solito:
ray tracing = ray casting + raggi secondari
- in pratica se prima un solo raggio mi definiva il valore del singolo pixel che attraversava, ora il valore dello stesso pixel è l’insieme delle intersezioni del raggio “spezzato” (raggio primario + shadowing)
- ALGORITMI
- Il raggio primario va dal POV verso la scena e colpisce un punto q su un oggetto.
- Poi, dal punto q, si costruisce un raggio secondario che va verso la sorgente di luce (il raggio di shadowing).
- Se questo raggio secondario viene bloccato da un altro oggetto, significa che la luce non raggiunge q
- Quindi q è in ombra
- il raggio primario da solo da unicamente l’informazione del colore, quello secondario specifica la luminosità
- d_r è definito in modo da creare un ampiezza rispetto ad n, che sia simmetrica a quella creata da d
- primo parametro: vettore d+dr (ortogonale ad n) → d + d_r = 0
- secondo parametro: vettore h*n (normale traslata e allungata di uno scalare h per rappresentare d+dr da un altra posizione geometrica)
- quindi vale anche d+h*n = dr
- sostituisco il secondo parametro dentro il primo (sfruttando l’ortogonalità del primo)
- la seconda equazione è il prodotto dot
- SOLUZIONE
- esempi grafici
è un set di algoritmi pk in base al fine del ray tracing, cambia l’algoritmo
1 raggio di shadowing (vedicome determina se il punto è illuminato)
SPIEGAZIONE
molteplici raggi di riflessione (capire bene come trovare dr)
COME CALCOLO d_r?
raggio di rifrazione (easy pk nn vediamo formule)
ultime considerazioni ray tracing
- è costoso (tempo)
- varianti per ottimizzare gli algoritmi
- modelli di riflessione
- ray tracing applicato ai modelli voxel e trimesh (lettura velocissima)