OpenGL: visualizzazione 3D



Похожие документы
Processo di rendering

Processo di rendering

Introduzione. Costruzione di Interfacce Primi passi in OpenGL. Sierpinski Gasket. Sierpinski gasket. Event driven programming. Stuttura del programma

Proiezione Stereoscopica

Proiezioni Grafica 3d

Fig. 2. Proiezioni ortogonali di un parallelepipedo su piani esterni alla figura

Lunghezza ocale. Donato Di Bello

GLUI: GLUT-based User Interface

Le ombre in OpenGl. Daniele Varin LS Ing. Informatica Corso di Elementi di Grafica Digitale

Animazioni 3D. Informatica Grafica I. Le basi dell'animazione 3D. Le basi dell'animazione 3D. Le basi dell'animazione 3D. Le basi dell'animazione 3D

AddCAD per ZWCad. Passa alla progettazione 3D rimanendo sul tuo Cad famigliare

Introduzione SOMMARIO

Trasformazioni nello spazio Grafica 3d

DISEGNO 3D IN AutoCad.

Capitolo 4 Trasformazioni Geometriche

r.berardi NOTE E SCHEDE OPERATIVE PER APPRENDERE LE PROIEZIONI ORTOGONALI

Fisica II - CdL Chimica. Formazione immagini Superfici rifrangenti Lenti sottili Strumenti ottici

la restituzione prospettica da singolo fotogramma

Daz Studio tutorial IV parte. Luci e Ombre

Creare primitive solide

I nuovi strumenti che semplificano e velocizzano il disegno. Systems Comunicazioni srl

Olografia. Marcella Giulia Lorenzi

MODELLAZIONE SOLIDA. Scheda Solidi. Disegno di un parallelepipedo

Modellazione 3D con elementi solidi. Esempio guidato 10 Pag. 1

Progettazione METODOLOGIA DELLA PROGETTAZIONE. Creare un Prototipo

Fig. 23. Viste assonometriche di un cubo

SEZIONI. Introduzione

Viste prospettiche in Autocad: Vista Dinamica

4. Proiezioni del piano e dello spazio

Per lanciare il programma Avvio - Programmi - Micromondi

Modellazione mediante importazione di. file.dxf. Esempio guidato 4 Pag. 1

EUROPEAN COMPUTER DRIVING LICENCE. 3D Computer Aided Design. Syllabus

f : A A = f (A) In altre parole f è una funzione che associa a un punto del piano un altro punto del piano e che si può invertire.

Costruire una Pinhole

Le texture. Informatica Grafica I. Le texture. Le texture. Le texture. Le texture. Le texture

Il file seme o file modello del disegno

PROIEZIONI ORTOGONALI

Gli oggetti 3D di base

GIROSCOPIO. Scopo dell esperienza: Teoria fisica. Verificare la relazione: ω p = bmg/iω

LE TRASFORMAZIONI GEOMETRICHE NEL PIANO

Informatica Grafica. Prof. Massimiliano Dellisanti Fabiano Vilardi. (2a parte) a.a. 2011/2012

RILIEVO TRIDIMENSIONALE DEL «CONVENTO ROSSO», SOHAG (EGITTO)

DISEGNO E LABORATORIO CAD

4. Fondamenti per la produttività informatica

SymCAD/C.A.T.S. modulo Canali Schema

Plate Locator Riconoscimento Automatico di Targhe

Tutorial di HTML basato su HTML 4.0 e CSS 2

Come creare il test di Conconi tramite l applicazione Training Center

Grafico della parabola

Rendering I - geometric processing

Disegno 2D, rappresentazioni

Grandezze scalari e vettoriali

LA MACCHINA FOTOGRAFICA

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.

11 - Rilievo tridimensionale di un edificio con distanziometro senza prisma e restituzione dei prospetti in 2D

ARCHIVIO GRAFICO ESTESO

Argomento interdisciplinare

ANALISI E MAPPATURA DEI PROCESSI AZIENDALI

Realizzazione di un semplice programma di Painting

Premessa. GUI: organizzazione generale

MANUALEDIUTILIZZO MODULO CRM POSTVENDITA

ICAR 17 4CFU Facoltà di Architettura Università Mediterranea Reggio Calabria

Raccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE. Operare con i numeri

Elementi 2D e modificatori

AD HOC Servizi alla Persona

03. Il Modello Gestionale per Processi

LA RICLASSIFICAZIONE DEI SALDI CONTABILI CON MICROSOFT ACCESS 2007

Test, domande e problemi di Robotica industriale

CORSO DI FONDAMENTI DI DISEGNO TECNICO LEZIONE 2 PROIEZIONI ORTOGONALI

COSTRUIAMO UN AEROMODELLO 3D 4

COME AVERE SUCCESSO SUL WEB?

La spirale iperbolica: Fu descritta per la prima volta da Pierre Varignon ( ). L equazione, espressa in coordinate polari, è del tipo:

Il programma CONFELMOD CAD creazione e modifica

DIPARTIMENTO DI INGEGNERIA MECCANICA E INDUSTRIALE ISTRUZIONI PER L ACCESSO AI CALCOLATORI DEL LABORATORIO CAD DI VIA BRANZE

Sistema di ripresa con fotocamera digitale fissa Calibrazione

ORGANIZZATORE PER BORSA GRANDE

Sviluppata da: Lo Russo - Porcelli Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL.

Viene utilizzato in pratica anche per accompagnare e supportare adeguatamente le richieste di finanziamenti agevolati e contributi a fondo perduto.

Software di interfacciamento sistemi gestionali Manuale di installazione, configurazione ed utilizzo

Novità 2013 RILIEVO 3D CON LASER SCANNER

STAMPARE FOTO CON LA COOP

TUTORIAL uso della camera INDIGO & 3D STUDIO MAX Realizzato da Filippo rotatori filipporotatori@hotmail.com ultimo aggiornamento gennaio 2007.

Dall analisi alla realizzazione Sceneggiatura, storyboard, studio dei personaggi, tavole.

L ambiente grafico e le viste

GUIDA ALL ACQUISTO DELLE FOTO

La specifica del problema

Martina Agazzi. Corso di Tecniche plastiche contemporanee. Prof. Carlo Lanzi

Capitolo Grafico dinamico

Introduzione al 3D con Autocad

risulta (x) = 1 se x < 0.

Simulazione traffico urbano

Visibilità dei Membri di una Classe

Decorazione Piastrelle

TEST DEL CONCEPT DI PRODOTTO

Транскрипт:

OpenGL: visualizzazione 3D La visualizzazione di una scena avviene come se si stesse usando una macchina fotografica per la quale si può controllare la posizione nello spazio 3D; si può cambiare il tipo di lente dell obiettivo e, in fase di sviluppo della fotografia, decidere le dimensioni dell immagine prodotta. 1

Pinhole camera model Consiste in un box con una pellicola fotografica da un lato e un foro dall altro lato. Idealmente si pensi che dal foro possa entrare solamente un raggio luminoso emesso dall oggetto esterno P=(x,y,z). P P y y = p z / d x x = p z / d z = d p 2

Pinhole camera model (2) Si consideri ora la sezione trasversale della camera. P -d Il punto P =(x p,y p,-d) si chiama PROIEZIONE di P sul piano a distanza d. 3

Pinhole camera model (3) θ si chiama ANGOLO di vista della camera (fovy). Considerando un piano di proiezione di altezza h e distante d dall origine del piano (y,z) si ha: θ = 2 tan 1 h 2d θ 4

Pinhole camera model (4) -d Si supponga quindi di portare il piano di proiezione davanti rispetto alla lente della camera. Il centro della lente si chiama COP (Center of Projection). 5

Pinhole camera model (5) Proiezione prospettica sul piano viewport di visualizzazione. 6

OpenGL viewing transformation (2) Quindi le fasi per riuscire a produrre l immagine desiderata sono: 1. Posizionamento della camera nello spazio 3D (glulookat)(model_view). 2. Modellare la scena (display degli oggetti) (MODEL_VIEW). 3. Scelta del tipo di proiezione e della lente (PROJECTION). 4. Dimensionamento dell immagine finale (glviewport)(model_view). 7

OpenGL viewing transformation (3) In opengl tutte le trasformazioni necessarie a produrre la scena desiderata avvengo tramite l applicazione di matrici agli oggetti che compongono la scena. 8

