Trasformazioni in OGL Daniele Marini Davide Gadia Marco Ronchetti Davide Selmo Corso Di Programmazione Grafica aa2005/2006.

Slides:



Advertisements
Presentazioni simili
Applicazioni progettuali di grafica computerizzata a.a. 2008/2009
Advertisements

Seminario Swarm Seminario su Swarm Pietro Terna web.econ.unito.it/terna.
Argomenti della lezione
Attività di Laboratorio di
Capitolo 4 Trasformazioni Geometriche
Marina Cobal - Dipt.di Fisica - Universita' di Udine
Algoritmi in C++ (1) da completare
OpenGL Libreria grafica composta da circa 150 comandi. Realizzata in vari linguaggi (noi useremo quella in C). Sviluppato dalla Silicon Graphics. Originariamente.
Gerarchie di Oggetti Tutti i sistemi avanzati di grafica (PHIGS, OpenGL, DirectDraw, …) permettono di definire un modello come una gerarchia di oggetti.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Recap sul C Marco D. Santambrogio – Ver. aggiornata al 11 Aprile 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6: 16 Maggio 2013 Gianluca Durelli – Marco D. Santambrogio –
TRASFORMAZIONI GEOMETRICHE
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 Lezione.
Costruzione di Interfacce Lezione 6 Esercitazione Trasformazioni
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Costruzione di Interfacce Lezione 5 Trasformazioni Affini
Costruzione di Interfacce Lezione 4 Geometria per la grafica
25 luglio Consuntivo 1° semestre 2006 Previsioni 2° semestre 2006 La congiuntura dellartigianato in Toscana nel 1° semestre 2006 Unioncamere Toscana.
Condizionamento dei segnali di misura
Fabio Garufi - TAADF Tecniche Automatiche di Acquisizione Dati Introduzione alla acquisizione automatica dei dati Fabio Garufi Dipartimento.
INFORMATICA GRAFICA – SSD ING-INF/05 Sistemi di elaborazione delle informazioni a.a. 2007/2008 Esercitazione OpenGL.
INFORMATICA GRAFICA – SSD ING-INF/05 Sistemi di elaborazione delle informazioni a.a. 2006/2007 LEZIONE PRATICA OpenGL Graphics LEZIONE PRATICA OpenGL Graphics.
Applicazioni progettuali di grafica computerizzata a.a. 2008/2009 Trasformazioni affini.
Trasformazioni affini INFORMATICA GRAFICA – SSD ING-INF/05 Sistemi di elaborazione delle informazioni a.a. 2006/2007 LEZIONE DI TEORIA CAP 3 Informatica.
Strumenti e dati per il supporto alle decisioni e al sistema dei controlli Roma, 9 Maggio 2006 Dott. Giorgio Pagano Direttore Generale Servizio Centrale.
Prof. Giovanni Raho A.A Usabilità Informatica Applicata CDL Scienze della Comunicazione scritta ed ipertestuale.
Seminario Swarm Seminario su Swarm Pietro Terna web.econ.unito.it/terna.
La teoria probabilistica del voto
Java base III: Array e Stringhe
Milano, 10 Luglio SEMINARIO LA RIFORMA DELL'AUTOTRASPORTO Milano, 10 Luglio 2006 LA RIFORMA DELL'AUTOTRASPORTO. IL FILO ROSSO CHE LEGA RESPONSABILITÀ,
Trasformazioni 2D e 3D Daniele Marini.
Lavorare con le matrici in OGL
Dimostrazione Nuove Procedure di Verbalizzazione Esami e Presentazione Libretto Elettronico 3 Maggio 2006 ore 11 Aula T2 Direzione Didattica e Servizi.
ARRAY MULTIDIMENDIONALI
E.Toscana – Progetto RTRT SAT Pisa, 23 Giugno 2006 Il progetto RTRT SAT: gli obiettivi, lo stato di avanzamento, le ipotesi di sviluppo Laura Castellani.
Elenchi in Excel E’ possibile inserire le voci del nuovo elenco oppure
Display list e scene graph Daniele Marini Dipartimento di Informatica e Comunicazione.
Le trasformazioni Daniele Marini.
Trasformazioni in OGL Daniele Marini.
Complessità di un algoritmo
Controllare le proiezioni
Corso Di Programmazione Grafica aa 2007/2008
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Programmazione Grafica e Laboratorio A.A Tema d’esame - specialistica Prof. Daniele Marini Dott. Davide Selmo.
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Trasformazioni Daniele Marini.
Rotazioni e quaternioni
Sistemi di riferimento
Primitive grafiche e interazione Daniele Marini Davide Gadia Marco Ronchetti Davide Selmo Corso Di Programmazione Grafica aa2005/2006.
Picking - OpenGL Disegno della scena (display) Impostazione parametri selezione Ripristino parametri Loop Selezione.
Display list e scene graph Daniele Marini Dipartimento di Informatica e Comunicazione.
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Display list e picking Daniele Marini Corso Di Programmazione Grafica e Laboratorio.
Controllare la prospettiva
Architettura di OGL e pipe-line Daniele Marini Davide Gadia Davide Selmo Corso Di Programmazione Grafica aa2005/2006.
Le trasformazioni Daniele Marini Corso Di Programmazione Grafica aa 2005/2006.
Ombre e riflessioni in tempo reale Daniele Marini Parzialmente tratte de: Haines-M ö ller Corso di Programmazione Grafica aa2005/2006.
Antialiasing parzialmente tratto da: Han-Wei Shen Daniele Marini Corso Di Programmazione Grafica aa2005/2006.
Shading e smoothing Daniele Marini Corso Di Programmazione Grafica aa2005/2006.
Primitive OpenGL Corso di Programmazione Grafica e Laboratorio Daniele Marini.
Titolo Daniele Marini Davide Gadia Marco Ronchetti Davide Selmo Corso Di Programmazione Grafica aa2005/2006.
Controllare le proiezioni
26 maggio Co.Ge.A.P.S. “Ordini, Collegi ed Associazioni in primo piano nella certificazione dei percorsi formativi degli operatori sanitari” Napoli.
GLI ARRAY MONODIMENSIONALI. Utilizzando le nostre attuali conoscenze, proviamo a risolvere il seguente problema: Calcolare la media dei voti conseguiti.
Programmazione ad oggetti
Il riuso delle soluzioni dei progetti di e-government Roberto Pizzicannella Bologna 20 aprile 2006.
Dato un vettore di reali di dimensione DIM, si inseriscano N elementi presi da tastiera, si utilizzi 0 per terminare l’inserimento. Ordinare gli elementi.
Esercizio 14 – chiamata di una procedura Il codice deve: Passare due parametri alla procedura ‘salva’ Questa procedura deve salvare i due parametri nel.
Daniele Marini Con contributi di Maurizio Rossi
Gestire la navigazione. Creare un’app multi Controller La quasi totalità delle app è suddivisa in più ViewControllers, ognuno con specifiche funzionalità.
Transcript della presentazione:

