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

Documenti analoghi
Computer Graphics. Mesh triangolare (o mesh simpliciale) Un insieme di triangoli adiacenti. meshes e modelling. Mesh superficiali.

Computer Graphics. Mesh triangolare (o mesh simpliciale) Un insieme di triangoli adiacenti. Caratteristiche topologiche di una mesh.

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

I Modelli 3D più comuni: Mesh poligonali

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

Mesh triangolari i Modelli 3D universali dei games

Modelli 3D: come ottenerli

Modelli 3D: come ottenerli

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

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

Marco Tarini 10/22/2015

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

Texture maps assets e Mesh assets

Normal maps: come si ottengono (2/4)

Fondamenti di Grafica al calcolatore

Computer Graphics. Mesh import. Piano: Let s Import Meshes! Guardiamo dentro la nostra mesh con un plain text editor. 1. Procurarsi alcune mesh

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

Tipi di animazioni scripted

Tipi di mesh. Anno Accademico 2012/13 Mesh tetraedrali (o simpliciali 3D) Mesh exaedrali ( di cubi ) Marco Tarini

Java3D. Lezione 3. Creazione delle geometrie 2. Di Blasi Gianpiero - D.M.I. - Università di Catania

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

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

Texture maps come assets

Tipi di animazione nei games

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

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

di tecniche della modellazione digitale computer 3D A.A. 2014/2015 docente Arch. Emilio Di Gristina

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

Normal-Mapping. Bump maps: Categorie + = Bump maps. Master Game Dev 2016 Univ Verona Marco Tarini /2016 1

AMBIENTE VIRTUALE UTENTE

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

AMBIENTE VIRTUALE. Moduli logici di un Ambiente Virtuale. Modellazione. Management Rendering Interazione. Sintesi. Comportamenti.

Corso di GraficaComputazionale Texturing

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

Corso di Tecniche Avanzate per la Grafica Texturing

Master in Character Animation per Film / TV e videogames. A chi è rivolto

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

Corso di Grafica Computazionale Texturing

Stadio di Applicazione

Corso di Grafica Computazionale

OpenSceneGraph & OSG4Web

UNIVERSITÀ DEGLI STUDI DI PISA Scuola di Ingegneria

Game Engine Programming -- Piccola Verifica Istruzioni:

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

SEMINARIO INTRODUTTIVO BIM

Lezione 3: Grafica 3D*

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

Introduzione Computer Graphics

Tipi di animazioni scripted

Programma del corso Maya

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

Rappresentazione di oggetti 3D

Generazione automatica di grandi modelli 3D urbani e gestione di oggetti complessi

Corso di Grafica Computazionale

Modelli: formati, strutture dati, processing della mesh

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

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

Per un elenco completo (lista) dei tutorial e videotutorial su MeshLab, clicca qui

3 D S C A N N I N G A N D R E V E R S E E N G I N E E R I N G S O L U T I O N S

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

Fondamenti di Grafica al calcolatore

CG Character. CG Character

Corso di Modellazione 3D con software Open Source (Blender)

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

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

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

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

Sistema di Pianificazione Missione SDK

Animations Animazioni nei games Un assets! Physic engine

Modellazione poligonale in Maya

gli approcci al problema gli standard Università degli Studi di Bergamo Caterina Rizzi 2

MATHOON. la matematica da guardare

Supportare il formato TIN in postgis - gvsig. Roberto Angeletti Simonetta Pieri

Grafica 3D per i beni culturali: 3D and rendering. Lezione 2: 23 Febbraio 2011

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

Introduzione ai software per la produzione di contenuto 3D

Realizzare la VR: i software. Piattaforme per la VR: VRML. Il più diffuso: VRML (Virtual Reality Modeling Language)

Realtà Virtuali Prof. Raffaella Folgieri, aa 2013/2014. Realizzare la VR: i software

Applicazioni 3D avanzate

modellazione orientata agli oggetti object-based entità/oggetto = non suddivisibile in entità dello stesso tipo Entità/oggetto spaziale:

A Steroid Seconda Versione. A Steroid V0.2. Poligoni in OpenGL. Rappresentazione Superfici. Poligoni in OpenGL. Triangle Strip

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

SOMMARIO. Premessa 5. Introduzione alla CG e a Blender 3D 6 La Computer Grafica 3D 6 Blender 3D 6 Scaricare e installare Blender 3D 7

Metodi numerici per la grafica: Mesh data structures

Texture e coordinate di mappatura

Registro dell'insegnamento

I Vantaggi del nuovo programma di Autodesk Subscription

Dipartimento di Ingegneria Civile e Architettura Università degli Studi di Udine

Video Master Class 3dsmax 2017 Architettura Rendering volume 13.0 Italiano

I formati nella Computer Grafica

Programma del Master di Produzione digitale 3d

Programma del Master Game Design

Grafica Computazionale. Texturing. Fabio Ganovelli a.a

HDS Software Technodigit 3D Reshaper Caratteristiche e benefici

1. Il formato obj. Tipo di dato Keyword Descrizione. Coordinate texture Direzione delle normali Punto Elementi grafici

