La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Intersezioni e distanze Daniele Marini. Perchè Il calcolo delle intersezioni di rette con oggetti e di distanze è assai frequente, occorre trovare soluzioni.

Presentazioni simili


Presentazione sul tema: "Intersezioni e distanze Daniele Marini. Perchè Il calcolo delle intersezioni di rette con oggetti e di distanze è assai frequente, occorre trovare soluzioni."— Transcript della presentazione:

1 Intersezioni e distanze Daniele Marini

2 Perchè Il calcolo delle intersezioni di rette con oggetti e di distanze è assai frequente, occorre trovare soluzioni efficienti Si usano equazioni parametriche per rappresentare rette e volumi di contenimento (BV) per accelerare il calcolo 2Programmazione grafica a.a. 2007/2008

3 Definizioni utili Raggio r (t) semiretta dotata di origine e direzione (solitamente la direzione è normalizzata) Superfici: implicite e esplicite –implicite: f( p )=0 - es sfera: x 2 +y 2 +z 2 -r 2 =0 dato il punto p si valuta se appartiene alla superficie trovando gli zeri dell’equazione –esplicite: f (u,v)=(f x (u,v),f y (u,v),f z (u,v)) es sfera: f (  )=((r sin  cos  ), (r sin  sin  ), (r cos  )) 3Programmazione grafica a.a. 2007/2008

4 Rette Dato un punto p = (x 0, y 0,z 0 ) per cui passa la retta, la sua forma parametrica è: r (t)= p +t d dove d è la direzione (vettore normalizzato) e t il parametro, per t>0 abbiamo una semiretta (tipicamente il raggio) Le componenti sono: 4Programmazione grafica a.a. 2007/2008

5 Bounding volume Si definiscono tre tipi di bounding volumes: AABB, OBB, k-DOP AABB: axis aligned bounding box, un parallelepipedo con le facce parallele ai piani coordinati, si definisce con due valori estremi a min, a max 5 a min a max Programmazione grafica a.a. 2007/2008

6 OBB: oriented bounding box è un AABB ruotato rispetto agli assi principali, si può definire con un centro e tre vettori normalizzati che descrivono le direzioni dei lati k-DOP: discrete oriented polytope, definito da k/2 vettori normalizzati con associati due valori scalari per definire una porzione di piano; in pratica definiscono un poliedro 6Programmazione grafica a.a. 2007/2008

7 Bounding sphere Si utilizza anche la sfera come volume di contenimento Lo studio delle intersezioni con i BV è essenziale per l’efficienza 7Programmazione grafica a.a. 2007/2008

8 Intersecare rette Usato in ray tracing / ray casting Usato per calcolare collisioni Il raggio è una semiretta, con direzione data, e un punto di applicazione –la retta è specificata con coseni direttori e un punto da cui passa 8Programmazione grafica a.a. 2007/2008

9 La distanza di un punto q dalla retta r che passa per p si ottiene proiettando q su r e valutando la norma: 9 r q p d q-p w (q-p)-w Programmazione grafica a.a. 2007/2008

10 Intersezione con una sfera Caso più semplice di BV è la sfera Raggio in forma parametrica (vettore): Sfera con centro in (l,m,n) e raggio r: 10Programmazione grafica a.a. 2007/2008

11 Sostituendo nell’equazione della sfera x,y,z (vediamo solo x): 11 (x 1,y 1,z 1 ) (x 2,y 2,z 2 ) 01 Programmazione grafica a.a. 2007/2008

12 la forma quadratica generale è quindi: 12 da risolvere come equazione di II grado; se il determinate è 0 due intersezioni, e le radici t 1,t 2 danno il punto di entrata e di uscita del raggio i,j,k sono le differenze (x 2 -x 1 ) ecc. non sono coseni direttori ! Programmazione grafica a.a. 2007/2008

13 si ricava anche la normale alla sfera nel punto di intersezione (tangenza): 13Programmazione grafica a.a. 2007/2008

14 per accelerare il calcolo si valuta prima il test di rifiuto rejection test le intersezioni “dietro” non interessano si valuta il vettore origine_raggio - centro_sfera, se ne calcola il modulo c 2, se < r 2 l’origine è interna alla sfera –il raggio interseca certamente, se ci interessa solo questo si termina (es: picking) altrimenti si procede) si calcola la proiezione del vettore sul raggio, se <0 e se l’origine è esterna allora la sfera è dietro al raggio e si termina altrimenti si calcola la distanza al quadrato dal centro sfera alla proiezione del vettore sul raggio m 2 se > r 2 il raggio non colpisce la sfera altrimenti si calcola l’intersezione 14Programmazione grafica a.a. 2007/2008

15 15 Rejection test Programmazione grafica a.a. 2007/2008

16 Intersezione raggio triangolo (poligono) 3 passi: –determinare il piano su cui giace il triangolo –determinare l’intersezione piano-raggio –valutare se l’intersezione e’ interna al triangolo (poligono) usata anche per clipping, i raggi in questo caso sono i bordi del poligono e il piano è uno dei piani del frustum di visione; trovate tutte le intersezioni si genera un nuovo poligono 16Programmazione grafica a.a. 2007/2008

17 Intersezione raggio triangolo 17Programmazione grafica a.a. 2007/2008

18 Determinare il piano 18 equazione del piano: Ax+By+Cz+D=0 A,B,C sono le componenti della normale al piano il prodotto vettore tra due vettori identifica la normale dati due lati V, W del triangolo calcoliamo la normale: dove i,j,k sono i versori, quindi A,B,C sono: D si ottiene sostituendo un vertice del poligono nell’equazione (un punto che giace nel piano) Programmazione grafica a.a. 2007/2008

19 Intersezione raggio / piano si sostituisce x,y,z dalla equazione parametrica del piano: se t<0 il raggio è nel semispazio che non contiene il poligono se il denominatore = 0 raggio e piano sono paralleli; per verificare se il raggio è nel semispazio che non contiene il poligono basta testare il segno del numeratore: se > 0 è esterno 19Programmazione grafica a.a. 2007/2008

20 Casi negativi raggio esterno al semispazio che contiene il poligono: t<0 raggio parallelo al piano del poligono: denominatore = 0 –nel semispazio esterno al poligono: numeratore >0 20 interno esterno raggio Programmazione grafica a.a. 2007/2008

21 Test di appartenenza del punto nei casi “positivi” si verifica se l’intersezione col piano cade nel poligono (triangolo) metodo diretto: se è interno la somma degli angoli dal punto ai vertici è 360° 21Programmazione grafica a.a. 2007/2008

22 Il metodo diretto è costoso, se il punto è su un bordo dà errore, non si può valutare se il poligono è orientato “back face” rispetto alla direzione del raggio (può interessare solo la prima intersezione con un poliedro) 22Programmazione grafica a.a. 2007/2008

23 Intersezione con OBB si considerano a turno coppie di piani paralleli determinando t near e t far si conserva nel confronto t near maggiore e t far minore se il massimo t near è maggiore del minimo t far non c’è intersezione 23Programmazione grafica a.a. 2007/2008

24 24 t near t far t near t far Programmazione grafica a.a. 2007/2008


Scaricare ppt "Intersezioni e distanze Daniele Marini. Perchè Il calcolo delle intersezioni di rette con oggetti e di distanze è assai frequente, occorre trovare soluzioni."

Presentazioni simili


Annunci Google