mat4 m, ma, mb ; vec4 v, u; m *= mb ; // come dire: m = m * mb (non mb * m!) u = m * v ; // prodotto matrice-vettore
|
|
- Mariana Verde
- 5 anni fa
- Visualizzazioni
Transcript
1 Computer Graphics Università dell Insubria Corso di Laurea in Informatica Anno Accademico 24/5 Marco Tarini Trasformazioni 3D con three.js Matrici in GLSL mat4 m, ma, mb ; vec4 v, u; m = ma * mb ; // prodotto matrice matrice // (riga per colonna) m *= mb ; // come dire: m = m * mb (non mb * m!) u = m * v ; // prodotto matrice-vettore u = m[ ] ; // prendi la ma colonna di m m[ 3 ] = u ; // setta la 4ta colonna di m m = mat4( v ) ; // matrice diagonale m = mat4(. ) ; // nella diagonale (cioè l ide) Matrici in GLSL mat4 m, ma, mb ; vec4 v, u; m = transpose( m // non oneroso m = inverse( m // molto più oneroso! float k = determinant( m m = ma * 5; // moltipilca tutti gli elementi m = ma + mb; // somma fra matici mat3 submat = mat3( m // sottomatrice 3x3 m = mat4( submat // borda con, e sulla diago Vertex shader con transformazione 3D Trasformazioni 4x4 = matrici 4x4 (uniforms) attribute vec3 vertexpos ; attribute vec3 colattribute ; varying vec3 colvarying; Model-View- Projection (da spazio-oggetto a spazio-clip in un sol colpo) uniform mat4 mvp ; W (coord affine) X Y Z void main(void) { gl_position = mvp * vec4( vertexpos,. colvarying = colattribute ; VERTEX SHADER (GLSL)
2 Setting the uniforms: caso matrici Serializzare le matrici «trascrivere come serie di numeri» (in memoria, su disco, etc) uniform mat4 mvp; var mvp_loc = gl.getuniformlocation( myprog, mvp" «dammi un vettore (non i valori)» «column major order» gl.uniformmatrix4fv ( mvp_loc, false, xxx reneder( // sends the primitives GPU CPU un Float32Array (6 el) a b c d e f g h i j k l m n o p Row-major Order (per riga): a e i m b f j n c g k o d h l p trasposta di Column-Major Order (per colonna): a b c d e f g h i j k l m n o p più standard Settare la matrice di MVP Come una matrice di scalatura? // da invocare nella draw, prima di mandare le primitive function setuniforms(){ gl.uniformmatrix4fv( mvp_loc, false, new Float32Array( [.5,,,, // first column!!!! (not row),.5,,,,,.5,,,,,, ] ) Settare la matrice di MVP Come una matrice di rot di 45 sull asse Z? // da invocare nella draw, prima di mandare le primitive function setuniforms(){ gl.uniformmatrix4fv( mvp_loc, false, new Float32Array( [ +.77, -.77,,, // first column!!!! (not row) +.77, +.77,,,,,,,,,,, ] ) nota: sin(45 ) = cos(45 ) =.77 2
3 Rotazione attorno all'asse x, y, o z R X ( θ ) = -sinθ sinθ R Y ( θ ) = -sinθ - sinθ = sinθ ( θ ) R Z sinθ Ci serve una libreria JavaScript per matrici, vettori, etc three.js GLGE SpiderGL adottiamo questa three.js quick start Matrici in three.js download it ( ) dal package prendere i builds three.js three.min.js (versione minimale, ci basta per ora) metterli a dispozisione della pagina html (es dentro una cartella js/ ) inlcuderli: <html> <head> <script src="js/three.min.js"></script> <script type="text/javascript"> </script> </head> head (come tutte le librerie JavaScript) var m = new THREE.Matrix4( // m = identità /* costruzioni di matrici utili, comprese quelle che abbiamo visto: */ m.maketranslation( dx, dy, dz m.makescale( sx, sx, sz m.makerotationx( radiants m.makerotationy( radiants m.makerotationz( radiants m.makeaxis( axisx, axisy, axisz // dai tre vettori asse m.makeperspective( fov, aspect, nearz, farz /* accesso agli elementi */ m.elements( // un Float32Array con i 6 elementi 3
4 Matrici in three.js Un modo per definire la matrice di vista var m = new THREE.Matrix4( var b = new THREE.Matrix4( /* moltipilcazione riga colonna: */ m.multiply( b // a destra! m *= b; // cioè m = m*b; // (equivale a fare prima b, poi m) una semplice Trackball : var trackball = { phi:., // degrees theta:., dist: 5. ; y /* inversioni etc */ var det = m.determinant( // un float m.transpose( // in place, cioe m = transposta di m ; m.getinverse( b // m = inversa di b theta /* e molto altro, per es: */ // costruisce una matr. vista (vedi esercizio di trasformazione) m.lookat ( eyepos, targetpos, upvec phi z -x Soluz (traccia): Se la camera fosse un oggetto qualsiasi, per portarla nella pos giusta: ricetta: partenza: camera nello, puntata verso Z, etc. prima la sposto sulla Z di dist poi lo ruoto attorno alla X di theta poi lo ruoto attorno alla Y di phi Soluz (traccia): Allora la matrice di vista V si ottiene invertendo (sia ciascuna op che il loro ordine) : ricetta: partenza: spazio mondo prima lo ruoto attorno alla Y di phi poi lo ruoto attorno alla X di theta poi la sposto sulla Z di dist arrivo: spazio vista M M M2 V = M2*M*M 4
5 Setting della view matrix In Javascript (con three.js ) : Setting della projection matrix In Javascript (con three.js ) : Distanze del Near e Far Clipping Plane (in spazio vista!) var view = new THREE.Matrix4( var m = new THREE.Matrix4( var m = new THREE.Matrix4( var m2 = new THREE.Matrix4( var view = ; var projection = new THREE.Matrix4( projection.makeperspective( 6,.,.5,. m2.maketranslation(,, -trackball.dist view.multiply( m2 m.makerotationx( -trackball.theta / 8. * 3.45 view.multiply( m var mvp = new THREE.Matrix4( mvp.multiply( projection mvp.multiply( view Field of View (degrees) Aspect Ratio del viewport m.makerotationy( -trackball.phi / 8. * 3.45 view.multiply( m gl.uniformmatrix4fv( mvp_loc, false, mvp.elements conversione da degree a rad M a r c o T a r i n i C o m p u t e r G r a p h i c s 2 4 / 5 U n i v e r s (ma i t à d meglio e l l I n usare s u b r i Math.PI) a mandiamo la matrice di MVP allo shader come uniform precedentemente trovato (dopo la costruz. dello shader) convenientemente, un Float32Array Proiezione prospettica Paradigmi di interazione 3D matrice di trasformazione per la proiezione prospettica P = / d World in Hand (or Object in Hand) mi immagino la camera fissa, manipolo l oggetto davanti alla camera es: un visualizzatore di oggetti 3D x y P z x y = z z / d divisione per 4ta comp x z / d y z / d d Camera in Hand mi immagino un oggetto / il mondo fermo, muovo la camera intorno es: un game st person shooter 5
6 primitive qui manipolazioni di stato (es. settare la matrice) stato di OpenGL tutto il pipeline (proiezione, setup, rasterizzazione) pixels Depth test, in OpenGL Depth test, in WebGL (o OpenGL) Abilitarlo: gl.enable(gl.depth_test Quando si cancella lo schermo, cancellare anche il depth buffer Determinare la condizione per passare il test: gl.never gl.equal gl.lequal gl.greater gl.notequal gl.depthfunc( GL_LESS gl.less ) gl.gequal gl.always (dafault) gl.clear( gl.color_buffer_bit gl.depth_buffer_bit OR bit a bit (la clear prende una maschera di bits che specifica quali buffer cancellare) Depth test, in WebGL (o OpenGL) Il rasterizzatore produce un valore di depth di default per ogni frammento prodotto interpolando la Z dei vertici proiettati in input Possiamo sovrascrivere questo valore (se vogliamo) nel fragment shader // fragment shader void main() { gl_fragcolor = // un vec4 gl_fragdepth = // un float assegnamento opzionale. (ha un costo grande farlo! depth test va rimandato e alcune ottimizzazioni HW disabilitate) Per i dettagli, vedere l implementazione sul sito (come al solito): lez 9B 6
Aggiungiamo attributi (per vertice!)
Prossimo passo: Aggiungiamo attributi (per vertice!) Roadmap: 1. includiamoli nel buffer 2. facciamoli prendere dal vetex puller 3. usiamoli nel vertex shader 4. (verranno inteprolati autmaticamente nel
Computer Graphics. Preambolo: piccolo prontuario di JavaScript. Modellazione procedurale di semplici forme
Computer Graphics Università dell Insubria Corso di Laurea in Informatica Anno Accademico / Marco Tarini Modellazione procedurale di semplici forme JavaScript ha molti difetti non tipato sintassi molto
Computer Graphics. Mesh import. Piano: Let s Import Meshes! Guardiamo dentro la nostra mesh con un plain text editor. 1. Procurarsi alcune mesh
Computer Graphics Università dell Insubria Corso di Laurea in Informatica Anno Accademico 2014/15 Marco Tarini Let s Import Meshes! Mesh import Funzioni esistenti (non cambia nulla) Piano: 1. procurarsi
Marco Tarini, Università dell'insubria AA 2016/2017. Computer Graphics. Facciamo una primissima applicaizone grafica rasterization based
Computer Graphics Hello Triangle Università dell Insubria Corso di Laurea in Informatica Anno Accademico 2016/17 HELLO WORLD, I M A TRIANGLE! Marco Tarini Piano Facciamo una primissima applicaizone grafica
Grafica Computazionale
Grafica Computazionale Laboratorio: Le trasformazioni Laboratorio: Il progetto SoftOgl: Software OpenGL Fabio Ganovelli fabio.ganovelli@isti.cnr.it a.a. 2005-2006 Obiettivi (oggi) le trasformazioni della
Computer Graphics. Stack di matrici di modellazione: reminder! (vedi lez 13) comporre una scena con la Model Transform. Note implementative
Computer Graphics Università dell Insubria Corso di Laurea in Informatica Anno Accademico 2014/15 Marco Tarini comporre una scena con la Model Transform Stack di matrici di modellaione: reminder! (vedi
Computer Graphics. Reminder: API. Il primo Hello World. Storia. Open Graphic Language Libreria C-like. Specifiche API. ver 4.
Computer Graphics Il primo Hello World Reminder: API Applicazioni Università dell Insubria Corso di Laurea in Informatica Anno Accademico 2014/15 HELLO WORLD, I M A TRIANGLE! SDK Algoritmi API Driver Scheda
Videogame e rendering 3D. Enrico Colombini (Erix) µhackademy 1 Marzo 2019
Videogame e rendering 3D Enrico Colombini (Erix) µhackademy 1 Marzo 2019 Volete creare un videogame? Strumenti comodi: game engine Editor 3D, componenti Runtime engine (PC, console, mobile) Scripting,
Rendering 13/01/2014. Marco Tarini - Video Game Dev - Univ Insubria (recall?) Game Engine
Rendering (recall?) Game Engine Parte del game che si occupa di alcuni dei task comuni Scena / livello Renderer Real time transofrm + lighting Models, materials Phsics engine (soft real-time) newtonian
Corso di Tecniche Avanzate per la Grafica
Corso di Tecniche Avanzate per la Grafica GLSL Docente: Massimiliano Corsini Laurea Specialistica in Informatica Università di Ferrara Cosa sono gli shaders? Gli shaders sono programmi che vengono eseguiti
Ricordiamo brevemente come possono essere rappresentate le rette nel piano: 1) mediante un'equazione cartesiana. = ( p 1
Introduzione Nella computer grafica, gli oggetti geometrici sono definiti a partire da un certo numero di elementi di base chiamati primitive grafiche Possono essere punti, rette e segmenti, curve, superfici
Introduzione al Real Time Shading
Introduzione al Real Time Shading Ing. Davide Vercelli, PERCRO davide.vercelli@sssup.it Sommario dal software all'hardware e ritorno cenni storici la pipeline grafica com'era: la pipeline fissa com'è:
Computer Graphics. Computer Graphics. Alcuni argomenti che non abbiamo trattato (o abbiamo trattato poco) Modelling: Rendering:
pillole varie di CG Alcuni argomenti che non abbiamo trattato (o abbiamo trattato poco) Modelling: superfici di suddivisione NURBS Rendering: HDR images Modelling and Rendering: HW programmabile bump-maps
Computer Graphics LIGHTING. (local) Lighting in breve. lo Shading. Baked lighting VS dynamic lighting. Es: equazione di Lighting.
Computer Graphics Lighting in breve Lezione : Università dell Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 20/2 Marco arini lo Shading Proprietà del materiale
0) transformazione di modellazione 1) transformazione di vista 2) transformazione di proiezione 3) transformazione di viewport.
Transform object Coordinates ) transformaione di modellaione ) transformaione di vista 2) transformaione di proieione 3) transformaione di viewport - world Coordinates view Coordinates - Clip M a r c o
Corso Grafica Computazionale
Corso Grafica Computazionale Trasformazioni Geometriche Docente: Massimiliano Corsini Laurea Specialistica in Ing. Informatica Università degli Studi di Siena Trasformazioni Geometriche Le trasformazioni
Corso GraficaComputazionale
Corso GraficaComputazionale Trasformazioni Geometriche Docente: Massimiliano Corsini Laurea Specialistica in Ing. Informatica Università degli Studi di Siena Overview Trasformazioni geometriche e matrici
Computer Graphics. Digital representation of 3D objects. 3D Rendering. Scena 3D rendering image. Marco Tarini - univ insubria AA 2016/2017
Computer Graphics Digital representation of 3D objects Università dell Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2016/17 Marco Tarini 3D Rendering Scena 3D
DOUBLE BUFFERING. serve a nascondere la fase di drawing utilizzato soprattutto nelle animazioni INTRODUZIONE DRAWING EVENT MANAGEMENT VIEWING
DOUBLE BUFFERING INTRODUZIONE DRAWING EVENT MANAGEMENT VIEWING DOUBLE BUFFERING Z-BUFFERING LIGHTING serve a nascondere la fase di drawing utilizzato soprattutto nelle animazioni back buffer front buffer
Il 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 )
Caveat. Sintesi di Immagini. Sintesi di Immagini. Rendering: Approccio Fisico
Sintesi di Immagini Metafora fondamentale Object vs viewer Object (scene): rappresentazione digitale (forma e caratteristiche) di un oggetto reale tridimensionale Viewer: strumento che permette di otternere
Caveat. Object e viewer, come tutte le metafore, sono entità non definite rigidamente. La luce fa parte del viewer? Il viewer è anch esso un object?
Sintesi di Immagini Metafora fondamentale Object vs viewer Object (scene): rappresentazione digitale (forma e caratteristiche) di un oggetto reale tridimensionale Viewer: strumento che permette di otternere
Computer Graphics. I 4 fattori che consideriamo. luce finale = lo Shading. ambient. + riflessione diffusa + riflessione speculare + emissione
Computer Graphics Lezione : Università dell Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2008/09 Marco Tarini lo Shading I 4 fattori che consideriamo luce finale
Computer Graphics. v 1. Rasterizer: lines (segmenti) la rasterizzazione from vertex to pixels. Rasterizzazione: lines (segmenti)
Computer Graphics Università dell Insubria Corso di Laurea in Informatica la rasterizzazione from vertex to pixels Rasterizer: lines (segmenti) Vertici (punti in R 3 ) computazioni per vertice Z Vertici
Trasf. di rotazione (in 2D) (di un angolo β ) (x,y) x f y. (x,y ) β α. Trasf. di rotazione (in due D)
Tras. di rotaione in 2D di un angolo +, ρ, 2 4 / 5 U n i v e r s i t à d e l l I n s u b r i a Tras. di rotaione in due D di un angolo +, ρ, 2 4 / 5 U n i v e r s i t à d e l l I n s u b r i a Rotaione
2. Coordinate omogenee e trasformazioni del piano
. Coordinate omogenee e trasformazioni del piano Nella prima sezione si è visto come la composizione di applicazioni lineari e di traslazioni porta ad una scomoda combinazione di prodotti matriciali e
3. Vettori, Spazi Vettoriali e Matrici
3. Vettori, Spazi Vettoriali e Matrici Vettori e Spazi Vettoriali Operazioni tra vettori Basi Trasformazioni ed Operatori Operazioni tra Matrici Autovalori ed autovettori Forme quadratiche, quadriche e
Computer Graphics. I 4 fattori che consideriamo. luce finale = lo Shading. ambient
Computer Graphics Lezione: Università dell Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 Marco Tarini lo Shading I 4 fattori che consideriamo luce finale
Anno 4 Matrice inversa
Anno 4 Matrice inversa 1 Introduzione In questa lezione parleremo della matrice inversa di una matrice quadrata: definizione metodo per individuarla Al termine della lezione sarai in grado di: descrivere
Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni. cignoni@iei.pi.cnr.it http://vcg.iei.pi.cnr.
Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni cignoni@iei.pi.cnr.it http://cg.iei.pi.cnr.it/~cignoni Introduzione Punti e ettori sono due cose dierse Basi e sistemi di riferimento
Computer 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:
Capitolo 3 Matrici. Marco Robutti. Facoltà di ingegneria Università degli studi di Pavia. Anno accademico
Capitolo 3 Matrici Marco Robutti Facoltà di ingegneria Università degli studi di Pavia Anno accademico 2017-2018 Tutorato di geometria e algebra lineare Definizione (Matrice) Una matrice A M R (k, n) è
3. Vettori, Spazi Vettoriali e Matrici
3. Vettori, Spazi Vettoriali e Matrici Vettori e Spazi Vettoriali Operazioni tra vettori Basi Trasformazioni ed Operatori Operazioni tra Matrici Autovalori ed autovettori Forme quadratiche, quadriche e
Computer Graphics. Semitrasparenze: come? Un vecchio trucco di imaging 2D: Quando scrivo un colore nello screen buffer, invece di: eseguo:
Computer Graphics Lezione 14: Università dell Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2008/09 Marco Tarini 14: alpha blending Un vecchio trucco di imaging
WebGL. Lezione 18: 15 Maggio 2014
WebGL Lezione 18: 15 Maggio 2014 Cronologia: Grafica 3D nell Hardware In principio (giurassico informatico) postazioni specializzate La Silicon Graphics si afferma come produttrice di workstation grafiche
Vettori e Transformazioni Spaziali
Game Dev Verona 2014 Rappresentazione Trasformazioni Marco Tarini Vettori e Transformazioni Spaziali Mathematics for 3D Game Progr. and C.G. (3za ed) Eric Lengyel Capitoli 2, 3, 4 1 Intro Vettori n-ple
Local Lighting 13/01/2014. Marco Tarini - Video Game Dev - Univ Insubria (recall?) Game Engine
Local Lighting (recall?) Game Engine Parte del game che si occupa di alcuni dei task comuni Scena / livello Renderer Real time transofrm + lighting Models, materials Physics engine (soft real-time) newtonian
Esercizi Di Geometria 1 (BAER) Canale 1 Da consegnare Lunedi 19 Ottobre
Esercizi Di Geometria (BAER Canale Da consegnare Lunedi 9 Ottobre SETTIMANA 3 (2 8 Ottobre Moltiplicazione di matrici Gli esercizi sono presi dal libro Intorduction to Linear Algebra di Serge Lang Esercizio
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
Grafica Real-Time, Hardware Grafico e Linguaggi di Shading. Alessandro Martinelli
Grafica Real-Time, Hardware Grafico e Linguaggi di Shading Alessandro Martinelli Grafica Real Time Il concetto di 'Real Time' in ambito grafico ha una valenza molto particolare: Fino agli anni '80, solo
Computer Graphics. Se non si vede, che non ci sia CULLING. Notazione. Lo chiamiamo culling se si scartano primitive intere.
Computer Graphics Lezione 6: culling: se c è ma non si vede! Università dell Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2010/11 Marco Tarini Se non si vede,
Grafica al calcolatore - Computer Graphics
Grafica al calcolatore - Computer Graphics Pipeline di rasterizzazione 13/03/17 Grafica 2017 1 Rasterization pipeline Abbiamo descritto la procedura intuitiva del ray-casting Abbiamo tuttavia già visto
LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO V Indice
LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 20.V.2015 VINCENZO MARRA Indice Parte 1. Input/Output standard da file 2 Esercizio 1 2 Eco di file
Rappresentazioni alternative dell orientamento
Corso di Robotica 1 Rappresentazioni alternative dell orientamento (angoli di Eulero e roll-pitch-yaw) Trasformazioni omogenee Prof. lessandro De Luca Robotica 1 1 Rappresentazioni minimali matrici di
1 Trasformazione di vettori e 1-forme per cambiamenti
PRIMA ESERCITAZIONE Trasformazione di vettori e -forme per cambiamenti di coordinate Consideriamo lo spazio di Minkowski in coordinate cartesiane {x } (x,x,x 2,x 3 ). La sua metrica è ds 2 (dx ) 2 +(dx
Geometria BAER Canale I Esercizi 11
Geometria BAER Canale I Esercizi Esercizio. Scrivere la matrice delle seguenti trasformazioni ortogonali del piano (a Proiezione ortogonale sulla retta x + y = 0 (b Rotazione di π/4 seguita da riflessione
Introduzione. Costruzione di Interfacce Primi passi in OpenGL. Sierpinski Gasket. Sierpinski gasket. Event driven programming. Stuttura del programma
Introduzione Costruzione di Interfacce Primi passi in OpenGL cignoni@iei.pi.cnr.it http://vcg.iei.pi.cnr.it/~cignoni Abbiamo visto Cosa significa rendering L approccio object viewer Mettiamo in pratica
Aritmetica dei Calcolatori 2
Laboratorio di Architettura 1 aprile 2011 1 Operazioni bit a bit 2 Rappresentazione binaria con segno 3 Esercitazione Operazioni logiche bit a bit AND OR XOR NOT IN OUT A B A AND B 0 0 0 0 1 0 1 0 0 1
Computer Graphics. Se non si vede, che non ci sia CULLING. Tipi di Culling. Notazione. Occlusion culling
Computer Graphics Lezione 6: culling: se c è ma non si vede! Università dell Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2011/12 Marco Tarini Se non si vede,
Laboratorio di Matematica e Informatica 1
Laboratorio di Matematica e Informatica 1 Matteo Mondini Antonio E. Porreca matteo.mondini@gmail.com porreca@disco.unimib.it Dipartimento di Informatica, Sistemistica e Comunicazione Università degli Studi
Geometria analitica - Esercizi 6
Geometria analitica - Esercizi 6 1. Si studi la conica di equazione 4 5 x2 + 24 5 xy + 11 5 y2 + 5x + 10y + 89 16 = 0, e se ne disegni il grafico. 2. Si studi dal punto di vista affine (senza determinare
Open Source 3D Engine. OpenGL Rendering System. Il Framework
Open Source 3D Engine OpenGL Rendering System Il Framework I moderni mezzi di programmazione, consentono a noi sviluppatori di utilizzare librerie avanzate e testate che si prestano eccellentemente allo
Robotica I. Test 11 Novembre 2009
Esercizio 1 Robotica I Test 11 Novembre 009 Si consideri una rappresentazione minimale dell orientamento data dalla seguente sequenza di angoli definiti rispetto a assi fissi: α intorno a Y ; β intorno
Grafica al calcolatore - Computer Graphics
Grafica al calcolatore - Computer Graphics Pipeline di rasterizzazione 29/02/16 Grafica 2015 1 Rasterization pipeline Abbiamo descritto la procedura intuitiva del ray-casting Abbiamo tuttavia già visto
Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona
Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario Cicli Concetti di base (MATrix LABoratory) programma interattivo per calcolo
Introduzione alla programmazione orientata agli oggetti
Introduzione alla programmazione orientata agli oggetti Oggetti, metodi e proprietà Nelle seguenti pagine, non solo si conosceranno nuovi concetti e nuovi termini, ma si vedranno anche alcune utili funzioni
ANALISI E SVILUPPO DI SHADER GRAFICI IN LINGUAGGIO GLSL ANALYSIS AND DEVELOPMENT OF GRAPHICS SHADERS USING GLSL
UNIVERSITÀ DEGLI STUDI DI PARMA FACOLTÀ DI INGEGNERIA Corso di Laurea in Ingegneria Informatica ANALISI E SVILUPPO DI SHADER GRAFICI IN LINGUAGGIO GLSL ANALYSIS AND DEVELOPMENT OF GRAPHICS SHADERS USING
Geometria BAER I canale Foglio esercizi 2
Geometria BAER I canale Foglio esercizi Esercizio. ( ) Data la matrice, determinare tutte le matrici X Mat( ) tali che AX = 0 e tutte le matrici Y Mat( ) tali che Y 0. ( ) ( ) ( ) x y x + z y + w Soluzione:
Realtà Virtuale: il presente, il passato, il Shading futuro
Lighting Illuminazione Determinare le caratteristiche della luce che arriva da un punto della scena all occhio di chi la osserva Problema computazionalmente oneroso Fenomeni fisici correlati: Illuminazione
1 Trasformazione di vettori e 1-forme per cambiamenti
Trasformazione di vettori e -forme per cambiamenti di coordinate Consideriamo lo spazio di Minkowski in coordinate cartesiane {x µ } (x,x,x 2,x 3 ). La sua metrica è ds 2 (dx ) 2 +(dx ) 2 +(dx 2 ) 2 +(dx
1 Cambiamenti di riferimento nel piano
1 Cambiamenti di riferimento nel piano Siano date due basi ortonormali ordinate di V : B = ( i, j) e B = ( i, j ) e supponiamo che i = a i + b j j = c i + d j allora per un generico vettore v V abbiamo
x1 + 1 x T p. x 2
Geometria e Algebra Trasformazioni del piano Soluzioni Siano p e q i Trovare le formule per la traslazione T p ii Calcolare T p T p iii Calcolare T p T p iv Calcolare T q T p T p T q Sol i Si ha ii iii
Ripulire. Aggiungere al mainform. CIGLWidget. MainForm. designer. I dati principali dell app QTMoebius erano contenuti nella classe CIMoebius
Ripulire Costruione di Interfacce Leione 1 cignoni@iei.pi.cnr.it http://vcg.isti.cnr.it/~cignoni I dati principali dell app QTMoebius erano contenuti nella classe CIMoebius chi possedeva l oggetto? soluione
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
Game Dev Insubria 2014/ /10/2015. Funzione matematica prende punti 3D / vettori 3D restituisce punti 3D / vettori 3D
Game Dev 2015/2016 Univ Insubria Scene composite: lo scene graph Marco Tarini Recap: trasformazioni spaziali Funzione matematica prende punti 3D / vettori 3D restituisce punti 3D / vettori 3D Es: traslazioni,
Geometria BAER Canale A-K Esercizi 11
Geometria BAER 6-7 Canale A-K Esercizi Esercizio. Scrivere la matrice delle seguenti trasformazioni ortogonali del piano (a Proiezione ortogonale sulla retta x + y = (b Rotazione di π/4 seguita da riflessione
LE MATRICI NEL PIANO
LE MATRICI NEL PIANO A cura di Buon Laura, Carniel Chiara, Lucchetta Jessica, Spadetto Luca Realizzato nell'ambito del Progetto Archimede con la supervisione del Prof FZampieri ISISS MCasagrande, Pieve
Vettori e Matrici. Corso di Calcolo Numerico. 24 Aprile 2018
Vettori e Matrici 24 Aprile 2018 Richiami In MATLAB, ogni variabile ha una struttura di tipo vettoriale o array. Un array è un insieme di valori ordinati, cioè memorizza più dati all interno di una struttura
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
Database delle informazioni geometriche per descrivere il tetraedo (riferimento locale al tetraedo)
Un esempio DIDATTICO esplicito relativo ai cambiamenti di coordinate e alla applicazione delle matrici di trasformazione relative alla formazione della immagine di un tetraedo. Passo 1. Definizione dell'oggetto:
INTRODUZIONE A MATLAB
INTRODUZIONE A MATLAB INTRODUZIONE A MATLAB MATLAB (MATrix LABoratory) è un linguaggio di programmazione per applicazioni scientifiche (elaborazione numerica dei segnali, progetto di simulatori, sintesi
Obiettivi. Costruzione di interfacce. Esame. Programma. Strumenti. Concetti di base
Obiettivi Costruzione di interfacce Paolo Cignoni p.cignoni@isti.cnr.it http://vcg.isti.cnr.it/~cignoni Progettazione e realizzazione di applicazioni interattive, con un interfaccia utente non banale che
Piccola rassegna di Algebra delle Matrici
Piccola rassegna di Algebra delle Matrici 1 Introduzione Questa nota va intesa semplicemente come un brevissimo sommario di alcuni concetti relativi alle Matrici, che dovete utilizzare nell ambito dello
Lighting. Realtà Virtuale: il presente, il passato, Lighting e il Shading futuro
ighting Illuminazione Determinare le caratteristiche della luce che arriva da un punto della scena all occhio di chi la osserva Problema computazionalmente oneroso Fenomeni fisici correlati: Illuminazione
Cinematica. La cinematica riguarda lo studio delle 4 funzioni che legano le variabili giunto con le variabili cartesiane
Cinematica La cinematica riguarda lo studio delle 4 funzioni che legano le variabili giunto con le variabili cartesiane Cinematica diretta di posizione Cinematica inversa di posizione Cinematica diretta
Introduzione a MATLAB
Introduzione a MATLAB Laboratorio 1 Segnali per le Telecomunicazioni Prof. Prati Claudio Maria Autore: Federico Borra Politecnico di Milano, DEIB Email: federico.borra@polimi.it Marzo 17, Ultima revisione:
GAME DEV: tools programming. Parte 2: programming
GAME DEV: tools programming Parte 2: programming Marco Tarini Tools per programmare un tool: 1. Tools per GUI programming 2. API grafiche (opengl, directx) 3. Interfacciamento con SO (sist. op.) finestre
WEBGL 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
Compito di Meccanica Razionale M-Z
Compito di Meccanica Razionale M-Z 11 giugno 213 1. Tre piastre piane omogenee di massa m aventi la forma di triangoli rettangoli con cateti 4l e 3l sono saldate lungo il cateto più lungo come in figura
Grafica al Calcolatore Rasterizzazione - 1. Introduzione
Grafica al Calcolatore Rasterizzazione - 1 Introduzione Grafica al Calcolatore Rasterizzazione - 2 Rasterizzazione Grafica al Calcolatore Rasterizzazione - 3 In sintesi, la rasterizzazione prende un singolo
Rendering I - geometric processing
Rendering I - geometric processing Dove si descrivono i principali metodi di alto livello utilizzati per ottenere una immagine a partire da una descrizione degli oggetti 3D Introduzione Trasformazioni
Computazione per l interazione naturale: Richiami di algebra lineare
Computazione per l interazione naturale: Richiami di algebra lineare Corso di Interazione uomo-macchina II Prof. Giuseppe Boccignone Dipartimento di Informatica Università di Milano boccignone@di.unimi.it
Esercizi Programmazione I
Esercizi Programmazione I Novembre 06 Esercizio Valutazione espressioni con puntatori Valutare e definire il tipo delle seguenti espressioni. Inserire le parentesi per sotolineare l ordine della valutazione
OpenGL: visualizzazione 3D
OpenGL: visualizzazione 3D La visualizzazione di una scena avviene come se si stesse usando una macchina fotografica per la quale si può controllare la posizione nello spazio 3D; si può cambiare il tipo
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
I sistemi lineari di n equazioni in n incognite
I sistemi lineari I sistemi lineari di n equazioni in n incognite I sistemi lineari di n equazioni in n incognite, sono formati da equazioni di primo grado, in cui le incognite hanno tutte esponente uguale
Elementi di teoria delle trasformazioni
Elementi di teoria delle trasformazioni LA STRUTTURA DI GRUPPO La struttura di gruppo Un gruppo è un insieme G in cui è definita una operazione ("leggere tondino") inoltre c a,b 2 G allora a b 2 G d 1
Fondamenti di Grafica 3D Sistemi di riferimento e trasformazioni.
Fondamenti di Grafica D Sistemi di riferimento e trasformazioni paolo.cignoni@isti.cnr.it http://cg.isti.cnr.it/~cignoni Introduzione Punti e ettori sono due cose dierse Basi e sistemi di riferimento (coordinate
Geometria BAER Canale I Esercizi 12
Geometria BAER Canale I Esercizi Alcuni di questi esercizi forse sono un po difficili visto che abbiamo fatto questa parte un po in fretta, ma si può sempre provare. Esercizio. Si scrivano le equazioni
Prodotto scalare e prodotto vettoriale. Elisabetta Colombo
Corso di Approfondimenti di Matematica Biotecnologie, Anno Accademico 2010-2011, http://users.mat.unimi.it/users/colombo/programmabio.html Vettori Vettori 1 2 3 4 di di Ricordiamo il in R n Dati a = (a
Università degli Studi di Bergamo Modulo di Geometria e Algebra Lineare (vecchio programma) 2 settembre 2013 Tema A
Università degli Studi di Bergamo Modulo di Geometria e Algebra Lineare (vecchio programma) settembre 013 Tema A Tempo a disposizione: ore. Calcolatrici, libri e appunti non sono ammessi. Ogni esercizio
Nome Cognome Matricola. e una base di R 2 che la diagonalizza
Geometria e Algebra Lineare / II parte Scritto del 14/2/19 Quesiti Nome Cognome Matricola 1. Se A M 5 5 (C) e p A (t) = (t+1) 3 (t i) 2, è possibile che A sia diagonalizzabile? Spiegare. 2. Trovare gli
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
0.1. MATRICI SIMILI 1
0.1. MATRICI SIMILI 1 0.1 Matrici simili Definizione 0.1.1. Due matrici A, B di ordine n si dicono simili se esiste una matrice invertibile P con la proprietà che P 1 AP = B. Con questa terminologia dunque
Fondamenti di Informatica A.A. 2016/17
Fondamenti di Informatica Int ro d u z i o n e a l l a p ro g ra m m a z i o n e i n M AT L A B : E s e rc i ta z i o n e 2 P ro f. C h r i st i a n E s p o s i to C o rs o d i L a u re a i n I n g e g
Processo di rendering
Processo di rendering 1 Trasformazioni di vista Trasformazioni di vista Il processo di visione in tre dimensioni Le trasformazioni di proiezione I parametri della vista 3D I sistemi di coordinate 2 I parametri