Corso di programmazione videogiochi 3 D con C++, OpenGL e Irrlicht. Alessandro Bugatti ITIS B. Castelli

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Corso di programmazione videogiochi 3 D con C++, OpenGL e Irrlicht. Alessandro Bugatti ITIS B. Castelli"

Transcript

1 Corso di programmazione videogiochi 3 D con C++, OpenGL e Irrlicht

2 La programmazione dei videogiochi Contesto di programmazione molto specializzato e complesso Ricco di sfide informatiche (gestione memoriaprestazioni, periferiche, rete ) Richiede la conoscenza della fisica e della geometria Elemento trainante dell evoluzione tecnologica del PC (in particolare della grafica) Settore in forte espansione

3 Industria dei videogiochi Fatturato italiano 2007 (fonte AESVI): oltre 1 miliardo di euro (+37% rispetto al 2006) console vendute in Italia nel 2007 (5 al minuto) Fatturato globale stimato nel 2007 di 37 miliardi di dollari (fonte Price Waterhouse)

4 Perché il C++ Linguaggio maturo e stabile Adatto alla programmazione sia a basso livello che ad alto livello Supporto al paradigma di programmazione orientato agli oggetti Supporto alla programmazione generica Larga disponibilità di compilatori e librerie anche gratuiti

5 Perché OpenGL Libreria per la grafica 3D (solo grafica) Libreria open, guidata da un comitato (ARB) formato da un insieme di aziende, con specifiche pubbliche Matura (esiste dal 1992, adesso è alla versione 2.1) Multipiattaforma (Windows, Linux/UNIX, MacOSX, )

6 Giochi che utilizzano OpenGL Call of Duty Doom 3 Flight Gear Half-Life Quake I, II, III e IV Unreal Wolfestein Return to Castle

7 Applicazioni che utilizzano OpenGL Autodesk 3ds Max Blender Cinema 4D LightWave 3D Maya ( Il signore degli Anelli, Harry Potter, ) Rhino3D, SketchUp, SolidThinking

8 Cos è OpenGL Nasce come libreria per la grafica 2D/3D per macchine high-end all interno dei laboratori di Silicon Graphics È un API grafica che espone al programmatore una serie di funzioni per la manipolazione di scene 3D Possiede delle estensioni per altri aspetti (gestione delle periferiche, finestre, )

9 Cosa serve per creare un applicazione Un compilatore C/C++ La libreria OpenGL con gli header Una o più librerie per la gestione di ciò che non è pura grafica (window management, input handling, ecc.) Opzionalmente un ambiente di sviluppo Tools per la creazione delle grafica se si vuole fare qualcosa di professionale

10 Cosa utilizzeremo in Windows Ambiente di sviluppo CodeBlocks 8.02 che contiene: compilatore mingw32, porting del noto gcc in ambiente windows Libreria OpenGL (e estensioni) Libreria SDL per maneggiare tutti gli altri aspetti (da installare separatamente)

11 Cosa utilizzeremo in Linux Ambiente di sviluppo CodeBlocks 8.02 gcc (g++) Mesa (clone OpenGL per Linux) SDL per tutti gli altri aspetti

12 Differenze grafica 2D-3D La grafica 2D assomiglia ai cartoni animati di una volta (Biancaneve) L effetto di movimento si ottiene spostando velocemente oggetti precedentemente disegnati Esiste il solo punto di vista frontale

13 Differenze grafica 2D-3D La grafica 3D assomiglia ai cartoni animati moderni realizzati al computer (da Toy Story in poi)

14 Aspetti tipici della grafica 3D Vengono creati dei modelli tridimensionali Esistono infiniti punti di vista, basta spostare la telecamera L ambiente e tutto ciò che contiene devono comunque essere proiettati su una superficie bidimensionale Effetti come sfumature, ombre, luci, trasparenze ecc. vengono realizzati a costo zero (per il programmatore)

15 Pipeline grafica La geometria e le texture passano attraverso queste fasi Determinazione della visibilità Clippling Culling Occlusion testing Determinazione della risoluzione (LOD) Trasformazioni geometriche e illuminazione Rasterizzazione

16 Come funziona OpenGL Per il programmatore OpenGL è un API grafica che lo astrae dall hardware sottostante, permettendo di dichiarare degli oggetti geometrici e le operazioni che devono essere effettuate su di essi. E come una macchina a stati e ogni istruzione va a modificarne lo stato interno

17 OpenGL + SDL SDL (Simple DirectMedia Layer) è una libreria per l accesso all hardware che utilizzeremo insieme a OpenGL per gestire tutti gli aspetti non legati alla grafica Questo ci permetterà di creare programmi che gireranno su tutte le piattaforme che supportano SDL e OpenGL semplicemente ricompilandoli

