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

Slides:



Advertisements
Presentazioni simili
Statistica Descrittiva Con STATA 7
Advertisements

Capitolo 2 Nozioni fondamentali su Java Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
GLUT & OpenGL Ing. Tommaso Coviello Politecnico di Bari
Un DataBase Management System (DBMS) relazionale client/server.
Elementi di Grafica Digitale standard grafici primitive grafiche
INFORMATICA GRAFICA – SSD ING-INF/05 Sistemi di elaborazione delle informazioni a.a. 2007/2008 Esercitazione OpenGL.
Snake 2D Snake 2D Esame: Elementi Grafica Digitale Anno accademico: 2005/06 Studente: Gianluca Racano Docente: Matjaž Hmeljak.
Gestione File System e I/O in Windows 2000 Implementazione del File System FAT-12, FAT-16, FAT-32 NTFS API relative al File System Gestione dei dispositivi.
Sequence. CREARE UNA SEQUENCE CREATE SEQUENCE nome [INCREMENT BY n] [START WITH n] [MAXVALUE n | NOMAXVALUE] [MINVALUE n | NOMINVALUE] [CYCLE | NOCYCLE]
Componenti dell’architettura Oracle
1 Programmazione grafica: lInterazione Daniele Marini.
1 Gestione della Window Daniele Marini. 2 Definire una Window: GLUT o altro WM /* Standard GLUT initialization */ glutInit(&argc,argv); glutInitDisplayMode.
Lavorare con le matrici in OGL
1 Programmazione grafica 1 Daniele Marini. 2 Linguaggio di riferimento OpenGL: libreria di procedure che realizza un API (application programmers interface)
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Roma, 16 novembre 2010 SPT – Il sistema di accettazione Gestione centralizzata Dott. Paolo Spadetta.
IL CLOUD COMPUTING NELLA GESTIONE IMMOBILIARE
Un esempio: Registrazione e lettura di dati in un file
Definizione Dispositivo adatto a svolgere funzioni diverse modificando solo parzialmente la parte circuitale ma variando di vota in volta il programma.
Il sistema operativo Sistema operativo (in breve) –È costituito dai programmi di gestione delle operazioni più elementari del computer –… gestione di vari.
1 Università degli Studi di Messina Facoltà di Ingegneria Visilab – Computer Vision and Image Processing Lab Nanodesktop Software development kit per sistemi.
C aso di Studio Gruppo9: DAvino,Vetrano,Monda,Papa, Berardini,Schettino.
JavaScript Lezione 5 Tipizzazione ed operazioni tra tipi diversi Istruzioni di input.
Lambiente operativo. 2 Per avviare e poter utilizzare il computer è necessario un particolare programma che si chiama sistema operativo. Windows è un.
Corso di Elementi di Informatica
PRIMI DISEGNI CON CABRI Realizzato da Daniel Bulgarini e Matteo Co CLASSE 2°C LICEO PASCAL MANERBIO.
Corso Office Automation e Legislazione per P.A. Ed.1 A cura del Dott. Domenico Giuseppe Bozza Presentazione moduli personali En.A.P. Lazio – 8 Gennaio.
Nomeoggetto: numerorevisione: dimensionefisica:nomefile: Modalità di uso datarevisione: dimensionelogica: Contenuto Identitàoggetto CREAFIRM 0204/05/04.
IPCAMERA LCD MONITOR La soluzione compatta ed elegante per la videosorveglianza domestica e dufficio.
Primi passi con Windows: Gestione del Desktop Barra Applicazioni Menu Avvio ISTITUTO COMPRENSIVO N.7 - VIA VIVALDI - IMOLA Via Vivaldi, Imola.
Broker 1/2 Mantiene i conti di clienti e venditori Effettua tutte le transazioni in denaro reale Ottiene vendor scrip dai commercianti Vende broker scrip.
OR5 – Rete di trasmissione
Tesina di Negri Michel. La ditta ATS produce articoli per auto-modelli radiocomandati in scala 1:8 e 1:10. La ATS ha richiesto la realizzazione del sito.
Cosa vuol dire «Embedded»? Valter
SOFTWARE PER LA PROGETTAZIONE VISUALE DEGLI SPAZI ESPOSITIVI E LA GENERAZIONE DEL PLANOGRAMMA.
Scheda Video Ricerca Hardware sulla Scheda Video INF4
El Kaouam Reda Clemente Vincenzo
Sviluppo di una Xlet per la TV digitale terrestre Vademecum della regione marche 2006 Ventura Luca.
Tutorial relativo al Mio EBSCOhost. Benvenuti al tutorial dedicato a Mio EBSCOhost, verranno fornite le istruzioni per la configurazione e lutilizzo ottimizzato.
Architettura delle GPU e
Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto.
TAQ Identità oggetto Contenuto Modalità di uso Nome oggetto: numero
Architettura dei sistemi di elaborazione
Roberto Dimase Mod. 1 Inf. Base1 Modulo 1 Concetti teorici di base della tecnologia dellinformazione.
ECDL Modulo 1 – Il computer nella vita di ogni giorno u.d. 5
INTERNET Internet è una rete a livello mondiale che permette alle persone di comunicare ed ad accedere a banca dati da qualunque parte del mondo e su qualunque.
Prof. Pietro MASTROPIETRO MODELLO CLIENT-SERVER. prof. Pietro MASTROPIETRO Browser Richiesta pag1.htm INTERNET /INTRANE T SERVER WEB pag1.htm pag2.htm.
Andrea Petricca Problematiche di rete nella sperimentazione di file-system distribuiti su WAN per applicazioni di GRID-Computing Rapporto trimestrale attività
INTERNET Antonio Papa Classe 2^ beat I.S.I.S. G. Meroni a.s. 2007/2008.
Cosè una rete Scambio di informazioni Perchè una rete.
Scoprirete che su Office non si può solo contare ma anche sviluppare.
Display list e scene graph Daniele Marini Dipartimento di Informatica e Comunicazione.
SUBQUERY Chi ha un salario maggiore di quello di Abel? Occorre scomporre la query in due sotto problemi: MAIN : quali impiegati hanno un salario maggiore.
1 Il rendering Daniele Marini. 2 Fasi del rendering Modellare Elaborazione geometrica - geometric processing Rasterizzazione Display.
Corso di Programmazione Grafica e Laboratorio Introduzione a OpenGL Prof. Daniele Marini.
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.
Primitive OpenGL Corso di Programmazione Grafica e Laboratorio Daniele Marini.
Introduction to automatic ABMs documentation Keywords: Doxygen ODD protocol MASON documentation Simone Romano.
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 4 - Protocolli del Web Ernesto Damiani Lezione 3 – Esempi HTTP.
SQL Developer Lanciare sqldeveloper (alias sul desktop) / c:\Oracle\sqldeveloper Associare tutti i tipi di file, se volete Tasto destro sulla spina “connection”
Interrogazioni private di database mediante Filtri di Bloom:
Dynamic SQL.
JDBC Java DataBase Connectivity SISTEMI ITIS B. CASTELLI Anno Scolastico
Computer Graphics Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 Lezione.
Sale Force Automation.
Dati in rete Appunti.
Dal problema al processo risolutivo
Transcript della presentazione:

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

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! 2Programmazione grafica a.a. 2007/2008