Grafica 3D per i beni culturali: intro. 20 Febbraio 2017

Strumenti per la modellazione poligonale

Transcript:

GAME DEV: tools programming Parte 1: tri-meshes Marco Tarini Tipi di mesh Mesh superficiali Mesh di triangoli (o tri-mesh, o simpliciali) Mesh di quadrilateri (o quad-mesh) Mesh miste (quad e tri) Spesso, mesh prevalemtemente di quads (quad-dominant ) Mesh di poligoni Mesh volumetriche Mesh tetraedrali (o simpliciali 3D) Mesh exaedrali ( di cubi ) 1

Mesh di triangoli discretizzazione lineare a tratti di una superfice continua (un 2 manifold ) immersa in R 3 Componenti: 1. geometria i vertici, ciascuno con pos (x,y,z) un campionamento della superficie! 2. connettività come sono connessi i vertici (es.: in una tri-mesh, i triangoli) 3. attributi es: colore, materiali, normali, UV, temperatura Mesh triangolare (o mesh simpliciale) Un insieme di triangoli adiacenti facce vertici spigoli (o edges) 2

Mesh: intro GPU friendly Risoluzione (potenzialmente) adattiva Complessità = numero facce Mesh: cenni storici Da sempre, il dataset cardine della C.G. Costante aumento complessità Tecnologie base di creazione: anni 80: parametric surfaces (NURBS, splines) GSM / isosuperfici, CAD anni 90: scansione /acquisizione; superfici di suddivisione; semplificazione automatica; anni 00: on-card geometry amplification; computer vision anni 10: reverse engineering (semiregular quads) 3

Simplicial Meshes: complessità crescente 1994 70.000 Simplicial Meshes: complessità crescente 1997 1.200.000 4

Simplicial Meshes: complessità crescente 2002 2.000.000.000 Ma in ambiente games LOW POLY MODELLING! 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 2 / 1 3 U n i v e r s i t à d e l l I n s u b r i a 5

Low Poly modelling low-poly models pixel art : (high-res) mesh = : (high res) images reminder: per tutti gli 80, il principale asset dei games é consistito in sprites/tiles in pixel art... Solomons s key (1986, Temco) on Z80 Metal Slug (1996, Nazca Copr), on Neo Geo (SNK) 6

Low-poly modelling 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 2 / 1 3 U n i v e r s by i t à Phillip d e l Heckinger l I n s u b (3D r i a modeller) Mesh editing: applicativi generici 3D Studio Max (autodesk), Maya (alias), Cinema4D (maxon) generici, potenti, completi Blender idem, ma open-source e freeware (simile a: Gimp VS. Adobe Photoshop per 2D images) MeshLab open-source, grande collezione algoritmi di geometry processing AutoCAD (autodesk), SolidWorks (SolidThinking) per CAD ZBrush (pixologic), Mudbox (autodesk) scultura virtuale, specializzato in ritocco manuale dettagli hi-freq, bumpmapping, normalmaps Wings3D open-source, piccolo, specializzato in low-poly editing, subdivision surfaces [Rhinoceros] parametric surfaces (NURBS) Sculptris Metafora scultura FragMotion specializzato per mesh animate + moltissimi strumenti per contesti specifici (editing di umani, di interni architetturali, di paesaggi, o editor specifici per game-engines, etc...) 7

Mesh editing: librerie VCG-Lib (CNR, it) Vision and Computer Graphic Lib OpenMesh (RWTH, de) CGAL (~INRIA, fr) Computational Geometry Algorithms Library tutte e tre: C++, open-suorce. Argomento molto vasto Un buon manuale: 8

