Modellazione Gerarchica 1 Informatica Grafica Gerarchie di Oggetti Tutti i sistemi avanzati di grafica (PHIGS, OpenGL, DirectDraw, …) permettono di definire un modello come una gerarchia di oggetti. Il libro usa come riferimento il sistema SPHIGS (Simplified PHIGS), noi useremo OpenGL. Una gerarchia è una collezione di oggetti organizzata in una struttura ad albero o DAG
23
Embed
Informatica Grafica Modellazione Gerarchica1 Gerarchie di Oggetti l Tutti i sistemi avanzati di grafica (PHIGS, OpenGL, DirectDraw, …) permettono di definire.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Modellazione Gerarchica 1Informatica Grafica
Gerarchie di Oggetti
Tutti i sistemi avanzati di grafica (PHIGS, OpenGL, DirectDraw, …) permettono di definire un modello come una gerarchia di oggetti.
Il libro usa come riferimento il sistema SPHIGS (Simplified PHIGS), noi useremo OpenGL.
Una gerarchia è una collezione di oggetti organizzata in una struttura ad albero o DAG
Modellazione Gerarchica 2Informatica Grafica
Modellazione Geometrica
Per rappresentare i nostri oggetti useremo un modello geometrico.
Utile a rappresentare:» Organizzazioni nello spazio e forma di componenti» Connessioni e topologia degli oggetti» Valori e proprietà dei componenti
I modelli spesso hanno struttura gerarchica legata alla loro costruzione bottom-up o top-down.
Modellazione Gerarchica 3Informatica Grafica
Modelli Gerarchici Ogni oggetto è composto da altri oggetti più semplici.
Esempio robot con struttura a DAG (a) od albero (b):
Modellazione Gerarchica 4Informatica Grafica
Retained-Mode Graphics OpenGL lavora in immediate-mode (eccetto le
Molti altri sistemi (PHIGS, OpenInventor, …) tengono traccia (in un database interno) di tutte le primitive (retained-mode). Questo permette modifiche ed aggiornamenti successivi che sono meno immediati con OpenGL.
Modellazione Gerarchica 5Informatica Grafica
Modelli Gerarchici in OpenGL
Modelli gerarchici si modellano in OpenGL usando la matrice GL_MODELVIEW, il suo stack e (spesso) le display lists.
Ogni oggetto semplice viene modellato nelle sue coordinate e poi immesso nel disegno complessivo applicandogli una serie di trasformazioni.
Permette di riutilizzare una stessa primitiva in più parti del modello
Modellazione Gerarchica 6Informatica Grafica
Display List (1)
Gruppo di comandi OpenGL memorizzati per essere usati in seguito. Utili sia per efficienza che per poter riutilizzare gli oggetti.
Comandi fondamentali:int glGenLists(GLsizei range) Alloca range indici di display
list
void glNewList(GLuint list, GLenum mode) Specifica l’inizio di una lista. Tutti i comandi fino a glEndList() finiscono nella display list.
I comandi in una display lists non possono essere modificati, poiche la display list viene “compilata” per efficienza. Nella lista vengono memorizzati solo i valori delle espressioni.
Una display list viene eseguita con il comando: glCallList(Gluint list), che esegue tutti i comandi memorizzati nella display list list.
Le display list possono contenere al loro interno altre display list in maniera gerarchica.
Modellazione Gerarchica 8Informatica Grafica
Strada con 3 Case Diverse
Vogliamo disegnare un modello dove abbiamo 3 case.
Assumiamo di avere creato, nella funzione init, una display list casa che disegna la casa 1.
Costruiamo un modello di robot composto da:- Tronco- Testa (rotabile sul collo)- 2 Braccia con mano (rotabili sulla spalla)- Pollice indipendente per ogni mano
Modellazione Gerarchica 20Informatica Grafica
Robot
Composizione delle parti:
Modellazione Gerarchica 21Informatica Grafica
Attenzioni
Problemi: siccome ogni pezzo è nelle sue coordinate devo traslare e scalare.
Dove penso che un’operazione sia possibile in futuro metto una matrice da subito.Es.: rotazione della testa.
Nota: il pollice opponibile è dalla stessa parte, ed alla stessa distanza nelle due braccia. Per avere la simmetria il sinistro deve essere ruotato di 180° sull’asse delle Y.
Modellazione Gerarchica 22Informatica Grafica
Gestione Attributi
Determinati dinamicamente durante la visita. Ogni specifica di un attributo ha valore per
tutto il programma, a meno di una riassegnazione.
In OpenGL è possibile, allo stesso modo delle matrici, salvare gli attributi in uno stack per poi recuperarli.
Modellazione Gerarchica 23Informatica Grafica
Comandi per Attributi
I comandi per salvare e recuperare i valori degli attributi sono: