Costruzione di interfacce Paolo Cignoni

Slides:



Advertisements
Presentazioni simili
GUIs, the user’s perspective
Advertisements

Ombre e riflessioni in tempo reale
1 Introduzione ai calcolatori Parte II Software di base.
Interazione Uomo - Macchina
Contenuti Multimedia e tecnologia digitale
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Corso di Informatica grafica 1 Introduzione Quando si rappresentano modelli di oggetti 3D costituiti da facce poligonali secondo delle proiezioni alcune.
Introduzione allinformatica. Cosè linformatica ? Scienza della rappresentazione e dellelaborazione dellinformazione ovvero Studio degli algoritmi che.
[Iriad Kumbuli] OpenGL Framebuffer
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 prove.
Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 prove generali.
Costruzione di Interfacce Lezione 5 Trasformazioni Affini
Costruzione di Interfacce Lezione 4 Nozioni di geometria per la grafica
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Matrici di Proiezione Prospettica
Costruzione di Interfacce Lezione 5 Trasformazioni Affini
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 30 MMeditor e collision detection
Costruzione di interfacce Paolo Cignoni
1 Costruzione di Interfacce Primi passi in OpenGL
2 Dicembre 2002Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 23 Scene Graphs, Object Loading
Costruzione di Interfacce Lezione 8 Rasterizzazione
Architetture e protocolli CCITTComunicazione: trasferimento di informazioni secondo convenzioni prestabilite La comunicazione richiede cooperazione.
Applicazioni progettuali di grafica computerizzata a.a. 2008/2009 Rendering grafico.
Struttura dei sistemi operativi (panoramica)
Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 91 Il modello OAI (Object-Action Interface) Sintassi e semantica: la sintassi specifica.
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
Introduzione alla grafica digitale 2005,6,7,8,9,.. Matjaž Hmeljak.
1 Informatica Grafica Daniele Marini. 2 Informazioni generali Corso in teledidattica: –Videoconferenza –Learning community Frequentare le lezioni! Cercare.
Relatore: Laureando: Prof. Luca Zaccarian Roberto Antonelli
COMPUTER GRAPHIC. La computer graphic si occupa della creazione o manipolazione di immagini digitali. Le immagini digitali possono essere di due tipi:
STRUTTURA GENERALE DI UN ELABORATORE
L' ARCHITETTURA DI VON NEUMANN
Introduzione alla programmazione Object Oriented
Studente: Banovaz Diego Trieste, 15/12/2008AA: 2008/2009.
Daniele Marini, Maurizio Rossi
Daniele Marini Con contributi di Maurizio Rossi
Architettura di OGL e pipe-line Daniele Marini Corso Di Programmazione Grafica.
Programmazione grafica 1
Superfici nascoste Daniele Marini.
1 Struttura di un sistema grafico e frame buffer Daniele Marini.
Software Insieme dei programmi residenti nella memoria del computer o nei supporti di memorizzazione Modulo 1.
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Corso di Programmazione Grafica e Laboratorio Introduzione a OpenGL Prof. Daniele Marini.
Architettura di OGL e pipe-line Daniele Marini Corso Di Programmazione Grafica.
Ombre e riflessioni in tempo reale Daniele Marini Parzialmente tratte de: Haines-M ö ller Corso di Programmazione Grafica aa2006/2007.
Architettura di OGL e pipe-line Daniele Marini Davide Gadia Davide Selmo Corso Di Programmazione Grafica aa2005/2006.
Ombre e riflessioni in tempo reale Daniele Marini Parzialmente tratte de: Haines-M ö ller Corso di Programmazione Grafica aa2005/2006.
GUIs, the user’s perspective Antonio Cisternino. Architettura di base  Semplificando al massimo in ogni sistema che può fare della grafica l’architettura.
GPGPU General Purpose Computation on GPU Emanuele Ruffaldi 2005 Corso su Elasticità non lineare ed Oggetti Deformabili.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali (corso TIE) CORSO LAUREA MAGISTRALE IN SCIENZE E TECNOLOGIE DELLE PRODUZIONI ANIMALI.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Sistemi Multimediali II Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Sistema operativo Il Sistema Operativo gestisce le risorse hw e sw del sistema di elaborazione Facilita l'interazione tra utente e sistema Esistono diversi.
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Costruzione di Interfacce
Come si forma un’immagine?
2. Le immagini: quali e perchè Vettori e raster Wikipedia, l’enciclopedia libera, riassume: nella grafica vettoriale un'immagine è descritta mediante un.
Grafica interattiva a.a. 2003/2004 Docente: Prof. Enrico Puppo Laboratorio: Dott. Paola Magillo.
I Sistemi Operativi. Definizione Per Sistemi Operativi (di seguito SO) si intendono quei pacchetti software, a loro volta costituiti da più sottoprogrammi.
Programmazione orientata agli Oggetti Introduzione a Java.
Prof. Dario Scalini. Luce e Colore FOTORECETTORI  coni (colori) e bastoncelli (luminosità)
Obiettivo : determinare la lunghezza focale di una lente mediante l’equazione dei punti coniugati. Materiale : Righello Banco ottico provvisto di scala.
Transcript della presentazione:

