La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Display list e scene graph Daniele Marini Dipartimento di Informatica e Comunicazione.

Presentazioni simili


Presentazione sul tema: "Display list e scene graph Daniele Marini Dipartimento di Informatica e Comunicazione."— Transcript della presentazione:

1 Display list e scene graph Daniele Marini Dipartimento di Informatica e Comunicazione

2 Display List Per poter gestire eventi e interazione è necessario tener traccia della struttura dati grafica generata dal programma e modificata dalla interazione È più difficile cancellare che disegnare!

3 Display list - origini Origine nei sistemi grafici pre-workstation display memory diplay file display listRegistrare in una memoria dedicata (display memory) del display processor le istruzioni a basso livello (nella forma di diplay file o display list) per generare il disegno sul monitor Si distingueva tra monitor a memoria (storage) e monitor refresh (raster) Negli storage la DL poteva essere rimossa, nei refresh la DL doveva venire attraversata a ≈ 50 Hz

4 Display list - client server Oggi il display processor è un server grafico e il programma applicativo può essere in esecuzione su un client Il bottleneck non è tra host e DP, ma tra server e client - due modalità di display: immediate modeModo immediato (immediate mode)- la primitiva grafica viene spedita al server al momento in cui è definita, e non se ne conserva memoria; per ridisegnarla il programma deve eseguire nuovamente l’istruzione che genera la primitiva retained modeModo differito (retained mode)

5 Display list - client server retained modeModo differito (retained mode) - la descrizione della primitiva viene posta in una display list che risiede nel server grafico, la DL viene attraversata su richiesta del client per ridisegnare la figura Vantaggi: »minor traffico di rete »Il client sfrutta le performance grafiche del server »Si tiene memoria della figura per successive modifiche e interazione Svantaggi: »Costo di memoria

6 OGL e Display list Creazione: glNewList, glEndList #define BOX 1 /* definisce un quadrato, attribuisce il nome BOX e il numero 1 */ glNewList(BOX, GL_COMPILE); glBegin(GL_POLYGON); glColor3f(1.0, 0.0, 0.0); glVertex2f(-1.0, -1.0); glVertex2f(1.0, -1.0); glVertex2f(1.0, 1.0); glVertex2f(-1.0, 1.0); glEnd(); glEndList;

7 GL_COMPILE flag - indica al sistema di inviare la display list al server ma di non visualizzare la struttura BOX GL_COMPILE_AND_EXECUTE il display è immediato Per disegnare la struttura si esegue la funzione: glCallList(BOX); Cambiando attributi alla struttura o modificando i parametri di window, viewport, o di proiezione ed eseguendo la glCallList la figura viene disegnata modificata

8 La display list viene usata in modo massiccio per programmi di modellazione geometrica, per trasformare la geometria degli oggetti si usano matrici, attributi e trasformazioni possono essere nidificate con una gestione a stack: glPushAttrib(GL_ALL_ATTRIB_BITS); glPushMatrix(); e recuperati con: glPopAttrib(); glPopMatrix(); Si possono gestire più liste contemporaneamente: glGenLists(number); permette di creare liste con identificatori consecutivi, restituendo il primo intero di number disponibile, sono consecutivi corrispondenti a label non ancora usate; glCallLists permette di eseguire, visualizzandole contemporaneamente, tutte le liste definite (es. gestione del testo con display list, paragrafo 3.4.2 Angel - pag.99-102)

9 Scene graph Una scena complessa può essere descritta da un grafo (es. un albero) ad ogni nodo del grafo sono associate trasformazioni e proprietà di apparenza degli oggetti della scena


Scaricare ppt "Display list e scene graph Daniele Marini Dipartimento di Informatica e Comunicazione."

Presentazioni simili


Annunci Google