Video Game Dev - Uni Insubria 29/10/ = Bump-map (here: a tangent space normal map) Bump-map

Documenti analoghi
Texture maps come assets

Computer Graphics. 3D Rendering. Digital representation of 3D objects. Scena 3D rendering image. Geometry of a 3D object. 3D Model

I Modelli 3D più comuni: Mesh poligonali

Modelli 3D: come ottenerli

Modelli 3D: come ottenerli

Tipi di animazioni scripted

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

Modelli per i materiali

Grafica computazionale

OTTICA DELLA VISIONE Mauro Zuppardo 2015

Introduzione alla Computer Graphics


Capitolo 6 Interazione luce-materia

Self S.r.l. Via G. Bruno, RIVIGNANO (UD) Italia

Modello 3D = Mesh poligonale. Di triangoli, o mista (quadrilateri + triangoli) Struttura dati per modellare oggetti 3D

Fondamenti di Grafica Tridimensionale

Immagini e clustering

Wow Design by Marco Pocci and Claudio Dondoli

Fondamenti di Elaborazione di Immagini Estrazione dei Bordi e Segmentazione. Raffaele Cappelli raffaele.cappelli@unibo.it

COME MODELLARE UN GUANCIALE CON NEWTEK LIGHTWAVE 3D Corso per principianti.

Computer Graphics. v 1. Rasterizer: lines (segmenti) la rasterizzazione from vertex to pixels. Rasterizzazione: lines (segmenti)

Bump Mapping & Under-Water Effects. Dott. Stefano Tubini

How to reach us. By airplane

Grafica Real-Time, Hardware Grafico e Linguaggi di Shading. Alessandro Martinelli

(V) (FX) Z 6 è un campo rispetto alle usuali operazioni di somma e prodotto.

Elaborazione del colore

Istruzioni per utilizzare la BCD 2000 con Traktor 3 e 2

Il mondo dei Piatti Doccia

Informatica Grafica. Prof. Massimiliano Dellisanti Fabiano Vilardi. (2a parte) a.a. 2011/2012

INNESTO DELLE LAMELLE A TELAIO CHIUSO CON COMPENSAZIONE RAPIDA COUPLING OF SLATS IN CLOSED FRAME WITH RAPID ADJUSTMENT

3d geological modelling and education: teaching geological sections and geological mapping with MVE Move

Coordinate 3D. Coordinate cartesiane. Coordinate 3D. Coordinate cartesiane. Coordinate cartesiane. Sinistrorsa. Destrorsa

ESTRAZIONE DI DATI 3D DA IMMAGINI DIGITALI. (Visione 3D)

Programma del Master Game Design

Sezione 1 / Section 1. Elementi d identità: il marchio Elements of identity: the logo

1 Definizione: lunghezza di una curva.

Posta elettronica per gli studenti for the students

Compatibilità del Portale Piaggio con Internet Explorer 10 e 11. Internet Explorer 10

Principi e Metodologie della Progettazione Meccanica

CORSO CGI E COMPOSITING

rasomuro 41_ muratura-wall istruzioni di montaggio

Abilità Informatiche. Lezione II. Creazione di modelli 3D. arch. Gabriella Rendina

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

Lezione: rappresentazione. rototraslazioni. Tutte e sole le isometrie (trasf. rigide) = roto-traslazioni = rotazioni (*) + traslazioni

P/N DESCRIPTION QUANTITY

ScuolaSI computer grafica 3d

Grafica 3D Interattiva

Di testi ed immagini

Programma del Master di Produzione digitale 3d

Le ombre in OpenGl. Daniele Varin LS Ing. Informatica Corso di Elementi di Grafica Digitale

U Corso di italiano, Lezione Diciotto

SISTEMA COMPLETO DI ILLUMINAZIONE VANO LAMPADA A LED TIPO ILV24 s. COMPARTMENT SYSTEM LIGHTING COMPLETE LED LAMP TYPE ILV24 s

Tecniche di mappatura

Calcolo efficienza energetica secondo Regolamento UE n. 327/2011 Energy efficiency calculation according to EU Regulation no.

Copyright 2012 Binary System srl Piacenza ITALIA Via Coppalati, 6 P.IVA info@binarysystem.eu

Sommario. HTML e CSS I fogli di stile. cosa sono principali proprietà

DOMINIO di FUNZIONI. PREREQUISITI: Grafici delle funzioni elementari. Calcolo di EQUAZIONI e DISEQUAZIONI, intere e fratte.

Pentair ensures that all of its pumps (see Annex) affected by the above mentioned Regulation meet the 0,1 MEI rating.

