Rendering

processo di generazione di un'immagine da un modello
(Reindirizzamento daRender)
Disambiguazione– Se stai cercando l'opera musicale, vediRendering (Berio).

Nellacomputer grafica,ilrendering(lett."restituzionegrafica"), anche italianizzato comerenderizzazione;[1][2]identifica il processo di resa, ovvero di generazione di un'immaginea partire da una descrizionematematicadi una scena tridimensionale, interpretata daalgoritmiche definiscono il colore di ogni punto dell'immagine digitale.

Una resa grafica virtuale della sala II deiMusei del Castello SforzescodiMilano,dove viene illustrato l'allestimento eseguito daiBBPRper ilriordino degli stessi.
Un'immagine renderizzata conPOV-Ray

In senso esteso (neldisegno), indica un'operazione atta a produrre una rappresentazione di qualità di un oggetto o di una architettura (progettata o rilevata).

Descrizione

modifica

È uno dei temi più importanti della grafica computerizzata tridimensionale e in pratica è sempre in relazione con tutti gli altri. Nell'ambito del processo di generazione grafica è l'ultimo importante stadio e fornisce l'aspetto finale al modello e all'animazione. Con il crescente perfezionamento della grafica computerizzata dal1970in avanti è diventato oggetto di studi e ricerche sempre più specifici.

È usato per:montaggio video,giochi per computer, simulatori, effetti visuali per film e serie TV, visualizzazione di progetti. Ciascuno con una differente combinazione di caratteristiche e tecniche.

Sono disponibili in commercio un gran numero di motori di render, alcuni dei quali integrati nei più diffusi pacchetti di modellazione e animazione tridimensionale, alcuni altri indipendenti, altri ancora distribuiti come progettiopen source.

Un renderizzatore è un programma basato su una combinazione selezionata di metodi relativi a:ottica,percezione visiva, matematica eingegneria del software.

Nel caso della grafica tridimensionale, il rendering è un processo lento e richiede un gran numero di elaborazioni da parte dellaCPU,oppure è assistito in tempo reale dagli acceleratori 3D delleschede grafiche(per i giochi tridimensionali).

Fenomeni

modifica

