• Non ci sono risultati.

Fondamenti di Grafica Tridimensionale

N/A
N/A
Protected

Academic year: 2021

Condividi "Fondamenti di Grafica Tridimensionale"

Copied!
34
0
0

Testo completo

(1)

1

Fondamenti di

Grafica Tridimensionale

Paolo Cignoni

paolo.cignoni@isti.cnr.it http://vcg.isti.cnr.it/~cignoni

http://vcg.isti.cnr.it/~cignoni/FGT1516

(2)

2

Obiettivi

Conoscere gli aspetti fondamentali riguardo alle nozioni teoriche e

algoritmiche per la modellazione geometrica e il rendering di scene tridimensionali

Strutture e algoritmi per la rappresentazione di superfici tramite mesh triangolari

Algoritmi per il rendering

Architetture per la grafica interattiva

Modelli avanzati di illuminazione

(3)

3

Requisiti

Conoscenza minima delle basi della grafica

Conoscenza del C++

Buona. Se non la avete iniziate subito.

Conoscenza Javascript

Buona. Basta che sia migliore della mia :)

Capacita' di progettare GUI ragionevolmente sofisticate

Useremo jqueryui.

Autosufficienza nell'imparare API di librerie per grafica e GUI.

(4)

4

Strumenti

Teorici:

Un po' di geometria computazionale, un po' di algebra lineare e un minimo di analisi.

Pratici:

Linguaggio C++, JS, tool per lo sviluppo collaborativo (git), sviluppo multiplatform.

Libs, Toolkits, ecc

Tutto quel che ci serve in modo utilitaristico

Open source obbligatoriamente

(5)

5

Esame

Il progetto e' generalmente costituito da un pezzo di MeshLaJS e costituisce la

parte più significativa dell'esame

(6)

6

Esame

Costituito da una parte teorica ed una progettuale.

La parte teorica riguarda gli argomenti di grafica, puo' essere sostenuta:

con un compitino,

con un orale al momento della consegna della parte progettuale.

La parte progettuale vale 20/30, mentre la parte teorica vale 10/30.

Voto finale = Progetto + max (Orale, Compitino)

(7)

7

MeshLab

Generic mesh processing tool

Open source GPL avail for win and linux

The system relies on a large gpl library for mesh processing

Aimed to the (almost) automatic processing of large unstructured 3d models

acquired 3D models are different from human built models

No structure, no particular need of a scene graph

Large datasets : millions of primitives

(8)

8

MeshLab

Audience

3D scanning (mesh cleaning, etc)

Entertainement industry (mesh reduction, checking, conversion)

Simulation (checking, visualization)

3D printing

Research Labs (it is a swiss knife)

(9)

9

Checking

Visual inspection

See through filters (opengl shaders)

Quality evaluation

Curvature dependent

Automatic marking of mesh inconsistencies

topological:non manifoldness)

Geometric: self intersection

Small connected components removal

(10)

10

MeshLab tasks

Filtering

Removal of outliers according to various heuristics

Smoothing out noise

Various fairing algorithms

Editing

Selection of parts and removal of non interesting portions of the acquired data

(11)

11

Remeshing

Subdivision Surface (loop and butterfly)

Reducing complexity through simplification

Both fast approximate and slower high quality algorithms

500k 50k 5k

(12)

12

MeshLab Architecture

Plugin based

All the mesh processing functionality are implemented through plugins

Easy to add new stuff in a consistent and scalable way

Easier distributed development

Various classes of plugins

Filter plugins

Edit plugins

I/O plugins

(13)

13

MeshLab Architecture

Basic plugins are the filters

Algorithms that take some meshes in input, some user parameters and create/modify meshes.

Automatic dialog creation

Developer of filters simply declare the parameters and the gui for asking them is automatically

created.

More than two hundred filters

http://meshlab.sourceforge.net/wiki/index.php/Filter_List

MeshLabServer

Command line version of meshlab that exploits the same filtering plugins for unattended batch

processing

(14)

14

MeshLab numbers

1M download in the last 3y

30k monthly downloads

Phoning home – stat collection

Simple http call reporting number of

opened/saved meshes and their average size.

> than 50k serious users

People that have opened more than 100 meshes.

Used in hundred of university all over the world

Many companies using it

Game, simulation, aerospatial, 3d scanning, FX industries, military, medical,

(15)

15

MeshLab

MeshLab NON e' un esercizio didattico.

PRO

Avete un'occasione per partecipare allo sviluppo di un sistema Open source vero.

Quello che fate ha una visibilita' concreta e misurabile

Quello che fate RIMANE.

CON

L'impegno richiesto puo' essere maggiore del solito

Responsabilita' etica di quel che fate

(16)

16

MeshLabJS

Progetto nuovo partito nel 2015

http://www.meshlabjs.net/

https://github.com/cnr-isti-vclab/meshlabjs

Basato sulla stessa filosofia di meshlab

Ma differenti tecnologie

C++ → JS via emscripten

Webgl + threejs per rendering

(17)

17

Riferimenti Teoria

Fondamenti di grafica

tridimensionale interattiva

R. Scateni, P.Cignoni., C.

Montani, R. Scopigno

McGraw-Hil

Introduction to Computer Graphics: a Practical

Learning Approach

F. Ganovelli, M.Corsini, S.

Pattanaik and M. Di Benedetto

CRC Press

(18)

1

Fondamenti di Grafica Tridimensionale

Paolo Cignoni

paolo.cignoni@isti.cnr.it http://vcg.isti.cnr.it/~cignoni http://vcg.isti.cnr.it/~cignoni/FGT1516

(19)

2

Obiettivi

Conoscere gli aspetti fondamentali riguardo alle nozioni teoriche e algoritmiche per la modellazione geometrica e il rendering di scene tridimensionali

