Trasformazioni in OGL Daniele Marini.

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

Applicazioni progettuali di grafica computerizzata a.a. 2008/2009
Argomenti della lezione
Array multidimensionali
Capitolo 4 Trasformazioni Geometriche
Liste Ordinate 3 Maggio Ultima Lezione Abbiamo visto i tipi di dato astratti IntList e StringList Realizzano liste di interi e di stringhe Realizzati.
Lez. 131 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Rappresentazione.
Marina Cobal - Dipt.di Fisica - Universita' di Udine
Algoritmi in C++ (1) da completare
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
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 Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
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 –
Un manipolatore è costituito da un insieme di corpi rigidi (bracci) connessi in cascata tramite coppie cinematiche (giunti) a formare una catena cinematica.
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
Costruzione di Interfacce Lezione 4 Sistemi di riferimento e 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 Nozioni di geometria per la grafica
Costruzione di Interfacce Lezione 4 Geometria per la grafica
Matrici di Proiezione Prospettica
Argomenti della lezione
INFORMATICA GRAFICA – SSD ING-INF/05 Sistemi di elaborazione delle informazioni a.a. 2006/2007 LEZIONE PRATICA OpenGL Graphics LEZIONE PRATICA OpenGL Graphics.
Corso di Chimica Fisica II 2013 Marina Brustolon
1 Strutture Dinamiche Corso di Informatica A Vito Perrone.
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
Esercizi C su array e matrici
Java base III: Array e Stringhe
Trasformazioni 2D e 3D Daniele Marini.
Smoothing Daniele Marini.
Lavorare con le matrici in OGL
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Algoritmi e strutture dati
ARRAY MULTIDIMENDIONALI
Elenchi in Excel E’ possibile inserire le voci del nuovo elenco oppure
Algoritmi e Strutture Dati
Texturing - Tessiture Daniele Marini.
Display list e scene graph Daniele Marini Dipartimento di Informatica e Comunicazione.
Le trasformazioni Daniele Marini.
Le proiezioni e la prospettiva
Controllare le proiezioni
Corso Di Programmazione Grafica aa 2007/2008
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Trasformazioni Daniele Marini.
Trasformazioni in OGL Daniele Marini Davide Gadia Marco Ronchetti Davide Selmo Corso Di Programmazione Grafica aa2005/2006.
Corso Di Programmazione Grafica
Rotazioni e quaternioni
Sistemi di riferimento
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
Le trasformazioni Daniele Marini Corso Di Programmazione Grafica aa 2005/2006.
Primitive OpenGL Corso di Programmazione Grafica e Laboratorio Daniele Marini.
Trasformazioni nel piano
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.
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Esercizio 14 – chiamata di una procedura Il codice deve: Passare due parametri alla procedura ‘salva’ Questa procedura deve salvare i due parametri nel.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Recap su: array e puntatori Marco D. Santambrogio – Ver. aggiornata al 20 Aprile.
Daniele Marini Con contributi di Maurizio Rossi
30/10/01Array 1  Un array e’ una struttura dati che contiene piu’ valori del medesimo tipo.  La lunghezza di un array e’ stabilita quando l’array viene.
La struttura dei materiali
L’economia monetaria Corso di Economia delle Istituzioni Finanziarie
Gestione di Interfacce con OpenGL
Transcript della presentazione:

Trasformazioni in OGL Daniele Marini

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

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

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

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 MODELVIEW PROJECTION vertici vertici CTM

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(angolo,vx,vy,vz); glScale(sx,sy,sz);

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);

Gestione delle Matrici void glLoadIdentity( void ) Imposta la matrice corrente all’identità

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 È possibile stack overflow!

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

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