Off-Screen RENDER TO TEXTURE Prodotto matriciale a blocchi nns s C m x s.

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

Corso di Fondamenti di Programmazione canale E-O
Esercitazioni If nidificati
Sottoprogrammi: funzioni e procedure
Struttura di un programma
Array multidimensionali
ITIS LATTANZIO Unità Didattica Materia Informatica Funzioni in C++
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Programmazione Ingegneria TLC
PROPRIETÀ DEI DETERMINANTI
Introduzione al linguaggio C
Le funzioni.
Corso di Fondamenti di programmazione a.a.2009/2010
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 4 Aprile 2013.
IL MODELLO DI REGRESSIONE MULTIPLA
RICHIAMI ELEMENTARI DI ALGEBRA MATRICIALE
Statistica per le decisioni aziendali ed analisi dei costi Modulo II - Statistica per le decisioni Aziendali Richiami di Algebra Matriciale.
[Iriad Kumbuli] OpenGL Framebuffer
Texture Mapping.
Costruzione di Interfacce Lezione 6 Esercitazione Trasformazioni
25 Nov 2002Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 22 Estensioni Opengl, Multitexturing,
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 27 Estensioni Opengl, Multitexturing,
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
22 Nov 2002Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 22 Texturing
Computer Graphics Marco Tarini Lezione 7: rasterizzazione la fabbrica dei frammenti Università dellInsubria Facoltà di Scienze MFN - Varese Corso di Laurea.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Uso dei cicli y t =c+ty t-1 +e Un uso dei cicli può essere quello di creare una serie storica per cui y t =c+ty t-1 +e dove poniamo c e t scalari ed e~N(0,1).
APPUNTI SUL LINGUAGGIO C
Selezione (=scelta) con “if-else”
2) Trattamento dell'informazione. Lab.Calc. I AA 2002/03 - cap.22 Esempio Supponiamo di volere calcolare X, per uno o più possibili valori di Y, in base.
Esercizi FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo.
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
Programmazione in Java
Programmazione in Java Claudia Raibulet
ITIS LATTANZIO Unità Didattica Materia Informatica Funzioni in C++
Il Modello logico funzionale dell’elaboratore
2. Hardware Componenti di base di un computer
Equazione di secondo grado.
I Metodi in Java Il termine "metodo" è sinonimo di "azione". Quindi, affinché un programma esegua qualche istruzione, deve contenere metodi.
ARRAY MULTIDIMENDIONALI
Linguaggio C++ Fondamenti Un primo semplice esempio:
void binario(int n); …………………
Massimo Comun Divisore
Programmazione di Calcolatori
Università degli Studi di BresciaA.A. 2012/2013 Fondamenti di Programmazione Docente: Alessandro SaettiA.A. 2012/2013 Università degli Studi di Brescia.
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
Soluzioni e commenti esercizi 1 e 2
Registro a scorrimento
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Complessità di un algoritmo
Sintassi: Programma e classi Program::=prog {ClassDeclList {StatList}} ClassDeclList::=ClassDecl ClassDeclList |  ClassDecl::=class Ide c [StaticMetDefList]
#include void main() { int a,b,c,; float s, x,x1,x2,delta,alfa,beta; int num[3]; int i; printf("La forma classica dell'equazione di 2° grado è: a*x^2+b*x+c=0\n.
Graphic Processing Unit GPU. ARCHITETTURA DI COMUNICAZIONE.
Dato un vettore di reali di dimensione DIM, si inseriscano N elementi presi da tastiera, si utilizzi 0 per terminare l’inserimento. Ordinare gli elementi.
Computer Graphics Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo.
Arduino: introduzione alla programmazione
Informatica 4 Funzioni. FUNZIONE: definizione MATEMATICA Relazione (o applicazione) binaria tra due insiemi A e B che associa a ogni elemento di A un.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Marzo 2014.
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 2: 20 Aprile 2015 Marco D. Santambrogio – Gianluca Durelli –
Metodo di Cramer Dato il sistema lineare a due incognite per risolvere il sistema dobbiamo costruire 3 matrici. È detta matrice un qualsiasi gruppo di.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 8 Aprile 2015.
Breve Storia 3d prima generazione (escludiamo Wolf3d, Doom e Duke3d, che erano una sorta di 2D)  per ogni triangolo che compone una mesh calcoliamo la.
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo Esercizi su stringhe e file 15 Stringhe e file.
Esercizio fatture.
Transcript della presentazione:

Off-Screen RENDER TO TEXTURE Prodotto matriciale a blocchi nns s C m x s

Prodotto matriciale a blocchi Partiziono le matrici A e B con sottomatrici quadrate di ugual dimensione nello specifico con blocchi di 2x2 elementi Memorizzo sulla memoria video i singoli sottoblocchi di 2x2 elementi in strutture rgbablockAblockB

i,k k,j x = C i,j = blockA.rgba * blockB.rara blockA.grab * blockB.bgbg Prodotto matriciale a blocchi Prodotto matriciale del generico sottoblocco C i,j da 2x2 elementi calcolato con strutture rgba blockA.rgba blockB.rgba i,k k,j blockA.rgba * blockB.rara tex2D (Tex_Ck, gl_FragCoord) + ( blockA.rgba * blockB.rara ) + ( blockA.grab * blockB.bgbg )

Prodotto matriciale a blocchi blockAblockB vec2 texCoordA = vec2( k_parz, gl_FragCoord.y ); vec2 texCoordB = vec2( gl_FragCoord.x, k_parz ); vec4 blockA = vec4( texture2DRect( textureA, texCoordA ) ); vec4 blockB = vec4( texture2DRect( textureB, texCoordB ) ); vec4 blockC = vec4( texture2DRect( Tex_Ck, gl_FragCoord) ); X j X = colonne = j Y i Y = righe = i

Prodotto matriciale a blocchi uniform sampler2DRect Tex_Ck ; uniform sampler2DRect textureA; uniform sampler2DRect textureB; uniform float k_parz; void main(void) { vec2 texCoordA = vec2( k_parz, gl_FragCoord.y ); vec2 texCoordB = vec2( gl_FragCoord.x, k_parz ); vec4 blockA = vec4( texture2DRect( textureA, texCoordA ) ); vec4 blockB = vec4( texture2DRect( textureB, texCoordB ) ); vec4 blockC = vec4( texture2DRect( Tex_Ck, gl_FragCoord) ); blockC += vec4( (blockA.rgba * blockB.rara) + (blockA.grab * blockB.bgbg) ); gl_FragColor = vec4(blockC); }OpenGL Shader Multi-Pass

Prodotto matriciale a blocchi glFramebufferTexture2DEXT glActiveTexture glBindTexture Off-Screen Render to Texture Input:Red Texture Output: Green Texture Input:Green Texture Output: Red Texture Tex_Ck

VersionePre-Wrappata le texture sono memorizzate per righe di pixel e i pixel in successione sono memorizzati i canali di colore rgba. A = Prodotto matriciale a blocchi

uniform sampler2DRect mat; void main(void){ vec4 block; int mod_x = int(mod(gl_FragCoord.x, 2)); int div_x = int(gl_FragCoord.x / 2); int mult_y = int(gl_FragCoord.y)* 2; float x = div_x; float y = mult_y; vec4 rg_block = texture2DRect( mat, vec2( x, y ) ); vec4 ba_block = texture2DRect( mat, vec2( x, y ) ); if (mod_x == 0) { block.rg = rg_block.rg; block.ba = ba_block.rg; } if (mod_x == 1) { block.rg = rg_block.ba; block.ba = ba_block.ba; } gl_FragColor = vec4( block ); }OpenGLPre-Wrapped Shader Single-Pass

Geforce GO 7300