Display list - origini Origine nei sistemi grafici pre-workstation display memory diplay filedisplay 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 3Programmazione grafica a.a. 2007/2008

Display list - client server Oggi il display processor è un server grafico (GPU) e il programma applicativo può essere in esecuzione su un client Il bottleneck non è tra host e DP, ma tra server e client, occorre ottimizzare il traffico - due modalità di display: immediate modeModo immediato (immediate mode)- la primitiva grafica viene inviata 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) 4Programmazione grafica a.a. 2007/2008

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 5Programmazione grafica a.a. 2007/2008

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; 6Programmazione grafica a.a. 2007/2008

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, es: glMatrixMode(GL_PROJECTION; For (i=1 ; i<5 ; i++) { glLoadIdentity(); gluOrtho(-2.0*i.2.0*i,-2.0*i;2.0*i); glCallList(BOX); } Ad ogni iterazione il BOX viene ridisegnato con una differente finestra di clipping 7Programmazione grafica a.a. 2007/2008

La display list viene usata in modo massiccio per programmi di modellazione geometrica, per modificare gli oggetti si usano matrici e attributi che possono essere nidificate con una gestione a stack: glPushAttrib(GL_ALL_ATTRIB_BITS); glPushMatrix(); Occorre ricordare la struttura a stati del sistema ed evitare che gli atttributi e le trasformazioni modificate si ripercuotano su oggetti in modo indesiderato perciò si sfrutta la struttura a stack: glPopAttrib(); glPopMatrix(); 8Programmazione grafica a.a. 2007/2008

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 Angel) 9Programmazione grafica a.a. 2007/2008

