Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Con il crescente perfezionamento della grafica<br />
computerizzata dal 1970 in avanti è diventato un<br />
oggetto di studio e ricerca sempre più importante. È<br />
usato per: montaggio video/giochi per computer,<br />
simulatori, effetti visuali per film/serie TV, e<br />
visualizzazione di progetti. Ciascuno con una differente<br />
combinazione di caratteristiche e tecniche.<br />
Sono disponibili in commercio un gran numero di<br />
motori di render, alcuni dei quali integrati nei più diffusi<br />
pacchetti di modellazione e animazione tridimensionale,<br />
alcuni altri indipendenti, altri ancora distribuiti come<br />
progetti open source.<br />
Dall'interno, un renderizzatore è un programma<br />
progettato attentamente e basato su una combinazione<br />
selezionata di metodi relativi a: ottica, percezione<br />
visiva, matematica e ingegneria del software.<br />
Nel caso della grafica tridimensionale, il rendering è<br />
un processo lento e richiede un gran numero di<br />
elaborazioni da parte della CPU, oppure è assistito in<br />
tempo reale dagli acceleratori 3D delle schede grafiche<br />
(per i giochi tridimensionali).<br />
Uso<br />
Quando l'elaborazione preliminare della scena (una<br />
rappresentazione wireframe solitamente) è completa,<br />
inizia la fase di rendering che aggiunge texture bitmap o<br />
texture procedurali, luci, bump mapping, e posizioni<br />
relative agli altri oggetti. Il risultato è un'immagine<br />
completa che è possibile vedere.<br />
Nel caso di animazioni per pellicole cinematografiche,<br />
molte immagini (fotogrammi) devono essere disegnate<br />
e assemblate in un programma capace di creare<br />
un'animazione di questo tipo. La maggior parte dei<br />
programmi di elaborazione 3D sono in grado di<br />
elaborare queste immagini.<br />
Fenomeni<br />
Le immagini possono essere analizzate in termini di<br />
una serie di fenomeni visibili. Le ricerche e i progressi<br />
nel campo del rendering sono state in gran parte<br />
motivate dal tentativo di simularli in modo accurato ed<br />
efficiente.<br />
• shading — ombreggiatura; variazione del<br />
colore e luminosità di una superficie a seconda della<br />
luce incidente<br />
• texture mapping — un metodo per definire i<br />
dettagli del colore di una superficie mettendola in<br />
corrispondenza con un'immagine (texture)<br />
• bump mapping — un metodo per simulare<br />
irregolarità nella forma di una superficie mettendola in<br />
corrispondenza con un'immagine (bump map) che<br />
definisce una perturbazione fittizia della superficie,<br />
usata solo per ricavarne una distorsione della direzione<br />
perpendicolare (normale) impiegata nei calcoli per la<br />
propagazione della luce.<br />
• normal mapping — un metodo simile al bump<br />
mapping in cui l'immagine definisce direttamente come<br />
perturbare la normale della superficie in quel punto.<br />
• displacement-mapping — estrusione di una<br />
superficie secondo le normali tramite un'immagine in<br />
scala di grigi, producendo una reale perturbazione della<br />
forma della superficie, (per esempio per creare una<br />
montagna a partire da una superficie piana).<br />
• distance fog — attenuazione e dispersione<br />
della luce nel passaggio attraverso l'aria o altri mezzi;<br />
solo il vuoto è perfettamente trasparente.<br />
• shadows — gestione delle ombre proiettate<br />
• soft shadows — ombre parziali prodotte da<br />
sorgenti di luce estese<br />
• reflection — riflessioni speculari o quasi<br />
• transparency — trasmissione della luce<br />
attraverso un oggetto<br />
• rifrazione — deviazione della luce nel<br />
passaggio da un mezzo all'altro<br />
• illuminazione indiretta e Global illumination —<br />
tenere conto della luce riflessa più volte (il minimo è<br />
una sola riflessione, sorgente di luce -> oggetto -><br />
camera)<br />
• caustiche — accumulo di luce riflessa o<br />
rifratta proiettata in forme caratteristiche su altri oggetti<br />
(ad esempio la forma a cardioide della luce riflessa<br />
dall'interno di un cilindro o le forme irregolari in<br />
movimento sul fondo di una piscina)<br />
• profondità di campo o DoF (Depth of Field) —<br />
simulazione della progressiva sfocatura degli oggetti<br />
posti a distanza crescente dalla superficie di messa a<br />
fuoco (profondità di campo).<br />
• motion blur — simulazione della sfocatura<br />
degli oggetti in movimento rapido come in una ripresa<br />
fotografica.<br />
• subsurface scattering o SSS — simulazione<br />
del comportamento della luce che penetra un oggetto di<br />
materiale traslucido come la cera o la pelle umana<br />
(dispersione subsuperficiale).<br />
• ambient occlusion — simulazione del<br />
comportamento della luce in prossimità di volumi<br />
occlusi dove i raggi luminosi faticano ad entrare e<br />
uscire<br />
• anisotropia — simulazione di un materiale<br />
che riflette la luce in modo diverso per ogni direzione<br />
tangente al punto.<br />
Tecniche<br />
Le principali tipologie di algoritmi per risolvere il<br />
problema sono:<br />
• radiosity: collegata alla matematica agli<br />
elementi finiti;<br />
• ray tracing: collegata dalla matematica<br />
probabilistica.<br />
Questi approcci possono essere particolarmente<br />
intensi dal punto di vista computazionale, perché<br />
entrambi creano una struttura abbastanza completa per<br />
la gestione delle equazione di rendering.<br />
Per le applicazione real-time, non è pensabile di<br />
Applicazioni<br />
<strong>Capitolo</strong> 2° - Strumenti e applicazioni<br />
eseguire una elaborazione completa. In genere si<br />
semplifica il problema con una delle seguenti<br />
approssimazioni:<br />
• Nessuna illuminazione, solo texture mapping,<br />
poiché il colore intrinseco di un oggetto ha l'influenza<br />
maggiore sul suo aspetto.<br />
• Illuminazione diretta: si tiente conto solo della<br />
luce che va dalla fonte di illuminazione alla superficie,<br />
non di quella riflessa da altre superfici presenti nella<br />
scena. Questa luce potrà essere tenuta in<br />
considerazione con altri casi speciali attraverso il<br />
precalcolo.<br />
Alcuni dei principali algoritmi, sono:<br />
• Algoritmo del pittore<br />
• Algoritimi di tipo scanline<br />
• Algoritmi che utilizzano lo Z-buffer<br />
• Illuminazione globale<br />
• Radiosity<br />
• Ray tracing<br />
• Volume rendering<br />
Chi deve eseguire il rendering di grandi quantità di<br />
immagini (per esempio quelle di una sequenza<br />
cinematografica) usa una rete di computer connessi tra<br />
loro, detta render farm.<br />
L'attuale stato dell'arte per la costruzione di scene in<br />
3D per la creazione di film è il linguaggio di descrizione<br />
delle scene RenderMan creato dalla Pixar. (da<br />
confrontare con formati più semplici per la descrizione<br />
di un ambiente 3D come VRML o API come DirectX o<br />
OpenGL che sfruttano l'accelerazione hardware delle<br />
moderne schede grafiche).<br />
Avevo pensato di riportare un elenco in ordine di apparizione, considerando per<br />
apparizione il tempo impiegato dal singolo software per calcolare il risultato finale. Ma tempo<br />
72