18 Struttura di un programma Inizializzazione SDL Inizializza la libreria SDL_Init( SDL_INIT_VIDEO ) Abilita il double buffering SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 ); Setta la modalità video SDL_SetVideoMode( SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, videoflags );

19 Struttura di un programma Inizializzazione OpenGL Vengono impostati una serie di parametri secondo ciò che si desidera ottenere Esempi: Settare il colore di sfondo Impostare i vari buffer Abilitare alcuni test Scegliere la prospettiva

20 Struttura di un programma Main loop: è un ciclo che termina generalmente quando si chiude il programma e al cui interno: si processano gli eventi (input dell utente, comunicazioni di rete, ) si eseguono altri task (AI, simulazione del modello fisico, ) si disegna a video

21 Disegno in immediate mode Vengono date una serie di istruzioni fra un blocco di inizio e uno di fine, che vengono eseguite immediatamente glbegin(mode); glend(); ISTRUZIONI

22 Disegno in immediate mode Le istruzioni possono rappresentare i vertici di una figura, espressi con le coordinate x,y,z in un piano cartesiano tridimensionale y (3, 3, 3) x z

23 Disegno in immediate mode A seconda del mode prescelto vengono interpretate le istruzioni in modo diverso Esistono 10 mode: GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP, GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_QUADS, GL_QUAD_STRIP, GL_POLYGON.

24 OpenGL Mode

25 Colorare una figura I colori possono essere rappresentati in formato RGB o RGBA L istruzione glcolor (in tutte le sue versioni) modifica il colore di tutte le primitive disegnate da quell istruzione in poi A seconda dello shade model viene applicata un interpolazione fra i colori

26 Trasformazioni in 3D Esistono tre trasformazioni che possono essere applicate ad una figura nello spazio tridimensionale Traslazione: spostamento secondo una o più direzioni parallele agli assi coordinati Rotazione: rotazione di un certo angolo attorno ad un vettore di riferimento Scalatura: modifica delle dimensioni rispetto ai tre assi coordinati

27 Applicazione di trasformazioni Siccome un punto nello spazio tridimensionale è individuato dalle sue 3 coordinate e una figura è composta da un insieme di punti, applicare una trasformazione ad una figura è equivalente ad applicarla a tutti i punti che la compongono. Un punto viene rappresentato da un vettore

28 Vettori Nella geometria tridimensionale i punti si rappresentano utilizzando le coordinate omogenee, che utilizzano vettori a 4 dimensioni perché è comodo X / W Y / W Z / W X Y Z W X Y Z X Y Z 1

29 Matrici di trasformazione Per trasformare un punto applicando una delle operazioni viste in precedenza è sufficiente moltiplicarlo per una matrice opportunamente definita Queste matrici sono 4x4 e sono fatte in modo da avere nell ultima riga i valori

30 Prodotto matrice per vettore Il prodotto matrice per vettore è così definito: ux vx wx tx uy vy wy ty uz vz wz tz x px py pz 1 = ux*px + vx*py + wx*pz + tx uy*px + vy*py + wy*pz + ty uz*px + vz*py + wz*pz + tz 1

31 Matrice di traslazione tx ty tz

32 Traslazione applicata Supponendo di voler traslare il punto di 3 unità secondo l asse delle x: x = 1*3 + 0*5 + 0* *3 + 1*5 + 0* *3 + 0*5 + 1*

33 Matrice di scalatura sx sy sz

34 Matrici di rotazione cos(α) -sin(α) 0 0 sin(α) cos(α) cos(α) -sin(α) 0 0 sin(α) cos(α) cos(α) 0 -sin(α) sin(α) 0 cos(α) Rotazione intorno all asse Z Rotazione intorno all asse X Rotazione intorno all asse Y

35 Utilizzo di quadriche Una quadrica in 3D è ogni superficie rappresentata da un'equazione polinomiale del secondo ordine nelle variabili spaziali (coordinate).

36 Esempi di quadriche Ellissoide Cilindro Sfera

37 Libreria GLU La libreria GLU (GL Utility) racchiude una serie di funzioni comode Prima si crea una quadrica GLUquadricObj* glunewquadric( ) che crea memoria per i parametri della superficie e ritorna un puntatore Poi si sceglie il tipo

38 Esempio delle sfera void glusphere(gluquadricobj *qobj, GLdouble radius, GLint slices, GLint stacks) dove: radius è il raggio della sfera slices sono le fette in direzione longitudinale stacks sono le fette in direzione latitudinale

