INFORMATICA GRAFICA!
|
|
- Mattia Villani
- 7 anni fa
- Visualizzazioni
Transcript
1 Knowledge Aided Engineering Manufacturing and Related Technologies INFORMATICA GRAFICA! 13 Maggio! Texture! Michele Antolini
2 Texture! Tessitura si può considerare come il vestito dei nostri oggetti 3D! Si tratta di un array di pixel che vengono adagiati su una superficie! Servono ad aumentare il dettaglio della scena!
3 Texture! Esempio: modellazione di un muro di mattoni senza texture! Il muro è una parete piana...ma è formata in realtà da vari mattoni disposti in una certa maniera! Possiamo accostare una serie di parallelepipedi rossi secondo lo schema di un muro generico! Il risultato sarebbe troppo regolare e pulito per sembrare (almeno un poʼ) reale! In più...i mattoni sono porosi, non sono parallelepipedi perfetti!
4 Texture! Esempio: modellazione di un muro con texture! Usiamo una parete piana (un rettangolo o un parallelepipedo)! Applichiamo (come fosse un poster) una texture presa da un muro reale! Lʼimmagine verrà distorta correttamente a seconda del punto di vista!
5 Texture mapping! Il caso del muro è molto semplice! In generale una texture non viene posta su un rettangolo, ma su un poligono o una superficie generica! Eʼ necessario specificare lʼalgoritmo di texture mapping!
6 Textures! Fasi da seguire:! 1. Creare un oggetto da texturizzare! 2. Specificare una texture per tale oggetto! 3. Indicare come deve essere applicata la texture (per ogni pixel)! 4. Abilitare il texture mapping! 5. Disegnare la scena, fornendo coordinate geometriche e delle texture!
7 Texture - Dimensioni! Una texture non è necessariamente bidimensionale! Esistono texture monodimensionali (linee) o tridimensionali (come le fette create da una TAC)! Un elemento di una texture spesso si definisce textel (contrazione di texture pixel)! Ogni textel può essere definito da due, tre o quattro valori a seconda dellʼinterpretazione della texture (ad esempio RGB, RGBA, componente di profondità)!
8 Texture! Ci sono vari modi di applicare il colore di un textel con un frammento di superficie! replace: il frammento di superficie viene rimpiazzato dai textel! modulate: il colore del frammento di superficie viene usato per modulare/scalare il colore del textel! blend: il colore del frammento è mescolato al textel!
9 Texture - Abilitazione! Per abilitare o disabilitare le textures si usano le consuete funzioni glenable() e gldisable() con argomento una tra le seguenti costanti:! GL_TEXTURE_1D! GL_TEXTURE_2D! GL_TEXTURE_3D! GL_TEXTURE_CUBE_MAP!
10 Texture e geometry coords! Prima di applicare una texture bisogna definire come viene incollata sullʼoggetto! Una texture bidimensionale ha una coppia di coordinate il cui range è (0.0, 1.0) in entrambe le direzioni! le coordinate della texture sono (0.0,0.0), (0.0,1.0), (1.0,0.0), (1.0,1.0) per i quattro vertici di un muro (ad esempio)! Una texture può essere ripetuta, in tal caso:! le coordinate della texture non sono sono più le stesse per i vertici esterni del muro, ma sono scalate in base al numero di ripetizioni necessarie! Bisogna specificare il comportamento della texture quando le sue coordinate escono dal range (0.0, 1.0)! Le texture devono essere affiancabili (vincolo necessario solo per finalità estetiche)!
11 " Texture - Esempio! In questo esempio viene creata una scacchiera, generando un array 2D tramite codice! /*!Create checkerboard texture!*/" #define!checkimagewidth 64" #define!checkimageheight 64" static GLubyte checkimage[checkimageheight][checkimagewidth][4];" " void makecheckimage(void)" {" }! int i, j, c;" for (i = 0; i < checkimageheight; i++) {" for (j = 0; j < checkimagewidth; j++) {" }" }" c = ((((i&0x8)==0)^((j&0x8))==0))*255;" checkimage[i][j][0] = (GLubyte) c;" checkimage[i][j][1] = (GLubyte) c;" checkimage[i][j][2] = (GLubyte) c;" checkimage[i][j][3] = (GLubyte) 255;"
12 " " " " Texture - Esempio! Allʼinterno della init() si definiscono i parametri della texture, che viene alla fine caricata nella memoria della scheda video! Gluint texture;" void init(void) {" glclearcolor (0.0, 0.0, 0.0, 0.0);" glshademodel(gl_flat);" }! glenable(gl_depth_test);" makecheckimage();" glgentextures(1, &texture);! glbindtexture(gl_texture_2d, texture);! glpixelstorei(gl_unpack_alignment, 1);" gltexparameteri(gl_texture_2d, GL_TEXTURE_WRAP_S, GL_REPEAT);" gltexparameteri(gl_texture_2d, GL_TEXTURE_WRAP_T, GL_REPEAT);" gltexparameteri(gl_texture_2d, GL_TEXTURE_MAG_FILTER, GL_NEAREST);" gltexparameteri(gl_texture_2d, GL_TEXTURE_MIN_FILTER, GL_NEAREST);" glteximage2d(gl_texture_2d, 0, 4, checkimagewidth, checkimageheight," 0, GL_RGBA, GL_UNSIGNED_BYTE, checkimage);"
13 Texture - Esempio! glpixelstorei( GL_UNPACK_ALIGNMENT, 1 );! Definisce la dimensione dei dati dellʼarray. In questo caso si tratta di un array di byte. Valori possibili: 1,4,8! glgentextures( 1, &texname );! richiede di creare un oggetto texture! glbindtexture( GL_TEXTURE_2D, texname);! definisce la texture come bidimensionale!
14 Texture - Esempio! gltexparameteri()! GL_TEXTURE_2D: si riferisce alla dimensione della texture! GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T: impostano il comportamento di ripetizione della texture! GL_CLAMP (no ripetizione), GL_REPEAT (ripetizione)! GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER: imposta come la texture deve essere scalata (MAGNIFIED o MINIMIZED) se lʼarea non corrisponde a quella della destinazione! GL_NEAREST (punto più vicino), GL_LINEAR (interpolazione lineare)! glteximage2d()! Copia i dati della texture nella memoria della scheda video!
15 " " " Texture - Esempio! void display(void)" {" glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT);" glenable(gl_texture_2d);" }! Display()! glbindtexture(gl_texture_2d, texture);! " gltexenvf(gl_texture_env, GL_TEXTURE_ENV_MODE, GL_DECAL);" glbegin(gl_quads);" gltexcoord2f(0.0, 0.0); glvertex3f(-2.0, -1.0, 0.0);" gltexcoord2f(0.0, 3.0); glvertex3f(-2.0, 1.0, 0.0);" gltexcoord2f(3.0, 3.0); glvertex3f(0.0, 1.0, 0.0);" gltexcoord2f(3.0, 0.0); glvertex3f(0.0, -1.0, 0.0);" gltexcoord2f(0.0, 0.0); glvertex3f(1.0, -1.0, 0.0);" gltexcoord2f(0.0, 3.0); glvertex3f(1.0, 1.0, 0.0);" gltexcoord2f(3.0, 3.0); glvertex3f( , 1.0, );" gltexcoord2f(3.0, 0.0); glvertex3f( , -1.0, );" glend();" glflush();" gldisable(gl_texture_2d);"
16 Texture - Esempio! gltextenvf()! GL_TEXTURE_ENV_MODE:Imposta la modalità con cui la texture viene messa sulla superficie! può valere GL_ADD, GL_MODULATE, GL_DECAL, GL_BLEND, GL_REPLACE, GL_COMBINE! glbindtexture( GL_TEXTURE_2D, texname )! Imposta la texture attiva! gltexcoord2f()! Imposta le coordinate della texture per il vertice successivo! Valori > 1.0 indicano una scalatura e una eventuale ripetizione a seconda del valore dei parametri GL_TEXTURE_WRAP_S oppure T!
17 Texture - Esempio! keyboard callback! void keyboard (unsigned char key, int x, int y)" {" switch (key) {" case 's':" }! }" gltexparameteri(gl_texture_2d, GL_TEXTURE_WRAP_S, GL_CLAMP);" glutpostredisplay();" break;" case 'S':" gltexparameteri(gl_texture_2d, GL_TEXTURE_WRAP_S, GL_REPEAT);" glutpostredisplay();" break;" case 't':" gltexparameteri(gl_texture_2d, GL_TEXTURE_WRAP_T, GL_CLAMP);" glutpostredisplay();" break;" case 'T':" gltexparameteri(gl_texture_2d, GL_TEXTURE_WRAP_T, GL_REPEAT);" glutpostredisplay();" break;" default:" break;"
18 Texture - Esempio!
19 Texture - Subimage! Eʼ possibile aggiungere altre texture sopra quelle già definite! gltexsubimage2d(! GL_TEXTURE_2D, //tipo di texture! 0,!!!!!! //livello di dettaglio! 12, //offset x! 44, //offset y! subimagewidth,! subimageheight,! GL_RGBA, //formato textel! GL_UNSIGNED_BYTE, //tipo di dati! subimage ); //array textel!
20 Texture Caricamento file immagine! OpenGL non gestisce formati di file compressi (JPG, GIF, TGA, PNG...)! La lettura (e la conversione in array) vanno effettuate con estensioni di OpenGL o librerie esterne! Esistono le funzioni glcompressedteximage*d ma lʼimplementazione dipende da come è implementata la libreria OpenGL locale!!
21 Texture Caricamento file immagine! Un trucchetto è quello di!! Aprire/creare unʼimmagine con GIMP! Salvarla come C source! Non selezionare Use Glib types! Attivare/disattivare lʼalpha channel a seconda del caso, ma usare GL_RGB o GL_RGBA di conseguenza!! Rinominare il file come.h ed includerlo nel progetto! Viene creata una struttura che contiene dimensione e dati dellʼimmagine! Inserire i valori corretti nella glteximage2! gimp_image.width, gimp_image.height! gimp_image.pixel_data!
22 Texture Caricamento file immagine! In alternativa, utilizzare librerie come DevIL! ImageData myimage ilinit(); ilenable(il_origin_set); ilenable(il_file_overwrite); ILuint handle; ilgenimages(1, &handle); ilbindimage(handle); ILboolean loaded = illoadimage((const wchar_t*) myimage.jpg ); if (!loaded) printf( error loading image\n"); myimage.m_width = ilgetinteger(il_image_width); myimage.m_height = ilgetinteger(il_image_height); myimage.m_data = (unsigned char*)malloc(myimage.m_width*myimage.m_height*3*sizeof (unsigned char)); ilcopypixels(0,0,0, myimage.m_width, myimage.m_height,1, IL_RGB, IL_UNSIGNED_BYTE, myimage.m_data); ildeleteimages(1, &handle);
23 Texture - MipMap! " MipMap sta per multum in parvo (molti in un piccolo spazio)! Permette di memorizzare diverse versioni di una texture, a seconda del livello di dettaglio che si vuole ottenere (es. a seconda della risoluzione o della distanza)! OpenGL sceglierà automaticamente la texture da utilizzare!!! void init() {"!..." " gltexparameteri(gl_texture_2d, GL_TEXTURE_MIN_FILTER, "!!!!GL_NEAREST_MIPMAP_NEAREST);" glteximage2d(gl_texture_2d, 0, GL_RGBA, 32, 32, 0,"!!! GL_RGBA, GL_UNSIGNED_BYTE, mipmapimage32);" glteximage2d(gl_texture_2d, 1, GL_RGBA, 16, 16, 0,"!!! GL_RGBA, GL_UNSIGNED_BYTE, mipmapimage16);" glteximage2d(gl_texture_2d, 2, GL_RGBA, 8, 8, 0,"!!! GL_RGBA, GL_UNSIGNED_BYTE, mipmapimage8);" glteximage2d(gl_texture_2d, 3, GL_RGBA, 4, 4, 0,"!!! GL_RGBA, GL_UNSIGNED_BYTE, mipmapimage4);" glteximage2d(gl_texture_2d, 4, GL_RGBA, 2, 2, 0,"!!! GL_RGBA, GL_UNSIGNED_BYTE, mipmapimage2);" glteximage2d(gl_texture_2d, 5, GL_RGBA, 1, 1, 0,"!!! GL_RGBA, GL_UNSIGNED_BYTE, mipmapimage1);
24 Texture Sphere mapping! Lo sphere mapping permette di circondare un oggetto con una texture, vedendone il riflesso sulla superficie (effetto Terminator 2 )! Il passaggio chiave è la chiamata a gltexgeni, che crea lo sphere mapping per le coordinate S e T della texture! sphere = glunewquadric();" gluquadricdrawstyle( sphere, GLU_FILL);" gluquadricnormals( sphere, GLU_SMOOTH);" gluquadricorientation( sphere, GLU_OUTSIDE);" gluquadrictexture( sphere, GL_TRUE);" " gltexgeni(gl_s, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);!!!// Set Up Sphere Mapping" gltexgeni(gl_t, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);!!!// Set Up Sphere Mapping" " " glcolor3f(0.0, 1.0, 0.0);" glusphere( sphere, 0.6, 16, 16);
25 Texture Cube mapping! Simile allo sphere mapping, ma permette di impostare sei texture differenti (una per ogni faccia di un cubo)!
26 Texture Cube mapping! Chiamate successive alla glteximage2d, con primo argomento:! GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT Abilitare/Disabilitare cube mapping:! glenable(gl_texture_cube_map_ext); gldisable(gl_texture_cube_map_ext);
27 Cube mapping! Questo esempio imposta in modo sintetico le sei texture per il cube mapping (ordine delle texture nellʼarray: x+, x-, y+, y-, z+, z-)! GLubyte face[6][64][64][3]; for (i=0; i<6; i++) { glteximage2d(gl_texture_cube_map_positive_x_ext + i, 0, //level GL_RGB8, //internal format 64, //width 64, //height 0, //border GL_RGB, //format GL_UNSIGNED_BYTE, //type &face[i][0][0][0]); // pixel data }
INFORMATICA GRAFICA. 19 Maggio Texture. Michele Antolini
Knowledge Aided Engineering Manufacturing and Related Technologies INFORMATICA GRAFICA 19 Maggio Texture michele.antolini@mail.polimi.it Texture Tessitura si può considerare come il vestito dei nostri
DettagliTexture. Tessitura si può considerare come il ves$to dei nostri ogge7 3D. Si tra;a di un array di pixel che vengono adagia?
Textures Texture Tessitura si può considerare come il ves$to dei nostri ogge7 3D Si tra;a di un array di pixel che vengono adagia? su una superficie Servono ad aumentare il de;aglio della scena Texture
DettagliIntroduzione SOMMARIO
SOMMARIO Introduzione alle librerie grafiche e a OpenGL Implementazioni hw e sw e supporto multipiattaforma Esempi di programma con OpenGL Sistemi di coordinate 2D e 3D Proiezioni Primitive 3D Pipeline
DettagliComputer Graphics. Memoria RAM nelle schede grafiche. Texture Mapping: paradigma di memoria. Concetto. Tessiture: Caso più comune.
Computer Graphics Memoria RAM nelle schede grafiche Lezione 3: Università dell Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 202/3 molti dettagli a poco prezzo:
DettagliCorso di GraficaComputazionale
Corso di GraficaComputazionale OpenGL Docente: Massimiliano Corsini Laurea Specialistica in Informatica Università degli Studi di Siena Introduzione Open Graphics Language Libreria C Cross-platform Qualche
DettagliIl texture fetch (o: texture lookup) Operazione molto semplice in GLSL, es: e si memorizza le coord texture (s,t) per ogni vertice
e si memorizza le coord texture (s,t) per ogni vertice Index Buffer Verex Buffer s 0 t 0 s t s t coord texture per ogni vertice Vertici in obj. space + attributi s t vertex shader pass down di ( s, t )
DettagliCorso di Grafica Computazionale
Corso di Grafica Computazionale OpenGL Docente: Massimiliano Corsini Laurea Specialistica in Informatica Università degli Studi di Siena Introduzione Open Graphics Language Libreria C Cross-platform Qualche
DettagliTexture Mapping. Texture Mapping. Coordinate di texture. Esempi. Coordinate Texture
Texture Mapping Cotruzione di Interfacce Lezione 9 Texturing cignoni@iei.pi.cnr.it http://vcg.iei.pi.cnr.it/~cignoni Data un immagine bidimenionale (ad e. una immagine fotografica cannerizzata) viene ritagliata,
DettagliBump Mapping & Under-Water Effects. Dott. Stefano Tubini
Bump Mapping & Under-Water Effects Dott. Stefano Tubini Bump Mapping Il bump mapping è un metodo per simulare superfici scabrose, con rilievi, con textures bidimensionali. Per esempio: se realizziamo un
DettagliTexture Mapping. Texture Mapping. Coordinate di texture. Esempi. Coordinate Texture
Texture Mapping Cotruzione di Interfacce Lezione 22 Texturing cignoni@iei.pi.cnr.it http://vcg.iei.pi.cnr.it/~cignoni Data un immagine bidimenionale (ad e. una foto) viene ritagliata, tirata o comprea
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
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
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
DettagliWEBGL FOR DUMMIES [PARTE SETTE]: USO DELLE TEXTURE
WEBGL FOR DUMMIES [PARTE SETTE]: USO DELLE TEXTURE Per dare infatti più realismo alla scena e contemporaneamente arricchirla, una pratica molto usata è quella di "incollare" sulle nostre superfici delle
DettagliCorso di Tecniche Avanzate per la Grafica Texturing
Corso di Tecniche Avanzate per la Grafica Texturing Docente: Massimiliano Corsini Laurea Specialistica in Informatica Università di Ferrara Texturing Il concetto di texturing è importante Si tratta di
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
DettagliCorso di Tecniche Avanzate per la Grafica
Corso di Tecniche Avanzate per la Grafica Render-to-texture Docente: Massimiliano Corsini Laurea Specialistica in Informatica Università di Ferrara Overview Render-to-texture glreadpixels(...), gldrawpixels(...)
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
DettagliCorso di Grafica Computazionale
Corso di Grafica Computazionale Texturing Docente: Massimiliano Corsini Laurea Specialistica in Ing. Informatica Università degli Studi di Siena Texturing Il concetto di texturing è importante Si tratta
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)
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
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 al Calcolatore Tecniche di mappatura - 1. Introduzione
Grafica al Calcolatore Tecniche di mappatura - 1 Introduzione Grafica al Calcolatore Tecniche di mappatura - 2 Texture mapping Grafica al Calcolatore Tecniche di mappatura - 3 La texture può essere applicata
DettagliLe texture. Le texture. Informatica Grafica ][ Le texture. Le texture. Le texture. Le texture
Informatica Grafica ][ Come visto nel corso di IG1, le texture peremttono di applicare immagini sulle superfici di oggetti tridimensionali. Nella grafica in tempo reale esse assumono un'importanza ancora
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
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
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
DettagliAggiornamento o modifica di un DEM con l'ausilio di QGIS
Documento interno al servizio dott. Ruggero Valentinotti. ing. Diego Moar 01/03/2016 Aggiornamento o modifica di un DEM con l'ausilio di QGIS Il presente documento illustra come procedere per modificare
DettagliIntroduzione al linguaggio C Puntatori
Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2017
DettagliModulo 1: Le I.C.T. UD 1.3a: La Codifica Digitale delle Immagini
Modulo 1: Le I.C.T. : La Codifica Digitale delle Immagini Prof. Alberto Postiglione Corso di Informatica Generale (AA 07-08) Corso di Laurea in Scienze della Comunicazione Università degli Studi di Salerno
DettagliMontaggio e post-produzione
Informatica Grafica I Montaggio e post-produzione Una volta creata un'animazione, occorre eseguirne il rendering per crearne un filmato. Il procedimento e' simile al rendering di immagini statiche, ma
DettagliInizializzare oggetti
Inizializzare oggetti Uso della Classe Software per TLC - AA 2008/2009 1 Costruttori e polimorfismo Uso della Classe Un codice migliore Software per TLC - AA 2008/2009 2 Costruttori ed Ereditarietà Output:
DettagliDati due punti sul piano calcolare la loro distanza
Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12
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
DettagliI tipi strutturati e i record in C++
I tipi strutturati e i record in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi
DettagliIl linguaggio C. Puntatori e dintorni
Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;
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
DettagliGrafica al calcolatore - Computer Graphics
Grafica al calcolatore - Computer Graphics 9 Tecniche di Mapping 24/11/12 Grafica 2013-9 1 Introduzione Il modello di illuminazione di Phong è abbastanza versatile: con una scelta opportuna dei vari parametri
DettagliOggetti. Definizioni di Classi II
Programmazione a Oggetti Definizioni di Classi II Sommario Costruzioni di oggetti Campi e metodi di classe Overloading Istanziazione di oggetti Costruzione di un oggetto Processo complesso che comprende
DettagliArray. Aggragati di variabili omogenee...
Array Aggragati di variabili omogenee... Cosa è un array È un insieme di variabili omogenee identificato da un indice, ad esempio Se devo leggere 1 numeri dallo standard input e memorizzarli all'interno
DettagliGESTIONE DEI FILE IN C. Docente: Giorgio Giacinto AA 2008/2009
Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2
DettagliIngresso ed Uscita in C. Informatica 1 / 15
Ingresso ed Uscita in C Informatica 1 / 15 Input e Output in C Linguaggio C: progettato per essere semplice e con poche istruzioni Non esistono istruzioni di ingresso / uscita (I/O)!!! Ingresso ed uscita
DettagliIl linguaggio C. Notate che...
Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione
DettagliIl linguaggio C. Istruzioni, funzioni, dati strutturati
Il linguaggio C Istruzioni, funzioni, dati strutturati Istruzioni Servono a dirigere il flusso di esecuzione di un programma controllano l ordine di esecuzione delle espressioni, quindi dei loro side effects
Dettagli1.3a: La Codifica Digitale delle Immagini
Prof. Alberto Postiglione Scienze della e Facoltà di Lettere e Filosofia Università degli Studi di Salerno 1.3a: La Codifica Digitale delle Immagini Informatica Generale (Laurea in Scienze della e) Sistemi
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica Puntatori a funzioni 1 Funzioni che restituiscono puntatori Il valore di ritorno restituito da una funzione può essere di qualsiasi tipo, compreso il tipo puntatore.
DettagliIntroduzione al linguaggio C Puntatori
Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2016
DettagliLa codifica delle immagini
Un immagine può occupare molto spazio anche se non tutti i 16777216 colori sono CONTEMPORANEAMENTE usati Si può usare un sottoinsieme dei colori Si considera una tavolozza (palette) di colori (codificati
DettagliUNIVERSITÀ DEGLI STUDI DI PARMA
UNIVERSITÀ DEGLI STUDI DI PARMA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA VISUALIZZAZIONE IN GRAFICA 3D DI RIFLESSIONI DINAMICHE MEDIANTE ENVIRONMENT MAPPING Relatore Chiar.mo Prof.
DettagliCODIFICA IMMAGINI IN BIANCO E NERO
Rappresentazione delle immagini Anche le immagini possono essere codificate mediante una sequenza di 0 e 1., questa operazione si chiama digitalizzazione. La prima cosa da fare è dividere l immagine in
DettagliTexture Mapping Realtà Virtuale: il presente, il pass T a e t x o u, r i e l f M u a t p u pi ro ng
Texture Mapping Texture Mapping Texture coordinates associate ai vertici del triangolo =>> t corrispondenza tra spazio dello schemo (fragment)) e texture-space space. Colore di ogni pixel determinato in
DettagliPassaggio dei parametri Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei paramet
Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei parametri così passati non si riflettono sull environment esterno Per riferimento
DettagliVariabili e Funzioni. Informatica 1 / 19
Variabili e Funzioni Informatica 1 / 19 Programmi C e Un programma C e composto da funzioni e variabili Variabile: memorizza valori appartenenti ad un insieme di definizione (dipendente dal tipo) Funzione:
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
DettagliLe Funzioni in C. Fondamenti di Informatica Anno Accademico 2010/2011. Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia
Le Funzioni in C Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2010/2011 docente: prof. Michele Salvemini 1/24 Sommario Le funzioni Il
DettagliFormati e compressioni
Sistemi Multimediali Marco Gribaudo marcog@di.unito.it, gribaudo@elet.polimi.it Formati e compressioni Anche se in memoria le immagini vengono quasi sempre memorizzate come una sequenza di colori RGB,
Dettagli4 GLI ARRAY E LE STRINGHE
13 4 GLI ARRAY E LE STRINGHE 4.1 Gli array monodimensionali Un array è un insieme di variabili dello stesso tipo, cui si fa riferimento mediante uno stesso nome. L accesso ad un determinato elemento si
DettagliFondamenti di Informatica 2
Fondamenti di Informatica 2 della prova scritta del 6 Aprile 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,8,-4; int N = 7; int x = -1; Scrivere la porzione di codice che inserisce
DettagliLe basi del linguaggio Java
Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una
DettagliLinguaggio C: strutture di controllo
Linguaggio C: strutture di controllo Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Linguaggio C: strutture di controllo
DettagliEsercitazione 5. Procedure e Funzioni Il comando condizionale: switch
Esercitazione 5 Procedure e Funzioni Il comando condizionale: switch Comando: switch-case switch (espressione) { /* espressione deve essere case costante1: istruzione1 di tipo int o char */ [break]; case
DettagliGuida a Getrix: Indice Multimedia Planimetria
Guida a Getrix: Indice Multimedia Planimetria Multimedia - PLANIMETRIA: Crea Modifica Cancella Ottieni URL (Multimedia Planimetria) pag. 2 - Creare una Planimetria: Costruzione (Multimedia Planimetria
DettagliLa codifica delle immagini
Per distinguere 16777216 colori sono necessari 24 bit per la codifica di ciascun pixel: la codifica di un'immagine formata da 640X480 pixel richiederà 7.372.800 bit (921.600 byte) Esistono delle tecniche
DettagliFILE DI TESTO e SOTTOPROGRAMMI
FILE DI TESTO e SOTTOPROGRAMMI Prof. Enrico Terrone A. S: 2008/09 I file di testo in C++ I file di testo sono una forma di input/output alternativa alla tastiera e al monitor (con il vantaggio della persistenza).
DettagliSQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project
Database and data mining group, SQL Server 2005 Integration Services SQL Server 2005: ETL - 1 Database and data mining group, Integration Services Project Permette di gestire tutti i processi di ETL Basato
DettagliLinguaggi di Programmazione I Lezione 9
Linguaggi di Programmazione I Lezione 9 Prof. Marcello Sette mailto://marcello.sette@gmail.com http://sette.dnsalias.org 6 maggio 28 Variabili 3 Ambiti................................................................
DettagliIstruzioni di selezione in Java 1
Ordine di esecuzione Istruzioni di selezione in Java Corso di laurea in Comunicazione digitale Nei metodi l ordine di esecuzione delle istruzioni è sequenziale se non specificato altrimenti Alcune istruzioni
DettagliLaboratorio. Due. 1) Switch 2) Costrutti Iterazione (For, While, do while)
Laboratorio Due 1) Switch 2) Costrutti Iterazione (For, While, do while) GLI ARGOMENTI DI OGGI Istruzione switch I costrutti di iterazione (For, while, do while) Le funzioni (e ricorsione) Terza Esercitazione
DettagliGrafica Computazionale. Texturing. Fabio Ganovelli a.a
Grafica Computazionale Texturing Fabio Ganovelli fabio.ganovelli@isti.cnr.it a.a. 2005-2006 Texture Mapping Nelle operazioni per frammento si può accedere ad una RAM apposita la Texture RAM strutturata
DettagliBufferedImage: immagine gestita completamente in RAM Raster: gestione dei dati che formano l'immagine:
Immagini in Java BufferedImage Raster ColorModel SampleModel DataBuffer ColorSpace Bande e pixel BufferedImage: immagine gestita completamente in RAM Raster: gestione dei dati che formano l'immagine: DataBuffer:
DettagliC: panoramica. Violetta Lonati
C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati
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:
DettagliA. Ferrari. informatica. Java basi del linguaggio. Alberto Ferrari Informatica
informatica Java basi del linguaggio Alberto Ferrari Informatica struttura di un programma Java /** * Classe EsempioProgramma * Un esempio di programmazione in Java * @author 4A Informatica */ public class
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
DettagliPuntatori e array. Violetta Lonati
Puntatori e array Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati Puntatori e array
DettagliCostruiamo un'immagine o qualcosa di simile.
Costruiamo un'immagine...... o qualcosa di simile. Se consideriamo la C che si trova in fondo a destra, ci accorgiamo che un'immagine non è altro che una tabella di valori. Nel caso in cui si consideri
DettagliCreare un nuovo simbolo
Creare un nuovo simbolo Premessa In Allplan è possibile creare o importare profili 2D in modo da salvarli nella Library ed utilizzarli per la creazione di elementi 3D (pilastri, travi, etc ) Creazione
DettagliLe immagini digitali
Le immagini digitali Formati e caratteristiche di digitalizzazione Processo complessivo 1. Documento originale (eventuale restauro del supporto) Argomento della lezione 2. Scansione 3. Oggetto digitale
DettagliL oggetto creato. Creazione di Oggetti. Rectangle: il concetto 10. Costruzione. Lo spazio di memoria del linguaggio Java. Rectangle: l oggetto
Usare e costruire oggetti Variabili e Oggetti Lo spazio di memoria di Java Le API di Java Gli oggetti sono entità di un programma che si possono manipolare invocando i metodi System.out oggetto della classe
DettagliLinguaggi di Programmazione I Lezione 10
Linguaggi di Programmazione I Lezione 10 Prof. Marcello Sette mailto://marcello.sette@gmail.com http://sette.dnsalias.org 8 maggio 2008 Array 3 Dichiarazione...........................................................
DettagliIL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Primo esempio di un programma Java
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Primo esempio di un programma Java Semplicissimo programma
DettagliEstensioni Opengl. Estensioni Opengl. Opengl 1.2 e 1.3. Come si usano
Estensioni Opengl Costruzione di Interfacce Lezione 27 Estensioni Opengl, Multitexturing, cignoni@iei.pi.cnr.it http://vcg.isti.cnr.it/~cignoni Opengl è guidato dal consorzio Opengl ARB (Architecture Review
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)
DettagliTitolo presentazione INFORMATICA. sottotitolo A.A Milano, XX mese 20XX Laboratorio n 6 Ing. Gian Enrico Conti Dott.
Titolo presentazione INFORMATICA A sottotitolo A.A. 2017-18 Milano, XX mese 20XX Laboratorio n 6 Ing. Gian Enrico Conti Dott. Michele Zanella Info Logistiche (cont d) Calendario laboratori Data Orario
DettagliIntroduzione alla Grafica
GRAFICA Introduzione alla Grafica Teoria del colore Stampa Offset - Deretinatura Stampa digitale Immagini raster Immagini vettoriali - Pdf Briefing con il cliente Riepilogo... cerchio di Itten al centro
DettagliComplementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -
Complementi - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Università degli Studi di Brescia Prof. Massimiliano Giacomin
DettagliIL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Primo esempio di un programma Java Semplicissimo programma
DettagliEsercitazione 11. Liste semplici
Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene
DettagliFile binari e file di testo
I file File binari e file di testo distinzione tra file binari file di testo si possono usare funzioni diverse per la gestione di tipi di file diversi Programmazione Gestione dei file 2 File binari e file
DettagliEsercitazione Google Maps
Esercitazione Google Maps Esercizio 1 Visualizzare i risultati della API comuni.php su una mappa geografica. Soluzione Come prima cosa, occorre creare una chiave di utilizzo della libreria Google Maps.
DettagliPROVA SCRITTA 23 MARZO 2010
PROVA SCRITTA 23 MARZO 2010 In un file binario, MY_FILE.DAT, si memorizzano per ciascuno studente universitario: nome e cognome (stringhe, 20 char), matricola (intero), codice del corso di laurea (stringa
DettagliBasi di Dati Spaziali
Corso di Basi di Dati Spaziali Rappresentazione di oggetti spaziali Angelo Montanari Donatella Gubiani Modelli dei dati spaziali e modi di rappresentazione Esistono varie modalità di modellazione e rappresentazione
Dettagli