Formati files per mesh (da xkcd.com) Formati files per mesh (una Torre di Babele!) 3DS - 3D Studio Max file format OBJ Another file format for 3D objects MA, MB Maya file formats 3DX Rinoceros file format BLEND Blender file format DAE COLLADA file format (Khornos) FBX Autodesk interchange file format X Direct X object SMD good for animations (by Valve) MD3 quake 3 vertex animations DEM - Digital Elevation Models DXF (exchange format, Autodesk's AutoCAD) FIG - Used by REND386/AVRIL FLT - MulitGen Inc.'s OpenFlight format HDF - Hierarchical Data Format IGES - Initial Graphics Exchange Specification IV - Open Inventor File Format Info LWO, LWB & LWS - Lightwave 3D file formats MAZ - Used by Division's dvs/dvise MGF - Materials and Geometry Format MSDL - Manchester Scene Description Language C4D Cinema 4D file format SLDPTR SolidWork "part" WINGS Wings3D object NFF - Used by Sense8's WorldToolKit SKP Google sketch up KMZ Google Earth model OFF - A general 3D mesh Object File Format OOGL - Object Oriented Graphics Library PLG - Used by REND386/AVRIL POV persistence of vision ray-tracer QD3D - Apple's QuickDraw 3D Metafile format TDDD - for Imagine & Turbo Silver ray-tracers NFF & ENFF - (Extended) Neutral File Format VIZ - Used by Division's dvs/dvise 3DML by Flatland M a inc. r c o T a r i n i [ G A M E - D E V ] V e r o n a 2 0 1 3 VRML, VRML97 - Virtual Reality Modeling Language (RIP) X3D tentato successore di VRML PLY introdotto by Cyberware tipic. dati range scan DICOM Dalla casa omonima tipic. dati CAT scan Renderman per l'omonimo visualizzatore RWX RenderWare Object Z3D ZModeler File format etc, etc, etc... 9

Come definisco una triangle mesh? Una tri-mesh è un insieme di triangoli adiacenti Strutture dati? Modo diretto: un vettore di triangoli e per ogni triangolo tre vertici e per ogni vertice tre coordinate Ma: replicazione dati poco efficiente in spazio oneroso fare updates Esempio di file format : formato PLY Esempio: ply cubo.ply format ascii 1.0 comment proprio un cubetto element vertex 8 property float x property float y property float z element face 12 property list uchar int vertex_indices end_header <dati...> 10

Esempio di file format : formato OFF Esempio: # facce # edges LetteraL.off # vertici x,y,z 2ndo vert OFF 12 10 40 0 0 0 3 0 0 3 1 0 1 1 0 1 5 0 0 5 0 0 0 1 3 0 1 3 1 1 1 1 1 indice 0 indice 1 indice 2 indice 3 1 5 1 0 5 1 4 3 2 1 0 4 5 4 3 0 4 6 7 8 9 4 6 9 10 11 4 0 1 7 6 4 1 2 8 7 4 2 3 9 8 4 3 4 10 9 4 4 5 11 10 4 5 0 6 11 prima faccia: 4 vertici: con indici 3, 2, 1 e 0 Esempio di file format : formato PLY E' un formato digitale per mesh superficiali Può essere in binario, o in ASCII (testo) binario: più compatto e veloce da leggere ascii: direttamente leggibile con un editore di testo In ogni caso, comincia con un header in ASCII 11

E gli attributi? Tipicamente definiti: per vertice un attributo nella struttura di ogni vertice per faccia un attributo nella struttura di ogni faccia per wedge (vertice di faccia) tre attributi nella struttura di ogni faccia (caso più generico!) per edge (raro) Attributi più comuni: colore coordinate texture normali... Caratteristiche della connettività di una mesh Orientabile, non orientabile è possibile assegnare un orientamento ad ogni faccia coerentemente? orientabile = normali coerenti! A 1 1 D 3 2 3 2 C senso opposto, edge coerente B 12

Mesh: strutture dati Strutture basate su half-edges V3 V4 V1 V5 V2 Mesh: task comuni Data una mesh: magari appena caricata trovare il AABB (axis aligned bounding box) utile ad esempio per translare e scalare l'oggetto opportunamente come si fa? (si itera sui vertici: trovare il max e il min di tutte le x, le y e le z) 13

Mesh: task comuni Data una mesh: magari appena caricata trovare le normali per faccia trovare le normali per vertice come si fa? che struttura serve? (FV? VF?) BASTA LA FV! 1 azzerare tutte le norm x vertice 2 iterare su ogni faccia: - trovare normale x faccia (normalizzata) - aggiungerla a normale dei tre vertici incidenti (FV) 3 iterare su ogni vertice: normalizzare normale x vertice Mesh: altri task Parametrizzazione assegnare una coppia di coordinate texture ad ogni wedge ci sono seams replicare i vertici oppure, memorizzale le text coord per wedge v u 14

Task: u-v mapping di una mesh ( u-v == s-t ) Assegnare una coppia di coordinate texutres ad ogni vertice della mesh In preprocessing t t s s 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 2 / 1 3 U n i v e r s i t à d e l l I n s u b r i a Problema difficile: u-v mapping ( u-v == s-t ) fatto a mano, oppure automatizzato 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 2 / 1 3 U n i v e r s i t à d e l l I n s u b r i a 15

Mesh: altri task Semplificazione automatica parametri: un errore massimo o un numero di facce obiettivo automaticamente mesh originale 500K triangoli mesh semplificata 2K triangles Semplificazione automatica p e r f o r m a n c e q u a l i t y 16

Semplificazione automatica Una piramide di Livelli di Dettaglio LOD 1 LOD 2 LOD 3 LOD 4 usare quando visto da vicino usare quando visto da lontano Semplificazione automatica Molte tecniche diverse Adattive oppure no usare piu' triangoli dove c'e' bisogno (es non nelle zone cmq piatte) oppure no Errore massimo introdotto: misurato e/o limitato oppure no Topologia: mantenuta oppure no Streaming Possibile Oppure no... 17

Detail preservation (o "texture for geometry") Idea: semplificare una mesh sintetizzare una tessitura per ripristinare il dettaglio perso durante la semplificazione 500mila triangoli detail recover TESSITURA fatta apposta (es. BumpMap) semplificazione automatica 2mila triangoli rendering sempre duemila triangoli, ma con texture mapping 18

originale 500K triangles semplificato simplificato ma con tessitura 2K triangles Mesh: task tipici nella game industry Semplificazione automatica LOD construction Light baking Precomputazione Luce Tipico esempio: Ambient Occlusion U-V mapping parametrizzazione Texturing creazione tessiture Rigging / Animation linear blend skinning 19