Sistemi Multimediali II Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione 17: dose finale di Computer Graphics
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 2/40 Alcuni argomenti che non abbiamo trattato (o abbiamo trattato poco) Modelling: –superfici di suddivisione Paradigmi alternativi di rendering: –raytracing –radiosity Tecniche che usano tessiture: –opacity-maps –bump-maps Altri contesti applicativi: –Rendering non fotorealistico I progressi recenti in HW grafico: –HW programmabile
Sistemi Multimediali II Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione 16: dose finale di Computer Graphics Modelling: superfici di suddivisione
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 4/40 Superfici di suddivisione Modo molto diffuso per costruire mesh –1: fare mesh di controllo a bassissima risoluzione a mano –2: raffinarla automaticamente iterativamente (e ad ogni interazione si aggiungono facce e vertici) molti schemi matematici differenti –con diverse peoprietà non ne vediamo neanche uno ma sappiate che esistono
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 5/40 Superfici di suddivisione
Sistemi Multimediali II Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione 16: dose finale di Computer Graphics Altri Paradigmi di Rendering RAY-TRACING
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 7/40 Ray-Tracing In questo corso abbiamo visto Rendering... – Real Time (o almeno interattivo) – Basato sull'HW – Rasterization based...
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 8/40 Ray-Tracing Idea: –per ogni pixel sullo schermo: mando un raggio (il "raggio primario" di quel pixel) trovo la sua 1ma intersezione con un oggetto della scena
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 9/40 Ray-Tracing Implementazione: –tutta basata su intersezione raggio-primitive efficente
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 10/40 Ray-Tracing Facile fare: ombre portate (nette) raggio primario raggio di shadowing (inteseca, quindi il punto e' in ombra)
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 11/40 Ray-Tracing Facile fare: riflessioni speculari (anche multiple) raggio primario raggio di riflessione
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 12/40 Ray-Tracing Facile fare: semitrasparenze con rifrazioni raggio primario raggio di riflessione raggio di rifrazione
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 13/40 Ray-Tracing: tipici esempi di risultati ( Advanced Rendering Toolkit - Alexander Wilkie )
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 14/40 Ray-Tracing: tipici esempi di risultati ( Advanced Rendering Toolkit - Alexander Wilkie )
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 15/40 Ray-Tracing : tipici esempi di risultati
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 16/40 Ray-Tracing : costo E' computazionalmente caro –costanti alte –ma in verità SUBLINEARE col numero di primitive se vengono usate strutture dati adeguate In pratica, usato solo per rendering off-line Nota: non usa nessun HW specializzato –ma la CPU normale
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 17/40 Ray-Tracing: HW apposito Scene: 5 alberi (milionate di triangoli) 28mila girasoli (11 tipi), 35K triangoli ciascuno. OpenRT Project inTrace Realtime Ray Tracing Technologies GmbH MPI Informatik, Saarbrueken - Ingo Wald 2004 HW specializzato per fare RayTracing. Per ora, solo prototipi nei laboratori. Stessa idea base (parallelizzare). Implementazione del tutto differente dal nostro pipeline di rasterizzazione. Sfonderà?
Sistemi Multimediali II Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione 16: dose finale di Computer Graphics Altri Paradigmi di Rendering Radiosity
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 19/40 Radiosity Modo per fare illuminazione globale Gestisce bene riflessioni multiple diffuse –ciò che noi avevamo approssimato sommariamente col termine AMBIENT
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 20/40 Radiosity: Concetto Dividere la scena in pezzetti –circa uguali –(non come i nostri triangoli...)
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 21/40 Radiosity: Concetto Dividere la scena in pezzetti Per ogni coppia di pezzetti i e j –calcolare quanta luce... che parte da i e si diffonde in tutte le direzioni (DIFFUSE!) –... raggiunge j Alcuni pezzetti emanano luce propria (le luci!) –gli altri diffondono solo quella che gli arriva da fuori Poi risolvere tutto (facile a dirsi) la matriciona corrsipondente e' detta Form Factor
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 22/40 Radiosity: Come Vecchia scuola: –invertire una matrice enorme Come si fa davvero: –metodi randomizzati stocastici (Monte Carlo)
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 23/40 Radiosity: Costo E troppo caro da calcolare in tempo reale –e sarà cosi a lungo Ma... il risultato di questa computazione NON dipende dal punto di vista! –può essere salvato nella scena come colore per vertice in una tessitura etc –e renderizzato real time tramite rasterizzazione almeno finchè cambia solo il punto di vista (ne l'illuninazione ne scena) –come: togliendo il lighting (almento le componenti AMBIENT e DIFFUSE)
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 24/40 Radiosity: tipici esempi di risultati
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 25/40 Torniamo al Rendering basato su Rasterizzazione eseguito su HW grafico specializzato
Sistemi Multimediali II Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione 16: dose finale di Computer Graphics Opacity Maps
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 27/40 Texture mapping e Alpha Test In una tessitura, ogni texel può avere anche una componente alpha –Colore + trasparenza Un canale alpha può essere composto di soli –1 completamente opaco –0 completamente trasparente frammenti corrispondenti cassati dall'alpha-test
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 28/40 Texture mapping e Alpha Test Trucco molto utile: –simboli e testo sulla scena... –sistemi di particelle con particelle grandi
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 29/40 Texture mapping e Alpha Test Trucco molto utile: –erba...
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 30/40 Texture mapping e Alpha Test Trucco molto utile: –drappi, barba... by Micheal Filipowski 2004 tessitura
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 31/40 Texture mapping e Alpha Test Trucco molto utile: –alberi
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 32/40 Texture mapping e Alpha Test Trucco molto utile: –pelliccia tessitura (ripetuta)
Sistemi Multimediali II Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione 16: dose finale di Computer Graphics Bump-Mapping
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 34/40 Bump-Mapping Frammenti & attributi interpolati Vertici & loro attributi Screen buffer Vertici poriettati & attributi computati rasterizer triangoli set- up rasterizer segmenti set- up rasterizer punti set- up computazioni per vertice Texture RAM interpolo coordinate texture coordinate texture interpolate compreso: coordinate texture (per vertice!) bumpmap: ogni texel (la codifica di) una normale texture look-up, lighting (usando la normale) computazioni per frammento
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 35/40 Bump-Mapping E' un metodo molto diffuso –per aggiungere dettaglio geometrico in maniera efficace E' un froma di per-fragment lighting –il lighitng è computato per ogni frammento –come ad esempio anche il Phong shading
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 36/40 Bump-Mapping stessa geometria (una sfera) bumpmaps diverse
Sistemi Multimediali II Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione 16: dose finale di Computer Graphics Rendering non fotorealistico
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 38/40 Rendering non fotorealistico NPR = Non Photorealistic rendering Un rendering dove l'obiettivo non è il realismo ma: –la chiarezza immagine che da informazione nel modo più chiaro possibile –oppure l'imitazione di uno stile umano: stile toon (cartone animato) stile disegno a matita stile stampa stile chiaroscuro a matita...
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 39/40 Rendering non fotorealistico Esempio: rendering in stile disegni a matita
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 40/40 Rendering non fotorealistico Esempio: hatching Emil Praun, Hugues Hoppe, Matthew Webb, Adam Finkelstein 2001 modello 3D rendering (in tempo reale)
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 41/40 Rendering non fotorealistico Esempio: renderings stile toon Questi sono rederings off-line. Ma esistono algoritmi per il nostro HW grafico per ottenere questo tipo di effetti in tempo reale ! bordi come linee scure shading quantizzato (due gradazioni di verde, non una sfumatura
Sistemi Multimediali II Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione 16: dose finale di Computer Graphics L'ultimo grido in GPU
M a r c o T a r i n i ‧ S i s t e m i M u l t i m e d i a l i I I ‧ / 0 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a - 43/40 Bump-Mapping Frammenti & attributi interpolati Vertici & loro attributi Screen buffer Vertici poriettati & attributi computati rasterizer triangoli set- up rasterizer segmenti set- up rasterizer punti set- up PROGRAMMABILITA' ! ! ! computazioni per vertice computazioni per frammento