Introduzione al Real Time Shading

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Introduzione al Real Time Shading"

Transcript

1 Introduzione al Real Time Shading Ing. Davide Vercelli, PERCRO

2 Sommario dal software all'hardware e ritorno cenni storici la pipeline grafica com'era: la pipeline fissa com'è: la pipeline programmabile GLSL panoramica esempi integrazione in XVR 2

3 Software e hardware I Dal software all'hardware pro SW performance contro flessibilità requisiti: HW algoritmo maturo notevoli vantaggi computazionali rapporto costi/benefici 3

4 Software e hardware II Dall'hardware al software N.B.: programmabilità di hardware specializzato pro flessibilità contro SW HW complessità 4

5 La discesa verso l'hardware I struttura molto simile dei programmi 3d collo di bottiglia della rasterizzazione es. disegno di triangoli pieni a schermo texture mapping prima generazione (Voodoo 3dfx) supporto rasterizzazione in hardware 2 texture per poligono 5

6 La discesa verso l'hardware II nuovi colli di bottiglia trasformazione dei vertici calcoli di illuminazione seconda generazione (GeForce2) salto di qualità: supporto Transform & Lighting 6

7 Analisi del successo in entrambi i casi: algoritmi molto maturi vantaggio computazionale notevole parallelismo vincente: grandi quantità di operazioni simili su dati altamente indipendenti costi/benefici l'utente paga una scheda in più ma può finalmente avere grafica 3D davvero 7

8 Come migliorare la qualità visiva? modelli di illuminazione più accurati? modello OpenGL di default troppo semplicistico ma non sempre interessa il realismo supporto a più modelli di illuminazione? ma quali? e quanti? supporto a tecniche ad hoc? strada seguita inizialmente 8

9 La crescente importanza delle texture non solo colori: environment mapping bump mapping normal mapping ecc. multitexturing combinare più texture su un oggetto laborioso combinarle in maniera rigida 9

10 Programmabilità delle GPU vera soluzione: programmabilità lasciamo che siano i programmatori a decidere cosa fare e come nascono le GPU (Graphics Processing Unit) vertici normali texture coords textures programma ecc. 10

11 Lo shading to shade, ovvero ombreggiare : assegnare un colore ai punti di una superficie a prescindere dal criterio con cui viene operata questa scelta shading procedurale: shading mediante una funzione di codice shader: programma che implementa un particolare shading 11

12 Nel mondo offline Il dominio di RenderMan standard messo a punto dalla Pixar shading molto potente (non solo illuminazione ) 12

13 La risalita verso il software terza generazione programmabilità molto limitata linguaggio assembler limite di istruzioni molti altri limiti (accessi alle texture, etc.) quarta generazione programmabilità più flessibile linguaggi di alto livello limiti accettabili (ma diversi di GPU in GPU) e via dicendo: non si torna più indietro 13

14 La GPU oltre la grafica mostruosa potenza delle GPU programmabilità dell'hardware usare la GPU al di fuori della grafica GPGPU General-Purpose computing on GPU in realtà non tanto general particolarmente efficace solo in una ristretta ma importante categoria di calcoli in futuro supporto esplicito nelle schede 14

15 15 La pipeline: com'era e com'è

16 Definizione di pipeline 16 letteralmente conduttura, catena di montaggio è l'insieme dei vari stadi (stage) di elaborazione attraverso cui passano i dati nota: gli stadi sono in serie ma insiemi diversi di dati vi possono passare in parallelo

17 Pipeline fissa (non programmabile) 17

18 1. Geometria punti, linee, poligoni specificabili in vari modi immediate mode (un vertice alla volta) vertex arrays display lists vertex buffers (in memoria video) 18

19 2. Operazioni sui vertici il famoso Transform & Lighting trasformazioni vertici: modelview e projection normali: rotazione texture coordinates: texture matrix illuminazione stabilito il colore (materiali, luci, ecc.) ogni vertice è indipendente in questo stadio 19

20 3. Montaggio delle primitive raggruppamento dei vertici richiesti dalla primitiva corrente point: 1 vertice line: 2 vertici triangle: 3 vertici o 1 (fan e strip) quadriangle: 4 vertici o 2 (strips) 20

21 4. Elaborazione delle primitive clipping sia clipping planes che view frustum possibile eliminazione primitive proiezione prospettica viewport transform ottengo le window coordinates backface culling altra possibile eliminazione 21