39 Illuminazione Serve a dare realismo agli ambienti e aumenta il senso di tridimensionalità Il nostro cervello per avere la senzazione di tridimensionalità sfrutta le informazioni prospettiche, ma non basta L illuminazione consente agli oggetti di proiettare dei riflessi che ci permettono di intuirne il volume

40 Differenti tipi di luce Luce ambiente: luce che riempie l ambiente e provvede l illuminazione di base Luce diffusa: luce riflessa dalle varie superfici in tutte le direzioni Luce riflessa: luce riflessa dalle superfici secondo la direzione dello specchio

41 Semplice modello di illuminazione Colore K K d s = K a * ColoreAmbiente + * ColoreDiffuso*( N o L) + * ColoreRiflesso*( RoV ) brillantezza dove: K a,k s e K d sono i pesi che vengono dati alle varie componenti (in generale la loro somma è uno) e Colore Ambiente, ColoreDiffuso e ColoreRiflesso sono i colori che vengono associati ai vari tipi di luce

42 Vettori di illuminazione Normale (N) Sorgente luminosa(l) Luce riflessa (R) α α Osservatore (V)

43 Illuminazione in OpenGL OpenGL si occupa di implementare la formula corretta, noi dobbiamo semplicemente inserire i parametri dell illuminazione e dei materiali che compongono i nostri oggetti Dobbiamo inoltre specificare la normale alle superfici per ottenere l effetto desiderato

44 Funzioni per l illuminazione glenable(gl_lighting) Abilita il calcolo delle luci. Senza questa chiamata non funziona niente. glenable (GL_LIGHTn) Abilita la luce n-esima, dove n va almeno da 0 a 9 (cioè si possono piazzare dieci luci diverse in una scena)

45 Funzioni per l illuminazione gllightfv(glenum luce, GLenum tipo_di_luce, GLfloat* parametri_luce) dove luce è il numero di luce che stiamo settando (GL_LIGHTn), tipo_di_luce definisce se è ambiente, diffusa o riflessa o di altri tipi e parametri_luce definiscono il colore della luce come vettore RGBA

Corso di grafica 3D con C++ e OpenGL. Alessandro Bugatti ITIS B. Castelli

Corso 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

Dettagli

INFORMATICA GRAFICA. 28 Aprile Trasformazioni - Illuminazione. Michele Antolini

INFORMATICA 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

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, 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

Dettagli

INFORMATICA GRAFICA. 20 Aprile Introduzione a OpenGL. Michele Antolini michele.antolini@mail.polimi.it

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

Dettagli

Università degli Studi di Ferrara

Università 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

Dettagli

Le 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 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

Dettagli

Introduzione alla Grafica 3D

Introduzione alla Grafica 3D Informatica Grafica I Introduzione alla Grafica 3D La realizzazione di grafica tridimensionale e' un processo molto complicato che richiede notevole potenza di calcolo. Generare un'immagine tridimensionale

Dettagli

SST- SuperSpin Theory

SST- SuperSpin Theory Corrado Malanga - Luciano Pederzoli SST- SuperSpin Theory TEORIA DEL SUPERSPIN PARTE SECONDA ROTONI e PULSONI Rev. 1.0-20 maggio 2005 Lavoro originale registrato in data: 29 giugno 2005 TUTTI I DIRITTI

Dettagli

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura: Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata

Dettagli

RIPASSO DI MATEMATICA

RIPASSO DI MATEMATICA RIPASSO DI MATEMATICA PER LA FISICA LA MATEMATICA È UNO STRUMENTO CHE PERMETTE LA FORMALIZZAZIONE DELLE SUE LEGGI (tramite le formule si può determinare l evoluzione del fenomeno) I NUMERI I NUMERI POSSONO

Dettagli

Trasformazioni nel piano come modello applicativo per le matrici:

Trasformazioni nel piano come modello applicativo per le matrici: 1 Trasformazioni nel piano come modello applicativo per le matrici: Rappresentazione di una trasformazione con matrici. Una generica trasformazione lineare ha equazioni X ax + by + c a b (1) con ae db

Dettagli

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Dettagli

1 La traslazione. 2 La composizione di traslazioni. 3 La rotazione

1 La traslazione. 2 La composizione di traslazioni. 3 La rotazione 1 La traslazione Per poter applicare una traslazione ad una generica figura geometrica si deve: ± creare il vettore di traslazione AB mediante il comando Vettore tra due punti; ± cliccare con il mouse

Dettagli

La composizione di isometrie

La composizione di isometrie La composizione di isometrie Quello che è più interessante in una trasformazione geometrica è studiare quali effetti ha sulle figure e soprattutto valutare quali proprietà delle figure di partenza si conservano

Dettagli

117. 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 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

Dettagli

Introduzione alla programmazione. Walter Didimo

