1 / 11

Trasformazioni in OGL

Corso Di Programmazione Grafica aa2005/2006. Trasformazioni in OGL. Daniele Marini Davide Gadia Marco Ronchetti Davide Selmo. Trasformazioni. Le trasformazioni sono rappresentate da matrici 4x4 (coordinate omogenee)

yardley
Download Presentation

Trasformazioni in OGL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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/2006

  3. 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/2006

  4. 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/2006

  5. 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 Programmazione Grafica aa2005/2006

  6. 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/2006

  7. 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/2006

  8. Gestione delle Matrici • void glLoadIdentity( void ) • Imposta la matrice corrente all’identità Programmazione Grafica aa2005/2006

  9. 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/2006

  10. 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/2006

  11. Gestione delle Matrici • I parametri delle funzioni glLoadMatrix e glMultMatrixd sono definiti come array di 16 elementi • La matrice viene definitanell’array utilizzando una notazionecolumn-major order Programmazione Grafica aa2005/2006

More Related