INFORMATICA GRAFICA. 27 Aprile Introduzione a OpenGL parte 2. Michele Antolini
|
|
- Evangelista Castellano
- 4 anni fa
- Visualizzazioni
Transcript
1 Knowledge Aided Engineering Manufacturing and Related Technologies INFORMATICA GRAFICA 27 Aprile Introduzione a OpenGL parte 2 michele.antolini@mail.polimi.it
2 COMANDI FONDAMENTALI
3 OpenGL - comandi Nel main() è necessario impostare la configurazione iniziale utilizzando chiamate alla libreria GLUT glutinit( int argc, char** argv): inizializzazione GLUT glutinitdisplaymode( unsigned int mode ): combinazione tramite operatore (OR) di parametri relativi alla modalità di visualizzazione GLUT_RGBA, GLUT_RGB, GLUT_ALPHA, GLUT_INDEX: selezione colori in RGB o tramite indexing con eventuale trasparenza (ALPHA) GLUT_SINGLE, GLUT_DOUBLE, GLUT_ACCUM, GLUT_DEPTH, GLUT_STENCIL: bufferizzazione dei frame GLUT_STEREO: abilita la visualizzazione stereoscopica
4 OpenGL - comandi glutinitdisplaymode( unsigned int mode ) mode = GLUT_INDEX GLUT_SINGLE GLUT_DEPTH Viene creata una finestra con colori indicizzati, singolo buffer di visualizzazione, con depth buffer mode = GLUT_RGBA GLUT_DOUBLE GLUT_DEPTH GLUT_STEREO Viene creata una finestra con colori a 4 componenti (red, green, blue, trasparenza), doppio buffer di visualizzazione, con depth buffer e visualizzazione stereoscopica (su hardware compatibile)
5 OpenGL - comandi Creazione finestra di visualizzazione glutinitwindowsize( int width, int height ) glutinitwindowposition( int x, int y ) glutcreatewindow ( char *name )
6 OpenGL - comandi Gestione della finestra Vengono utilizzati puntatori a funzione per implementare callback glutdisplayfunc(void (*func)(void)) Viene chiamata quando il contenuto della finestra deve essere ridisegnato glutreshapefunc(void (*func)(int width, int height)) Viene chiamata quando la finestra viene spostata o ridimensionata glutpostredisplay(void) Forza la chiamata alla Display Function
7 OpenGL - comandi Eventi di input glutkeyboardfunc( void (*func)(unsigned int key, int x, int y) Quando viene premuto un tasto (ASCII) restituisce il codice (key) e le coordinate (x,y) del mouse glutmousefunc(void (*func)(int button, int state, int x, int y)) Pressione di un tasto del mouse. button può valere GLUT_LEFT_BUTTON, GLUT_RIGHT_BUTTON o GLUT_MIDDLE_BUTTON state può valere GLUT_UP o GLUT_DOWN
8 OpenGL - comandi Eventi di input glutmotionfunc( void (*func)(int x, int y) ) Questa callback viene attivata quando il mouse si muove con uno o più tasti premuti Primitive oggetti 3D glutwire<name>, glutsolid<name> (es. glutwirecube(int size)...cube( GLDouble size)...sphere( GLdouble radius, GLint slices, GLint stacks)...torus( GLdouble innerradius, GLdouble outerradius, GLint nsides, GLint rings )...Cone( GLdouble radius, GLdouble height, GLint slices, GLint stacks )...Teapot( GLdouble size )
9 OpenGL - comandi Impostazione del punto di vista void glulookat( GLdouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, GLdouble upz );
10 OpenGL Viewing volume Proiezione ortogonale parallela void glortho(left,right,bottom,top,near,far) Proiezione ortogonale parallela 2D void glortho2d(left,right,bottom,top)
11 OpenGL Viewing volume Proiezione prospettica void glfrustum(left,right,bottom,top,near,far) void gluperspective(fovy,aspect,near,far)
12 ARCHITETTURA
13 OpenGL Rendering pipeline Immediate Mode geometry pipeline Polynomial Evaluator Per Vertex Operations & Primitive Assembly CPU Display List Rasterization Per Fragment Operations Frame Buffer Pixel Operations Texture Memory
14 OpenGL Rendering pipeline Immediate Mode geometry pipeline Polynomial Evaluator Per Vertex Operations & Primitive Assembly CPU Display List Rasterization Per Fragment Operations Frame Buffer Texture Memory Pixel Operations Display list I dati corrispondenti alle geometrie o a singoli pixel possono essere salvati in una lista (display list). In alternativa I dati possono essere creati e processati subito dopo ( Immediate mode ). Eseguendo una display list, i dati vengono processati come se fossero stati inviati tramite Immediate mode.
15 OpenGL Rendering pipeline Immediate Mode geometry pipeline Polynomial Evaluator Per Vertex Operations & Primitive Assembly CPU Display List Rasterization Per Fragment Operations Frame Buffer Pixel Operations Texture Memory Evaluators Tutte le primitive geometriche possono essere descritte attraverso vertici. Curve e superfici parametriche sono descritte da punti di controllo e funzioni polinomiali (basis functions). Gli evaluators permettono di descrivere una curva o una superficie tramite i punti di controllo. La mappatura polinomiale permette, oltre alla generazione delle coordinate dei punti appartenenti all elemento geometrico, di generare anche vettori normali e coordinate textures a partire dai punti di controllo.
16 OpenGL Rendering pipeline Immediate Mode geometry pipeline Polynomial Evaluator Per Vertex Operations & Primitive Assembly CPU Display List Rasterization Per Fragment Operations Frame Buffer Pixel Operations Texture Memory Per-vertex operations I dati dei vertici devono essere convertiti in primitive eseguibili dall hardware. I vertici possono ad esempio subire trasformazioni tramite matrici a virgola mobile 4x4 (sequenze di rotazioni, traslazioni e altre eventuali trasformazioni di coordinate). Le coordinate spaziali vanno poi convertite in coordinate sullo schermo. Molte altre opzioni possono riguardare: coordinate texture, illuminazioni, calcolo vettori normali, materiali e shading per arrivare a definire un colore.
17 OpenGL Rendering pipeline Immediate Mode geometry pipeline Polynomial Evaluator Per Vertex Operations & Primitive Assembly CPU Display List Rasterization Per Fragment Operations Frame Buffer Pixel Operations Texture Memory Primitive assembly La prima operazione di questo blocco è l eliminazione delle porzioni di geometrie che cadono fuori dalla parte visibile (una serie di semispazi definiti da piani), detta clipping. Il point clipping accetta o elimina dei vertici, il line/polygon clipping crea un nuovi vertici sul bordo del semispazio. Vengono anche effettuate operazioni prospettiche e test sull occlusione (vengono scartate primitive non visibili perché nascoste da altre) e sul backface culling (vengono scartati i poligoni la cui faccia frontale non è visibile)
18 OpenGL Rendering pipeline Immediate Mode geometry pipeline Polynomial Evaluator Per Vertex Operations & Primitive Assembly CPU Display List Rasterization Per Fragment Operations Frame Buffer Pixel Operations Texture Memory Pixel operations I dati geometrici vengono eseguiti dalla pipeline di rendering, mentre i pixel percorrono una strada differente. Vengono convertiti da una serie di possibili formati in elementi con il numero appropriato di componenti. I dati vengono poi scalati, tarati e processati. Possono essere quindi inviati alla memoria texture o verso la rasterizzazione. I dati sui pixel possono provenire dal frame buffer, in questo caso, oltre alle precedenti operazioni, possono essere inviati sotto forma di array alla memoria centrale.
19 OpenGL Rendering pipeline Immediate Mode geometry pipeline Polynomial Evaluator Per Vertex Operations & Primitive Assembly CPU Display List Rasterization Per Fragment Operations Frame Buffer Pixel Operations Texture Memory Texture Le texture vengono usate per rendere le geometrie più realistiche. La memoria texture, spesso specializzata e ad alte prestazioni per eseguire questo compito, viene gestita e ottimizzata dall hardware, spesso con operazioni ad hoc.
20 OpenGL Rendering pipeline Immediate Mode geometry pipeline Polynomial Evaluator Per Vertex Operations & Primitive Assembly CPU Display List Rasterization Per Fragment Operations Frame Buffer Pixel Operations Texture Memory Rasterization La rasterizzazione è la conversione di dati geometrici e pixel in frammenti quadrati, che corrispondono a pixel nel framebuffer. In questo punto vengono presi in considerazione tratteggi (stipple), spessore delle linee, dimensione dei punti e antialiasing.
21 OpenGL Rendering pipeline Immediate Mode geometry pipeline Polynomial Evaluator Per Vertex Operations & Primitive Assembly CPU Display List Rasterization Per Fragment Operations Frame Buffer Pixel Operations Texture Memory Fragment operations Prima di inserire valori nel framebuffer è necessario effettuare una serie di operazioni, ognuna della quali può essere abilitata o disabilitata. La prima operazione riguarda la texture, dove un texel (texture element) viene generato dalla memoria texture per ogni fragment e applicato al fragment stesso. Vengono quindi eseguiti calcoli per effetto nebbia, trasparenza, stencil, depth-buffer, blending, bit-masking.
22 OpenGL State machine Le variabili di stato possono essere impostate e lette da OpenGL. Rimangono invariate fino a successiva modifica. Matrici di proiezione e modelview Proprietà di colori e materiali Luci e ombreggiatura (shading) Modalità disegno linee e poligoni Le funzioni OpenGL sono di tipi: Generatrici di primitive Output se la primitiva è visibile L impostazione di come i vertici devono essere processati e visualizzati è controllato dallo stato corrente Modifica dello stato Funzioni di trasformazione Attributi
23 OpenGL State machine Le variabili di stato che si riferiscono a modalità di funzionamento possono essere abilitate tramite chiamate glenable() o gldisable(). Ogni variabile di stato ha il proprio valore di default. E possibile richiedere il valore corrente di una variabile di stato tramite chiamate ad uno dei seguenti comandi (a seconda del tipo di variabile): glgetbooleanv(), glgetdoublev(), glgetfloatv(), glgetintegerv(), glgetpointerv(), o glisenabled(). Esistono anche chiamate specifiche (come glgetlight*(), glgeterror(), o glgetpolygonstipple()). Si può salvare lo stato corrente di una variabile di stato (attribute) in una stack, tramite glpushattrib() o glpushclientattrib(), effettuare modifiche, poi ripristinare il valore precedente con glpopattrib() o glpopclientattrib(). Molto più efficiente rispetto ad ottenere il valore corrente con glget*, salvarlo in una variabile e ripristinarlo tramite glset*
24 OpenGL - Matrici OpenGL gestisce le sue impostazioni principali tramite una pila (stack) di matrici Projection, Modelview, Texture Si imposta la modalità corrente tramite glsetmatrixmode ( GLenum mode ) mode: GL_MODELVIEW, GL_PROJECTION, GL_TEXTURE
25 OpenGL Nell esempio multiviewport ottenevo la matrice di proiezione e la modelview (sistema di riferimento attuale) prima di reimpostarle per la nuova viewport glgetdoublev(gl_projection_matrix, projmatrix1); glgetdoublev(gl_modelview_matrix, modelmatrix1);
26 OpenGL Per poi reimpostare le matrici del frame precedente glviewport (0, 0, (GLsizei) 640, (GLsizei) 480); glmatrixmode(gl_projection); glloadmatrixd(projmatrix2); glmatrixmode(gl_modelview); glloadmatrixd(modelmatrix2);
27 OpenGL - Viewport void glviewport(x,y,width,height) scala l immagine su una viewport che ha origine in (x,y) e ha dimensioni (width,height) i parametri sono in window coordinates width e height possono essere inferiori alla dimensione della finestra una finestra può contenere diversi viewport
28 OpenGL - Viewport void glviewport(x,y,width,height) dopo aver definito una ulteriore viewport, chiamare glloadidentity() glulookat(... )
29 OpenGL - Colore due modalità: indicizzata RGB modalità indicizzata: selezione modalità glutinitdisplaymode( GLUT_INDEX ); entry della Look-up Table glutsetcolor( index, r, g, b ); selezione del colore corrente glindexi( index );
30 OpenGL - Colore modalità rgb: selezione la modalità glutinitdisplaymode( GLUT_RGB ); selezione colore corrente glcolor3f( r, g, b );
31 OpenGL - Primitive le primitive di OpenGL (punti, linee, triangoli, poligoni) sono descritte in termini di vertici i vertici sono descritti in coordinate omogenee (x, y, z, w) = (x/w, y/w, z/w, 1) glvertex4f( x, y, z, w ) (x, y, z, w ) glvertex3f( x, y, z ) (x, y, z, 1.0) glvertex2f( x, y ) (x, y, 0.0,1.0) il formato generale per il drawing e`: glbegin( tipo_di_primitiva ); <sequenza di vertici> glend();
32 OpenGL - Primitive esempio: glbegin( GL_LINES ); glcolor3f( 1.0, 1.0, 1.0 ); glvertex2f( -0.8, -0.8 ); glcolor3f( 1.0, 0.0, 0.0 ); glvertex2f( 0.5, 0.2 ); glvertex2f( -0.5, 0.4 ); glcolor3f( 0.0, 1.0, 0.0 ); glvertex2f( -0.2, 0.1 ); glend(); vertici differenti possono avere colore differente; in tal caso il colore viene interpolato da un vertice all altro
33 OpenGL - Primitive V 2 V 1 V 4 V 3 GL_POINTS V 5 V 6 V 2 V 1 V 4 V 3 GL_LINES V 5 V 6 V 2 V 1 V 4 V 3 GL_LINE_STRIP V 5 V 6
34 OpenGL - Primitive V 2 V 1 V 4 V 3 GL_LINE_LOOP V 5 V 6 V 5 V 1 V 2 V 3 GL_TRIANGLES V 6 V 4 V 3 V 1 V 2 V 5 GL_TRIANGLE_STRIP V6 V 4
35 OpenGL - Primitive V 1 V 2 V 3 GL_TRIANGLE_FAN V 6 V5 V 4 V 2 V3 V 5 V 6 V 1 V 4 V 8 V 7 GL_QUADS V 1 V 3 V 5 V 7 GL_QUAD_STRIP V 2 V 4 V 6 V 8
36 OpenGL Punti, Linee e Poligoni Si può impostare la dimensione di un punto con il comando glpointsize( GLfloat size ) default: 1.0) lo spessore di una linea con il comando gllinewidth( GLfloat size ) default: 1.0 pattern tratteggio void gllinestipple( GLint factor, GLushort pattern);
37 OpenGL Punti, Linee e Poligoni gllinestipple(4, 0xAAAA ); glenable(gl_line_stipple); glutwirecube(1); //dotted wireframe cube
38 Esercizio Completare le funzioni dell header file Vector3D.h Non necessaria rotazione intorno ad un asse generico rotate( Vector3d &axis, double angle) Esempi di utilizzo della classe Vector3d v1, v2(1.0,0.0,0.0), v3; v3 = v1+v2; v3 = 3.0*v3; Vector3d v4 = v3.cross(v2); v4.normalize(); v4.rotatex(0.1f); Utilizzate la struct per semplificare lo svolgimento dell esercizio proposto durante la lezione precedente
INFORMATICA GRAFICA. 25 Marzo Introduzione a OpenGL. Michele Antolini
Knowledge Aided Engineering Manufacturing and Related Technologies INFORMATICA GRAFICA 25 Marzo Introduzione a OpenGL michele.antolini@mail.polimi.it Computer graphics I programmi di grafica (non solo
DettagliINFORMATICA GRAFICA. 20 Aprile Introduzione a OpenGL. Michele Antolini michele.antolini@mail.polimi.it
Knowledge Aided Engineering Manufacturing and Related Technologies INFORMATICA GRAFICA 20 Aprile Introduzione a OpenGL michele.antolini@mail.polimi.it Computer graphics I programmi di grafica (non solo
DettagliDOUBLE BUFFERING. serve a nascondere la fase di drawing utilizzato soprattutto nelle animazioni INTRODUZIONE DRAWING EVENT MANAGEMENT VIEWING
DOUBLE BUFFERING INTRODUZIONE DRAWING EVENT MANAGEMENT VIEWING DOUBLE BUFFERING Z-BUFFERING LIGHTING serve a nascondere la fase di drawing utilizzato soprattutto nelle animazioni back buffer front buffer
DettagliRIEPILOGO DRAWING INTRODUZIONE DRAWING EVENT MANAGEMENT VIEWING DOUBLE BUFFERING Z-BUFFERING LIGHTING
RIEPILOGO INTRODUZIONE DRAWING EVENT MANAGEMENT VIEWING DOUBLE BUFFERING Z-BUFFERING LIGHTING DRAWING creare una finestra inizializzare i buffer gestire il colore in modalita` indicizzata in modalita`
DettagliINFORMATICA GRAFICA. 5 Maggio Interattività. Michele Antolini
Knowledge Aided Engineering Manufacturing and Related Technologies INFORMATICA GRAFICA 5 Maggio Interattività michele.antolini@mail.polimi.it Input Libreria glut interfaccia con il window system gestione
DettagliINFORMATICA GRAFICA!
Knowledge Aided Engineering Manufacturing and Related Technologies INFORMATICA GRAFICA! 11 Maggio! Interattività! Michele Antolini michele.antolini@mail.polimi.it! Input! Libreria glut! interfaccia con
DettagliINFORMATICA GRAFICA. 28 Aprile Trasformazioni - Illuminazione. Michele Antolini
Knowledge Aided Engineering Manufacturing and Related Technologies INFORMATICA GRAFICA 28 Aprile Trasformazioni - Illuminazione michele.antolini@mail.polimi.it Trasformazioni Durante il ridisegno della
DettagliIntroduzione SOMMARIO
SOMMARIO Introduzione alle librerie grafiche e a OpenGL Implementazioni hw e sw e supporto multipiattaforma Esempi di programma con OpenGL Sistemi di coordinate 2D e 3D Proiezioni Primitive 3D Pipeline
DettagliComputer Graphics. Immagine sul Raster Display. Grafica 3D: analogia con fotocamera. La matrice di Pixel è memorizzata nel FRAME BUFFER
Computer Graphics Immagine sul Raster Display Il RASTER è costituito da più SCAN LINES Ogni Scan Line è formata da più PIXEL La matrice di Pixel è memorizzata nel FRAME BUFFER Grafica 3D: analogia con
DettagliInformatica Grafica. (III anno Laurea Triennale e I anno Laurea Magistrale del Corso di Laurea in Informatica) Donato D Ambrosio
Informatica Grafica (III anno Laurea Triennale e I anno Laurea Magistrale del Corso di Laurea in Informatica) Donato D Ambrosio Dipartimento di Matematica e Centro d Eccellenza per il Calcolo ad Alte Prestazioni
DettagliINFORMATICA GRAFICA!
Knowledge Aided Engineering Manufacturing and Related Technologies INFORMATICA GRAFICA! 7 Aprile! Trasformazioni - Illuminazione! Michele Antolini michele.antolini@mail.polimi.it! TRASFORMAZIONI! Trasformazioni!
DettagliInformatica Grafica. (III anno Laurea Triennale - Corso di Laurea in Informatica) Donato D Ambrosio
Informatica Grafica (III anno Laurea Triennale - Corso di Laurea in Informatica) Donato D Ambrosio Dipartimento di Matematica e Centro d Eccellenza per il Calcolo ad Alte Prestazioni Cubo 22B, Università
DettagliINFORMATICA GRAFICA. 4 Maggio Trasformazioni - Illuminazione. Michele Antolini
Knowledge Aided Engineering Manufacturing and Related Technologies INFORMATICA GRAFICA 4 Maggio Trasformazioni - Illuminazione Michele Antolini michele.antolini@mail.polimi.it TRASFORMAZIONI Trasformazioni
DettagliIntroduzione a OpenGL e alle GLUT
Introduzione a OpenGL e alle GLUT s OpenGL (Open Graphics Library) è una libreria per fare computer grafica. Il programmatore, per poter visualizzare sullo schermo quanto elaborato con opengl, necessita
DettagliINFORMATICA GRAFICA. 12 Maggio Display lists, blending, fog. Michele Antolini
Knowledge Aided Engineering Manufacturing and Related Technologies INFORMATICA GRAFICA 12 Maggio Display lists, blending, fog michele.antolini@mail.polimi.it BLENDING Blending Il blending (letteralmente
DettagliOpenGL: visualizzazione 3D
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
DettagliLibreria grafica: OpenGL. Come realizzare semplici simulazioni video in C con OpenGL
Libreria grafica: OpenGL Come realizzare semplici simulazioni video in C con OpenGL 1 Simulazione video Una simulazione è un modello della realtà che consente di valutare e prevedere lo svolgersi dinamico
DettagliOpen Source 3D Engine. OpenGL Rendering System. Il Framework
Open Source 3D Engine OpenGL Rendering System Il Framework I moderni mezzi di programmazione, consentono a noi sviluppatori di utilizzare librerie avanzate e testate che si prestano eccellentemente allo
DettagliGrafica Computazionale
Grafica Computazionale Laboratorio: Le trasformazioni Laboratorio: Il progetto SoftOgl: Software OpenGL Fabio Ganovelli fabio.ganovelli@isti.cnr.it a.a. 2005-2006 Obiettivi (oggi) le trasformazioni della
DettagliComputer Graphics. Realtà Virtuale: il presente, il passato, 3D il Graphics futuro
Computer Graphics Immagine sul Raster Display Il RASTER è costituito da più SCAN LINES Ogni Scan Line è formata da più PIXEL La matrice di Pixel è memorizzata nel FRAME BUFFER Un unico frame buffer porterebbe
DettagliFunzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2018/2019 Argomenti del Corso Ogni lezione consta di una spiegazione assistita da slide,
DettagliGrafica Computazionale
Grafica Computazionale OpenGl + SDL Fabio Ganovelli fabio.ganovelli@isti.cnr.it a.a. 2005-2006 Storia Specifica di libreria per la scrittura di applicazioni di grafica 3D Cross-Language Cross-Platform
DettagliCorso di programmazione videogiochi 3 D con C++, OpenGL e Irrlicht. Alessandro Bugatti ITIS B. Castelli
Corso di programmazione videogiochi 3 D con C++, OpenGL e Irrlicht La programmazione dei videogiochi Contesto di programmazione molto specializzato e complesso Ricco di sfide informatiche (gestione memoriaprestazioni,
DettagliFunzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
DettagliIntroduzione. Costruzione di Interfacce Primi passi in OpenGL. Sierpinski Gasket. Sierpinski gasket. Event driven programming. Stuttura del programma
Introduzione Costruzione di Interfacce Primi passi in OpenGL cignoni@iei.pi.cnr.it http://vcg.iei.pi.cnr.it/~cignoni Abbiamo visto Cosa significa rendering L approccio object viewer Mettiamo in pratica
DettagliCorso di Tecniche Avanzate per la Grafica
Corso di Tecniche Avanzate per la Grafica GLSL Docente: Massimiliano Corsini Laurea Specialistica in Informatica Università di Ferrara Cosa sono gli shaders? Gli shaders sono programmi che vengono eseguiti
DettagliIntroduzione Computer Graphics
Knowledge Aided Engineering Manufacturing and Related Technologies Dipartimento di Ingegneria Industriale Università di Parma Introduzione Computer Graphics Cosa e la computer graphics Computer Graphics
DettagliCorso di grafica 3D con C++ e OpenGL. Alessandro Bugatti ITIS B. Castelli
Corso di grafica 3D con C++ e OpenGL Utilizzo di quadriche Una quadrica in 3D è ogni superficie rappresentata da un'equazione polinomiale del secondo ordine nelle variabili spaziali (coordinate). Esempi
DettagliGrafica Computazionale
Grafica Computazionale Laboratorio Fabio Ganovelli fabio.ganovelli@gmail.com a.a. 2006-2007 Credits: Marco Tarini CVS Concurrent Versioning System Client per windows www.tortoisecvs.org. gc07 gc07 Qui
DettagliIndici ed introduzione a Maya
Informatica Grafica ][ Indici ed introduzione a Maya Supponiamo di voler disegnare un oggetto a forma di farfalla: Marco Gribaudo marcog@di.unito.it E' costituito da 8 vertici, le cui coordinate sono:
DettagliIntroduzione. Costruzione di Interfacce Primi passi in OpenGL. Sierpinski Gasket. Sierpinski gasket. Event driven programming. Stuttura del programma
Introduzione Costruzione di Interfacce Primi passi in OpenGL cignoni@iei.pi.cnr.it http://vcg.iei.pi.cnr.it/~cignoni Abbiamo visto Cosa significa rendering L approccio object viewer Mettiamo in pratica
DettagliIntroduzione al Many/Multi-core Computing
Introduzione al Many/Multi-core Computing Sistemi Operativi e reti 6 giugno 2011 Outline del corso Introduzione Definizioni Motivazioni Storia Architettura Framework Algoritmica Parte I Introduzione Definizioni
DettagliVideogame e rendering 3D. Enrico Colombini (Erix) µhackademy 1 Marzo 2019
Videogame e rendering 3D Enrico Colombini (Erix) µhackademy 1 Marzo 2019 Volete creare un videogame? Strumenti comodi: game engine Editor 3D, componenti Runtime engine (PC, console, mobile) Scripting,
DettagliIntroduzione al Real Time Shading
Introduzione al Real Time Shading Ing. Davide Vercelli, PERCRO davide.vercelli@sssup.it Sommario dal software all'hardware e ritorno cenni storici la pipeline grafica com'era: la pipeline fissa com'è:
DettagliDispositivi di output
Dispositivi di output I dispositivi di output sono generalmente i monitor o display (CRT, LCD ) Inizialmente (primi anni '60) i display sono dispositivi di tipo vettoriale (lineare), in grado di tracciare
DettagliPassare argomenti al programma
Passare argomenti al programma Quando si invoca un programma è possibile passare degli argomenti ad esso durante la chiamata. Gli argomenti ricevuti saranno stringhe (array di char) quindi l insieme di
DettagliLe problematiche della grafica tridimensionale
Architetture per la grafica 3D Le problematiche della grafica tridimensionale Marco Gribaudo marcog@di.unito.it Per riuscire a comprendere a pieno le motivazioni che hanno determinato le scelte effettuate
DettagliLe strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.
Le strutture Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Dichiarazione di una struttura: struct point { int x; int y; }; La dichiarazione di una struttura
DettagliComputer Graphics. Computer Graphics. Alcuni argomenti che non abbiamo trattato (o abbiamo trattato poco) Modelling: Rendering:
pillole varie di CG Alcuni argomenti che non abbiamo trattato (o abbiamo trattato poco) Modelling: superfici di suddivisione NURBS Rendering: HDR images Modelling and Rendering: HW programmabile bump-maps
DettagliTitolo presentazione
Titolo presentazione Programmazione C: Esercizi su stringhe, funzionisottotitolo di libreria e matrici Milano, XX mese 20XX Informatica ed Elementi di Informatica Medica Agenda Argomenti e valore di ritorno
DettagliGrafica Computazionale. Texturing. Fabio Ganovelli a.a
Grafica Computazionale Texturing Fabio Ganovelli fabio.ganovelli@isti.cnr.it a.a. 2005-2006 Texture Mapping Nelle operazioni per frammento si può accedere ad una RAM apposita la Texture RAM strutturata
DettagliINFORMATICA GRAFICA!
Knowledge Aided Engineering Manufacturing and Related Technologies INFORMATICA GRAFICA! 18 Maggio! Vertex array, VBO, Display lists! Michele Antolini michele.antolini@mail.polimi.it! Prestazioni! Abbiamo
DettagliStrutture dati e loro organizzazione. Gabriella Trucco
Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi
DettagliCapitolo 10 - Strutture
1 Capitolo 10 - Strutture Strutture In molte situazioni, una variabile non è sufficiente per descrivere un oggetto. Ad esempio, una posizione sul piano cartesiano è identificata da due coordinate, e la
DettagliLIGHTING INTRODUZIONE DRAWING EVENT MANAGEMENT VIEWING DOUBLE BUFFERING Z-BUFFERING LIGHTING
LIGHTING INTRODUZIONE DRAWING EVENT MANAGEMENT VIEWING DOUBLE BUFFERING Z-BUFFERING LIGHTING e` una approssimazione del comportamento della luce nel mondo reale permette di visualizzare la scena in modo
DettagliLezione 21 e 22. Valentina Ciriani ( ) Laboratorio di programmazione. Laboratorio di programmazione. Lezione 21 e 22
Lezione 21 e 22 - Allocazione dinamica delle matrici - Generazione di numeri pseudocasuali - Funzioni per misurare il tempo - Parametri del main - Classificazione delle variabili Valentina Ciriani (2005-2008)
DettagliCenni al rendering di ombre
Cenni al rendering di ombre Davide Gadia Corso di Programmazione Grafica per il Tempo Reale Laurea Magistrale in Informatica per la Comunicazione a.a. 2012/2013 Ombre Componenti fondamentali per aumentare
DettagliCenni al rendering di ombre
Cenni al rendering di ombre Davide Gadia Corso di Programmazione Grafica per il Tempo Reale Laurea Magistrale in Informatica per la Comunicazione a.a. 2013/2014 Ombre Componenti fondamentali per aumentare
DettagliIntroduzione. Costruzione di Interfacce Primi passi in OpenGL. Sierpinski Gasket. Sierpinski gasket. Event driven programming. Stuttura del programma
Introduzione Costruzione di Interfacce Primi passi in OpenGL cignoni@iei.pi.cnr.it http://vcg.iei.pi.cnr.it/~cignoni Abbiamo visto Cosa significa rendering L approccio object viewer Mettiamo in pratica
DettagliLe strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.
Le strutture Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Dichiarazione di una struttura: struct point { int x; int y; }; La dichiarazione di una struttura
DettagliPrinter Driver. Questa guida descrive la configurazione del driver stampante per Windows 7, Windows Vista, Windows XP e Windows 2000.
4-129-746-42 (1) Printer Driver Guida per la configurazione Questa guida descrive la configurazione del driver stampante per Windows 7, Windows Vista, Windows XP e Windows 2000. Prima dell utilizzo del
DettagliGestione dinamica della memoria
Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Gestione dinamica della memoria Pietro Di Lena - pietro.dilena@unibo.it A pessimistic programmer sees the array as half empty.
DettagliCorso di Tecniche Avanzate per la Grafica Texturing
Corso di Tecniche Avanzate per la Grafica Texturing Docente: Massimiliano Corsini Laurea Specialistica in Informatica Università di Ferrara Texturing Il concetto di texturing è importante Si tratta di
DettagliGrafica al calcolatore - Computer Graphics
Grafica al calcolatore - Computer Graphics 8 Pipeline di rasterizzazione - 2 24/11/12 Grafica 2013 1 Riepilogo Operazioni geometriche Pixel processing 24/11/12 Grafica 2013 2 Rasterizzazione/scan connversion
DettagliDati due punti sul piano calcolare la loro distanza
Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12
DettagliImmagini digitali. Georges Seurat ( ),"Un dimanche ' été à l' Ile de la Grande Jatte"
Immagini digitali Digitalizzazione o acquisizione di immagini del mondo reale (es. da una fotografia). Analogia con la scuola divisionista o puntinista Georges Seurat (1859-1891),"Un dimanche ' été à l'
DettagliGAME DEV: tools programming. Parte 2: programming
GAME DEV: tools programming Parte 2: programming Marco Tarini Tools per programmare un tool: 1. Tools per GUI programming 2. API grafiche (opengl, directx) 3. Interfacciamento con SO (sist. op.) finestre
DettagliGrafica al calcolatore - Computer Graphics
Grafica al calcolatore - Computer Graphics Pipeline di rasterizzazione 13/03/17 Grafica 2017 1 Rasterization pipeline Abbiamo descritto la procedura intuitiva del ray-casting Abbiamo tuttavia già visto
DettagliGrafica Computazionale
Grafica Computazionale lezione34 Informatica e Automazione, "Roma Tre" May 27, 2010 Grafica Computazionale: Lezione 33 OpenGL examples Perspective projection Parallel projection Isomorphic viewport transformation
DettagliUltra Vertex Documentazione Versione Alpha 0.1
Ultra Vertex Documentazione Versione Alpha 0.1 Strumenti principali Selezione del colore Poligoni regolari Disegno vettoriale libero Elaborare disegni vettoriali Elaborare singoli vertici Inserire immagini
DettagliInterfacce Hardware. Lezione 11(prima parte) - Sistemi dedicati. Studente: Salvatore Mameli
Interfacce Hardware Lezione 11(prima parte) - Sistemi dedicati Studente: Salvatore Mameli Università degli Studi di Catania Dipartimento di Matematica e Informatica Anno accademico 2017/2018 L interfaccia
DettagliTexture Mapping Realtà Virtuale: il presente, il pass T a e t x o u, r i e l f M u a t p u pi ro ng
Texture Mapping Texture Mapping Texture coordinates associate ai vertici del triangolo =>> t corrispondenza tra spazio dello schemo (fragment)) e texture-space space. Colore di ogni pixel determinato in
DettagliMatlab: Script e Funzioni
Matlab: Script e Funzioni Informatica B Script Cos è uno script (m-file) q Uno script è un file di testo contenente una sequenza di comandi MATLAB non deve contenere caratteri di formattazione (solo testo
DettagliProiezione Stereoscopica
Proiezione Stereoscopica Sistema di Realtà Virtuale e 3D Stereo Rendering Museo dell'informatica di Cesena Andrea Bernardi (bernardi@csr.unibo.it) Stefano Cacciaguerra (scacciag@cs.unibo.it) Contenuto
DettagliINFORMATICA GRAFICA. 19 Maggio Texture. Michele Antolini
Knowledge Aided Engineering Manufacturing and Related Technologies INFORMATICA GRAFICA 19 Maggio Texture michele.antolini@mail.polimi.it Texture Tessitura si può considerare come il vestito dei nostri
DettagliPoligoni. Creazione di un nuovo poligono...2. Opzioni di chiusura per i poligoni...4. Continuare un poligono con un arco...5
Poligoni Creazione di un nuovo poligono...2 Opzioni di chiusura per i poligoni...4 Continuare un poligono con un arco...5 Continuare un poligono con un segmento...6 1 Creazione di un nuovo poligono Potete
DettagliRendering 13/01/2014. Marco Tarini - Video Game Dev - Univ Insubria (recall?) Game Engine
Rendering (recall?) Game Engine Parte del game che si occupa di alcuni dei task comuni Scena / livello Renderer Real time transofrm + lighting Models, materials Phsics engine (soft real-time) newtonian
DettagliSempre piu difficile. Pallina che ruota sull anello. Doppio Anello. Rotolamento pallina 2. Rotolamento pallina 1. Aggiungiamo nell ordine
Sempre piu difficile Costruzione di Interfacce Lezione 9 Esercitazione Shading Aggiungiamo nell ordine L anello che e formato da una doppia striscia Una pallina che rotola sull anello L anello che ruota
DettagliUTILIZZO DI VISTE E SEZIONI CON ALLPLAN 2017
UTILIZZO DI VISTE E SEZIONI CON ALLPLAN 2017 Con la nuova versione di Allplan risulta essere più veloce ed intuitiva la creazione di viste e sezioni del nostro modello: entrambe le funzioni vengono gestite
Dettagli117. Lo studio dei poliedri col software libero Cartesio di Rosa Marincola 1
117. Lo studio dei poliedri col software libero Cartesio di Rosa Marincola 1 Sunto Cartesio è un software libero che, permettendo la costruzione e la manipolazione di poliedri, favorisce l esplorazione
DettagliIndice. Introduzione... IX
Indice Introduzione... IX Capitolo 1 Interfaccia utente...1 Schermata iniziale...2 Interfaccia di AutoCAD...2 Menu dell applicazione...5 Barra degli strumenti Accesso rapido...7 Barra del titolo di AutoCAD...8
DettagliCopia in serie. Ritaglio. Convertitore DWG
Copia in serie GstarCAD 2018 include nuove e potenti opzioni per copiare oggetti in serie disposti in forma rettangolare, polare o lungo una traiettoria. La nuova serie di oggetti viene creata come blocco
DettagliLEZIONI DI LABORATORIO. Texture mapping (1)
BLENDER LEZIONI DI LABORATORIO Texture mapping (1) Utilizzo di texture per effetti più realistici. Ottenibili con: Procedure (mediante formule matematiche) Senza procedure (con immagini, video, mappe ecc)
DettagliGestione della configurazione Input/Output PLC Cosa c'è di nuovo?
Gestione della configurazione Input/Output PLC Cosa c'è di nuovo? Indice I. Avviare il Configuration Manager... 3 II. Nuova interfaccia dell'utente... 3 III. Importazione di nuovi formati di configurazione...
DettagliCorso di Grafica Computazionale
Corso di Grafica Computazionale Real-Time Rendering Introduzione all hardware grafico Docente: Massimiliano Corsini Laurea Specialistica in Ing. Informatica Università degli Studi di Siena Hardware Grafico
DettagliLaboratorio di informatica Ingegneria meccanica
Laboratorio di informatica Ingegneria meccanica Lezione 7 19 novembre 2007 Concetto di modulo di un programma (1) Lo sviluppo di programmi complessi avviene tipicamente per composizione di moduli, ognuno
DettagliLe cose da sapere prima di iniziare a creare un videogioco. Game Making e dintorni - Fabrizio Mascheroni 1
Le cose da sapere prima di iniziare a creare un videogioco Game Making e dintorni - Fabrizio Mascheroni 1 Contenuti 1. Introduzione 2. Cos è un videogioco 3. Com è Fatto un Videogioco 4. Cenni sulla Pipeline
DettagliGrafica al calcolatore - Computer Graphics
Grafica al calcolatore - Computer Graphics Pipeline di rasterizzazione 29/02/16 Grafica 2015 1 Rasterization pipeline Abbiamo descritto la procedura intuitiva del ray-casting Abbiamo tuttavia già visto
DettagliHello GL. subclassiamo. subclassiamo. Primo tentativo. Costruzione di Interfacce Lezione 20 Qt + Opengl
Hello GL Costruzione di Interfacce Lezione 20 Qt + Opengl Primo tentativo si prende il tutorial hello e si sostituisce il pushbutton con un QGLWidget cignoni@isti.cnr.it http://vcg.isti.cnr.it/~cignoni
DettagliINFORMATICA E PROGRAMMAZIONE PROF. M. GIACOMIN ESPERIENZA IN AULA: ELABORAZIONE DI IMMAGINI A COLORI IN LINGUAGGIO C
INFORMATICA E PROGRAMMAZIONE PROF. M. GIACOMIN ESPERIENZA IN AULA: ELABORAZIONE DI IMMAGINI A COLORI IN LINGUAGGIO C DESCRIZIONE GENERALE In questa esperienza il C verrà utilizzato per elaborare immagini
DettagliGrafica al calcolatore Computer Graphics
Grafica al calcolatore Computer Graphics 8 Pipeline di rasterizzazione - 2 1 Pipeline grafica Operazioni geometriche Pixel processing 2 Rasterizzazione/scan connversion Con il termine rasterizzazione si
DettagliBLENDER LEZIONI DI LABORATORIO
BLENDER LEZIONI DI LABORATORIO Texture mapping (1) Utilizzo di texture per effetti più realistici. Ottenibili con: Procedure (mediante formule matematiche) Senza procedure 8con immagini, video, mappe ecc)
Dettagli5 Thread. 5 Thread. 5 Thread. Ad un generico processo, sono associati, in maniera univoca, i seguenti dati e le seguenti informazioni:
1 Ad un generico processo, sono associati, in maniera univoca, i seguenti dati e le seguenti informazioni: codice del programma in esecuzione un area di memoria contenente le strutture dati dichiarate
DettagliS.C.S. - survey CAD system Tel. 045 /
4 - Disegna FIGURA 4.1 Il menu a tendina Disegna contiene un gruppo di comandi di disegno base CAD quali punto, linea, polilinea, ecc. ed un gruppo di comandi appositi di disegno topografico per l integrazione
DettagliInformatica Grafica. Ing. Michele Antolini. Dipartimento di Meccanica - Politecnico di Milano. (Prof.
Knowledge Aided Engineering Manufacturing and Related Technologies Informatica Grafica Ing. Michele Antolini (Prof. a contratto) michele.antolini@mail.polimi.it Dipartimento di Meccanica - Politecnico
DettagliComputer Graphics. Memoria RAM nelle schede grafiche. Texture Mapping: paradigma di memoria. Concetto. Tessiture: Caso più comune.
Computer Graphics Memoria RAM nelle schede grafiche Lezione 3: Università dell Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 202/3 molti dettagli a poco prezzo:
DettagliGrafica al calcolatore - Computer Graphics
Grafica al calcolatore - Computer Graphics 7 Pipeline di rasterizzazione 24/11/12 Grafica 2013 1 Rasterization pipeline Sappiamo implementare ray casting (o ray tracing). Abbiamo tuttavia già visto che
DettagliPrimi programmi in C
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Uso del compilatore gcc Struttura di un programma
DettagliCapitolo Menu impostazioni sistema
Capitolo Menu impostazioni sistema Utilizzare il menu impostazioni sistema per visualizzare informazioni di sistema ed effettuare regolazioni alle impostazioni del sistema. Il menu impostazioni sistema
DettagliPile e code. Sommario. Algoritmi e Programmazione Avanzata. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino
Pile e code Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino Sommario ADT Pile Code. A.A. 2002/2003 APA - Pile e code 2 Politecnico di Torino Pagina 1 di 23 Sommario
Dettagli