Texture mapping. Marco Tarini. Video Game Dev - Uni Insubria 24/10/2015. Marco Tarini / Video Game Dev 2015/2016 Univ Insubria Textures

Documenti analoghi
Texture maps come assets

Texture maps assets e Mesh assets

Normal maps: come si ottengono (2/4)

Mesh triangolari i Modelli 3D universali dei games

Marco Tarini 10/22/2015

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

Computer Graphics. Digital representation of 3D objects. 3D Rendering. Scena 3D rendering image. Marco Tarini - univ insubria AA 2016/2017

Corso di Tecniche Avanzate per la Grafica Texturing

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

Grafica Computazionale. Texturing. Fabio Ganovelli a.a

Game Dev - Tools Programming 13/02/2014. Game Dev - GAME TOOLS Modelli 3D nei games. Modello 3D = Mesh poligonale

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

I Modelli 3D più comuni: Mesh poligonali

Game Engine Programming -- Piccola Verifica Istruzioni:

Corso di Grafica Computazionale

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

Modelli per i materiali

Grafica al calcolatore - Computer Graphics

Tipi di animazione nei games

Tipi di animazioni scripted

Animations in games (of 3D Solid Objects)

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

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

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

Game Dev Insubria 2014/ /10/2015. Funzione matematica prende punti 3D / vettori 3D restituisce punti 3D / vettori 3D

Grafica al Calcolatore Tecniche di mappatura - 1. Introduzione

Video Games Dev / /12/2015. Due pose si possono interpolare! 0.5 posa A posa B

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

Corso di Grafica Computazionale

Tipi di animazioni scripted

Grafica Computazionale

Capitolo 6 Interazione luce-materia

Non solo mesh. Height Map. Or: Height Field Or: 2.5 Dataset. Non di sole mesh vive la CG. Curisosità: physical height maps.

Animazioni. Animazioni nei games. Parte1: scrpited animations. Scripted. Computed 26/11/2013. Marco Tarini - Video Game Dev - Univ Insubria 2013

Aggiungiamo attributi (per vertice!)

LE IMMAGINI DIGITALI 3 formati. Università IUAV di venezia

Modelli 3D: come ottenerli

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

Modellazione poligonale in Maya

Texture mapping. Davide Gadia Corso di Programmazione Grafica per il Tempo Reale Laurea Magistrale in Informatica a.a. 2014/2015

GAME DEV: tools programming. Parte 1: tri-meshes

Fondamenti di Grafica Tridimensionale

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

Grafica al calcolatore Computer Graphics

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

Fondamenti di Grafica Tridimensionale

Come funziona? Usare Dirty NUT s come shader

Informazione binaria:

Corso Autodesk Maya. consulteklab.com CELL. 349/8/ web: (Effetti speciali 3d per film e animazioni)

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

Le immagini digitali

Modulo informatica di base 1 Linea 2

impaginazione di libri, giornali e riviste la progettazione grafica (CAD) nelle industrie metalmeccanica, elettronica, impiantistica ed edile

Animations Animazioni nei games Un assets! Physic engine

Polygonal meshes or triangle meshes? Quad meshes or Trinagle meshes? Level of Detail (LoD) Pyramid. 3D Meshes: resolution. (n-2) triangoli!

Animazioni nei games. Animazioni nei games. Tipi di animazioni scripted. Uni Verona - Master Game Dev Game Engines - Marco Tarini

Prefazione...IX Capitolo 1 Introduzione a Blender Capitolo 2 Setup e installazione Capitolo 3 L interfaccia di Blender...

Informatica di Base 1 Linea 1

Le immagini digitali. Grafica. Due approcci alla modellazione grafica

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

Aosta Formati di file immagine. Quick tutorial per scegliere il formato giusto per ogni output. Diapositiva 1 di 13

Rappresentazione binaria. Laboratorio di Informatica. Calcolatori digitali. N: numeri naturali. La codifica binaria. I primi 16 numeri binari

Introduzione alla progettazione grafica

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

Segnale analogico. Analogico vs digitale. Segnale digitale. Trasformazione da analogico a digitale

Grafica al calcolatore Computer Graphics