Introduzione alla programmazione. Walter Didimo Introduzione alla programmazione Walter Didimo Programmi Un programma è una frase (anche molto lunga) che descrive delle azioni che devono essere svolte da un calcolatore La frase deve essere dettagliata

Dettagli

INFORMATICA GRAFICA. 25 Marzo Introduzione a OpenGL. Michele Antolini

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

Dettagli

Università degli Studi di Ferrara

Università 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

Dettagli

Computer Graphics. Immagine sul Raster Display. Grafica 3D: analogia con fotocamera. La matrice di Pixel è memorizzata nel FRAME BUFFER

Computer 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

Dettagli

Sempre piu difficile. Pallina che ruota sull anello. Doppio Anello. Rotolamento pallina 2. Rotolamento pallina 1. Aggiungiamo nell ordine

Sempre 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

Dettagli

Capitolo 10 - Strutture

Capitolo 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

Dettagli

Modellazione poligonale in Maya

Modellazione poligonale in Maya Informatica Grafica ][ Modellazione poligonale in Maya La tecnica di modellazione poligonale permette di costruire oggetti tridimensionali basati su poligoni. Malgrado gli oggetti poligonali siano spigolosi

Dettagli

Indici ed introduzione a Maya

Indici 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:

Dettagli

La matematica del CAD. Vettori e Matrici

La matematica del CAD. Vettori e Matrici La matematica del CAD Vettori e Matrici IUAV Disegno Digitale Camillo Trevisan I programmi CAD riducono tutti i problemi geometrici in problemi analitici: la proiezione di un punto su un piano viene, ad

Dettagli

1 Distanza di un punto da una retta (nel piano)

1 Distanza di un punto da una retta (nel piano) Esercizi 26/10/2007 1 Distanza di un punto da una retta (nel piano) Sia r = {ax + by + c = 0} una retta. Sia P = (p 1, p 2 ) R 2 un punto che non sta sulla retta r. Vogliamo vedere se si può parlare di

Dettagli

Introduzione al Many/Multi-core Computing

Introduzione 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

Dettagli

Introduzione a Matlab

Introduzione a Matlab INFORMATICA B Ingegneria Elettrica Introduzione a Matlab Introduzione a Matlab Matlab (MATrix LABoratory) è uno strumento per il calcolo scientifico ed ingegneristico Matlab facilita lo sviluppo di programmi

Dettagli

LIGHTING INTRODUZIONE DRAWING EVENT MANAGEMENT VIEWING DOUBLE BUFFERING Z-BUFFERING LIGHTING

LIGHTING 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

Dettagli

Introduzione al C. Lez. 1 Elementi. Rossano Venturini

Introduzione 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

Dettagli

LEZIONI DI LABORATORIO. Texture mapping (1)

LEZIONI 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)

Dettagli

L Allocazione Dinamica della Memoria

L Allocazione Dinamica della Memoria L Allocazione Dinamica della Memoria Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario Questo documento

Dettagli

PROGRAMMAZIONE EIA/ISO Macchine Utensili CNC

PROGRAMMAZIONE EIA/ISO Macchine Utensili CNC PROGRAMMAZIONE EIA/ISO Macchine Utensili CNC A cura di Massimo Reboldi La programmazione EIA/ISO! Introduzione! Assi e Riferimenti! Linguaggio di programmazione! Grammatica;! Lessico;! Funzioni N, G, M,

Dettagli

trasformazioni omogenee

trasformazioni omogenee Moti rigidi idi generali e trasformazioni omogenee Robotica I Marco Gabiccini AA A.A. 2009/2010 LS Ing. Meccanica ed Automazione Trasformazioni rigide generali Rotazione fra due sistemi di riferimento

Dettagli

Università degli Studi di Ferrara

Università degli Studi di Ferrara Università degli Studi di Ferrara Corso di Laurea in Matematica - A.A. 2017-2018 Programmazione Lezione 6 Primi esercizi in C Docente: Michele Ferrari - michele.ferrari@unife.it Informazioni Docente di

Dettagli

La trasformazione di camera

La trasformazione di camera La trasformazione di camera 1 Introduzione Per rappresentare un oggetto tridimensionale nello spazio (scena) in un piano bidimensionale (spazio delle immagini, quale il monitor o un foglio) è necessario

Dettagli

LEZIONE 36. si dice regolare se è. per ogni (u 0, v 0 ) D. Una superficie S R 3 is dice regolare se esiste una sua parametrizzazione regolare.

LEZIONE 36. si dice regolare se è. per ogni (u 0, v 0 ) D. Una superficie S R 3 is dice regolare se esiste una sua parametrizzazione regolare. LEZIONE 36 36.1. La definizione di superficie. In questo paragrafo iniziamo a dare alcuni esempi di superfici ed a definire alcuni oggetti ad esse naturalmente associati. Come già fatto per le curve, considereremo