OpenGL viewing transformation (4) Le principali matrici sono: MODEL_VIEW MATRIX che deve essere abilitata nel momento in cui si agisce sulla scena (oggetti, punto di vista (posizionamento camera), VIEWPORT,colori, luci, rotazioni ), e PROJECTION_MATRIX per definire i tipi di proiezione. Per abilitare l uno o l altro stack di matrici si chiama glmatrixmode(gl_modelview) oppure glmatrixmode(gl_projection). In fase di INITGL() nel main.cpp è quindi necessario specificare la posizione della camera, tipo di proiezione, eventuale presenza di luci, 9

Esempio: Impostazioni iniziali della scena void main(int argc, char *argv[]){ glutinit(&argc, argv); InitGLUT(); InitGL(); glutmainloop(); exit(0); } 10

Esempio (2): void InitGL(){ glclearcolor(.0f,.0f,.5f, 1.0f ); //Colore di sfondo glclear( GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT); glmatrixmode(gl_projection); glloadidentity(); glortho(-1.0,1.0,-1.0,1.0,1.0,2.0); glmatrixmode(gl_modelview); glloadidentity(); ::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::: } Attivo PROJECTION_MATRIX sto specificando il tipo di proiezione quindi il sistema di riferimento Attivo MODELVIEW da qui in poi posso specificare la struttura della mia scena 11

OpenGL: Modelview & Projection In OpenGL dopo la chiamata di glmatrixmode(gl_modelview) è possibile chiamare tutte le funzioni che: 1. disegnano la mia scena; 2. posizionano i miei oggetti nello spazio; 3. posizionano il punto di vista (gllookat( )); 4. effettuare trasformazioni di rotazione, traslazione e scala; 5. altro che riguarda la composizione della scena. Con l abilitazione di GL_PROJECTION vado a modificare la struttura di quello che si chiama il volume di vista, cioè quello spazio all interno del quale i miei oggetti saranno visualizzati e proiettati sulla mia viewport secondo la particolare proiezione definita. 12

Modelview & Projection Consideriamo parte dell esempio precedente: glmatrixmode(gl_projection); glloadidentity(); glortho(-1.0,1.0,-1.0,1.0,1.0,2.0); La glortho permette di definire le dimensioni del volume di vista e quindi lo spazio tridimensionale all interno del quale saranno collocati gli oggetti della scena. In particolare: void glortho(left, right, bottom, top, near, far) definisce una proiezione ortografica parallela al volume di viewing. 13

Modelview & Projection Quindi specificare le dimensioni di un sistema di coordinate significa definire un volume di vista nel quale costruire la scena. Tutti gli oggetti con coordinate esterne a tale volume, saranno tagliati (clipping). Volume di vista definito dalla glortho( ). 14

Proiezione Prospettica La proiezione prospettica è quella più utilizzata e realistica, mentre la proiezione parallela (glortho ) viene principalmente utilizzata per la visualizzazione di architetture edili (CAD architettonici). Con la glortho il volume di vista è definito come un parallelepipedo, nella proiezione prospettica invece abbiamo che il volume di vista è un tronco di piramide. Proiezione ortografica parallela glortho 15

Proiezione Prospettica (2) void glfrustum(left, right, bottom, top, near, far) Definisce la proiezione prospettica di un oggetto sul piano di vista. frustum viewport camera 16

Proiezione Prospettica (3) Definizione del frustum: left = xmin right = xmax bottom=ymin top = ymax near < z < far 17

Proiezione Prospettica (4) Un altro modo di definire il volume di visualizzazione prospettica è quello tramite l uso di: glperspective(fovy, aspect, near, far); aspect=w/h 18

Posizionamento Punto di Vista Una volta definita la proiezione che permette di creare l immagine sulla viewport, è possibile modificare la posizione del punto di vista. Per default, il punto di vista è posizionato nell origine del sistema 3D definito dalla glortho o dal glfrustum, e punta nella direzione della z in senso negativo. 19

Posizionamento punto di Vista (2) Il cambiamento di un punto di vista è particolarmente utile quanto si vuole dare l impressione di muoversi all interno di una scena 3D. void glulookat(eyex, eyey, eyez, atx, aty, atz, upx, upy, upz); 20

Esempio: 21