Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 30 MMeditor e collision detection

Slides:



Advertisements
Presentazioni simili
Le rette.
Advertisements

Problema : la cappelliera
I Poligoni.
Matematica I: Calcolo differenziale, Algebra lineare, Probabilità e statistica Giovanni Naldi, Lorenzo Pareschi, Giacomo Aletti Copyright © The.
Implementazione del problema della approssimazione ai minimi quadrati
1 la Torre Berardino Force rendering & Collision detection Dipartimento di Ingegneria dellInformazione Siena Ore F1F1 F2F2.
Descrizione dei dati Metodi di descrizione dei dati
Geometria ed algebra alla base di software matematico
Elementi di Matematica
Elementi di Matematica
Progettare un Motore 3D Marco Trivellato
Progetto lauree scientifiche
Esame di Elementi di Grafica Digitale Prof. Matjaz Hmeljak Marco Bacer 12 gennaio 2009.
Costruzione di Interfacce Lezione 11 Dal Java al C++ parte 2
11 Dicembre 2002Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 27 Xml for dummies Parte 2
Costruzione di Interfacce Lezione 6 Esercitazione Trasformazioni
Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni
25 Nov 2002Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 22 Estensioni Opengl, Multitexturing,
Costruzione di Interfacce Lezione 5 Trasformazioni Affini
Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 27 Estensioni Opengl, Multitexturing,
Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 26 XML read e write / Gl Selection e picking
Costruzione di Interfacce Lezione 7 Shading
Costruzione di Interfacce Lezione 4 Nozioni di geometria per la grafica
Costruzione di Interfacce Lezione 4 Geometria per la grafica
Costruzione di Interfacce Lezione 19 Qt Tutorial Designer
Costruzione di Interfacce Lezione 5 Trasformazioni Affini
Costruzione di Interfacce Lezione 20 Qt + Opengl
Costruzione di Interfacce Lezione 12 C++STL
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 25 Xml for dummies Parte 2
Costruzione di Interfacce Lezione 15 Rendering Locale e Globale
25 Nov 2002Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 21 Trackball
2 Dicembre 2002Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 23 Scene Graphs, Object Loading
Costruzione di Interfacce Lezione 8 Rasterizzazione
LE EQUAZIONI DI SECONDO GRADO
Seminario su clustering dei dati – Parte II
Università degli Studi di Roma
Corso di Laurea in Comunicazione Digitale Corso di Realtà Virtuali - a.a. 2009/10 Prof. Paolo Pasteris Tutor: Stefano Baldan Bouncing Balls Obiettivo:
Giochi su network di connessione Stefano Moretti Istituto Nazionale per la Ricerca sul Cancro Phone: Pavia,
Un approccio costruttivista alla geometria
1 Superfici nascoste Daniele Marini. 2 Ray casting adatto a CSG o superfici parametriche dipende dal punto di vista è una sorta di campionamento spaziale.
1 Modelli Globali Radiosity Daniele Marini. 2 Radiosity Bilancio radiativo in un ambiente chiuso (senza scambio di energia con lesterno) Indipendente.
ALCUNI STRUMENTI DELLA GEOGRAFIA
Quale valore dobbiamo assumere come misura di una grandezza?
Daniele Santamaria – Marco Ventura
SCI ITALIANO 2004 FISICA APPLICATA ALLO SCI ALPINO.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Superfici nascoste Daniele Marini.
1 Ottimizzazione della scena: culling (decimazione) Daniele Marini.
Intersezioni e distanze
Intersezioni e distanze
Collisioni Corso di Programmazione Grafica e Laboratorio Daniele Marini.
Ottimizzazione della scena Daniele Marini. Esigenze del RT rendering maggiori frame /sec risoluzione più alta oggetti più accurati e realistici 2 Programmazione.
Introduzione al corso Corso di Programmazione Grafica e Laboratorio Daniele Marini.
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.
Ottimizzazione della scena: culling (decimazione) Daniele Marini.
Ottimizzazione della scena: culling (decimazione) Daniele Marini Corso di Programmazione Grafica per il Tempo Reale.
Collisioni Daniele Marini Corso di Programmazione Grafica per il Tempo Reale.
Prof. Francesco Gaspare Caputo
Lente convergente e legge dei punti coniugati in laboratorio
Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 29 ancora MMeditor,
Costruzione della Parabola con Geogebra
Obiettivi, attività, tempi
I Poligoni.
Simulazione Interattiva di Capelli Marta De Cinti Anno accademico 2005/2006 Università di Roma “La Sapienza” Relatore Prof. Marco Schaerf Correlatore Ing.
centro di massa e momento di inerzia
IL PIANO CARTESIANO E LA RETTA
Modulo 5 – Database ACCESS LICEO SCIENTIFICO “ B. RESCIGNO COMPUTER SCUOLA PIANO INTEGRATO 2008/09 ESPERTO prof.ssa Rita Montella.
Transcript della presentazione:

Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 30 MMeditor e collision detection