Costruzione di interfacce Paolo Cignoni

Obiettivi  Progettazione e realizzazione di applicazioni interattive, con un’interfaccia utente non banale che facciano uso di grafica tridimensionale.  basi teoriche e algoritmiche per la modellazione geometrica e il rendering di scene tridimensionali  strumenti per realizzare sistemi basati su OpenGL.  Requisiti  Interesse.  Conoscenza di un linguaggio OO (C++)

Programma  Fondamenti di grafica  Algoritmi per la modellazione geometrica e il rendering  Librerie e framework per la grafica tridimensionale  Progettazione e programmazione di interfacce e applicazioni grafiche interattive in ambiente OpenGL Windows  Progettazione e realizzazione di un sistema interattivo in ambiente Windows che usi OpenGL.

Esame  Basato su progetto  applicazione interattiva in ambiente Windowz che faccia uso di grafica tridimensionale tramite OpenGL  Corsi collegati  Corsi Seminariali Real Time Media ( 2 Sem)

Strumenti  Linguaggio C++  IDE: Visual Studio (6.0 o.Net)  3dAPI: OpenGL  Libs, Toolkits, ecc  MFC o Qt per le interfacce  SDL per i primi esperimenti in opengl  STL per non riscrivere I soliti contenitori  E tutto quel che ci può servire per caricare un’immagine, un oggetto 3d ecc.

Concetti di base  Computer Graphics: Settori applicativi che ne hanno in qualche modo diretto/influenzato lo sviluppo  Design & Visualization  Trasformare dati in immagini per facilitarne la comprensione  Interfacing  Aiutare e semplificare il processo di interfacciamento l’utente e il sw  Entertainment  :-)

Architettura di base  Semplificando al massimo in ogni sistema che può fare della grafica l’architettura hw minima è la seguente: Graphic Processing Unit Graphic Memory + Frame Buffer Graphic Memory + Frame Buffer

Frame buffer  Una porzione di memoria dedicata alla memorizzazione dell’immagine come insieme di pixel da mostrare a video.  Caratteristiche  Risoluzione (numero di pixel)  Range tipici 320x x1200  Profondità (bit per pixel)  Range tipici 1 32 (128)  Perché si usa i pixel?

Display Hardware  Il tubo catodico: un fascio di elettroni viene diretto su una superficie coperta di materiale fosforescente  Display vettoriali il fascio veniva pilotato direttamente in maniera totalmente libera  Display normali, raster linea per linea, dall’alto verso il basso, si spazza tutto lo schermo un certo numero di volte al secondo (refresh rate)

Sintesi di Immagini  Metafora fondamentale Object vs viewer  Object (scene): rappresentazione digitale (forma e caratteristiche) di un oggetto reale tridimensionale  Viewer: strumento che permette di otternere da un object un immagine  Rendering è il processo con cui un viewer genera un immagine a partire da una scene.