22 5. Rasterizzazione n vertici m fragments generazione di fragments N.B.: fragment!= pixel un pixel può essere il risultato di un'operazione fra più fragment un fragment può essere scartato 22

23 6. Elaborazione dei fragment texturing applicazione delle texture tantissime possibilità nebbia 23

24 7. Operazioni sui fragment scissor test si può scrivere in quest'area dello schermo? alpha test il fragment ha alpha > 0? stencil test simile allo scissor ma con maschera a piacere depth test il fragment è davanti alla destinazione? blending come combino il colore con ciò che è presente? 24

25 8. Operazioni sul framebuffer cosa vado effettivamente a scrivere? colore con colormask profondità con depthmask stencil con stencilmask 25

26 Pipeline programmabile 26 NB: texture memory accessibile dal vp!

27 Nuove possibilità di rilievo texture fetch dal vertex processor displacement mapping possibili texture fetch dipendenti sulla base di un valore letto ne leggo un altro 27

28 Vertex processor 28

29 Vertex processor: input attributi (diversi per ogni vertice) di default: glvertex, glnormal, gltexcoord, glcolor... personalizzati: glvertexattrib variabili uniformi (costanti per grossi gruppi di vertici) di default: matrici, informazioni di stato personalizzati: gluniform 29

30 Vertex processor: output gl_position coordinate omogenee in clip space variabili varying (verranno interpolate lungo la primitiva) di default: gl_frontcolor, gl_texcoord[i]... impostabili dall'utente es. notevole: normali 30

31 Fragment processor 31

32 Fragment processor: input variabili varying (interpolate dallo stadio di rasterizzazione) di default: gl_color, gl_texcoord[i]... definite nel vertex shader variabili uniformi come per il vertex shader variabili speciali gl_fragcoord, coordinate sullo schermo gl_frontfacing 32

33 Fragment processor: output gl_fragcolor finalmente, colore RGBA del fragment gl_fragdepth opzionalmente anche la profondità di default calcolata automaticamente oppure può scartare il fragment utile per fare materiali bucati (es. ruggine) 33

34 Osservazioni sulla pipeline corrente 1 in, 1 out: non posso generare geometria ogni vertice è considerato singolarmente non ho informazioni topologiche, di prossimità non posso agire a livello di primitiva non posso stabilire direttamente la posizione di un fragment sullo schermo le funzionalità della pipeline fissa vanno riscritte se servono NB: vertici e fragment possono essere eliminati dopo che li ho processati 34

35 35 Introduzione a GLSL

36 Panoramica è il linguaggio di shading di OpenGL multipiattaforma estensione da OpenGL 1.5 ufficialmente integrato da OpenGL 2.0 molto simile ai concorrenti HLSL e Cg simile ad una versione semplificata e più rigida del C++ compilato dal driver 36

37 Modello di esecuzione 37

38 Vantaggi architetturali ~indipendenza dal motore di rendering (shading procedurale in generale) dal punto di vista del codice, le funzionalità possono essere molto ad hoc riusabilità programmazione anche separata indipendenza dall'hardware (shading di alto livello in generale) uno shader in futuro va solo ricompilato, cfr. con gli shader assembly nb: performance potenzialmente molto diverse 38

39 Breve panoramica sulla sintassi simile al C++ ma più severo sui tipi conversioni esplicite niente switch, goto, ecc. funzioni con in, out e inout per i parametri supportati solo i float nuovi tipi: vecn, matn, samplernd vettori con swizzle (.xyzw,.rgba,.stpq) nuovi qualifiers: attribute (solo vertex), uniform, varying nutrita libreria di operazioni di base 39