OHLQIRUPD]LRQLQRQQXPHULFKH

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

Università degli Studi di Ferrara. Docente: Dott. Andrea Silvestri. - Immagini -

I.4 Rappresentazione dell informazione - Altre codifiche

gestione e modifica di immagini fotografiche digitali

Rappresentazione dei numeri: il sistema di numerazione decimale

Novità di 3ds max 5. 3ds max 5.0 MIGLIORAMENTI IN ANIMAZIONE 3ds max 5

La codifica delle immagini

ma... Computer Graphics Rasterization-based HW-supported rendering Lezione 3: modellare con triangoli Tutto sia composto da triangoli (3D)

Grafica 3D per i beni culturali: 3D e rendering. Lezione 2: 25 Febbraio 2016

Lez. 7 Immagini Digitali. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Laboratorio di Informatica

Architettura di un elaboratore. Informatica Architettura di un elaboratore 1

Informazione Analogica Versus Informazione Digitale

Modelli 3D: come ottenerli

FORMATI IMMAGINI. Formati Multimediali Francesca Gasparini

Corso di Grafica Computazionale

CODIFICA IMMAGINI IN BIANCO E NERO

Le texture. Le texture. Informatica Grafica ][ Le texture. Le texture. Le texture. Le texture

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

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?

Architettura degli elaboratori - 2 -

Sistemi di Elaborazione delle Informazioni

Normal Map Create .PDF by basilio noris aka dies-irae

Grafica computazionale Lezione 2

Architettura degli elaboratori - 2 -

Transcript:

Video Game Dev 2015/2016 Univ Insubria Textures Marco Tarini Texture mapping + = geometria 3D (insieme di quadrilateri) RGB texture 2D (qui: color-map) Marco Tarini - 2015/2016 1

Esempio (color-map) + = Texture maps! Uno degli assets + comuni e importanti di un games Uno dei maggiori consumatori di GPU RAM Marco Tarini - 2015/2016 2

Texture maps: strutture dati Sostanzialmente, un immagine raster «Texel» Texture sheet Tessiture (nei games) Texture sheet = def. di un segnale sulla superficie (la mesh) scopo simile di quello dei per-vertex attributes! ma # texels >> # vertices segnali più complessi! Un texel = un campione di quel segnale fra i campioni: interpolazione (bilineare) Campionamento del segnale: su griglia 2D regolare (immagine raster) ad una risoluzione data (NON adattiva!) Tessiture: campionamenti regolari, e densi (dettaglio a buon mercato!) Attributi: campionamenti irregolari (adattivi), e sparsi Marco Tarini - 2015/2016 3

I segnali tipicam. memorizzati in tessiture (nei games) ogni texel un base-color (componenti: R-G-B) la tessitura è una diffuse-map / color-map / RGB-map ogni texel una fattore di trasparenza (componenti: α) la tessitura è una alpha-map o cutout-texture ogni texel una normale (componenti: X-Y-Z) la tessitura è una normal-map o bump-map (more later) ogni texel contiene un valore di specularità la tessitura è una specular-map ogni texel contiene un valore di glossiness la tessitura è una glossiness-map ogni texel contiene un valore di lighting baked... la tessitura è una (baked) light-map ogni texel contiene un valore di dist. dalla superficie la tessitura è una displacemnt map o height texture MIP map levels Pre-filtering delle tessiture LOD pyramid, per immagini! Hardware sceglie livello giusto (per pixel) Evitare artefatti di sottocampionamento 1x1 512x512 256x256 1024x1024 Marco Tarini - 2015/2016 4

Texture maps come assets Caratteristiche: Size: risoluzione canali (es: alpha?) MIP-map (presenti o no?) Compressione? e.g. color-map, quantizzazione o schemi di compressione specifici Vincoli ricorrenti: potenze di 2 per lato (richiesto da sempre meno engines) sia in U che in V (es: 256x256 o 1024x512) res < max (es: max = 4096 o 2048) La maggior parte della ricchezza visuale percepita nel tipico videogames è dovuta alle tessiture! Textures res più impattanti (quality wise) di Meshes res! Marco Tarini - 2015/2016 5

GPU rendering of a Mesh in a nutshell (reminder) Load store all data on GPU RAM Geometry + Attributes Connectivity Textures Shaders Parameters / Settings and Fire! send the command: do it! THE MESH THE MATERIAL Life of a Texure in a Game Engine (as, basically, any 3D assets) DISK CENTRAL RAM GPU RAM IMPORT LOAD Image File Image Object Texture Sheet on GPU Marco Tarini - 2015/2016 6

Texture Sheets (in GPU RAM) Immagini rasterizzate, ma con perculiarità mipmap levels channels per texels: 1,2,3, or (usually) 4 bits per channels: usually 8, fixed point («true-color») or compression resolution: powers of 2 (usually) Texture Sheets (in GPU RAM) Durante il rendering: meccanismi GPU (hardwired!) di accesso alla texture: 1. selezione del livello di MIPmap appropriato (opz) 2. decompressione 3. gestione di accessi fuori dal bordo (e.g. repeat) 4. passaggio da coord UV [0..1] 2 a coord in texel [0..RES X ]x[0..res Y ] 5. interpolazione bilineare (opz) Marco Tarini - 2015/2016 7

Texture Sheets (in GPU RAM) schemi di compressione appositi: quantizzazione (e.g. 16 bits per texel: 5 red 5 green 5 blue 1 alpha) color-table (or palette ) (e.g. tabella di 256 colori, un indice a 8 bit per texel) schemi appositi per tessiture (poiché devono consentire la random accessibility della texture!) molto lossy, rate di compressione poco efficiente e rate fisso! schema più diffiuso S3TC, con varianti DXT1 no / 1-bit alpha DXT2 rough alpha DXT3 DXT4 smooth alpha DXT5 (diversi compromessi fra qualità, costo, canali ) Texture Shhets: formati files per immagini generiche:.jpg /.JPEG lossy, ottimo rate compressione, immagini fotografiche : best solo 3 canali (no choice) 8 bit x canale (no choice).png lossless < compression ratio disegni: best anche canale alpha possibile anche 16 bits possibile.tiff e.raw (rari) lossless compressione: vabbe max flessibilità canali etc.pnm (davvero raro) compressione: ahah ma parsing facilissimo! (no lib) appositi per textures: (opzione più usata).dds («direct draw surface») stesso indentico formato usato in GPU. Quindi: inlcude MIPmap levels (volendo) compressione: molto lossy e compression ratio pessimo (e rete fisso) GPU ready! Just read from disk & load on GPU memory (no decompress / recompress!) Marco Tarini - 2015/2016 8

Texture maps come assets: formati files x immagini generiche (decomprimere tutta immagine prima di poter accedere ai pixel) compressione: ottima loading: pesante: decomprimere da RAM, (forse) ricomprimere in GPU-RAM MIP-map lvls etc: controllato dall engine x textures (random accessibility ai texels, senza decomprimere tutta l imm) compressione: cattiva loading: leggero direct copy Disco => RAM => GPU RAM MIP-map lvls etc: controllato dall artista Texture maps assets e Mesh assets Vari texture «sheets» associati ad una mesh o anche: più meshes sullo stesso sheet (bene) tipica struttura : ogni mesh associata a un materiale ogni materiale: 1 sheet di diffuse-map 1 sheet bumpmap (se serve) 1 sheet di alphamap (se serve) 1 vertex shaders + fragment shader vari parametri (es, shininess, ) se parti diverse di mesh associate a tessiture diverse: scomporre oggetto in sotto-mesh Marco Tarini - 2015/2016 9

Texture maps assets e Mesh assets Non necessariamente 1:1 1:N -- vari texture «sheets» associati ad una mesh N:1 -- più meshes sullo stesso sheet (bene) se parti diverse di mesh associate a tessiture diverse: scomporre oggetto in sotto-mesh MESH A MESH B MATERIAL A TEXTURE 1 BUMPMAP TEXTURE 2 COLORMAP Come si legano fra loro tessiture & mesh? Marco Tarini - 2015/2016 10

La parte 3D dei game assets 3D Models i.e. tri-meshes with: Materials per vertex attrib normals, color, AO, LODs uv-mapping keyframes cyclic animations face-morphs, skinning lighting model stats / flags textures RGB maps normal maps alpha maps shaders vertex, fragments, Animations blend shapes skeletal animations kinematic animations geometry caches skeletons (rigs) Geometric proxies hit-boxes bounding objects AI-meshes Particle systems Environments 3d scenes skydomes env. maps scene props UV-Mapping di una mesh Serve un mapping (una corrispondenza): superficie mesh spazio tessitura 2D «parametrizzazione» della superficie Idea: memorizzo questo mapping come attributo: (s,t ) per vertice l «u-v mapping» della mesh (u,v) == (s,t) [0..1] 2 Marco Tarini - 2015/2016 11

Task di modellazione: costruz dell u-v mapping u v Texture atlas (composto di vari charts ) UV mapping: esempio u M N = A (vertex seam) B C A v B C M N MESH TEXTURE SPACE Marco Tarini - 2015/2016 12

Notazione di spazio texture Texture Space (o "spazio parametrico" o "spazio u-v") es: 512 texels Texture 2D u v es: 1024 texels Texture Space = [0,1] x [0,1] Due notazioni più diffusa (in game industry) s-t (es OpenGL) u-v (es DirectX) t (0,0) u (0,0) s v Marco Tarini - 2015/2016 13

Nota: Spazio tessitura non dipende da risoluz (o forma) t t 1024x512 Texture 2D s Conveniente! si può ridurre la res dei texture sheets (bilanciando qualità / memoria) senza alcuna conseguenza sull UV mapping delle mesh. 128x64 Es: caricare in GPU RAM solo i livelli MIP-MAP alti s Due tipi di UV-mapping: UV mapping NON iniettivo Zone diverse della mesh fanno riferimento allo stessa regione della tessitura aka: UV-mapping es: with overlapping charts (standard) Ottimizzazione spazio tessiutra Sfruttamento simmetrie / ripetizioni del segnale UV mapping iniettivo Ogni punto della tessitura (non vuoto): aka: Unwrapping 1 solo punto sulla mesh o: Unwrapped UVs es: non-overlapping charts o: 1:1 UV-mapping Genericità / Flessibilità o: Lightmap UV-mapping Utilizzabile per vari scopi (e.g. light backing) Scopi diversi spesso, presenti entrambi: 2 UV mapping distinti (2 attributi UV per ogni vertici) Quali degli UV mapping mostrati fin ora sono di quale tipo? Marco Tarini - 2015/2016 14

Costruzione dell UV-mapping Tipico task del modelling programmi (semi-)automatici (molto studiati) modellatori professionisti usando tools appositi In pratica, bisogna trovare un posto in spazio tessitura per ogni triangolo della mesh Analogo a: sbucciare una mela (cutting) stendere ogni buccia prodotta (unfolding) disporre le buccie su un rettangolo piano (packing) Nota richiede (quasi sempre) di tagliare la superficie: discontinuità dei valori u,v cioè vertex-seams Task di modellazione: u-v mapping ( u-v == s-t ) strategie pratiche: 1. selezionare edge di taglio o 1. assegnare facce a charts decidere dove sono i texture seams 2. unfolding minimizzare distorsione 3. packing dei charts minimizzare spazi vuoti assegnare aree secondo necessita (es, parti importanti maggiore spazio tessitura) (campionamento dei texel diviene in parte adattivo!) DEMO! Marco Tarini - 2015/2016 15

Tileable Textures B A A B Tileable textures Marco Tarini - 2015/2016 16

Tileable textures Tipico utilizzo: Molto efficiente in spazio! RGB maps: come si ottengono Image first, then UV-mapping e.g. immagine da fotografie e.g. tileable images UV-mapper UV-mapping first, then paint 2D paint with 2D app (e.g. photoshop) UV-mapping first, then paint 3D paint within 3D modelling software, or: 1. export 2D rendering, 2. paint over with e.g. photoshop, 3. reimport images 4. goto 1 UV-mapper UV-mapper 2D painter 3D painter Marco Tarini - 2015/2016 17