Trasformazioni in OGL Daniele Marini Davide Gadia Marco Ronchetti Davide Selmo Corso Di Programmazione Grafica aa2005/2006

Programmazione Grafica aa2005/20062 Trasformazioni –Le trasformazioni sono rappresentate da matrici 4x4 (coordinate omogenee) –Applicazione delle trasformazioni come moltiplicazione di una matrice per un vettore –Viene mantenuto uno stack delle matrici utilizzate per le trasformazioni

Programmazione Grafica aa2005/20063 Trasformazioni in OGL Ci sono due matrici in OGL: –Matrice di modellazione GL_MODELVIEW –Matrice di vista GL_PROJECTION Per selezionare su quale matrice si vuole operare si chiama la funzione glMatrixMode(GL_MODELVIEW| GL_PROJECTION) La matrice di modellazione rappresenta trasformazioni affini con 12 gradi di libertà; definita in spazio omogeneo 4x4

Programmazione Grafica aa2005/20064 CTM In OGL c’è la nozione di current transformation matrix CTM Essa viene applicata ad ogni vertice definito successivamente alla sua istanziazione Se si cambia la CTM si cambia lo stato del sistema

Programmazione Grafica aa2005/20065 CTM La CTM è inizializzata alla identità Per modificarla si può –assegnare nuovi valori ai singoli argomenti –Moltiplicarla per una nuova matrice La CTM è il prodotto della matrice di modellazione per quella di proiezione MODELVIEWPROJECTION CTM vertici

Programmazione Grafica aa2005/20066 Trasformazioni –La composizione di trasformazioni equivale alla moltiplicazione delle rispettive matrici –La moltiplicazione di matrici non è commutativa. Quindi l’ordine con cui vengono applicate le trasformazioni è importante –Ordine corretto M=T(R(S)) corrispondente alle chiamate (post-moltiplicazione): glTranslate(dx,dy,dz); glRotate(ango,vx,vy,vz); glScale(sx,sy,sz);

Programmazione Grafica aa2005/20067 Trasformazioni void glLoadIdentity(); void glTranslate{fd} (TYPE x, TYPE y, TYPE z); void glRotate{fd} (TYPE angle, TYPE x, TYPE y, TYPE z); void glScale{fd} (TYPE x, TYPE y, TYPE z);

Programmazione Grafica aa2005/20068 Gestione delle Matrici void glLoadIdentity( void ) –Imposta la matrice corrente all’identità

Programmazione Grafica aa2005/20069 Gestione delle Matrici void glPushMatrix( void ) void glPopMatrix ( void ) –Gestiscono lo stack delle matrici –glPushMatrix inserisce la matrice corrente nello stack duplicandola –Lo stack delle matrici può essere utilizzato in maniera gerarchica –La funzione dello stack è di registrare lo stato del sistema per poterlo recuperare

Programmazione Grafica aa2005/ Gestione delle Matrici void glLoadMatrixd(GLdouble *m) void glLoadMatrixf(GLfloat *m) Rimpiazza la matrice corrente con la matrice definita tramite l’array m void glMultMatrixd(const GLdouble *m) void glMultMatrixf(const GLfloat *m) Moltiplica la matrice corrente con la matrice definita tramite l’array

Programmazione Grafica aa2005/ Gestione delle Matrici I parametri delle funzioni glLoadMatrix e glMultMatrixd sono definiti come array di 16 elementi La matrice viene definita nell’array utilizzando una notazione column-major order