Intersezioni e distanze

Slides:



Advertisements
Presentazioni simili
Coordinate di un punto P(x,y,z)
Advertisements

Calcolo vettoriale E.F. Orsega – Università Ca’ Foscari di Venezia
Meccanica 6 21 marzo 2011 Cambiamento di sistema di riferimento
Lezioni di Matematica Corso SIRIO Le “curve di livello”
Sistema di riferimento sulla retta
Corso di Chimica Fisica II 2011 Marina Brustolon
Geometria analitica dello spazio
Geometria analitica dello spazio
Cinematica diretta Un manipolatore è costituito da un insieme di corpi rigidi (bracci) connessi in cascata tramite coppie cinematiche (giunti). Si assume.
Scalari e vettori In fisica si lavora con due tipi di grandezze: le grandezze scalari e le grandezze vettoriali. Le grandezze scalari sono quelle grandezze.
1 la Torre Berardino Force rendering & Collision detection Dipartimento di Ingegneria dellInformazione Siena Ore F1F1 F2F2.
ELETTROMAGNETISMO APPLICATO ALL'INGEGNERIA ELETTRICA ED ENERGETICA
“Assi principali di inerzia”
Elementi di Matematica
Curve e Superfici Il mondo non è fatto di rette e poligoni.
SUPERFICIE NELLO SPAZIO, FORMULE DELLA DIVERGENZA E DI STOKES
MECCANICA (descrizione del moto dei corpi)
FAI UN CLIC CON IL TASTO SINISTRO DEL MOUSE
LE EQUAZIONI DI SECONDO GRADO
Velocità ed accelerazione
Sistema di riferimento su una retta
Applicazioni progettuali di grafica computerizzata a.a. 2008/2009 Rendering grafico.
Grandezze Fisiche: dirette
L’accelerazione riferita alla traiettoria
Grandezze scalari e vettoriali
ELETTROSTATICA NELLA MATERIA
LE CONICHE                                       .
Vettori. Le grandezze fisiche Lo scopo della fisica è quello di ricavare le leggi che legano le varie grandezze fisiche. Le grandezze fisiche sono le.
Modelli Globali Daniele Marini.
1 Superfici nascoste Daniele Marini. 2 Ray casting adatto a CSG o superfici parametriche dipende dal punto di vista è una sorta di campionamento spaziale.
Spazi vettoriali astratti Somma e prodotto di n-ple Struttura di R n.
Esiste uno strumento che permetta, dall’ equazione della retta, di stabilirne la posizione rispetto al semiasse positivo delle ascisse?
SCOMPOSIZIONE DI UN VETTORE
I.T.C. e per Geometri Enrico Mattei
“Il piano cartesiano e la retta”
INTRODUZIONE A MATLAB LEZIONE 4 Sara Poltronieri slide3.4 matlabintro
I solidi.
Daniele Marini Con contributi di Maurizio Rossi
Vettori Finche’ il moto si svolge in una sola dimensione – moto unidimensionale, moto rettilineo – non abbiamo bisogno di vettori La posizione e’ individuata.
LA CIRCONFERENZA.
Modelli Globali: Ray Tracing
Formule generali per il calcolo di superficie e volume di solidi a 2 basi by iprof.
Superfici nascoste Daniele Marini.
Intersezioni e distanze
Collisioni Corso di Programmazione Grafica e Laboratorio Daniele Marini.
Corso Di Programmazione Grafica
Rotazioni e quaternioni
Ottimizzazione della scena Daniele Marini. Esigenze del RT rendering maggiori frame /sec risoluzione più alta oggetti più accurati e realistici 2 Programmazione.
1 Ottimizzazione della scena Daniele Marini. 2 Esigenze del RT rendering maggiori frame /sec risoluzione più alta oggetti più accurati e realistici.
Collisioni Corso di Programmazione Grafica e Laboratorio Daniele Marini.
Intersezioni e distanze Daniele Marini Corso di Programmazione Grafica per il Tempo Reale.
Collisioni Corso di Programmazione Grafica e Laboratorio Daniele Marini.
Collisioni Daniele Marini Corso di Programmazione Grafica per il Tempo Reale.
La retta Equazione (rette parallele agli assi, passanti per l’origine e generiche) Forma esplicita e implicita Condizione di parallelismo e perpendicolarità.
Cinematica Punto materiale: modello che rappresenta un oggetto di piccole dimensioni in moto Traiettoria: linea che unisce tutte le posizioni attraverso.
Risolvere sistemi lineari
Acquisizione ed elaborazione di dati cinematici
Da 2 a 3 dimensioni La terza coordinata z.
G.M. - Edile A 2002/03 Una sferetta P viene posta in una conca semisferica di raggio R in un punto diverso da quello più basso. La sferetta rotola e l’angolo.
Equazione di un luogo geometrico nel piano cartesiano
Daniele Marini Con contributi di Maurizio Rossi
APPUNTI DI GEOMETRIA ANALITICA DELLA RETTA
La circonferenza e l’ellisse La sezione conica è l’intersezione di un piano con un cono. La sezione cambia a seconda dell’inclinazione del piano. Se il.
1. Le coordinate di un punto su un piano Le coordinate di un punto su un piano 2. La lunghezza e il punto medio di un segmento La lunghezza e il punto.
FUNZIONI GONIOMETRICHE CLASSE 3 A S A.S. 2013/14.
angoli orientati negativamente se la rotazione avviene in verso orario
Luoghi di punti In geometria il termine
La Circonferenza. LA CIRCONFERENZA Assegnato nel piano un punto C detto Centro, si chiama circonferenza la curva piana con i punti equidistanti da C.
Transcript della presentazione:

