• Non ci sono risultati.

Marco Tarini, Università dell'InsubriaAA 2016/2017Grafica computazionale -Es 031Computer GraphicsMarco TariniUniversità dell’InsubriaCorso di Laurea in InformaticaAnno Accademico 2016/17Trasformazioni3Din GLSLMatrici in GLSL

N/A
N/A
Protected

Academic year: 2021

Condividi "Marco Tarini, Università dell'InsubriaAA 2016/2017Grafica computazionale -Es 031Computer GraphicsMarco TariniUniversità dell’InsubriaCorso di Laurea in InformaticaAnno Accademico 2016/17Trasformazioni3Din GLSLMatrici in GLSL"

Copied!
3
0
0

Testo completo

(1)

Marco Tarini, Università dell'Insubria AA 2016/2017

Grafica computazionale - Es 03 1

Computer Graphics

Marco Tarini

Università dell’Insubria

Corso di Laurea in Informatica Anno Accademico 2016/17

Trasformazioni 3D in GLSL

Matrici in GLSL

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 0 1 6 / 1 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

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[ 0 ] ; // prendi la 1ma colonna di m m[ 3 ] = u ; // setta la 4ta colonna di m m = mat4( v ) ; // matrice diagonale

m = mat4( 1.0 ) ; // 1 nella diagonale (cioè l’ide)

(2)

Marco Tarini, Università dell'Insubria AA 2016/2017

Grafica computazionale - Es 03 2

Matrici in GLSL

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 0 1 6 / 1 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

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 0, e 1 sulla diago

Serializzare le matrici

Row-major Order

(per riga) : Column-major Order

(per colonna) :

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 0 1 6 / 1 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

 

 

 

 

p o n m

l k j i

h g f e

d c b a

 

 

 

 

p l h d

o k g c

n j f b

m i e a

trasposta di

« trascrivere come serie di numeri » (in memoria, su disco, etc)

a b c d e f g h i j k l m n o p

standard più

(3)

Marco Tarini, Università dell'Insubria AA 2016/2017

Grafica computazionale - Es 03 3

Piano

• Costruire una semplice forma tridimensionale

• Nel vertex shader (GLSL):

costruire matrici di modellazione/

vista/

proiezione

• Applicarle.

• In seguito, costruire tali

matrici nel codice dell’applicazione (JavaScript) e passarle come uniform

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 0 1 6 / 1 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Per una visione d’insieme del codice, vedere l’implementazione sul sito:

Esercitaz 03

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 0 1 6 / 1 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Riferimenti

Documenti correlati

volumetric data, polygonal meshes, NURBS, splines, subdivision surfaces, LODs, multiresolution structures…. • 3D acquisition (catturare modelli 3D

much cheaper than sampled sound to store, but requires instrument liberary at runtime not much used anymore (in games) still most convenient for procedural music. Specialized

3D data models textures materials shaders animations collision objects scenes etc audio. music sound fxs ambient sounds voice

3D models meshes textures materials shaders animations collision objects scenes.

ogni voxel un colore RGB solid RGB textures. Come tutte

Mathematics for 3D Game Progr. (3za ed)

Nome dell'insegnamento: Analisi Matematica 1 Docente titolare: Massimo Gobbino.. Prerequisiti: tutto il precorso, in particolare polinomi, manipolazione di

A simple rendering method is presented to avoid vertex seams in cylindrical and toroidal uv-mappings used for texture mapping (a vertex seam is a vertex dupli- cation of a