40 Lo Hello World degli shader [VERTEX SHADER] void main() { gl_position = ftransform(); // equivale concettualmente a: // gl_position = gl_modelviewprojectionmatrix * // gl_vertex; } [FRAGMENT SHADER] void main() { gl_color = vec4(1.0, 0.0, 0.0, 1.0); } la primitiva viene completamente rossa 40

41 41 Il tangent space

42 A cosa serve il tangent space grandezze solidali con la superficie (es. normali): in che spazio le utilizziamo? object space e eye space: vanno trasformate non è fattibile quando variano per fragment la risposta è il tangent space o surface local in generale 42

43 Il tangent space 43 spazio definito da 3 vettori: la normale sempre [0, 0, 1] da non confondere con la normale perturbata la tangente la binormale normale ^ tangente

44 Come usare il tangent space l'applicazione deve mandare una tangente coerente per ogni vertice calcoliamo la binormale trasformiamo in tangent space: direzione della luce direzione della camera la matrice si costruisce banalmente: 44

45 45 GLSL shaders in XVR

46 Supporto in XVR Script Editor a partire dalla serie beta supporto ai file.sh con syntax highlight scaricabile da wiki.vrmedia.it due modi di usare gli shader invocandoli esplicitamente da script integrandoli in un file AAM con XVR Shader Editor alcuni uniform sono inviati automaticamente da XVR 46

47 Modalità d'uso esplicita var sh = CvmShaderProgram( prog.sh ); var mesh = CvmNewMesh( mesh.aam ); sh.start(); sh.setparameter( nome_uniform_a, valore1); sh.setparameter( nome_uniform_b, valore2); mesh.draw(); // viene disegnata con lo shader sh.stop(); 47

48 Uso implicito 48 una volta impostato lo shader con XVRShaderEditor è sufficiente disegnare la mesh var mesh = CvmNewMesh( mesh.aam ); mesh.draw();

49 49 Tool di supporto per la programmazione di shader

50 ATI Rendermonkey 50

51 Typhoon Labs Shader Designer 51

52 nvidia FX Composer (Cg) 52

53 Risorse online specifiche, link vari sito dell'orange Book developer.3dlabs.com documentazione varia esempi e tutorial wiki.vrmedia.it esempi relativi ad XVR 53

Corso di Tecniche Avanzate per la Grafica

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

Dettagli

Rendering 13/01/2014. Marco Tarini - Video Game Dev - Univ Insubria (recall?) Game Engine

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

Dettagli

Aggiungiamo attributi (per vertice!)

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

Dettagli

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, 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

Dettagli

Corso di GraficaComputazionale

Corso di GraficaComputazionale Corso di GraficaComputazionale GLSL Docente: Massimiliano Corsini Laurea Specialistica in Ing. Informatica Università degli Studi di Siena Cosa sono gli shaders? Gli shaders sono programmi che vengono

Dettagli

Fondamenti di Grafica Tridimensionale

Fondamenti di Grafica Tridimensionale Fondamenti di Grafica Tridimensionale La Pipeline Grafica Marco Di Benedetto marco.dibenedetto@isti.cnr.it Visualizzazione dell Informazione noi siamo qui Informazione mondo reale (es: 3D scans) creazione

Dettagli

Texture 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 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

Dettagli

Introduzione alla GPGPU Corso di sviluppo Nvidia CUDATM. Davide Barbieri

Introduzione alla GPGPU Corso di sviluppo Nvidia CUDATM. Davide Barbieri Introduzione alla GPGPU Corso di sviluppo Nvidia CUDATM Davide Barbieri Contatti skype: davbar86 mail: davide.barbieri@ghostshark.it Panoramica corso Introduzione al mondo delle GPU Modello GPGPU Nvidia

Dettagli

Fondamenti di Grafica Tridimensionale

Fondamenti di Grafica Tridimensionale Fondamenti di Grafica Tridimensionale La Pipeline Grafica Marco Di Benedetto marco.dibenedetto@isti.cnr.it Visualizzazione dell Informazione noi siamo qui Informazione mondo reale (es: scans) creazione

Dettagli

Introduzione al Many/Multi-core Computing

Introduzione 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

Dettagli

Grafica al calcolatore - Computer Graphics

Grafica al calcolatore - Computer Graphics Grafica al calcolatore - Computer Graphics 8 Pipeline di rasterizzazione - 2 12/12/14 Grafica 2014 1 Riepilogo Operazioni geometriche Pixel processing 12/12/14 Grafica 2014 2 Rasterizzazione/scan connversion

Dettagli

Grafica Computazionale

Grafica Computazionale Grafica Computazionale La Pipeline Grafica Fabio Ganovelli fabio.ganovelli@gmail.com a.a. 2006-2007 noi siamo qui Informazione mondo reale (es: 3D scans) creazione (es: videogames) Calcolo (es: Sci-Vis)

Dettagli

HIGH PERFORMANCE COMPUTING SU UNITA' GRAFICHE PROGRAMMABILI

HIGH PERFORMANCE COMPUTING SU UNITA' GRAFICHE PROGRAMMABILI ALMA MATER STUDIORUM UNIVERSITA' DI BOLOGNA SEDE DI CESENA FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA IN SCIENZE DELL'INFORMAZIONE HIGH PERFORMANCE COMPUTING SU UNITA' GRAFICHE

Dettagli

Grafica Computazionale

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

Dettagli

Videogame e rendering 3D. Enrico Colombini (Erix) µhackademy 1 Marzo 2019

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,

Dettagli

Corso di Tecniche Avanzate per la Grafica Texturing

Corso 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

Dettagli

Fondamenti di Grafica Tridimensionale

Fondamenti di Grafica Tridimensionale Fondamenti di Grafica Tridimensionale La Pipeline Grafica Marco Di Benedetto marco.dibenedetto@isti.cnr.it Visualizzazione dell Informazione noi siamo qui Informazione mondo reale (es: 3D scans) creazione

Dettagli

Grafica al calcolatore - Computer Graphics

Grafica al calcolatore - Computer Graphics Grafica al calcolatore - Computer Graphics 8 Pipeline di rasterizzazione - 2 24/11/12 Grafica 2013 1 Riepilogo Operazioni geometriche Pixel processing 24/11/12 Grafica 2013 2 Rasterizzazione/scan connversion

Dettagli

Cenni al rendering di ombre

Cenni al rendering di ombre Cenni al rendering di ombre Davide Gadia Corso di Programmazione Grafica per il Tempo Reale Laurea Magistrale in Informatica per la Comunicazione a.a. 2012/2013 Ombre Componenti fondamentali per aumentare

Dettagli

Cenni al rendering di ombre

Cenni al rendering di ombre Cenni al rendering di ombre Davide Gadia Corso di Programmazione Grafica per il Tempo Reale Laurea Magistrale in Informatica per la Comunicazione a.a. 2013/2014 Ombre Componenti fondamentali per aumentare

Dettagli

Pipeline di rendering. Pipeline di rendering. Outline. Grafica off-line vs Grafica real-time

Pipeline di rendering. Pipeline di rendering. Outline. Grafica off-line vs Grafica real-time Pipeline di rendering Davide Gadia Corso di Programmazione Grafica per il Tempo Reale Laurea Magistrale in Informatica per la Comunicazione a.a. 2013/2014 Outline Grafica off-line vs Grafica real-time

Dettagli

ANALISI E SVILUPPO DI SHADER GRAFICI IN LINGUAGGIO GLSL ANALYSIS AND DEVELOPMENT OF GRAPHICS SHADERS USING GLSL

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

Dettagli

Computer Graphics. Memoria RAM nelle schede grafiche. Texture Mapping: paradigma di memoria. Concetto. Tessiture: Caso più comune.

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:

Dettagli

Grafica al calcolatore Computer Graphics

Grafica al calcolatore Computer Graphics Grafica al calcolatore Computer Graphics 8 Pipeline di rasterizzazione - 2 1 Pipeline grafica Operazioni geometriche Pixel processing 2 Rasterizzazione/scan connversion Con il termine rasterizzazione si

Dettagli

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. 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

Dettagli

Corso di Grafica Computazionale Texturing

Corso di Grafica Computazionale Texturing 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

Dettagli

mat4 m, ma, mb ; vec4 v, u; m *= mb ; // come dire: m = m * mb (non mb * m!) u = m * v ; // prodotto matrice-vettore

mat4 m, ma, mb ; vec4 v, u; m *= mb ; // come dire: m = m * mb (non mb * m!) u = m * v ; // prodotto matrice-vettore 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

Dettagli

Realtà Virtuale: il presente, il passato, il Shading futuro

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

Dettagli

Corso di Grafica Computazionale

Corso 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

Dettagli

Lighting. Realtà Virtuale: il presente, il passato, Lighting e il Shading futuro

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

Dettagli

Grafica Computazionale. Texturing. Fabio Ganovelli a.a

Grafica 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

Dettagli

Computer Graphics. Superfici di suddivisione. Modo molto diffuso per costruire mesh. modelling: superfici di suddivisione

Computer Graphics. Superfici di suddivisione. Modo molto diffuso per costruire mesh. modelling: superfici di suddivisione modelling: superfici di suddivisione Modo molto diffuso per costruire mesh 1: fare mesh di controllo a bassa risoluzione "a mano" : raffinarla automaticamente iterativamente (ad ogni interazione si aggiungono

Dettagli

WebGL. Lezione 18: 15 Maggio 2014

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

Dettagli

Il texture fetch (o: texture lookup) Operazione molto semplice in GLSL, es: e si memorizza le coord texture (s,t) per ogni vertice

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 )

Dettagli

Open Source 3D Engine. OpenGL Rendering System. Il Framework

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

Dettagli

La Pipeline Grafica. Vediamo come avviene il rendering, ovvero la visualizzazione di oggetti. Introduzione. La Pipeline Grafica.

La Pipeline Grafica. Vediamo come avviene il rendering, ovvero la visualizzazione di oggetti. Introduzione. La Pipeline Grafica. La Pipeline Grafica Vediamo come avviene il rendering, ovvero la visualizzazione di oggetti. Introduzione La Pipeline Grafica Spazio vista Spazio 3D-screen Shading Rasterizzazione Rimozione delle facce

Dettagli

Computer Graphics. Immagine sul Raster Display. Grafica 3D: analogia con fotocamera. La matrice di Pixel è memorizzata nel FRAME BUFFER

Computer 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

Dettagli

Pipeline di rendering

Pipeline di rendering Pipeline di rendering Davide Gadia Corso di Programmazione Grafica per il Tempo Reale Laurea Magistrale in Informatica per la Comunicazione a.a. 2012/2013 Outline Grafica off-line vs Grafica real-time

Dettagli

Grafica 3D per i beni culturali: 3D and rendering

Grafica 3D per i beni culturali: 3D and rendering Grafica 3D per i beni culturali: 3D and rendering Lezione 2: 24 Febbraio 2011 Daniele Bernabei 1 Modeling/Acquisition e Rendering Modeling/Acquisition creazione di un modello digitale che rappresenti una

Dettagli

Local Lighting 13/01/2014. Marco Tarini - Video Game Dev - Univ Insubria (recall?) Game Engine

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

Dettagli

Computer Graphics. Alcuni meccanismi propri del rasterization based rendering che non abbiamo visto Nuovi stage nel pipeline HW:

Computer Graphics. Alcuni meccanismi propri del rasterization based rendering che non abbiamo visto Nuovi stage nel pipeline HW: Computer Graphics Università dell Insubria Corso di Laurea in Informatica Anno Accademico 2014/15 Accenni ad alcuni argomenti lasciati fuori da questo corso Alcuni meccanismi propri del rasterization based

Dettagli

Computer Graphics. Reminder: API. Il primo Hello World. Storia. Open Graphic Language Libreria C-like. Specifiche API. ver 4.

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

Dettagli

Grafica al Calcolatore Rasterizzazione - 1. Introduzione

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

Dettagli

High Dynamic Range Rendering in OpenGL

High Dynamic Range Rendering in OpenGL Università degli Studi di Trieste Corso di Laurea Specialistica in Ingegneria Informatica Elementi di Grafica Digitale High Dynamic Range Rendering in OpenGL Studente: Alberto Dotta - 81700080 Docente:

Dettagli

High Dynamic Range Rendering in OpenGL

High Dynamic Range Rendering in OpenGL Università degli Studi di Trieste Corso di Laurea Specialistica in Ingegneria Informatica Tesina per il corso di Elementi di Grafica Digitale a.a. 2006/2007 High Dynamic Range Rendering in OpenGL Studente

Dettagli

Marco Tarini, Università dell'insubria AA 2016/2017. Computer Graphics. Facciamo una primissima applicaizone grafica rasterization based

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

Dettagli

Pipeline Rendering. Dove si introduce un metodo di rendering adatto alle applicazioni in real-time. Introduzione. Trasformazioni geometriche.

Pipeline Rendering. Dove si introduce un metodo di rendering adatto alle applicazioni in real-time. Introduzione. Trasformazioni geometriche. Pipeline Rendering Dove si introduce un metodo di rendering adatto alle applicazioni in real-time. Introduzione Trasformazioni geometriche Clipping Rimozione delle superfici nascoste Scan conversion Shading

Dettagli

Computer Graphics. Preambolo: piccolo prontuario di JavaScript. Modellazione procedurale di semplici forme

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

Dettagli

Computer Graphics. Visione di insieme: Visione di insieme: Hardware specializzato per il rendering. Lezione 2: hardware ergo triangoli

Computer Graphics. Visione di insieme: Visione di insieme: Hardware specializzato per il rendering. Lezione 2: hardware ergo triangoli Computer Graphics Leione 2: hardware ergo Università dell Insubria Facoltà di Sciene MFN di Varese Visione di insieme: "GPU GPU": Graphics Processing Unit La CPU della scheda video Instruction Set specialiato!

Dettagli

Caveat. Sintesi di Immagini. Sintesi di Immagini. Rendering: Approccio Fisico

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

Dettagli

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?

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

Dettagli

Corso di Grafica Computazionale

Corso di Grafica Computazionale Corso di Grafica Computazionale Real-Time Rendering Introduzione all hardware grafico Docente: Massimiliano Corsini Laurea Specialistica in Ing. Informatica Università degli Studi di Siena Hardware Grafico

Dettagli

Le 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 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

Dettagli

Computer Graphics. Se non si vede, che non ci sia CULLING. Tipi di Culling. Notazione. Occlusion culling

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,

Dettagli

LA STRUTTURA NARRATIVA. Prof. M.A. Alberti, A. Berolo, P. Pasteris

LA STRUTTURA NARRATIVA. Prof. M.A. Alberti, A. Berolo, P. Pasteris LA STRUTTURA NARRATIVA Prof. M.A. Alberti, A. Berolo, P. Pasteris Pipeline Modellazione Texturing Rigging/ Skinning Animazione Luci/ Compositing Rendering Poligonale: La modellazione poligonale si basa

Dettagli

Computer Graphics. Se non si vede, che non ci sia CULLING. Notazione. Lo chiamiamo culling se si scartano primitive intere.

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,

Dettagli

Grafica e Geometria Computazionale

Grafica e Geometria Computazionale Grafica e Geometria Computazionale Andrea Torsello e Giuseppe Maggiore DAIS, CdL Informatica Via Torino, 155, Venezia Mestre Slides scaricabili da http://www.dsi.unive.it/~grafica/pls/slides.pdf Cos è

Dettagli

Lezione1. Cos è la computer grafica. Lezione del 10 Marzo 2010. Michele Antolini Dipartimento di Ingegneria Meccanica Politecnico di Milano

Lezione1. Cos è la computer grafica. Lezione del 10 Marzo 2010. Michele Antolini Dipartimento di Ingegneria Meccanica Politecnico di Milano Lezione1 Informatica Grafica Cos è la computer grafica Lezione del 10 Marzo 2010 Grafica OpenGL vs Direct Dipartimento di Ingegneria Meccanica Politecnico di Milano 1.1 Tubo a Raggi Catodici Cathode Ray

Dettagli

Computer Graphics. I 4 fattori che consideriamo. luce finale = lo Shading. ambient

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

Dettagli

Informatica Generale Andrea Corradini I linguaggi di programmazione

Informatica Generale Andrea Corradini I linguaggi di programmazione Informatica Generale Andrea Corradini 17 - I linguaggi di programmazione Sommario Cos'è un linguaggio di programmazione? Una prospettiva storica: linguaggi di prima, seconda e terza generazione I paradigmi

Dettagli

INFORMATICA GRAFICA. 28 Aprile Trasformazioni - Illuminazione. Michele Antolini

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

Dettagli

Grafica 3D per i beni culturali: 3D and rendering. Lezione 2: 20 Febbraio 2014

Grafica 3D per i beni culturali: 3D and rendering. Lezione 2: 20 Febbraio 2014 Grafica 3D per i beni culturali: 3D and rendering Lezione 2: 20 Febbraio 2014 1 Modeling/Acquisition e Rendering Modeling/Acquisition creazione di un modello digitale che rappresenti una scena/oggetto

Dettagli

Mesh triangolari i Modelli 3D universali dei games

Mesh triangolari i Modelli 3D universali dei games Video Game Dev 2015/2016 Univ. Insubira 3D es Marco Tarini triangolari i Modelli 3D universali dei games Struttura dati per modellare oggetti 3D GPU friendly Risoluzione (potenzialmente) adattiva Complessità

Dettagli

Grafica al calcolatore - Computer Graphics

Grafica 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

Dettagli

Il calcolatore. Architettura di un calcolatore (Hardware)

Il calcolatore. Architettura di un calcolatore (Hardware) Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti

Dettagli

Obiettivi. Costruzione di interfacce. Esame. Programma. Strumenti. Concetti di base

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

Dettagli

Grafica al calcolatore - Computer Graphics

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

Dettagli

1.1 Modello di un Processo di Rendering. Gestore delle Geometrie (Ricostruzione delle Geoemtrie e Clipping)

1.1 Modello di un Processo di Rendering. Gestore delle Geometrie (Ricostruzione delle Geoemtrie e Clipping) Capitolo 1 Esercizi sulla Pipeline di Rendering 1.1 Modello di un Processo di Rendering Componenti dell Architettura di Rendering: Processore Bus di Comunicazione Scheda Grafica Moduli della Pipeline di

Dettagli

Grafica 3D Interattiva

Grafica 3D Interattiva Informatica Grafica ][ Marco Gribaudo marcog@di.unito.it Grafica 3D Interattiva sono una libreria di funzioni a basso livello per facilitare la scrittura di videogiochi e di applicazioni multimediali.

Dettagli

Programmare l AGP: gli Shader

Programmare l AGP: gli Shader Programmare l AGP: gli Shader 5 Scuola Estiva di Visualizzazione Scientifica e Grafica 3D Relazione finale Relazione di Micaela Spigarolo spigarol@cs.unibo.it 28 novembre 2005 1 Introduzione Le interfacce

Dettagli

Descrizione tecnica. Tecnologia NVIDIA TurboCache Ridefinizione del rapporto prezzo/prestazioni per i PC Entry- Level

Descrizione tecnica. Tecnologia NVIDIA TurboCache Ridefinizione del rapporto prezzo/prestazioni per i PC Entry- Level Descrizione tecnica Tecnologia NVIDIA TurboCache Ridefinizione del rapporto prezzo/prestazioni per i PC Entry- Level Tecnologia NVIDIA TurboCache Introduzione La tecnologia NVIDIA TurboCache è una soluzione

Dettagli

Le ombre in OpenGl. Daniele Varin LS Ing. Informatica Corso di Elementi di Grafica Digitale http://varindaniele.altervista.org

Le ombre in OpenGl. Daniele Varin LS Ing. Informatica Corso di Elementi di Grafica Digitale http://varindaniele.altervista.org Le ombre in OpenGl Daniele Varin LS Ing. Informatica Corso di Elementi di Grafica Digitale http://varindaniele.altervista.org Punto di partenza In OpenGl le luci non proiettano ombre 2 Perché si introducono

Dettagli

Normal maps: come si ottengono (2/4)

Normal maps: come si ottengono (2/4) Normal maps: come si ottengono (2/4) Photometric Stereo (una forma di inverse lighting ) da: N immagini (N>=4) reali Stesso punto di vista Illuminazione diversa (possibilmente, controllata e nota) a Normal

Dettagli

Livello di approfondimento della lezione. Texture mapping di solito spiegato in corsi di CG di base

Livello di approfondimento della lezione. Texture mapping di solito spiegato in corsi di CG di base Texture mapping Davide Gadia, Daniele Marini Corso di Programmazione Grafica per il Tempo Reale Laurea Magistrale in Informatica per la Comunicazione a.a. 2013/2014 Livello di approfondimento della lezione

Dettagli

Introduzione all'uso di Blender

Introduzione all'uso di Blender Introduzione all'uso di Blender Ing. Davide Vercelli, PERCRO davide.vercelli@sssup.it Riassunto dei concetti principali finestre non-overlapping i tipi di finestra (Window Types) gli Screen le modalità

Dettagli

Grafica computazionale

Grafica computazionale Grafica computazionale Lezione 4 (slide parzialmente basate su Computer Graphics - MIT Opencourseware Grafica Computazionale - Massimiliano Corsini Università di Siena) 1 Textures Riviste Abbiamo visto

Dettagli

Computer Graphics. vector and point algebra. Rasterization based pipeline. Marco Tarini - Grafica computazionale. Lezione 3 1.

Computer Graphics. vector and point algebra. Rasterization based pipeline. Marco Tarini - Grafica computazionale. Lezione 3 1. Compter Graphics Leione 3: ector and point algebra Uniersità dell Insbria Corso di Larea in Informatica Anno Accademico 2015/16 Marco Tarini Rasteriation based pipeline pnti in R 3 per ertice Z proiettati

Dettagli

Le problematiche della grafica tridimensionale

Le problematiche della grafica tridimensionale Architetture per la grafica 3D Le problematiche della grafica tridimensionale Marco Gribaudo marcog@di.unito.it Per riuscire a comprendere a pieno le motivazioni che hanno determinato le scelte effettuate

Dettagli

Rasterizzazione. Dove si introduce un metodo di rendering adatto alle applicazioni in real-time. Introduzione. Trasformazioni geometriche.

Rasterizzazione. Dove si introduce un metodo di rendering adatto alle applicazioni in real-time. Introduzione. Trasformazioni geometriche. Rasterizzazione Dove si introduce un metodo di rendering adatto alle applicazioni in real-time. Introduzione Trasformazioni geometriche Clipping Rimozione delle superfici nascoste Scan conversion Shading

Dettagli

Grafica al Calcolatore Tecniche di mappatura - 1. Introduzione

Grafica 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

Dettagli

Sempre piu difficile. Pallina che ruota sull anello. Doppio Anello. Rotolamento pallina 2. Rotolamento pallina 1. Aggiungiamo nell ordine

Sempre 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

Dettagli

Grafica al calcolatore - Computer Graphics

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

Dettagli

Stadio di Applicazione

Stadio di Applicazione Stadio di Applicazione SCENE MANAGEMENT Grafica 3D in tempo reale: Realtà virtuale: refresh rate minimo 25 Hz Necessità: processare velocemente scene complesse (t frame

Dettagli

UNIVERSITÀ DEGLI STUDI DI SIENA

UNIVERSITÀ DEGLI STUDI DI SIENA UNIVERSITÀ DEGLI STUDI DI SIENA FACOLTÀ DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria Informatica, orientamento Robotica ed Automazione Tesi di Laurea Interazione Visuo-Aptica con Oggetti Deformabili

Dettagli

WORKSHOP DI VISUALIZZAZIONE INTERNI

WORKSHOP DI VISUALIZZAZIONE INTERNI WORKSHOP DI VISUALIZZAZIONE INTERNI Corso intensivo di Cinema 4d + Vray e Adobe Photoshop Durata del Workshop: 6 giorni a cura di Alberto Cibinetto Informazioni utili: Il Workshop di Visualizzazione Interni

Dettagli

Computer Graphics. Semitrasparenze: come? Un vecchio trucco di imaging 2D: Quando scrivo un colore nello screen buffer, invece di: eseguo:

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

Dettagli

Corso Grafica Computazionale

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

Dettagli

XVR: Primo Progetto. Il wizard Hello world. La camera. La scena. Console Text/2D drawings 3D text. Traslazioni Rotazioni

XVR: Primo Progetto. Il wizard Hello world. La camera. La scena. Console Text/2D drawings 3D text. Traslazioni Rotazioni XVR: Primo Progetto Il wizard Hello world Console Text/2D drawings 3D text La camera Traslazioni Rotazioni La scena Scene multiple Open GL, disegnare un quad Esercitazione XVR functions: : Text Gestione

Dettagli

Ingegneria e Tecnologie dei Sistemi di Controllo. Unità di Elaborazione: MicroControllori e DSP

Ingegneria e Tecnologie dei Sistemi di Controllo. Unità di Elaborazione: MicroControllori e DSP Ingegneria e Tecnologie dei Sistemi di Controllo Unità di Elaborazione: MicroControllori e DSP Ing. Andrea Tilli DEIS Alma Mater Studiorum Università di Bologna E-Mail: atilli@deis.unibo.it Revisionato:

Dettagli

Architetture Applicative Altri Esempi

Architetture Applicative Altri Esempi Architetture Applicative Altri Esempi Alessandro Martinelli alessandro.martinelli@unipv.it 15 Aprile 2014 Architetture Applicative Altri Esempi di Architetture Applicative Architetture con più Applicazioni

Dettagli

3DMark 2001 SE. Radeon 9600XT. Radeon 9200SE. 3DMark. Radeon 7500LE. GeForce2 MX

3DMark 2001 SE. Radeon 9600XT. Radeon 9200SE. 3DMark. Radeon 7500LE. GeForce2 MX SISTEMA DELLA PROVA: Pentium III @800 Mhz 128 MB PC133 Scheda madre Intel D815 Scheda Audio Integrata Sistema Operativo Windows 98SE Driver: Catalyst 5.8 Nvidia:?? 3DMark 2001 SE è stato provato in 1024x768

Dettagli

Corso di programmazione Arduino DI MALVEZZI DAVIDE

Corso di programmazione Arduino DI MALVEZZI DAVIDE Corso di programmazione Arduino DI MALVEZZI DAVIDE Argomenti Pin digitali e pin analogici Gestione di timer e bottoni Utilizzo della porta seriale Oggetto String Controllo di schermi LCD Utilizzo dell

Dettagli