Intersezioni e distanze Daniele Marini

Programmazione grafica a.a. 2007/2008 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 Programmazione grafica a.a. 2007/2008

Programmazione grafica a.a. 2007/2008 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: x2+y2+z2-r2=0 dato il punto p si valuta se appartiene alla superficie trovando gli zeri dell’equazione esplicite: f(u,v)=(fx(u,v),fy(u,v),fz(u,v)) es sfera: f(,)=((r sin cos), (r sin sin), (r cos)) Programmazione grafica a.a. 2007/2008

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

Programmazione grafica a.a. 2007/2008 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 amin , amax amin amax Programmazione grafica a.a. 2007/2008

Programmazione grafica a.a. 2007/2008 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 Programmazione grafica a.a. 2007/2008

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

Programmazione grafica a.a. 2007/2008 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 Programmazione grafica a.a. 2007/2008

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

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: Programmazione grafica a.a. 2007/2008

Programmazione grafica a.a. 2007/2008 (x2,y2,z2) t>1 (x1,y1,z1) 0<t<1 t<0 Sostituendo nell’equazione della sfera x,y,z (vediamo solo x): Programmazione grafica a.a. 2007/2008

Programmazione grafica a.a. 2007/2008 la forma quadratica generale è quindi: da risolvere come equazione di II grado; se il determinate è <0 non ci sono intersezioni, se =0 il vettore è tangente, se >0 due intersezioni, e le radici t1,t2 danno il punto di entrata e di uscita del raggio i,j,k sono le differenze (x2-x1) ecc. non sono coseni direttori ! Programmazione grafica a.a. 2007/2008

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

Programmazione grafica a.a. 2007/2008 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 c2, se < r2 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 m2 se > r2 il raggio non colpisce la sfera altrimenti si calcola l’intersezione Programmazione grafica a.a. 2007/2008

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

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 Programmazione grafica a.a. 2007/2008

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

Programmazione grafica a.a. 2007/2008 Determinare il piano 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

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 Programmazione grafica a.a. 2007/2008

Programmazione grafica a.a. 2007/2008 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 raggio esterno esterno interno interno Programmazione grafica a.a. 2007/2008

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° Programmazione grafica a.a. 2007/2008

Programmazione grafica a.a. 2007/2008 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) Programmazione grafica a.a. 2007/2008

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

Programmazione grafica a.a. 2007/2008 tnear tfar tnear tfar tnear tnear tfar tfar Programmazione grafica a.a. 2007/2008