Modelli di illuminazione avanzati

Esercizi di Matematica. Funzioni e loro proprietà

La codifica delle immagini

Grafica e Geometria Computazionale

Combinazioni serie IL-MIL + MOT

FUNZIONE REALE DI UNA VARIABILE

Corriere della Sera TOP CLASS. Formati. X117 - Striscia verticale - mm 7 x Pos. Stringa. PG - Pagina - mm 275 x 404

ESAME DI STATO DI LICEO SCIENTIFICO CORSO DI ORDINAMENTO 2004

a) Il campo di esistenza di f(x) è dato da 2x 0, ovvero x 0. Il grafico di f(x) è quello di una iperbole -1 1

Data Alignment and (Geo)Referencing (sometimes Registration process)

Esempio. Approssimazione con il criterio dei minimi quadrati. Esempio. Esempio. Risultati sperimentali. Interpolazione con spline cubica.

Trasformazioni nello spazio Grafica 3d

Installazione interfaccia e software di controllo mediante PC Installing the PC communication interface and control software

INDICE - 3D STUDIO MAX BASE. Lezione 2. Lezione1 LEZ.2 - LE FORME TRIDIMENSIONALI - LEZ.1 - MAX 2010 LA PRIMA VOLTA -

Informatica Teorica. Macchine a registri

LICEO SCIENTIFICO STATALE G.GALILEI CATANIA A.S. 2006/2007 SIMULAZIONE DI II PROVA - A

e-spare Parts User Manual Peg Perego Service Site Peg Perego [Dicembre 2011]

U Corso di italiano, Lezione Quindici

RAIL lock & unlock RAIL lock & unlock Catalogo / Catalogue

Università degli Studi Mediterranea di Reggio Calabria.

6. Calcolare le derivate parziali prime e seconde, verificando la validità del teorema di Schwarz:

CAPITOLO V. DATABASE: Il modello relazionale

Low pressure fittings. Unilock - Istruzioni di assemblaggio 12 - H. Unilock - Assembly Instructions

2 Argomenti introduttivi e generali

AIP Italia AD 2 LIMJ 6-3. Procedura di salita iniziale RWY 28 Initial climb procedure RWY 28 REMARKS IXITO. REMARKS

LEZIONE DI MATLAB 2.0. Ing.Irene Tagliente

Corso completo 3DS Max

100 mm - 107,5 mm PCB Width: in in (100 mm mm)

4. Proiezioni del piano e dello spazio

Guida alla configurazione Configuration Guide


CONFIGURATION MANUAL

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

Elaborazione e Visualizzazione di Modelli di Grandi Dimensioni di Terreni

Grafica al calcolatore - Computer Graphics

Matrice rappresent. Base ker e img. Rappresentazione cartesiana ker(f) + im(f).

Partiamo dalla creazione di un semplice testo in 3d, poi aggiungeremo una luce, una camera, un materiale e degli effetti video post.

Corso di Analisi Matematica. Funzioni reali di variabile reale

Informatica Grafica. Un introduzione

Corso. Artist & Animator 2D/3D. Piano del corso. in collaborazione con

Il rilievo 3D dei piccoli oggetti: strumenti, metodi e applicazioni

Luci/Ombre. YAFARAY motore di rendering Open Source. Federico Frittelli aka fredfrittella. SUTURA-studio di progettazione.

Transcript:

see demo! Bump-Mapping + = Low-poly mesh (uv-mapped!) Bump-map Bump-map (here: a tangent space normal map) lots of cheap geometric detail (apparently) assets courtesy of Mount&Blade (Talesworlds) Bump-map (*) texture preposta a fornire un illusione di dettaglio geometrico (non modellato nella mesh) recall: mesh can only be low-res (low-poly) not much detail in it, usually arpoccio detto Texture-for-Geometry much cheaper to render/store than real geometry! details may extrude out or be encarved in the mesh surface usually: this affects lighting only sufficient to trick the eye! especially with dynamic lighting (*) Terminologia non universalmente adottata Spesso, per «bump-map» si intendono le sole «displacement map», o altri tipi Marco Tarini - 2015/2016 1

Bump-map Dal punto di vista del modellatore: macro-struttura dell oggetto low-poly mesh es: la forma generale del cavallo es: la forma generale del viso es: la forma generale del drago meso-struttura dell oggetto bump-map es: la muscolatura del cavallo es: le rughe sul viso es: le scaglie del drago micro-struttura dell oggetto parametri del materiale es: la peluria del cavallo es: la struttura del derma / del sebo es: la variabile ruvidità / liscezza delle scaglie Bump maps: Categorie Bump maps Displacement maps Normal maps Scalar Vectorial Object Space Tangent Space most common Marco Tarini - 2015/2016 2

