Corso di programmazione videogiochi 3 D con C++, OpenGL e Irrlicht. Alessandro Bugatti ITIS B. Castelli
|
|
- Aurelio Antonelli
- 7 anni fa
- Visualizzazioni
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 Utilizzo di quadriche Una quadrica in 3D è ogni superficie rappresentata da un'equazione polinomiale del secondo ordine nelle variabili spaziali (coordinate). Esempi
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
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
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
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
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
DettagliIntroduzione 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
DettagliSST- 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
DettagliLe 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
DettagliRIPASSO 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
DettagliTrasformazioni 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
DettagliInformatica 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
Dettagli1 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
DettagliLa 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
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
DettagliIntroduzione 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
DettagliINFORMATICA 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
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
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
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
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
DettagliModellazione 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
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:
DettagliLa 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
Dettagli1 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
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
DettagliIntroduzione 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
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
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
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)
DettagliL 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
DettagliPROGRAMMAZIONE 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,
Dettaglitrasformazioni 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
DettagliUniversità 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
DettagliLa 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
DettagliLEZIONE 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
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)
DettagliGrafica 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
DettagliCENTRO 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
DettagliBLENDER 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
DettagliEsercizio 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
DettagliIntroduzione 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
DettagliSoluzioni 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
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
DettagliIl 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
DettagliLe 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
DettagliLaboratorio 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
DettagliProgrammazione 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,
Dettagli2003 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
DettagliQUADRICHE / 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
DettagliBurocrazia: 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
DettagliCorso 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)
DettagliPrimo 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
DettagliGrafica 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
DettagliAbilità 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
DettagliMateriali 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
DettagliCenni 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
DettagliLa 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
DettagliLEZIONE 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
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
DettagliSpazio 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 (){
DettagliIntroduzione 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:
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
DettagliI 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 ; è
DettagliVIRTUAL 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
DettagliFondamenti 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.
DettagliModellazione 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
DettagliPerché 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
DettagliProgettazione 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,
Dettagliupdate 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
DettagliStudio 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
DettagliC 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.
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
DettagliITI 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:
DettagliPRINCIPIO 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]
DettagliIndice. 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...
DettagliLe 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
DettagliElementi 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
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
DettagliProgrammazione 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.
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ì
DettagliLa 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
DettagliL'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
DettagliLinguaggi 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
DettagliLe 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
DettagliFondamenti 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
DettagliGeometria 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
DettagliLinguaggio 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
DettagliEsercizi 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
DettagliIndice. 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
DettagliModello 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
DettagliINTRODUZIONE 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
DettagliINTRODUZIONE 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
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
DettagliIniziare 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