Costruzione di Interfacce - Paolo Cignoni2 Riordiniamo Vogliamo tenere condiviso un po di codice Directory principale mm Con le subdir vcg, CI e MM con il codice condiviso Due dir diverse per le due app Qtmm per leditor Sdlmm per il player Rifare a mano tutti I pro, cambiamo qualche nome per coerenza

Costruzione di Interfacce - Paolo Cignoni3 Gestire fisica e dinamica Il nostro scene graph deve essere in grado di evolversi nel tempo autonomamente Dinamica != grafica Non e detto che siano la stessa cosa da fare nello stesso tempo Scollegare draw dal tempo Tenere lo stato della scena (anche quello legato al tempo) dentro lo scene graph e aggiornarlo indipendentemente dal disegno

Costruzione di Interfacce - Paolo Cignoni4 Collision Detection La gestione delle collisioni rientra nel più generale problema di simulare la fisica del nostro environemnt ad un adeguato livello di accuratezza: livello 1: Assicurarsi che il personaggio guidato dal giocatore non attraversi liberamente tutta la scena livello 2: Tutti gli oggetti mobili della scena si interagiscono correttamente con lambiente livello 3: Tutti gli oggetti mobili interagiscono correttamente anche tra di loro.

Costruzione di Interfacce - Paolo Cignoni5 Collision Detection: Livello 1 Distinzione a livello di scene graph: tra ambiente e giocatore Distinzione tra ambiente da controllare e ambiente visualizzato Il numero di controlli che si fa per frame è lineare con la grandezza della scena Ottimizzando diventa logaritmico

Costruzione di Interfacce - Paolo Cignoni6 Approssimare! Il giocatore con una sfera Nella maggior parte dei casi la differenza non si nota. Lambiente da testare con pochi poligoni (o con poche sfere) Il test sfera poligono è abbastanza semplice

Costruzione di Interfacce - Paolo Cignoni7 Vincolare! Ridurre se possibile il problema a 2 dimensioni Ad esempio in molti giochi first person perspective o racing Ridurre la libertà di movimento Lo spazio dove si muove il player non è quello cartesiano ma è un insieme discreto di posizioni (e.g. in tutti i giochi di labirinto tipo pacman)

Costruzione di Interfacce - Paolo Cignoni8 Formule di base Piano (o meglio semispazio) n Normale al piano d distanza dallorigine Per i punti x sul piano vale: n·x=d Distanza (con segno) punto p piano pl pl.n · p - pl.d Proiezione p di un punto p sul piano pl k= pl.n · p -pl.d p=p - pl.n*k

Costruzione di Interfacce - Paolo Cignoni9 Formule Con le formule precedenti è facile sapere il punto piu vicino (di contatto?) tra una sfera ed un piano. Per passare a poligoni (triangoli) basta fare il test punto in poligono Molti metodi diversi più o meno efficienti, il piu facile da implementare: la somma degli angoli dal punto ai vertici del poligono è 2pi se e solo se sono dentro al poligono.

Costruzione di Interfacce - Paolo Cignoni10 Intersezione raggio triangolo Il metodo precedente non è il migliore In effetti quello che spesso serve è il test di intersezione raggio triangolo Questo perchè si vuole sapere se nel prossimo intervallo di tempo lungo la traiettoria corrente colpisco qualcosa. Il metodo che trovate implementato qui è uno dei più efficienti Tomas Möller and Ben Trumbore:Fast, Minimum Storage Ray-Triangle Intersection

Costruzione di Interfacce - Paolo Cignoni11 Calcolo della risposta Una volta che sappiamo che abbiamo colpito una superficie dobbiamo calcolare la risposta. Il minimo: R= I - 2*(I · N)*N I N R

Costruzione di Interfacce - Paolo Cignoni12 Ottimizzazioni Uso di gerarchie di bounding objects semplici (sfere o box) che approssimino in maniera sempre migliore gli oggetti da testare

Costruzione di Interfacce - Paolo Cignoni13 Collision e Scene Graph In genere conviene integrare tutto assieme. Ogni nodo che contiene geometria (compresi i gruppi) dovrebbe saper rispondere, efficientemente, alle seguenti query Bound object Usato per costruire un bound object per ogni gruppo e limitare la discesa nelle gerarchie Collision con un punto/sfera/raggio Restituendo punto di collisione e normale In questo modo si sfrutta la gerarchia dello scene graph e si permette ai singoli nodi di sfruttare la propria conoscenza interna per rispondere efficientemente.