INFORMATICA GRAFICA. 25 Marzo Introduzione a OpenGL. Michele Antolini
|
|
- Faustino Lamberto Miele
- 7 anni fa
- Visualizzazioni
Transcript
1 Knowledge Aided Engineering Manufacturing and Related Technologies INFORMATICA GRAFICA 25 Marzo Introduzione a OpenGL michele.antolini@mail.polimi.it
2 Computer graphics I programmi di grafica (non solo 3D) hanno una struttura molto simile Fasi: Definizione geometrie (vertici, vettori, linee, poligoni, curve, superfici) Definizione punto di vista, FOV, proiezione Rasterizzazione, shading (+ eventuali texture) Sono coinvolti vettori, matrici, equazioni matematiche
3 Software -> Hardware Anni 80: Presenza di algoritmi maturi per le operazioni 3D Necessità di applicare ad un grande numero di dati le medesime operazioni 1984: la IBM rilascia il primo tentativo di scheda per PC dedicata all'accelerazione hardware 2D/3D (con un processore , 8MHz) Negli anni '90 l'accelerazione 2D prima e 3D poi diventano sempre più importanti per le prestazioni dei computer, così società come S3, ATI, Matrox cominciano a produrre schede di accelerazione hardware sempre più performanti
4 OpenGL 1992: la Silicon Graphics sviluppa una specifica per disegnare scene tridimensionali a partire da chiamate a funzioni primitive Si tratta della prima definizione di Open Graphics Library (OpenGL) Definita come interfaccia: i costruttori implementano le funzioni in base allo specifico hardware sottostante 2007: il controllo dell interfaccia OpenGL passa al consorzio Khronos Group
5 Opengl Astrazione rispetto all hardware sottostante Implementazioni software di funzioni non supportate dall hardware Sfruttamento delle capacità dei diversi acceleratori 3D
6 Opengl L interfaccia OpenGL ha portato nel tempo ad una convergenza nell architettura hardware delle schede grafiche punti, linee, poligoni come primitive base pipeline per trasformazioni e illuminazione Z-buffering Texture mapping Alpha blending Retrocompatibilità con versioni precedenti
7 Opengl - Date 1992: OpenGL (gennaio): OpenGL 1.1, texture su GPU OpenGL viene aggiornato più o meno annualmente 2004: OpenGL 2.0, shaders programmabili (GLSL, OpenGL Shading Language) 2008: OpenGL 3.0, geometry shader, vertex array (tra le altre cose) 2010 (11 marzo) OpenGL 4.0: tassellazione virgola mobile a 64bit (doppia precisione) per gli shader supporto OpenCL (GPGPU) per lo sfruttamento della GPU per General Purpose computing
8 OpenGL OpenGL non si occupa di: event management input management (tastiera/mouse) window management L ambiente di sviluppo per OpenGL e` normalmente costituito da alcune librerie: gl OpenGL glu GL Utilities gl<ws> Estensione per <ws> (window system) glut Interfaccia a <ws>
9 OpenGL Libreria gl rendering 3D lighting z-buffering alpha blending texture mapping antialiasing fog
10 OpenGL Libreria glu gestione parametri viewing gestione texture mapping polygon tessellation (decompositore generico di poligoni concavi) curve e superfici parametriche gestione errori
11 OpenGL Libreria glut interfaccia con il window system gestione eventi gestione input keyboard/mouse primitive 3D realizza trasparenza rispetto al window system sottostante
12 OpenGL Configurazione In laboratorio utilizzeremo l editor CodeBlocks Compilatore: gcc Windows: MinGW (porting di gcc sotto Windows) OSX: necessario pacchetto XCode L interfaccia OpenGL non cambia a seconda del sistema operativo Cambiano le opzioni di compilazione e, spesso, dettagli nelle direttive #include GL Utility Toolkit Windows: freeglut
13 OpenGL Configurazione Creazione nuovo progetto vuoto Project->New->Empty Project Scegliere nome e directory Compilatore: GNU GCC Compiler Project->Build Options Include directories: Search directories Lib directories: Linker settings
14 OpenGL Configurazione Windows: Compiler: <freeglut dir>\include Linker: <freeglut dir>\lib Linker settings: -lfreeglut, -lopengl32, -lglu32 OSX Compiler: System/Library/Frameworks/OpenGL.framework/Headers System/Library/Frameworks/GLUT.framework/Headers Linker settings->other linker options: -framework OpenGL -framework GLUT Linux Compiler: /usr/local/include Linker glut, GLU, GL
15 OpenGL Prima compilazione main.c #include <stdlib.h> //Win32 / Linux #include <GL/gl.h> #include <GL/glu.h> #include <GL/glut.h> //OSX #include <OpenGL/gl.h> #include <OpenGL/glu.h> #include <GLUT/glut.h> int main(int argc, char** argv) { } return 0;
16 OpenGL - comandi Formato generale: <lib_name><command_name><signature> dove <signature>: [[<arg_number>]<arg_type>]... ] Esempi: glcolor3f libreria gl, Colore, 3 dati, float glvertex2i libreria gl, Vertice, 2 dati, int glutcreatewindow libreria glut, crea la window
17 OpenGL tipi di dati tipo abbrev. lungh GLbyte b 8 bit GLubyte ub 8 bit GLshort s 16 bit GLushort us 16 bit GLint i 32 bit GLuint ui 32 bit GLfloat f 32 bit GLdouble d 64 bit
18 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
19 OpenGL - comandi Creazione finestra di visualizzazione glutinitwindowsize( int width, int height ) glutinitwindowposition( int x, int y ) glutcreatewindow ( char *name )
20 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
21 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
22 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 )
23 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 );
24 OpenGL Viewing volume Proiezione prospettica void glfrustum(left,right,bottom,top,near,far) top near left right far
25 OpenGL Viewing volume Proiezione prospettica void gluperspective(fovy,aspect,near,far) w near fovy h far fovy = Field Of View Y aspect = w/h
26 OpenGL Viewing volume Proiezione ortogonale parallela void glortho(left,right,bottom,top,near,far) left near right far Proiezione ortogonale parallela 2D void glortho2d(left,right,bottom,top)
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 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
33 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
34 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
35 OpenGL - Esercizio 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
36 OpenGL - Esercizio 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
37 OpenGL - Esercizio 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
38 Esercizio Completare le funzioni dell header file Vector3D.h Non necessaria rotazione intorno ad un asse generico rotate( Vector3d &axis, double angle) Utilizzo 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); Scrivere una funzione per disegnare un poligono regolare dati raggio del cerchio in cui è inscritto e numero di lati Disegnare un cono tronco (wireframe) il cui asse centrale non corrisponda con uno degli assi X,Y o Z (non usare glrotate ) Visualizzare il cono utilizzando 4 viste (prospettica, frontale, da sinistra, dall alto)
39 Esercizio Inviare via i sorgenti dell esercizio michele.antolini@mail.polimi.it Oggetto: [Infografica] Lab01 Nome e numero di matricola all interno del main.cpp
INFORMATICA 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
DettagliINFORMATICA GRAFICA. 27 Aprile Introduzione a OpenGL parte 2. Michele Antolini
Knowledge Aided Engineering Manufacturing and Related Technologies INFORMATICA GRAFICA 27 Aprile Introduzione a OpenGL parte 2 michele.antolini@mail.polimi.it COMANDI FONDAMENTALI OpenGL - comandi Nel
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
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
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
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. (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
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
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
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
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à
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
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. 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 alla compilazione ed esecuzione di programmi C con IDE Dev-C++
Introduzione alla compilazione ed esecuzione di programmi C con IDE Dev-C++ Università degli Studi di Brescia Elementi di Informatica e Programmazione Università di Brescia 1 Sviluppo di un programma C
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
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 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,
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
DettagliBloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment. Codice corso: 21012
Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio IDE = Integrated Development Environment Pagina 1 di 8 Dev-C++ - Installazione Con sistema operativo Windows, potete
DettagliBloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment. Codice corso: 21012
Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio IDE = Integrated Development Environment Pagina 1 di 7 Dev-C++ - Installazione Con sistema operativo Windows, potete
DettagliLinguaggio C: Introduzione ad ambienti di sviluppo integrati (IDE) e a Dev-C++ Università degli Studi di Brescia
Linguaggio C: Introduzione ad ambienti di sviluppo integrati (IDE) e a Dev-C++ Università degli Studi di Brescia Elementi di Informatica e Programmazione Università di Brescia 1 Sviluppo ed esecuzione
DettagliLezione1. Cos è la computer grafica. Lezione del 10 Marzo 2010. Michele Antolini Dipartimento di Ingegneria Meccanica Politecnico di Milano
Lezione1 Informatica Grafica Cos è la computer grafica Lezione del 10 Marzo 2010 Grafica OpenGL vs Direct Dipartimento di Ingegneria Meccanica Politecnico di Milano 1.1 Tubo a Raggi Catodici Cathode Ray
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
DettagliINFORMATICA GRAFICA!
Knowledge Aided Engineering Manufacturing and Related Technologies INFORMATICA GRAFICA! 7 Aprile! Trasformazioni - Illuminazione! Michele Antolini michele.antolini@mail.polimi.it! TRASFORMAZIONI! Trasformazioni!
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
DettagliIntroduzione alla programmazione in linguaggio C
Introduzione alla programmazione in linguaggio C Il primo programma in C commento Header della libreria Funzione principale Ogni istruzione in C va terminata con un ; Corso di Informatica AA. 2007-2008
DettagliFondamenti di Grafica Tridimensionale
Fondamenti di Grafica Tridimensionale La Pipeline Grafica Marco Di Benedetto marco.dibenedetto@isti.cnr.it Visualizzazione dell Informazione noi siamo qui Informazione mondo reale (es: scans) creazione
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
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
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
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
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
DettagliPROGRAMMA = ALGORITMO
Corso di Laurea Scienze Prof. San. Tec., Area Tecnico-Assistenziale SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Anno Accademico 2005-2006 Prof. Fausto Passariello Corso Integrato Metodologia della Ricerca
DettagliArchitettura degli elaboratori Lezione di laboratorio 04/03/15. Dr. Francesco Giacomini e Dr. Matteo Manzali Università degli Studi di Ferrara
Architettura degli elaboratori Lezione di laboratorio 04/03/15 Dr. Francesco Giacomini e Dr. Matteo Manzali Università degli Studi di Ferrara Informazioni generali Durante la parte di laboratorio siete
DettagliPreprocessore, linker e libreria standard
Preprocessore, linker e libreria standard Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 IL PREPROCESSORE Programma sorgente
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
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
DettagliIntroduzione a Visual Studio 2005
Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009 Introduzione a Visual Studio 2005 Outline Solutions e Projects Visual Studio e il linguaggio C Visual Studio Schermata
DettagliInformatica Applicata Laboratorio 1. Ing. Antonella Dimasi
Laboratorio 1 Ing. Antonella Dimasi Ambiente di sviluppo L ambiente di sviluppo utilizzato in questo corso è DEV- C++. Dev-C++ è un ambiente di sviluppo integrato (IDE) per la programmazione C/C++. Utilizza
DettagliIl compilatore Dev-C++
Il compilatore Dev-C++ Compilatore per Windows: http://www.bloodshed.net/dev/index.html Oppure dal sito: http://web.tiscali.it/no-redirect-tiscali/adinfo/devcpp4970- gcc295.exe Informatica 1 1 Requisiti
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
DettagliLezione 5: Introduzione alla programmazione in C
Lezione 5: Introduzione alla programmazione in C Laboratorio di Elementi di Architettura e Sistemi Operativi 4 Aprile 2012 Introduzione al C C vs. Java Java: linguaggio ad oggetti C: linguaggio procedurale
DettagliIntroduzione al linguaggio C Primi programmi
Introduzione al linguaggio C Primi programmi Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
DettagliSkeleton SDL. Skeleton SDL. Obiettivo. Aggiungiamo un cubo. DrawBlock. Costruzione di Interfacce Lezione 9 Esercitazione Trasformazioni
Skeleton SDL Costruzione di Interfacce Lezione 9 Esercitazione Trasformazioni cignoni@isti.cnr.it http://vcg.isti.cnr.it/~cignoni #ifdef WIN32 #define WIN32_LEAN_AND_MEAN #include #endif #include
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
DettagliIndice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX
Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di
DettagliIntroduzione a Visual Studio Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Introduzione a Visual Studio 2010 Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Sviluppo del Software Un editor e un word processor specializzato e usato per scrivere i moduli sorgenti
DettagliFondamenti di Grafica Tridimensionale
Fondamenti di Grafica Tridimensionale La Pipeline Grafica Marco Di Benedetto marco.dibenedetto@isti.cnr.it Visualizzazione dell Informazione noi siamo qui Informazione mondo reale (es: 3D scans) creazione
DettagliIntroduzione al C. Lez. 1 Elementi. Rossano Venturini
Introduzione al C Lez. 1 Elementi Rossano Venturini rossano@di.unipi.it Pagine del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start http://algoritmica.spox.spoj.pl/alglab2013 Lezioni
DettagliLab 01 Introduzione a Codelite
Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 01 Introduzione a Codelite Lab01 1 Costruzione di un Applicazione Per costruire un applicazione occorre: compilare
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
DettagliGLUI: GLUT-based User Interface
GLUI: GLUT-based User Interface La GLUI è una libreria di oggetti C++ costruita utilizzando le GLUT e mette a disposizione tutta una serie di oggetti per rendere l interfaccia di un programma più user-friendly.
DettagliPreprocessore, linker e libreria standard
Preprocessore, linker e libreria standard Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 IL PREPROCESSORE Programma sorgente
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
DettagliGrafica Computazionale
Grafica Computazionale Laboratorio: Il progetto SoftOgl: Software OpenGL Laboratorio: il progetto SoftOgl Fabio Ganovelli fabio.ganovelli@isti.cnr.it a.a. 2005-2006 Obiettivi Implementare gli algoritmi
DettagliGrafica Computazionale
Grafica Computazionale La Pipeline Grafica Fabio Ganovelli fabio.ganovelli@gmail.com a.a. 2006-2007 noi siamo qui Informazione mondo reale (es: 3D scans) creazione (es: videogames) Calcolo (es: Sci-Vis)
DettagliPrimi passi col linguaggio C
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta
DettagliBloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment
Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio IDE = Integrated Development Environment Gerardo Pelosi 01 Ottobre 2014 Pagina 1 di 8 Dev-C++ - Installazione Potete
DettagliUnix e comandi di base
Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Unix e comandi di base Lab19 1 Unix - Shell dei comandi Es. 1 Utilizzando il comando ls Elencare a video il contenuto
DettagliLaboratorio di Matematica Computazionale A.A Laboratorio nr.10
Laboratorio di Matematica Computazionale A.A. 2006-2007 - Laboratorio nr.10 Complementi di grafica 2D Disegnare in sei sottofinestre i poligoni regolari colorati aventi ripettivamente n = 4, 6, 8, 10,
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
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
DettagliScuola Politecnica - DICGIM ANNO ACCADEMICO CORSO DI LAUREA MAGISTRALE Ingegneria Informatica INSEGNAMENTO
STRUTTURA Scuola Politecnica - DICGIM ANNO ACCADEMICO 2014-2015 CORSO DI LAUREA MAGISTRALE Ingegneria Informatica INSEGNAMENTO Informatica Grafica TIPO DI ATTIVITÀ Caratterizzante AMBITO DISCIPLINARE Ingegneria
DettagliUniversità degli Studi di Ferrara
Università degli Studi di Ferrara Corso di Laurea in Matematica - A.A. 2018-2019 Programmazione Lezione 10 Esercizi in C Docente: Michele Ferrari - michele.ferrari@unife.it Nelle lezioni precedenti Abbiamo
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
DettagliIntroduzione al linguaggio C
Linguaggio C Introduzione al linguaggio C Sistemi di sviluppo integrati Noti anche come IDE: Integrated Development Environment Un pacchetto software che permette di scrivere, preprocessare, compilare,
DettagliIntroduzione al C. Lez. 1 Elementi
Introduzione al C Lez. 1 Elementi Introduzione al C Strumento che adotteremo in queste esercitazioni per implementare e testare gli algoritmi visti a lezione Configurazione minimale suggerita: Editing
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
DettagliLab 01 Introduzione a Codelite
Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 01 Introduzione a Codelite Lab01 1 Costruzione di un Applicazione Per costruire un applicazione occorre: compilare
DettagliFondamenti di Informatica. Ingegneria elettronica
Fondamenti di Informatica Ingegneria elettronica Prima esercitazione Cecilia Catalano Sistema Operativo Il S.O. è costituito da un insieme di programmi che permettono di utilizzare e gestire tutte le risorse
DettagliArchitetture Applicative Altri Esempi
Architetture Applicative Altri Esempi Alessandro Martinelli alessandro.martinelli@unipv.it 15 Aprile 2014 Architetture Applicative Altri Esempi di Architetture Applicative Architetture con più Applicazioni
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'è:
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
DettagliUniversità degli Studi di Ferrara
Università degli Studi di Ferrara Corso di Laurea in Matematica - A.A. 2018-2019 Programmazione Lezione 12 Esercizi in C Docente: Michele Ferrari - michele.ferrari@unife.it Nelle lezioni precedenti Abbiamo
DettagliLaboratorio reti AA 2008/2009. Dott. Matteo Roffilli Ricevimento in ufficio dopo la lezione
Laboratorio reti AA 2008/2009 Dott. Matteo Roffilli roffilli@csr.unibo.it Ricevimento in ufficio dopo la lezione 1 Laboratorio reti AA 2008/2009 Per esercitarvi fate SSH su: alfa.csr.unibo.it si-tux00.csr.unibo.it.
DettagliLab 01 Introduzione a Codelite
Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 01 Introduzione a Codelite Lab01 1 Costruzione di un Applicazione Per costruire un applicazione occorre: compilare
DettagliPrimi esempi di programmi. Il tipo int Le variabili Altri tipi interi Operatori di assegnazione
Primi esempi di programmi Il tipo int Le variabili Altri tipi interi Operatori di assegnazione Il tipo int Un int permette di trattare numeri interi 4 byte (32 bit) con la tecnica del complemento a 2 (ma
DettagliAggiungiamo attributi (per vertice!)
Prossimo passo: Aggiungiamo attributi (per vertice!) Roadmap: 1. includiamoli nel buffer 2. facciamoli prendere dal vetex puller 3. usiamoli nel vertex shader 4. (verranno inteprolati autmaticamente nel
DettagliNOTE SULL USO DI ECLIPSE per la compilazione di programmi c
Università degli Studi di Firenze - Scuola di Ingegneria Corso di Laurea in Ingegneria Elettronica e delle Telecomunicazioni Fondamenti di Informatica - Anno Accademico 2018/2019 Docente: Ing. Laura Carnevali
DettagliFondamenti di Informatica L-A. Esercitazione 6
Fondamenti di Informatica L-A Esercitazione 6 Passaggio dei Parametri nelle Funzioni Ordinamento di Vettori Paolo Torroni Università degli Studi di Bologna Laurea in Ingegneria Elettronica e delle Telecomunicazioni
DettagliIntroduzione al C. Lez. 1 Elementi. Rossano Venturini
Introduzione al C Lez. 1 Elementi Rossano Venturini rossano.venturini@isti.cnr.it URL del corso http://www.cli.di.unipi.it/doku/doku.php/informatica/all-b/start Lezioni - Lunedì 16-18 Aula M - Martedì
DettagliUnità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.
Unità Didattica 1 Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C UNIX (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti
DettagliIntroduzione al C. Lezione 1 Elementi. Rossano Venturini. Pagina web del corso
Introduzione al C Lezione 1 Elementi Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Lezioni di ripasso C Mercoledì 19 Giovedì
DettagliUniversità degli Studi di Ferrara
Università degli Studi di Ferrara Corso di Laurea in Matematica - A.A. 2018 2019 Programmazione Lezione 8 Esercizi in C Docente: Michele Ferrari - michele.ferrari@unife.it Informazioni Docente di supporto
DettagliIntroduzione alla GPGPU Corso di sviluppo Nvidia CUDATM. Davide Barbieri
Introduzione alla GPGPU Corso di sviluppo Nvidia CUDATM Davide Barbieri Contatti skype: davbar86 mail: davide.barbieri@ghostshark.it Panoramica corso Introduzione al mondo delle GPU Modello GPGPU Nvidia
DettagliProgrammazione in C per l analisi di semplici problemi di Onde Elettromagnetiche
Programmazione in C per l analisi di semplici problemi di Onde Elettromagnetiche Campi Elettromagnetici a.a. 2016-2017 Ing. Marco Zappatore [ marcosalvatore.zappatore@unisalento.it ] Lecce, 02/05/2017
DettagliProf. Massimiliano Giacomin 22 dicembre NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli
INFORMATICA E PROGRAMMAZIONE Prof. Massimiliano Giacomin 22 dicembre 2016 NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli 1. Si consideri il seguente codice per
DettagliInformatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1
Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)
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 programmazione in C
Corso di programmazione in C Lezione 2: fondamenti del linguaggio C Liceo Scientico Teresa Gullace M. Prisco 5 marzo 2019 Liceo Scientico Teresa Gullace Corso di programmazione in C 5 marzo 2019 1 / 17
DettagliLab 01 Introduzione a Codelite
Fondamenti di Informatica e Laboratorio T-AB e Fondamenti di Informatica T1 Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione a.a. 2011/2012 Lab 01 Introduzione a Codelite Lab01
Dettagli