Dettagli

BLENDER LEZIONI DI LABORATORIO

BLENDER 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)

Dettagli

Grafica 3D Interattiva

Grafica 3D Interattiva Informatica Grafica ][ Grafica 3D Interattiva Introduzione La grafica 3D viene utilizzata in prodotti interattivi e non interattivi. Esempi di prodotti non interattivi sono i filmati di animazione e gli

Dettagli

CENTRO DI MASSA. il punto geometrico le cui coordinate, in un dato sistema di riferimento, sono date da:

CENTRO DI MASSA. il punto geometrico le cui coordinate, in un dato sistema di riferimento, sono date da: CENTRO DI MASSA il punto geometrico le cui coordinate, in un dato sistema di riferimento, sono date da: dove M = m 1 + m 2 +... + m N è la massa totale del sistema e le quantità r i sono i raggi vettori

Dettagli

BLENDER LEZIONI DI LABORATORIO

BLENDER LEZIONI DI LABORATORIO BLENDER LEZIONI DI LABORATORIO Lezione 2 http://www.onlinetutorial.it/2019/creiamoun-bicchiere-con-blender.html Luci e ombre L illuminazione Nel rendering l illuminazione è fondamentale per dare realismo

Dettagli

Esercizio 2: Algebra dei Puntatori e Puntatori a Puntatori

Esercizio 2: Algebra dei Puntatori e Puntatori a Puntatori Esercizio 2: Algebra dei Puntatori e Puntatori a Puntatori Salvatore Mandrà 7 Ottobre 2008 1 Esercizio L esercizio prevede l implementazione di funzioni per il prodotto di una matrice per un vettore, attraverso

Dettagli

Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni

Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni Introduzione a Java IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni Linguaggi di programmazione Ogni programma viene scritto utilizzando un linguaggio specializzato, formale e comprensibile da

Dettagli

Soluzioni dello scritto di Geometria del 28 Maggio 2009

Soluzioni dello scritto di Geometria del 28 Maggio 2009 Soluzioni dello scritto di Geometria del 8 Maggio 9 1) Trovare le equazioni del sottospazio V(w, x, y, z) R 4 generato dalle quaterne c 1 = (,,, 1) e c = (, 1, 1, ). ) Trovare una base per OGNI autospazio

Dettagli

Introduzione a OpenGL e alle GLUT

Introduzione 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

Dettagli

Il programma è distribuito tramite il file compresso TRASFO.zip contenente i file di programma strutturati in 4 cartelle:

Il programma è distribuito tramite il file compresso TRASFO.zip contenente i file di programma strutturati in 4 cartelle: TRASFO V 1.0 Stefano Caldera stefano@geomatica.como.polimi.it M. Grazia Visconti grazia@geomatica.como.polimi.it Il programma è distribuito tramite il file compresso TRASFO.zip contenente i file di programma

Dettagli