Le immagini possono essere analizzate in termini di una serie di fenomeni visibili. Le ricerche e i progressi nel campo del rendering sono state in gran parte motivate dal tentativo di simularli in modo accurato ed efficiente.

  • shading— ombreggiatura; variazione del colore e luminosità di una superficie a seconda della luceincidente
  • texture mapping— un metodo per definire i dettagli del colore di unasuperficiemettendola in corrispondenza con un'immagine(texture)
  • bump mapping— un metodo per simulare irregolarità nella forma di una superficie mettendola in corrispondenza con un'immagine (bump map) che definisce una perturbazione fittizia della superficie, usata solo per ricavarne una distorsione della direzioneperpendicolare(normale) impiegata nei calcoli per la propagazione della luce.
  • normal mapping— un metodo simile al bump mapping in cui l'immagine definisce direttamente come perturbare lanormale della superficiein quel punto.
  • displacement mapping— estrusione di una superficie secondo le normali tramite un'immagine in scala di grigi, producendo una reale perturbazione della forma della superficie, (per esempio per creare una montagna a partire da una superficie piana).
  • distance fog— attenuazione e dispersione della luce nel passaggio attraverso l'aria o altri mezzi; solo il vuoto è perfettamente trasparente.
  • shadows— gestione delleombreproiettate
  • soft shadows— ombre parziali prodotte da sorgenti di luce estese
  • riflessioni— riflessioni speculari o quasi
  • trasparenza— trasmissione della luce attraverso un oggetto
  • rifrazione— deviazione della luce nel passaggio da un mezzo all'altro
  • illuminazione indirettaeglobal illumination— tenere conto della luce riflessa più volte (il minimo è una sola riflessione, sorgente di luce → oggetto → camera)
  • caustiche— accumulo di luce riflessa o rifratta proiettata in forme caratteristiche su altri oggetti (ad esempio la forma a cardioide della luce riflessa dall'interno di un cilindro o le forme irregolari in movimento sul fondo di una piscina)
  • profondità di campooDoF(Depth of Field) — simulazione della progressiva sfocatura degli oggetti posti a distanza crescente dalla superficie di messa a fuoco (profondità di campo).
  • motion blur— simulazione della sfocatura degli oggetti in movimento rapido come in una ripresa fotografica.
  • subsurface scatteringoSSS— simulazione del comportamento della luce che penetra un oggetto di materiale traslucido come la cera o la pelle umana (dispersione subsuperficiale).
  • ambient occlusion— simulazione del comportamento della luce in prossimità di volumi occlusi dove i raggi luminosi faticano ad entrare e uscire
  • anisotropia— simulazione di un materiale che riflette la luce in modo diverso per ogni direzione tangente al punto.

Tecniche

modifica

Le principali tipologie di algoritmi per risolvere il problema sono:

  • radiosity:collegata alla matematica agli elementi finiti;
  • ray tracing:collegata dalla matematica probabilistica.

Questi approcci possono essere particolarmente intensi dal punto di vista computazionale, perché entrambi creano una struttura abbastanza completa per la gestione delle equazione di rendering.

Per le applicazioni in unsistema real-time,non è pensabile eseguire una elaborazione completa. In genere si semplifica il problema con una delle seguenti approssimazioni:

  • Nessuna illuminazione, solotexture mapping,poiché il colore intrinseco di un oggetto ha l'influenza maggiore sul suo aspetto.
  • Illuminazione diretta: si tiene conto solo della luce che va dalla fonte di illuminazione alla superficie, non di quella riflessa da altre superfici presenti nella scena. Questa luce potrà essere tenuta in considerazione con altri casi speciali attraverso il precalcolo.

Alcuni dei principali algoritmi, sono:

Chi deve eseguire il rendering di grandi quantità di immagini (per esempio quelle di una sequenza cinematografica) usa una rete di computer connessi tra loro, dettarender farm.

L'attuale stato dell'arte per la costruzione di scene in 3D per la creazione di film è il linguaggio di descrizione delle sceneRenderMancreato dallaPixar.(da confrontare con formati più semplici per la descrizione di un ambiente 3D comeVRMLoAPIcomeDirectXoOpenGLche sfruttano l'accelerazione hardware delle moderne schede grafiche).

Altri popolari motori di render:

Quando l'elaborazione preliminare della scena (una rappresentazionewireframesolitamente) è completa, inizia la fase di rendering che aggiungetexture bitmapotexture procedurali,luci, bump mapping, e posizioni relative agli altri oggetti. Il risultato è un'immagine completa che è possibile vedere.

Nel caso di animazioni per pellicole cinematografiche, molte immagini (fotogrammi) devono essere disegnate e assemblate in un programma capace di creare un'animazione di questo tipo. La maggior parte dei programmi di elaborazione 3D sono in grado di elaborare queste immagini.

Base accademica

modifica

Molti ambienti di sviluppo hanno come scopo la creazione di immaginifotorealistiche,cioè il più possibile vicine alla riproduzione fotografica

L'implementazione di renderizzatori realistici ha sempre per base la simulazione della fisica che sta alla base del comportamento della luce.

Il terminebasato sulla fisicaindica l'utilizzo di modelli e approssimazioni che sono molto generali e ampiamente diffuse fuori dall'ambiente del rendering. Un insieme particolare di tecniche sono gradualmente diventate pratica comune tra i grafici.

Il concetto di base è abbastanza facile da capire, ma non trattabile attraverso mera computazione; un singolo ed elegante algoritmo non esiste (al momento). Al fine di incontrare la domanda di robustezza, accuratezza e praticità, ogni implementazione utilizza in maniera diversa un insieme di tecniche.

Le equazioni alla base del rendering

modifica
Lo stesso argomento in dettaglio:Equazione di rendering.

Significato: in una particolare posizione e direzione, la luce uscente (Lo) è la somma della luce emessa (Le) e della luce riflessa. La luce riflessa è ottenuta moltiplicando: Li(la luce che arriva da tutte le direzioni), per il coefficiente di riflessione (fr), e per l'angolo di arrivo.

Questa è la chiave del concetto accademico-teorico del rendering. È l'espressione più astratta e formale del problema del rendering. Tutti gli algoritmi più completi possono essere visti come una soluzione particolare della formulazione presente in questa equazione.

La BRDF

modifica
Lo stesso argomento in dettaglio:Bidirectional reflectance distribution function.

LaBRDF(bidirectional reflectance distribution function) è un modello che esprime l'interazione della luce con una superficie tramite questa semplice espressione:

L'interazione con la luce è molto spesso approssimata con modelli ancora più semplici:riflessione diffusaespeculare,anche se tutte e due possono seguire questa formulazione.

Ottica geometrica

modifica

Lo studio della propagazione di onde elettromagnetiche per mezzo del concetto diraggioche si propaga rettilinearmente, ignorando ogni possibile effetto di diffrazione e quindi la natura ondulatoria della luce stessa. Ciò permette di utilizzare un modello relativamente semplice per lo studio di lenti, specchi piani, concavi e convessi.

Percezione visiva

modifica

La matematica usata nel rendering include:algebra lineare,calcolo numerico,analisi numerica,analisi digitale di segnali,metodo Montecarlo

Cronologica delle idee pubblicate

modifica
  • 1970Scan-line algorithm(Bouknight, W. J. (1970). A procedure for generation of three-dimensional half-tone computer graphics presentations.Communications of the ACM)
  • 1971Gouraud shading(Gouraud, H. (1971). Computer display of curved surfaces.IEEE Transactions on Computers20(6), 623–629.)
  • 1974Texture mapping(Catmull, E. (1974). A subdivision algorithm for computer display of curved surfaces.PhD thesis,University of Utah.)
  • 1974Z-buffer(Catmull, E. (1974). A subdivision algorithm for computer display of curved surfaces.PhD thesis)
  • 1975Phong shading(Phong, B-T. (1975). Illumination for computer generated pictures.Communications of the ACM18(6), 311–316.)
  • 1976Environment mapping(Blinn, J.F. Newell, M.E. (1976). Texture and reflection in computer generated images.Communications of the ACM19,542–546.)
  • 1977Shadow volumes(Crow, F.C. (1977). Shadow algorithms for computer graphics.Computer Graphics (Proceedings of SIGGRAPH 1977)11(2), 242–248.)
  • 1978Shadow buffer(Williams, L. (1978). Casting curved shadows on curved surfaces.Computer Graphics (Proceedings of SIGGRAPH 1978)12(3), 270–274.)
  • 1978Bump mapping(Blinn, J.F. (1978). Simulation of wrinkled surfaces.Computer Graphics (Proceedings of SIGGRAPH 1978)12(3), 286–292.)
  • 1980BSP trees(Fuchs, H. Kedem, Z.M. Naylor, B.F. (1980). On visible surface generation by a priori tree structures.Computer Graphics (Proceedings of SIGGRAPH 1980)14(3), 124–133.)
  • 1980Ray tracing(Whitted, T. (1980). An improved illumination model for shaded display.Communications of the ACM23(6), 343–349.)
  • 1981Cook shader(Cook, R.L. Torrance, K.E. (1981). A reflectance model for computer graphics.Computer Graphics (Proceedings of SIGGRAPH 1981)15(3), 307–316.)
  • 1983Mipmaps(Williams, L. (1983). Pyramidal parametrics.Computer Graphics (Proceedings of SIGGRAPH 1983)17(3), 1–11.)
  • 1984Octree ray tracing(Glassner, A.S. (1984). Space subdivision for fast ray tracing.IEEE Computer Graphics & Applications4(10), 15–22.)
  • 1984Alpha compositing(Porter, T. Duff, T. (1984). Compositing digital images.Computer Graphics (Proceedings of SIGGRAPH 1984)18(3), 253–259.)
  • 1984Distributed ray tracing(Cook, R.L. Porter, T. Carpenter, L. (1984). Distributed ray tracing.Computer Graphics (Proceedings of SIGGRAPH (1984)18(3), 137–145.)
  • 1984Radiosity(Goral, C. Torrance, K.E. Greenberg, D.P. Battaile, B. (1984). Modelling the interaction of light between diffuse surfaces.Computer Graphics (Proceedings of SIGGRAPH 1984)18(3), 213–222.)
  • 1985Hemi-cube radiosity(Cohen, M.F. Greenberg, D.P. (1985). The hemi-cube: a radiosity solution for complex environments.Computer Graphics (Proceedings of SIGGRAPH 1985)19(3), 31–40.)
  • 1986Light source tracing(Arvo, J. (1986). Backward ray tracing.SIGGRAPH 1986 Developments in Ray Tracing course notes)
  • 1986Rendering equation(Kajiya, J.T. (1986). The rendering equation.Computer Graphics (Proceedings of SIGGRAPH 1986)20(4), 143–150.)
  • 1987Reyes algorithm(Cook, R.L. Carpenter, L. Catmull, E. (1987). The reyes image rendering architecture.Computer Graphics (Proceedings of SIGGRAPH 1987)21(4), 95–102.)
  • 1991Hierarchical radiosity(Hanrahan, P. Salzman, D. Aupperle, L. (1991). A rapid hierarchical radiosity algorithm.Computer Graphics (Proceedings of SIGGRAPH 1991)25(4), 197–206.)
  • 1993Tone mapping(Tumblin, J. Rushmeier, H.E. (1993). Tone reproduction for realistic computer generated images.IEEE Computer Graphics & Applications13(6), 42–48.)
  • 1993Subsurface scattering(Hanrahan, P. Krueger, W. (1993). Reflection from layered surfaces due to subsurface scattering.Computer Graphics (Proceedings of SIGGRAPH 1993)27,165–174.)
  • 1995Photon mapping(Jensen, H.J. Christensen, N.J. (1995). Photon maps in bidirectional monte carlo ray tracing of complex objects.Computers & Graphics19(2), 215–224.)

Nel web

modifica
Esempio di differenza di rendering dell'effetto CSS3 "border radious" traInternet Explorer8 e gli altri browser[3]

All'interno di unbrowser webc'è un software che interpreta cosa visualizzare in base alle informazioni che riceve (HTML, CSS, JS...) chiamatomotore di rendering.Ogni browser ha il proprio e molti sono diversi fra loro, ad esempioFirefoxha come motore di renderingGeckoeChromehaWebkit.Per questo non è detto che una pagina web sia visualizzata nello stesso modo da tutti i browser.

Questa differenza di visualizzazione delle pagine si è notata molto in diverse occasioni nella storia del web:

  • Agli albori del web quando si usava il tag HTML <table> per costruire il layout dei siti web era frequente che i vari motori di rendering interpretassero le caratteristiche delle tabelle in maniera diversa (altezza, larghezza, allineamenti...) influendo sulla corretta visualizzazione delle pagine web.
  • Alla nascita deiCSSil motore di renderingTridentdiInternet Explorer6 e versioni precedenti interpretava male alcune regole CSS influendo sulla corretta visualizzazione delle pagine web. In parte questo problema veniva risolto da tecniche come CSS alternativi appositamente per Internet Explorer e commenti condizionali su misura per esso[4].Altre critiche a Trident erano la lentezza di rendering delle pagine web rispetto agli altri motori, il mancato supporto della trasparenza nelle immaginiPNGeGIF[5][6].
  • Alla nascita diHTML5e CSS3 il motore di renderingWebkitfu il primo a interpretare in modo corretto molti dei nuovi codici, il secondo ad aggiornarsi da quel punto di vista fu Gecko e per ultimo Trindent. Per alcuni anni i siti web che utilizzavano i nuovi tag CSS e HTML disponibili venivano visti in maniera differente a seconda del browser che utilizzava l'utente[3].In parte questo problema veniva risolto da tecniche come CSS alternativi appositamente per Internet Explorer, commenti condizionali su misura per esso e librerieJavaScriptcome Modernizr[7][4][8].Successivamente nacque il motore di rendering HTML Edge (e rese obsoleto Internet Explorer a favore diMicrosoft Edge) che sostituì Trident.
Lo stesso argomento in dettaglio:Web 3D.

Web 3D è un termine usato per indicare i contenuti 3D interattivi inseriti in una paginaHTML,visualizzabili da un comune browser attraverso un particolare Web 3D viewer. Si utilizza il concetto di Web 3D anche per indicare una possibile evoluzione del Web in cui viene abbandonata l'idea di pagina e ci si immerge in uno spazio tridimensionale interattivo. Anche in questo caso i browser utilizzano il proprio motore di rendering per interpretare ricostruzioni 3D (anche interattive).

Libri e compendi

modifica
  1. ^Diego Cassani,Manuale del montaggio video. Come conoscere e utilizzare strumenti e software professionali,HOEPLI EDITORE, 2004, p. 84,ISBN978-88-203-3352-2.URL consultato il 18 settembre 2024.
  2. ^(EN) Otto Vollnhals,Multilingual Dictionary of Electronic Publishing: English - German - French - Spanish - Italian,Walter de Gruyter, 12 aprile 2012, p. 146,ISBN978-3-11-096392-2.URL consultato il 13 ottobre 2024.
  3. ^ab(EN)Getting to Grips with HTML5 Browser Compatibility,suSpeckyboy Design Magazine,26 marzo 2012.URL consultato il 3 febbraio 2021.
  4. ^ab(EN)Internet Explorer Conditional Comments - SitePoint,susitepoint.URL consultato il 3 febbraio 2021.
  5. ^(EN) Kwame Opam,The most hated browser in the world is finally dead,suThe Verge,8 aprile 2014.URL consultato il 3 febbraio 2021.
  6. ^(EN) David Walsh,6 Reasons Why IE6 Must Die,suDavid Walsh Blog,29 agosto 2007.URL consultato il 3 febbraio 2021.
  7. ^Css3 su Internet Explorer 8? - da oggi si può,suTarget Web.it,8 aprile 2011.URL consultato il 3 febbraio 2021.
  8. ^Faruk Ateş,Approfittare di HTML5 e CSS3 con Modernizr,suItalian A List Apart,5 luglio 2010.URL consultato il 3 febbraio 2021.

Altri progetti

modifica

Collegamenti esterni

modifica
Controllo di autoritàLCCN(EN)sh2008009405·GND(DE)4197032-9·J9U(EN,HE)987007540276305171·NDL(EN,JA)01211632