Grafica
Upcoming SlideShare
Loading in...5
×
 

Grafica

on

  • 589 views

 

Statistics

Views

Total Views
589
Views on SlideShare
544
Embed Views
45

Actions

Likes
0
Downloads
8
Comments
0

2 Embeds 45

http://g5discs2012.wikispaces.com 41
http://corsos1.wikispaces.com 4

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Grafica Grafica Presentation Transcript

  • GRAFICA DIGITALESilvia LombardiTrento, 18 Maggio 2012Corso “Didactics of Computer Science”Laurea magistrale in Matematica Fonte: J. Glenn BrookshearUniversità degli studi di Trento “Computer Science: an overview” 1
  • Prime informazioniLa grafica digitale è quella parte dell’informatica che si occupa di produrre e manipolareimmagini. E’ associata alla presentazione di testi, mappe, fotografie, videogiochi eimmagini animate. Nasce nella seconda meta degli anni ’60 per scopi industriali emilitari, ma ha avuto un maggiore sviluppo a partire dagli anni ’90.Possiamo distinguere• Grafica in 2 dimensioni (2D), che converte forme bidimensionali in insiemi di pixel, glielementi puntiformi che rappresentano un’immagine nella memoria di un computer, alfine di produrre l’immagine stessa• Elaborazione digitale delle immagini (image processing), che analizza i pixel inun’immagine e ne individua le caratteristiche utili per modificare l’immagine stessa. 2
  • Grafica tridimensionale (3D)La grafica tridimensionale si occupa di convertire forme tridimensionali (dunque nellospazio) in immagini, costruendo scene in 3D in modo digitale e simulando poi il processofotografico, scattando immagini delle scene. La scena fotografata è dunque un insieme didati e algoritmi. Fotografia di una scena del mondo virtuale del film “Toy story”,prodotto dalla Disney Pixar usando la grafica 3D 3
  • Possiamo distinguere due passi nella rappresentazione di un’immagine in grafica 3D:• un processo di tipo artistico e creativo legato alla creazione, codifica, memorizzazione e manipolazione delle scene da fotografare;• un processo prettamente computazionale legato alla produzione dell’immagine.L’intero processo di creazione e visualizzazione delle immagini in 3D consiste però di 3 fasi• MODELLIZZAZIONE• RENDERING• VISUALIZZAZIONE 4
  • MODELLIZZAZIONELa fase di modellizzazione è simile a quella di creazione di un set nell’industriacinematografica, tranne per il fatto che la scena 3D è costruita a partire da dati digitali ealgoritmi, non esiste cioè nella realtà. In particolare, il set è chiamato scena, mentre gliaccessori utilizzati sono detti oggetti.L’accuratezza con la quale sono rappresentati gli oggetti dipende dalla loro posizione nellascena ma anche da quanto sia stato preciso il modello realizzato in questa prima fase.Tra le informazioni necessarie per riprodurre un oggetto, possiamo evidenziare• la forma• le caratteristiche della sua superficie• l’interazione dell’oggetto con la luce 5
  • FormaLa forma di un oggetto in grafica 3D è realizzata attraverso l’unione di piccole superficipiane, chiamate patch planari, aventi la forma di un poligono. I poligoni formano unreticolo poligonale (polygonal mesh) che approssima la forma dell’oggetto. Il reticolopoligonale è rappresentato come l’insieme dei vertici delle sue patch planari; spesso ipoligoni utilizzati sono i triangoli, poiché si minimizza il numero di vertici.La rappresentazione di un reticolo poligonale può essere ottenuta in vari modi. In primoluogo è possibile fornire direttamente l’espressione matematica della forma desiderata,ottenendo così con precisione i vertici del reticolo. Una sfera di raggio r, può essere rappresentata con l’espressione geometrica r²=x²+y²+z²; i vertici del reticolo possono essere determinati identificando i punti d’intersezione delle rette di latitudine e longitudine. 6
  • Un metodo più sofisticato per ottenere un reticolo poligonale è basato sull’uso delle curvedi Bezier. Consiste nel definire un segmento di linea curva in tre dimensioni grazie a pochipunti, detti punti di controllo: due punti rappresentano gli estremi della curva e altridefiniscono come è deformata. Tecniche simili consentono di creare le superfici di Bezier. Esempio di curva di Bezier , fonte: mondografica.itIl reticolo poligonale si può costruire anche di forza bruta, digitalizzando un modello fisicodell’oggetto e riportando le posizioni dei punti sulla superficie tramite un dispositivo apenna che segni e memorizzi tali punti. 7
  • Per le figure più complesse è necessario scrivereprogrammi che costruiscano la forma desiderata usandomodelli procedurali, che applicano algoritmi specifici perottenere la struttura voluta.I modelli procedurali sono degli ottimi strumenti perprodurre oggetti tra loro simili. Inoltre i modelli proceduralipossono essere costruiti• secondo regole di ramificazione, con un processo similea quello di costruzione di parse tree;• come sistemi di particelle, simulando la struttura di unoggetto come un insieme di particelle e muovendolesecondo regole definite in modo da produrre la formacercata. Modello procedurale per la costruzione di un reticolo poligonale di una catena montuosa 8
  • Caratteristiche della superficieOltre alla forma, molte altre informazioni possono essere fornite sull’oggetto darappresentare. Ad esempio, si può fornire uno schema dei colori presenti sulla superficietramite un processo di texture mapping.Questo processo di mappatura dei colori ha i suoi effetti migliori se applicato a superficipiatte, ma viene utilizzato con successo anche nei video giochi.La ricerca di realismo nella modellizzazione degli oggetti è un campo in continuaevoluzione, in cui nuove tecniche vengono sperimentate al fine di ottenere riproduzionidigitali sempre più fedeli alla realtà. 9
  • MODELLIZZAZIONE DI SCENE COMPLETEAgli oggetti descritti e codificati digitalmente, viene assegnata una posizione all’internodella scena. Questi dati sono collegati tra loro in una struttura dati chiamata scene graph.Questa struttura contiene anche collegamenti ad oggetti speciali che rappresentano lesorgenti di luce e la macchina da presa.Talvolta è necessario alterare anche la posizione della macchina da presa, come avvienead esempio nei sistemi di realtà virtuali, dove un individuo vede l’ambiente secondo i suoimovimenti. 10
  • RENDERINGLa fase di rendering determina come appaiono gli oggetti nella scene graph proiettati suuna superficie chiamata piano di proiezione, applicando cioè la proiezione prospettica.Tutti gli oggetti sono proiettati lungo linee rette che partono da un punto, chiamato centrodella proiezione. La parte di piano proiettivo delimitata dall’immagine finale è dettafinestra immagine (image window). Identificata questa finestra, viene calcolata laposizione di ogni pixel. I risultati sono memorizzati in un’area di memoria chiamata framebuffer. 11
  • Nel determinare la posizione di un oggetto, è necessario tener conto dell’interazioneesistente tra la sua superficie e la luce. In base al materiale dell’oggetto, sono possibili duefenomeni: riflessione e rifrazione.• Riflessione: un raggio di luce arriva sulla superficie formando un angolo di incidenzarispetto alla normale e viene riflesso di un angolo della stessa ampiezza. Se la superficie èliscia, i raggi paralleli che arrivano sulla superficie sono riflessi tutti nella stessa direzione ela luce riflessa è detta luce speculare. Se i raggi sono riflessi in direzioni diverse si parla diluce diffusa. La capacità di distinguere la luce speculare da quella diffusa è dovuta alla luceambiente, ovvero alla luce che non è associata a una direzione particolare.Si distinguono•superfici isotrope: con schemi di riflessione simmetrici•anisotrope: cambiano luminosità ruotando Schema della riflessione della luce 12
  • • Rifrazione: se la luce attraversa un oggetto trasparente, la direzione dei raggi di luce èalterata. Il grado di rifrazione dipende dall’indice di rifrazione dei materiali coinvolti ed èlegato alla loro densità. Il software di rendering deve conoscere l’indice di rifrazione perrappresentare le proprietà degli oggetti trasparenti e deve inoltre sapere quale parte dellasuperficie è opposta all’esterno. Schema della rifrazione della luce 13
  • La pipeline di renderingIl processo di produzione di una immagine dalla scene graph è noto come pipeline direndering e consiste di varie tecniche applicate ad oggetti opachi, non considerando cioè larifrazione. Inoltre la pipeline implementa un modello d’illuminazione locale (senzaconsiderare interazione tra gli oggetti).Il primo passo del processo è l’identificazione della regione tridimensionale che contienegli oggetti, chiamata view volume, ed è lo spazio entro la piramide definita dalle rettepassanti per il centro della proiezione e i vertici dell’image window. 14
  • Identificati e scartati gli oggetti che non intersecano il view volume, gli altri oggettivengono rifiniti tramite un processo di clipping, che consiste nel tagliare le parti esterne alview volume. In seguito vengono individuati i punti interni ai patch planari rimasti e adognuno di loro è associata la posizione del pixel corrispondente nell’immagine finale. Ilprocesso che associa ogni posizione del pixel a un punto sulla scena è detto scanconversion o rasterization (rasterizzazione). Tale processo è effettuato tracciando rette dalcentro della proiezione passanti per la posizione di ogni pixel sull’image window eidentificando i punti in cui queste rette intersecano i patch planari. Il processo di scan conversion 15
  • Per scene complete, viene effettuata anche la rimozione delle superfici nascoste (hidden-surface removal), ovvero l’eliminazione dei punti non visibili all’utente. Un esempio è laback-face elimination, ovvero la rimozione delle facce posteriori di un oggetto.Per risolvere al meglio il problema della resa degli oggetti in primo piano o sul fondo dellascena, viene adottata la tecnica del z-buffer, un’area di memoria aggiuntiva che contieneuna voce per ogni pixel e memorizza in dettaglio la sua posizione nell’immagine. In talmodo si riesce a rappresentare esattamente l’immagine desiderata anche se ci sonosovrapposizioni. 16
  • Il processo di determinazione dell’aspetto del patch in ogni punto viene detto shading(ombreggiatura). Per rendere le caratteristiche della luce sulla superficie dell’oggettovengono usati vari metodi:• Flat shading, che consiste nell’usare come orientamento della luce su ogni punto quellodi un patch planare;• Gouraud shading, che converte informazioni sull’orientamento e i colori ai vertici deipatch per interpolare ed ottenere l’aspetto dei punti interni;• Phong shading, che interpola l’orientamento della superficie lungo i confini del patch perpoi stimare quella dei punti interni, convertendo successivamente in colori questeinformazioniAltre tecniche di shading quali ad esempio il bump mapping, riescono a rappresentaresolchi, asperità e sporgenze. 17
  • Fonte: wikipedia.orgGOURAUD SHADING 18
  • Hardware del pipeline di renderingPer le applicazioni grafiche possono essere aggiunti dei dispositivi appositi, quali graphicscard o graphics adapter, al fine di ridurre il tempo richiesto per il processo di rendering.Un’applicazione grafica sviluppata per una specifica piattaforma, talvolta deve esseremodificata se trasferita in altri ambienti. Per rispondere a quest’esigenza esistonointerfacce che convertono comandi standardizzati nelle istruzioni del sistema considerato,ad esempio• OpenGL (Open Graphics Library)• Direct3D 19
  • ANIMAZIONELa tecnologia digitale consente di vedere anche immagini in movimento. Un’animazione èottenuta tramite immagini consecutive di una scena, detti frames (fotogrammi) visualizzatein rapida successione. La presentazione di questi frames avviene a intervalli regolari,secondo uno standard di 24 frames al secondo o 60 nel caso dei video.I frames possono essere prodotti sia dalla normale fotografia che artificialmente dallagrafica digitale.Le due tecniche possono combinarsi; le fotografie possono essere modificate creando adesempio l’illusione del morphing, il processo per cui un oggetto si trasforma gradualmentein un altro.Questo effetto è reso attraverso dei punti di controllo presenti nel frame originale, chevengono usati come guida per deformare un’immagine in un’altra. 20
  • Esempio di morphing, fonte: slidetomac.com 21
  • Un progetto di animazione inizia con la creazione di uno storyboard, una sequenza diimmagini bidimensionali che racconta una storia nella forma di sketch, o punti chiave dellapresentazione.I maestri animatori dividono lo storyboard in frames dettagliati, frames chiave, chestabiliscono la comparsa dei personaggi e delle scene a intervalli regolari. A volte siaggiungono frames per riempire i vuoti tra un frame chiave e l’altro attraverso un processodi in-betweening.Anche per la grafica tridimensionale è possibile realizzare storyboard per un mondovirtuale tridimensionale. In questo caso muovere un oggetto significa modificare alcunivalori memorizzati nel suo insieme di dati. 22
  • CINEMATICA E DINAMICAPer simulare i movimenti naturali è necessario tener conto di due branche della fisica:• la dinamica, che descrive il moto di un oggetto applicando le leggi della fisica perdeterminare gli effetti delle forze che agiscono sull’oggetto. Per esempio, ad un oggetto vaassegnata una direzione, una velocità ed una massa, in modo da determinare gli effettidella gravità.• la cinematica, che descrive il moto di un oggetto rispetto a come parti dell’oggetto simuovono rispetto alle altre. Un’applicazione pratica si ha nell’animazione di figurearticolate, che devono muovere solo braccia o gambe. 23
  • Per rappresentare un personaggio nel dettaglio, viene applicata la cinematica. Si parte conuna figura stilizzata che riproduce lo scheletro, in seguito coperta con un reticolopoligonale.La figura può essere modificata e manipolata riposizionando le sue articolazioni. I punticon cui si controllano queste variazioni sono gli avars (articulation variables).La maggior parte dell’animazione che utilizza la cinematica è prodotta imponendo alpersonaggio una sequenza predisposta di posizioni. Tale sequenza può essere ricavatadall’animatore o dalla motion capture, una tecnica che, tramite dispositivi, cerca dicatturare i movimenti delle azioni desiderate. 24