Le trasformazioni 3D. Le trasformazioni in 3D. Informatica Grafica ][ Le trasformazioni in 3D. Le trasformazioni in 3D. Le trasformazioni in 3D

Le trasformazioni 3D. Le trasformazioni in 3D. Informatica Grafica ][ Le trasformazioni in 3D. Le trasformazioni in 3D. Le trasformazioni in 3D Informatica Grafica ][ Le trasformazioni 3D Come abbiamo visto in precedenza, vi sono tre tipi di trasformazioni base in grafica 3D: Traslazione Rotazione Variazione di scala Marco Gribaudo marcog@di.unito.it

Dettagli

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 4 24/10/2013

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 4 24/10/2013 Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 4 24/10/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University

Dettagli

Programmazione orientata agli oggetti: le classi

Programmazione orientata agli oggetti: le classi Programmazione orientata agli oggetti: le classi Oggetti e tipi di dati La programmazione che abbiamo visto finora agisce su variabili che appartengono a tipi di dati predefiniti: interi, floating point,

Dettagli

2003 Lezione 13: Le trasformazioni 3D. I sistemi di riferimento. I sistemi di riferimento. I sistemi di riferimento. I sistemi di riferimento

2003 Lezione 13: Le trasformazioni 3D. I sistemi di riferimento. I sistemi di riferimento. I sistemi di riferimento. I sistemi di riferimento 2003 Lezione 13: Le trasformazioni 3D Nelle precedenti lezioni abbiamo visto quali sistemi di coordiante esistano per specificare punti in uno spazio 3D. Nella grafica 3D puo' essere utile far convivere

Dettagli

QUADRICHE / RICHIAMI

QUADRICHE / RICHIAMI M.GUIDA, S.ROLANDO, 2014 1 QUADRICHE / RICHIAMI Fissato nello spazio un riferimento cartesiano R =(O; x, y, z),sichiamaquadrica ogni superficie cartesiana del tipo Q : a 11 x 2 + a 22 y 2 + a 33 z 2 +2a

Dettagli

Burocrazia: Primi passi con il linguaggio C. Diversi tipi di linguaggio. Un solo linguaggio

Burocrazia: Primi passi con il linguaggio C. Diversi tipi di linguaggio. Un solo linguaggio Burocrazia: Università degli Studi di Ferrara Laurea triennale in Matematica Corso di Programmazione Primi passi con il linguaggio C Filippo Mantovani 1 Ottobre 009 Per ora nessun cambio di orario e/o

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T -Struttura vettore 0/08/0 Prerequisiti Programmazione elementare Passaggio parametri per indirizzo 0/08/0 Introduzione I dati di tipo semplice (Intero, Reale, Carattere, Booleano)

Dettagli

Primo programma in C

Primo programma in C Primo programma in C Struttura minima di un file C Applicazioni C in modo console Struttura del programma Commenti Direttive #include Definizione di variabili Corpo del main 2 Struttura minima di un file

Dettagli

Grafica al calcolatore - Computer Graphics

Grafica al calcolatore - Computer Graphics Grafica al calcolatore - Computer Graphics 5 - Rendering 29/10/12 Grafica 2013 1 Rendering Il termine rendering indica la serie di algoritmi, geometrici e non, a cui si sottopone una data descrizione di

Dettagli

Abilità Informatiche. Lezione III. Metodi di rappresentazione. Lo spazio carta. arch. Gabriella Rendina

Abilità Informatiche. Lezione III. Metodi di rappresentazione. Lo spazio carta. arch. Gabriella Rendina Abilità Informatiche Lezione III Metodi di rappresentazione Lo spazio carta arch. Gabriella Rendina Assonometria Obliqua Quando il centro di proiezione assonometrico assume una posizione che non è né parallela

Dettagli

Materiali avanzati. Informatica Grafica per le arti. Raytracing. Raytracing. Raytracing. Raytracing. Raytracing

Materiali avanzati. Informatica Grafica per le arti. Raytracing. Raytracing. Raytracing. Raytracing. Raytracing Informatica Grafica per le arti Materiali avanzati Marco Gribaudo marcog@di.unito.it Molti degli oggetti modellabili sono costituiti da superfici trasparenti o riflettenti. I materiali Raytrace permettono

Dettagli

Cenni di teoria delle quadriche

Cenni di teoria delle quadriche Corso di Geometria per Fisica Cenni di teoria delle quadriche Ripercorrendo il cammino fatto per le coniche, diamo qui solo un cenno della teoria delle quadriche, limitandoci essenzialmente a dare una

Dettagli

La Retta Ogni funzione di primo grado rappresenta, graficamente, una retta. L equazione della retta può essere scritta in due modi

La Retta Ogni funzione di primo grado rappresenta, graficamente, una retta. L equazione della retta può essere scritta in due modi La Retta Ogni funzione di primo grado rappresenta, graficamente, una retta. L equazione della retta può essere scritta in due modi Forma implicita Forma esplicita a x b y c 0 y m x q a c y x b b Esempio

Dettagli

LEZIONE 8. Figura 8.1.1

LEZIONE 8. Figura 8.1.1 LEZIONE 8 8.1. Equazioni parametriche di rette. In questo paragrafo iniziamo ad applicare quanto spiegato sui vettori geometrici per dare una descrizione delle rette nel piano e nello spazio. Sia r S 3

Dettagli

Primi passi col linguaggio C

Primi 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

Dettagli

Spazio di indirizzamento virtuale

Spazio di indirizzamento virtuale Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 016-01 Spazio di indirizzamento virtuale Pietro Di Lena - pietro.dilena@unibo.it // The function name says it all int stack_overflow (){

Dettagli

Introduzione alla Programmazione. Giselda De Vita

Introduzione alla Programmazione. Giselda De Vita Introduzione alla Programmazione Giselda De Vita - 2015 1 Sulla base dell ambito in cui si colloca il problema da risolvere, è opportuno adottare un linguaggio piuttosto che un altro: ² Calcolo scientifico:

Dettagli

Grafica Computazionale

Grafica 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

Dettagli

I clip filmato (in Flash)

I clip filmato (in Flash) Informatica Grafica I I clip filmato (in Flash) Gli statement Ogni istruzione di uno script viene chiamata statement. La fine di uno statmenet e' indicata dal simbolo ;. Anche se in ActionScript il ; è

Dettagli

VIRTUAL REALITY TOOLBOX

VIRTUAL REALITY TOOLBOX VIRTUAL REALITY TOOLBOX Il Virtual Relity Toolbox permette di visualizzare e di interagire con le simulazioni di sistemi dinamici in un ambiente di realta virtuale a 3-D. Il toolbox collega MATLAB e Simulink

Dettagli

Fondamenti per la Programmazione delle Macchine a Controllo Numerico

Fondamenti per la Programmazione delle Macchine a Controllo Numerico Fondamenti per la Programmazione delle Macchine a Controllo Numerico Sistemi di Coordinate I sistemi di coordinate, permettono al programmatore di definire i punti caratteristici del profilo da lavorare.

Dettagli

Modellazione poligonale

Modellazione poligonale Informatica Grafica ][ Modellazione poligonale La tecnica di modellazione poligonale permette di costruire oggetti tridimensionali basati su poligoni. Malgrado gli oggetti poligonali siano spigolosi per

Dettagli

Perché il linguaggio C?

Perché il linguaggio C? Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare

Dettagli

Progettazione Multimediale REGOLE DI COMPOSIZIONE GRAFICA. Parte 3. Lo spazio. Prof. Gianfranco Ciaschetti

Progettazione Multimediale REGOLE DI COMPOSIZIONE GRAFICA. Parte 3. Lo spazio. Prof. Gianfranco Ciaschetti Progettazione Multimediale REGOLE DI COMPOSIZIONE GRAFICA Parte 3 Lo spazio Prof. Gianfranco Ciaschetti Solitamente, per spazio intendiamo un volume in tre dimensioni di estensione illimitata. In grafica,

Dettagli

update Intro Stato Pallina che sembri tale Stato

update Intro Stato Pallina che sembri tale Stato update Costruzione di Interfacce Lezione 15 Moebius 3 cignoni@isti.cnr.it http://vcg.isti.cnr.it/~cignoni nelle versioni precedenti c era un piccolo bug: in risposta ad un evento resize si faceva anche

Dettagli

Studio generale di una quadrica

Studio generale di una quadrica Studio generale di una quadrica Manlio De Domenico 19 Giugno 2003 Definizione 1 Si definisce quadrica Q un equazione algebrica F (x 1, x 2, x 3, x 4 ) = 0 del secondo ordine omogenea. Detta A la matrice

Dettagli

C C B B. Fig. C4.1 Isometria.

C C B B. Fig. C4.1 Isometria. 4. Isometrie 4.1 Definizione di isometria Date due figure congruenti è possibile passare da una all altra con una trasformazione. Una trasformazione geometrica in un piano è una funzione biunivoca che

Dettagli

(i) Determinare l equazione cartesiana dell unica circonferenza C passante per i tre punti dati.

(i) Determinare l equazione cartesiana dell unica circonferenza C passante per i tre punti dati. Universita degli Studi di Roma - "Tor Vergata" - Facolta Ingegneria Edile/Architettura Esercizi per il corso di GEOMETRIA - a.a. 7/8 Docente: Prof. F. Flamini - Tutore: Dott. M. Paganin FOGLIO - Esercizi

Dettagli

ITI M. FARADAY. Programmazione a. s

ITI M. FARADAY. Programmazione a. s ITI M. FARADAY Programmazione a. s. 2018-2019 Disciplina: INFORMATICA Indirizzo: INFORMATICA E TELECOMUNICAZIONI Classi: Terza A Terza B Ore settimanali previste: 6 (3 ora Teoria - 3 ore Laboratorio) Docenti:

Dettagli

PRINCIPIO DI INDETERMINAZIONE MP

PRINCIPIO DI INDETERMINAZIONE MP PRINCIPIO DI INDETERMINAZIONE MP Corrado Malanga - Luciano Pederzoli Rev.: 1.2-22 / 10 / 2003 (Rev.: 1.1-25 / 09 / 2003) [nel testo questa grafia è riservata all analisi dimensionale ed ai relativi commenti]

Dettagli

Indice. Introduzione Parte prima Il disegno CAD. Parte seconda Il rilievo archeologico digitale

Indice. Introduzione Parte prima Il disegno CAD. Parte seconda Il rilievo archeologico digitale Indice Introduzione... 7 Parte prima Il disegno CAD 1.1. Raster e Vector... 9 1.2. Iniziare un progetto... 10 1.3. I formati... 12 1.4. Gli strumenti principali... 12 1.5. Impostare l ambiente di disegno...

Dettagli

Le trasformazioni geometriche nel piano cartesiano. x = ϕ(x', y') τ 1 : G(x', y') = 0. la sua inversa.

Le trasformazioni geometriche nel piano cartesiano. x = ϕ(x', y') τ 1 : G(x', y') = 0. la sua inversa. τ : P P' oppure P'=τ(P) P immagine di P trasformato di P secondo τ se α è una figura geometrica α =τ(α) è la figura geometrica trasformata x' = f (x, y) τ : y' = g(x, y) espressione analitica della trasformazione

Dettagli

Elementi di C++ di base

Elementi di C++ di base Elementi di C++ di base Corso di Programmazione 3 - Ingegneria dell Informazione e dell Organizzazione 10 ottobre, 2001 Gino Perna Esempi di semplici programmi in C++ Il programma più semplice consiste

Dettagli

Titolo presentazione

Titolo 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

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti Programmazione ad oggetti OOP La programmazione orientata agli oggetti (Object Oriented Programming) ha l obiettivo di formalizzare gli oggetti del mondo reale e di costruire con questi un mondo virtuale.

Dettagli

Introduzione al C. Lez. 1 Elementi. Rossano Venturini

Introduzione 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ì

Dettagli

La formalizzazione dell informazione: Dati e Diagrammi di Flusso

La formalizzazione dell informazione: Dati e Diagrammi di Flusso La formalizzazione dell informazione: Dati e Diagrammi di Flusso Codifica degli algoritmi Algoritmo formulato per essere comunicato tra esseri umani chiaro, sintetico e intuitivo codificato in linguaggi

Dettagli

L'Allocazione Dinamica della Memoria nel linguaggio C

L'Allocazione Dinamica della Memoria nel linguaggio C L'Allocazione Dinamica della Memoria nel linguaggio C Prof. Rio Chierego riochierego@libero.it http://www.riochierego.it/informatica.htm Sommario Questo documento tratta l'allocazione dinamica della memoria

Dettagli

Linguaggi di alto livello, compilatori e interpreti

Linguaggi di alto livello, compilatori e interpreti Linguaggi di alto livello, compilatori e interpreti Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Il punto della situazione STATO DATI

Dettagli

Le coordinate di mappatura

Le coordinate di mappatura Informatica Grafica per le arti Le coordinate di mappatura Per assegnare ad un oggetto tridimensionale una texture 2D, occorre specificare un insieme di coordinate di mappatura. Le coordinate di mappatura

Dettagli

Fondamenti di Informatica Ing. Biomedica

Fondamenti di Informatica Ing. Biomedica Fondamenti di Informatica Ing. Biomedica Esercitazione n.10 Strutture Antonio Arena antonio.arena@ing.unipi.it Ripresa esercizio per casa Fondamenti di Informatica - Esercitazione n.10 2 Scrivere una funzione

Dettagli

Geometria analitica del piano pag 32 Adolfo Scimone

Geometria analitica del piano pag 32 Adolfo Scimone Geometria analitica del piano pag 32 Adolfo Scimone CAMBIAMENTI DI SISTEMA DI RIFERIMENTO Consideriamo il piano cartesiano R 2 con un sistema di riferimento (O,U). Se introduciamo in R 2 un secondo sistema

Dettagli

Linguaggio C: Array Valeria Cardellini

Linguaggio C: Array Valeria Cardellini Linguaggio C: Array Valeria Cardellini Corso di Calcolatori Elettronici A.A. 2018/19 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Array in C q Dichiarazione

Dettagli

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Selezione di prove di esame al calcolatore Esercizio 1 (esame del 13/01/2006) La classe Matrice definisce oggetti che rappresentano matrici

Dettagli

Indice. XIV Premessa. 71 Capitolo 3 Cenni di nomografia 73 Bibliografia. d e. Oceania 2,4% Africa 6,6% Asia 6,9% Europa 70,8% America 13,3%

Indice. XIV Premessa. 71 Capitolo 3 Cenni di nomografia 73 Bibliografia. d e. Oceania 2,4% Africa 6,6% Asia 6,9% Europa 70,8% America 13,3% XIV Premessa Capitolo La percezione visiva e il linguaggio grafico. Il processo percettivo 4. La percezione dello spazio 7. Le leggi della percezione 8.4 Le illusioni percettive. Applicazioni pratiche.6

Dettagli

Modello Generale della Telecamera

Modello Generale della Telecamera A.a. 2009/2010 Modello Generale della Telecamera Proiezione prospettica Consideriamo un punto dello spazio 3D, M=[x,,z] T, le cui coordinate sono espresse nel sistema di riferimento (sdr) solidale con

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Dettagli

INFORMATICA GRAFICA. 27 Aprile Introduzione a OpenGL parte 2. Michele Antolini

INFORMATICA 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

Dettagli

Iniziare a programmare in C++

Iniziare a programmare in C++ Iniziare a programmare in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli

Dettagli