Strutture e algoritmi per la rappresentazione di superfici tramite mesh triangolari

Algoritmi per il rendering

Architetture per la grafica interattiva

Modelli avanzati di illuminazione

(20)

3

Requisiti

Conoscenza minima delle basi della grafica

Conoscenza del C++

Buona. Se non la avete iniziate subito.

Conoscenza Javascript

Buona. Basta che sia migliore della mia :)

Capacita' di progettare GUI ragionevolmente sofisticate

Useremo jqueryui.

Autosufficienza nell'imparare API di librerie per grafica e GUI.

(21)

4

Strumenti

Teorici:

Un po' di geometria computazionale, un po' di algebra lineare e un minimo di analisi.

Pratici:

Linguaggio C++, JS, tool per lo sviluppo collaborativo (git), sviluppo multiplatform.

Libs, Toolkits, ecc

Tutto quel che ci serve in modo utilitaristico

Open source obbligatoriamente

(22)

5

Esame

Il progetto e' generalmente costituito da un pezzo di MeshLaJS e costituisce la parte più significativa dell'esame

(23)

6

Esame

Costituito da una parte teorica ed una progettuale.

La parte teorica riguarda gli argomenti di grafica, puo' essere sostenuta:

con un compitino,

con un orale al momento della consegna della parte progettuale.

La parte progettuale vale 20/30, mentre la parte teorica vale 10/30.

Voto finale = Progetto + max (Orale, Compitino)

(24)

7

MeshLab

Generic mesh processing tool

Open source GPL avail for win and linux

The system relies on a large gpl library for mesh processing

Aimed to the (almost) automatic processing of large unstructured 3d models

acquired 3D models are different from human built models

No structure, no particular need of a scene graph

Large datasets : millions of primitives

(25)

8

MeshLab

Audience

3D scanning (mesh cleaning, etc)

Entertainement industry (mesh reduction, checking, conversion)

Simulation (checking, visualization)

3D printing

Research Labs (it is a swiss knife)

(26)

9

Checking

Visual inspection

See through filters (opengl shaders)

Quality evaluation

Curvature dependent

Automatic marking of mesh inconsistencies

topological:non manifoldness)

Geometric: self intersection

Small connected components removal

(27)

10

MeshLab tasks

Filtering

Removal of outliers according to various heuristics

Smoothing out noise

Various fairing algorithms

Editing

Selection of parts and removal of non interesting portions of the acquired data

(28)

11

Remeshing

Subdivision Surface (loop and butterfly)

Reducing complexity through simplification

Both fast approximate and slower high quality algorithms

500k 50k 5k

(29)

12

MeshLab Architecture

Plugin based

All the mesh processing functionality are implemented through plugins

Easy to add new stuff in a consistent and scalable way

Easier distributed development

Various classes of plugins

Filter plugins

Edit plugins

I/O plugins

(30)

13

MeshLab Architecture

Basic plugins are the filters

Algorithms that take some meshes in input, some user parameters and create/modify meshes.

Automatic dialog creation

Developer of filters simply declare the parameters and the gui for asking them is automatically created.

More than two hundred filters

http://meshlab.sourceforge.net/wiki/index.php/Filter_List

MeshLabServer

Command line version of meshlab that exploits the same filtering plugins for unattended batch processing

(31)

14

MeshLab numbers

1M download in the last 3y

30k monthly downloads

Phoning home – stat collection

Simple http call reporting number of

opened/saved meshes and their average size.

> than 50k serious users

People that have opened more than 100 meshes.

Used in hundred of university all over the world

Many companies using it

Game, simulation, aerospatial, 3d scanning, FX industries, military, medical,

(32)

15

MeshLab

MeshLab NON e' un esercizio didattico.

PRO

Avete un'occasione per partecipare allo sviluppo di un sistema Open source vero.

Quello che fate ha una visibilita' concreta e misurabile

Quello che fate RIMANE.

CON

L'impegno richiesto puo' essere maggiore del solito

Responsabilita' etica di quel che fate

(33)

16

MeshLabJS

Progetto nuovo partito nel 2015

http://www.meshlabjs.net/

https://github.com/cnr-isti-vclab/meshlabjs

Basato sulla stessa filosofia di meshlab

Ma differenti tecnologie

C++ → JS via emscripten

Webgl + threejs per rendering

(34)

17

Riferimenti Teoria

Fondamenti di grafica tridimensionale interattiva

R. Scateni, P.Cignoni., C.

Montani, R. Scopigno

McGraw-Hil

Introduction to Computer Graphics: a Practical Learning Approach

F. Ganovelli, M.Corsini, S.

Pattanaik and M. Di Benedetto

CRC Press

Riferimenti

Documenti correlati

● Seconda Passata o Density Evaluation: viene eseguito il Ray-Tracing (Whitted o Distributed) ma quando si colpisce una superficie diffusa si calcola la stima di densità dei

 assign to each triangle t a birth error t b and a death error t d equal to the error of the simplified mesh just before the removal of the vertex that caused

 La Wiki della libreria per il mesh processing cui si appoggia MeshLab.

  Oggi la pipeline di rendering è interamente a carico della scheda grafica.   La CPU si limita a descrivere

 La somma delle quantità di luce (radianza) che arrivano su una patch deve essere uguale alla radianza che esce piu’ la luce assorbita dalla patch

/// Return the priority to be used in the heap (implement static priority) virtual ScalarType Priority() const =0;. /// Perform the operation and return the variation in the number

 Notice that the fragment shader has no access to the frame buffer.  blending occur only after the fragment shader has run...  The set of compiled shaders, is then linked into

 Fortemente (molto fortemente) consigliato che lo abbiate gia' fatto prima di seguire4. Durante il corso assumo che