Modelli gerarchici 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 10Programmazione grafica a.a. 2007/2008

Istanze Un modello gerarchico può essere composto da più parti uguali poste asemblati in posizioni diverse L’oggetto è definito in un sistema di riferimento locale (local coordinate system - object frame) e posizionato nel riferemento globale (world coordinate system - world frame) 11Programmazione grafica a.a. 2007/2008

Istanze Per passare da local a world si usa la concatenazione di trasformazioni M=TRS glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glTranslate(dx,dy,dz); glRotate(angle,rx,ry,rz); glScale(sx,sy,sz); gluSolidCUbe(side); Per ogni istanza occorre salvare lo stato globale e recuperarlo dopo averla istanziata con push e pop matrix (ed eventualmente attribute ) 12Programmazione grafica a.a. 2007/2008

Strutture gerarchiche Si pensi a un semplice braccio articolato composto da una base su cui può ruotare con due gradi di libertà un primo braccio legato al quale può ruotare (con due gradi di libertà) un secondo braccio: display() { glRotate(theta,0.0,1.0,0.0); base(); glTranslate(0.0,h1,0.0); glRotate(phi,0.0,0.0,1.0); lower_arm(); glTranslate(0.0,h2,0.0); glRotate(psi,0.0,0.0,1.0); upper_arm(); } 13Programmazione grafica a.a. 2007/2008

Strutture gerarchiche La struttura può essere simbolicamente rappresentata come albero Ogni nodo ha una struttura: puntatore alla funzione, trasformazione omogenea, puntatore al figlio base lower_arm upper_arm Draw M child 14Programmazione grafica a.a. 2007/2008

Strutture gerarchiche Per disegnare una struttura gerarchica occorre attraversare l’albero, a ogni nodo si applica la trasformazione omogenea e si visualizza l’oggetto Le trasformazioni devono essere gestite con lo stack 15Programmazione grafica a.a. 2007/2008

Attraversamento dell’albero Struttura antropomorfa: Albero gerarchico: 16Programmazione grafica a.a. 2007/2008

Matrici 17Programmazione grafica a.a. 2007/2008

Attraversamento dell’albero antropos(); { glPushMatrix(); torso(); glTranslate(…); glRotate3(…); head(); glPopMatrix(); glPushMatrix(); glTranslate(…); glRotate3(…); left_upper_leg(); glTranslate(…); glRotate3(…); left_lower_leg(); glPopMatrix(); glPushMatrix(); glTranslate(…); glRotate3(…); right_upper_leg(); … 18Programmazione grafica a.a. 2007/2008

Gestione dell’albero La struttura dell’albero viene gestita dal programma applicativo, OGL non offre primitive. La struttura generale: 19Programmazione grafica a.a. 2007/2008

Scene graph Una scena complessa oltre alla struttura gerarchica di modellazione e relative matrici, comprende attributi degli oggetti (colore, texture etc.) Anche gli attributi vengono gestiti nella struttura ad albero 20Programmazione grafica a.a. 2007/2008

Scene graph Per distinguere le sottostrutture occorre inserire un nodo “separatore” separator 21Programmazione grafica a.a. 2007/2008

Gestione del Scene graph OGL non offre primitive Esistono API che supportano scene graph, es: VRML, Inventor, Java3D, OpenSceneGraph In alternativa occorre sviluppare un proprio codice 22Programmazione grafica a.a. 2007/2008