Bump maps: Categorie Bump map: qualunque tessitura che codifica dettagli hi-freq ( meso-struttura ) su una sup low-res Displacement Map Dettagli codificati memorizzando le differenze fra low-res e hi-freq Come scalari (distanza lungo la normale) oppure come vettori Usati per re-tasselation, o per effetto parallasse (parallax mapping) Normal Map: Dettagli codificati memorizzando le normali della sup hi-freq Modificano il lighting In quale spazio (in che base vettoriale)? Tangent Space: (spazio TBN) Riutilizzabili su più superfici indipendentemente dall oreintamento Richiede direzioni Tangenti-Bitangenti (e normali) def su superifcie Object Space: Solo per UV-mapping 1:1 Displacement map (scalare): concept Store the Distances of the detailed surfaces from the low-poly mesh example -- a bump-map for a screw-head : testa della vite superficie dettagliata (che vorrei modellare) 0.2 0.6 0.4 low-poly mesh (approssimaz di ^) (qui: piatta ) 0 0 0 0 0 0 0.1.5.6.6.7.5.4.2 0 0 0 0 0 0 0 displacement map (scalare) Marco Tarini - 2015/2016 3

Displacement map (scalare): note Ogni texel: distanza della sup descritta lungo la direzione della normale (della mesh low-poly) 1 scalare per texel texture a 1 canale Verso: in fuori (estrusione) in dentro (scavo) entrambi Valori positivi: estrusione Valori negativi: scavo, in dentro Storage: immagine a gray-scale (1 scalare per pixel) rimappando i valori nell intervallo [0..1] Usi: lighting diretto, approssimato? effetto embossing calcolo illuminazione globale (ambient occlusion) VEDREMO dato intermedio per la costruzione di una normal map white = verso alto black = verso il basso facili da dipingere manualmente! praticamente, un campo di altezza (height field) def. sulla sup. della mesh Displacement map vettoriale: concept Store Vectors from the low-poly mesh to the detailed surfaces sottosquadro! non un campo di altezza Variante più espressiva, ma più cara e meno utlizzabile. Non molto usata (nei games). superficie dettagliata (che vorrei modellare) low-poly mesh (approssimaz di ^) (qui: piatta ) displacement map (vettoriale) Marco Tarini - 2015/2016 4

Displacement map (scalare): Rendering - effetto embossing ½ Displ.-map + ½ ( 1- Displ.-map ) = lighting shifted:! (approssimato) Metodo image processing per approssimare il lighting su una displ map (scalare) concept: differenze finite : approssima gradiente 2D approssima (X,Y) normali sup approssima lighting Approx troppo cruda: non più usato (nei games) Displacement map (scalare): Rendering parallax mapping Tecnica per simulare l effetto parallasse (su un Displacement Map scalare) Vedremo, nella lez sul rendering Marco Tarini - 2015/2016 5

Normal Map: concept Store the Normals of the detailed surfaces example -- a normal-map for a screw-head : testa della vite superficie dettagliata (che vorrei modellare) low-poly mesh (approssimaz di ^) (qui: piatta ) normal map (una normale per texel) Normal Map: note Modifica il lighting non il parallasse non la sagoma dell oggetto il lighting riflette il dettaglio hi-freq dell oggetto dinamicamente (con luci variabili!) illusione totale: molto convincente se non si tenta di modellare macro-strutture In rendering: usare la normale dalla tessitura (per il lighting) invece che la normale per-vertice interpolata Le normali sono espresse in coord cartesiane Spesso ma non sempre ( modi migliori per esprimere vett unitari!) Domanda: ok, ma in quale spazio??? more later Marco Tarini - 2015/2016 6

Normal Maps: in che spazio esprimo le norm? Spazio oggetto: Object-Space Normal-Maps (lo stesso in cui esprimo le pos dei vertici) la normale per vertice diventa superflua! (basta la normale dalla texture!) banale in fase di rendering normal map legata ad uno specifico oggetto no riuso delle normal map su oggetti diversi ogni regione della normal map legata alla sua regione preposta nell oggetto! solo mapping iniettivi!!! e.g. no tiling, no sfruttamento simmetrie Normal Maps: in che spazio esprimo le norm? Intuizione: sarebbe più pratico definire le normali relativamente allo spazio texture : X: verso destra della texture Y: verso il basso della texture Z: ortogonale al piano di texture ma, come portare questo spazio sul modello 3D? Marco Tarini - 2015/2016 7