Caveat  Object e viewer, come tutte le metafore, sono entità non definite rigidamente…  La luce fa parte del viewer?  Il viewer è anch’esso un object?

Sintesi di Immagini Tra le caratteristiche parametrizzabili di un viewer la più evidente è la Camera:  L’insieme di quei parametri che definiscono come e dove si guarda una certa scena.

Rendering: Approccio Fisico  Come si svolge fisicamente il processo della visione?

Simulare l’illuminazione  Fotorealismo  La simulazione il più dettagliata possibilie di tutte le interazioni tra la luce e gli oggetti.

Rendering Approccio Non fisico  NPR (non photorealistic rendering)  Simulare il processo con cui un artista genera un immagine  Settore piuttosto nuovo e di ricerca

Pin hole Camera  Il processo con cui si formano le immagini può essere simulato da una scatola chiusa con un foro infinitesimamente piccolo sul davanti  minima macchina fotografica

Pin hole Camera  In un una pinhole camera è facile determinare come si forma l’immagine sul fondo della camera (piano della pellicola)  Il pinhole è detto il centro di proiezione -

Pin Hole camera  La pinhole camera e’un modello astratto  Fuoco infinito  Luminosità infinitesima  In realtà (cioè nelle macchine fotografiche e nell’occhio) si sostituisce il pin hole con una lente  Profondità di campo limitata  Maggior luminosità  Distorsioni varie

Pin Hole Camera  Nelle prossime lezioni assumeremo sempre che stiamo utilizzando una pin hole camera.  Cio’ non toglie che si possano usare modelli più sofisticati che simulino tutte le altre caratteristiche delle camere reali (occhio e macchine fotografiche)

Modello standard della PIC  Si sposta il piano della pellicola di una distanza d di fronte al pin hole.  L’immagine è ben orientata - -

Definire una camera?  Definire i parametri di una camera é necessario perché un viewer possa generare un’immagine di una scene  Interattivamente (implicitamente) a (CAD, Games)  Seguendo una API (esplicitamente)  E.g. using an interface between a program and a graphic system  Opengl, Directx Java3d etc

Definire una camera  Di solito si deve specificare  Posizione (del centro di proiezione)  Orientamento  Lunghezza focale: determina la grandezza sul piano immagine

Definire una Camera OpenGL  gluLookAt( center_of_projection, look_at_point, up_direction) +  glPerspective(Field_of_view, … )

Architettura di un renderer  La pipeline di rendering; assumendo che  La scena è composta di entita’ geometriche semplici (primitive) descritte per mezzo di vertici  L’algoritmo di rendering che voglio usare è strutturato in maniera da processare e disegnare tutte le primitive una alla volta abbastanza indipendentemente (object order)  Allora per ogni primitiva le operazioni da fare sono, in sequenza, le seguenti

Pipeline di rendering  Il fatto di strutturare il rendering  Indipendemente per primitiva  Per ogni primitiva in una pipeline ben determinata  Permette di progettare hw grafico che espliciti il parallelismo nei due livelli  Multiple rendering pipelines  I passi piu lenti della pipeline possono essere parallelizzati più massicciamente

Transformazioni di modellazione  Ogni oggetto nella scena ha, di solito il proprio sistema di riferimento  I vertici della scena da rendere devono essere trasformati in un unico sistema di riferimento: quello della camera.

Lighting e Clipping  Dopo la trasformazione di modellazione si può decidere che cosa è visibile per la camera corrente (e quindi interrompere la pipeline per ciò che non è visibile)

Proiezione  Si calcola dove ogni vertice cade nel piano di proiezione

Rasterizzazione  Per ogni primitiva a questo punto sappiamo dove finiscono nel frame buffer i suoi vertici.  Il processo di trovare tutti i pixel che nel frame buffer appartengono alla primitiva è detto rasterizzazione.

Caveat  Sulla pipeline di rendering torneremo più volte  Gli step possono essere ben più dettagliati  Non tutti gli step, non su tutti gli hw, sono implementati effettivamente in hw  Questa pipeline di rendering NON è l’unica esistente