Spazio tangente (aka spazio TBN) Spazio vett definito punto della superficie: asse Z: Normale (alla superficie) assi X e Y: vettori Tangenti (alla superficie) X = Tangente Y = Bi-Tangente (a volte, ma inappropriatamente: Bi-Normale ) memorizzato: per vertice sulla mesh come attributo interpolato nel resto della sup possibile ottimizzare! non necessariamente 3 vettori Spazio tangente (aka spazio TBN) Come li calcolo Normale as usual (vedi lez. sulle mesh) Tangente & Bi-Tangente calcolabili dall UV mapping! sono i gradienti della coord U e della coord V riespett. (dettaglio implementativo: calcolare per faccia, mediare per vertice) Note: non necessariamente esattamente ortonormale left-handed o right-handed, anche nella stessa mesh richiede discontinuità seams (le stesse dell UV mapping? non solo! perché?) Marco Tarini - 2015/2016 8

Normal Maps: in che spazio esprimo le norm? Spazio tangente: Tangent Space Normal-Maps (le bump-maps di default, nei games) servono, per vertice, attributi extra: direzione Normale direzione Tangente direzione Bitangente normal map condivisibile per più oggetti normal map con UV-mapping anche non-iniettivi e.g. tileable e.g. sfruttamento simmetrie normal map costruibile a prescindere dall oggetto a partire da un displacement map lo spazio tangente (si può ottimizzare il suo storage, non necess. 3 vettori) Normal Maps: in che spazio esprimo le norm? lo spazio tangente Spazio tangente: Tangent Space Normal-Maps (le bump-maps di default, nei games) servono, per vertice, attributi extra: direzione Normale direzione Tangente direzione Bitangente normal map condivisibile da più oggetti normal map con UV-mapping anche non-iniettivi e.g. tileable e.g. sfruttamento simmetrie normal map costruibile a prescindere dall oggetto a partire da un displacement map in pratica, la normal map specifica come modificare la normale memorizzata per vertice, invece di sovrascriverla Marco Tarini - 2015/2016 9

Tangent Directions (B+T) as per vertex attributes Stored negli asset mesh, or computed after import: DISK CENTRAL RAM GPU RAM IMPORT LOAD Mesh File Mesh Object Mesh GPU Object PREPROCESS: COMPUTE TANGENT DIRS CON TANGENT DIRS (per vetex) Normal-maps: Storage Idea: come RGB texture R X G Y B Z ma X,Y,Z [-1,+1] e R,G,B [0,+1] quindi necessario remapping: X +1 0-1 (normals = unit vectors) 1.0 0.0 Vantaggio: stessa compressione delle RGB textures/images Semplice, ma rappresentaz. più efficienti di vett. unitari! R R = ½ ( X + 1 ) X = 2 R 1 Marco Tarini - 2015/2016 10

Normal-maps: Storage Esempi: caso tangent space normal-map normale prevalente: X=~0, Y=~0, Z=~1 colore prevalente: R =~0.5, G=~0.5, B=~1 ( ~azzurro) Non sarebbe possible con Per es: Tiled Object Space NM! (tangent space) Normal Maps + = Low-poly mesh UV-mapping con tiling! Tangent dirs. Normal-map Tileable! assets courtesy of Mount&Blade (Talesworlds) Marco Tarini - 2015/2016 11

Bump-maps assets at a glance (can you tell which is which?) Tangent Space Normal map Object Space Normal map Displacement Map (scalar) the default kind Nota Object Space Normal map (Tangent Space) Normal map UV-mapping 1:1 gamba destra!= gamba sinistra UV-mapping NON iniettivo simmetrie sfruttate! Marco Tarini - 2015/2016 12

Normal maps: come si ottengono (1/4) Da displacement maps! see demo! 2D texture painter / etc Displacement map come grayscale = estruso - in fuori = profondo - incassato Filtro (e.g. photoshop) Normal map Normal maps: come si ottengono (1/4) Da: displacement map a: normal map algoritmo: texel t di displacement map nota: ad ogni texel corrisponde un punto 3D (x, y, z = height[x,y]) o 5x5, o 7x7 compute best fitting plane piano che minimizza la distanza dai punti dei i 3x3 texel centrati su t semplice problema di minimizzazione quadratica la normale di questo piano è la normale per t Nota: si ottiene la normal map relativa allo spazio tessitura una tangent space normal map, dunque Marco Tarini - 2015/2016 13