3DsMax Design , arrivato oggi alla versione 2015, è un software grafico ideato e sviluppato per produrre rendering tridimensionali foto-realistici fisicamente corretti e animazioni.

E’ utilizzato a livello mondiale in ambito architettonico, industrial design,interior design, meccanica, e dall’introduzione del lighting analysis nel 2008 ,abbinato a Mental Ray , arriva a soddisfare le esigenze anche in ambito illuminotecnico, in quanto permette una simulazione qualitativa e quantitativa della luce, si rimanda in merito all’articolo precedente, parte introduttiva alla simulazione fotorealistica della luce fisicamente corretta.

In questo articolo verranno analizzate le caratteristiche principali del motore di rendering Mental Ray , attraverso il quale è possibile produrre l’output grafico , ovvero i rendering foto-realistici.

Parte dei concetti e delle nozioni inserite in questo articolo sono tratte dal libro “ Autodesk 3ds Max 2014 Guida per architetti, progettisti e designer” edito da tecniche nuove , autore Emiliano Segatto

Le immagini in falsi colori e le immagini con i dati di illuminamento o luminanza su di un piano o griglia di punti, vengono prodotti con la partecipazione del sistema lighting analysis, che verrà trattato in un prossimo articolo.

Mental Ray nasce nel 1986,sviluppato dalla società tedesca Mental image GmbH e il suo primo lancio avviene nel 1989 in versione stand-alone per poi essere integrato in vari software fra cui 3dsMax nel 1999.

Dal 2011 la società tedesca è stata acquisita da Nvidia, che ad oggi prosegue lo sviluppo di Mental Ray.

Prima di tutto è bene ribadire alcuni concetti base, partendo dalla definizione di rendering : indica la generazione di immagini bidimensionali partendo dalla rappresentazione matematica di modelli tridimensionali.

Un motore di rendering, come Mental Ray , è un software che interpreta delle informazioni tridimensionali e permette di visualizzarle sotto forma di immagine bidimensionale.

Mental Ray , ovviamente non è l’unico motore di rendering capace di produrre immagini foto-realistiche e utilizzabile con 3dsMax design, ma è l’unico attualmente pienamente compatibile con il sistema Lighting Analysis.

 Detto questo , Mental Ray ha tutte le caratteristiche necessarie per poter offrire un risultato qualitativo molto elevato , a patto di conoscerlo e di saperlo sfruttare al meglio.

Ecco un elenco tecnico delle funzionalità di Mental Ray presenti nella versione integrata in 3dsMax Design 2014:

Algoritmi

  • Scanline
  • Rasterizer
  • Ray Tracing

Sampling (campionamento)

  • Strictly deterministic low-discrepancy sampling (QMC)
  • Automatic anti-aliasing
  • Adaptive recursive oversampling e under-sampling
  • Strictly sampling

Global illumination (illuminazione globale)

  •  IBL – Image Based Lighting
  • Photon Map
  • Final Gather

Shaders

  • Tipologie : material,texture,light, volume,shadow,atmosphere,lens,environment,photon,photon   emitter,displacement,output,contour,geometry,intheritance,state shader

Materials

  • Physically correct shaders
  •  Glossy reflections/refractions
  • accurate highlights
  •  Phisically correct sub-surface scattering
  • Fast sub-surface scattering
  • Metallic car paint
  • Spectral rendering shaders
  • Production shaders

Camera effects

  • Depth-of-field with boken effects
  • Accurate 2D Motion Blur
  • 2D Motion Blur

Lights

  • Area Light (rettangolo,disco,sfera,cilindro)
  • Skylight
  • Sky portal
  • IES e Eulumdat

Maps

  • Bump mapping
  • Normal Mapping
  • Displacemente mapping
  • Shadow depth mapping
  • Light mapping
  • HDRI

Exposure control (controllo esposizione, o tone mapping)

  • Mr Photographic Exposure Control

Multipass Rendering

Come è facile intuire dall’elenco è’ evidente che analizzare nel dettaglio tutte le caratteristiche di un motore di rendering come Mental Ray non è possibile in poche righe, per questo motivo ci soffermeremo sulle caratteristiche principali in modo da poter dare un’idea complessiva del suo principio di funzionamento e degli algoritmi di calcolo che utilizza per interpretare le informazioni tridimensionali di un progetto.

Perché il motore di rendering sia in grado di interpretare e tradurre in immagine bidimensionale le informazioni tridimensionali di una scena, è necessario che esso possa interagire in qualche modo con le geometrie, ovvero utilizzando alcuni algoritmi di calcolo , ognuno di loro con le proprie caratteristiche.

Mental Ray è considerato un motore di rendering “ibrido”, perchè può “mescolare” fra loro vari algoritmi di calcolo, in base alle proprie esigenze.

Gli algoritmi possono essere divisi in tre categorie :

  1.  Algoritmi dedicati al calcolo dei primary rays , ovvero i raggi primari che hanno il compito di raccogliere ed analizzare le informazioni di base ,ad esempio quali parti della geometria o forma sia visibile ,i colori ,informazioni sulle fonti luminose e altre informazioni di primaria importanza. Gli algoritmi dedicati a questa funzione sono Scanline , Ray tracing e Rasterizer.
  2.  Algoritmi dedicati ai secondary rays ,ovvero a gestire effetti più complessi come ombre, riflessioni, rifrazioni, illuminazione globale ecc. L’algoritmo dedicato è il Ray tracing.
  3. In fine gli algoritmi detti ausiliari , che gestiscono gli effetti più complessi come l’illuminazione indiretta ovvero la Photon Map , il Final Gather e l’ IBL.

Il Ray tracing è uno dei principali e più famosi algoritmi usati in computer grafica e permette di determinare non solo la posizione delle geometrie visibili ma anche effetti più complessi come le interazioni che si vengono a creare tra i raggi di luce e le geometrie stesse, la generazione delle ombre e molto altro ancora, per questo motivo è l’unico che può essere utilizzato per l’analisi sia dei Primary rays che dei Secondary rays, quindi è consigliato l’utilizzo combinato.

raytracing01

Inoltre il ray tracing è l’algoritmo che sta alla base anche di quasi tutti i principali algoritmi per il calcolo dell’illuminazione globale tra cui il Final Gather e la Photon Map usati in mantal ray.

I limiti sono sostanzialmente legati alla maggiore complessità di funzionamento e alle performance (intese come tempi di calcolo) leggermente inferiori (ma non in tutti i casi) rispetto ad algoritmi più semplici come lo scanline.

Per questo motivo sono stati inseriti all’interno di mental ray due tipologie di algoritmi che possono essere utilizzati per l’accelerazione del ray tracing ovvero il BSP e il BSP2 (quest’ultimo impostato di default prechè più performante del primo).

raytracing

L’immagine illustra a sinistra il comportamento dei Primary rays quando incontrano superfici con materiali opachi e trasparenti , e in quest’ultimo caso possiamo notare come non analizzino le informazioni relative alla rifrazione, mentre a destra sono rappresentati i Secondary Rays dove si può notare il loro comportamento e come raccolgono le informazioni relative alla riflessione (in alto) e alla rifrazione dei materiali trasparenti (in basso).

Prima di proseguire con la loro descrizione è opportuno affrontare il tema del campionamento delle immagini.

Il rendering è un’immagine e in quanto tale è composta da pixel , singol2 porzioni che se sommate definiscono ogni aspetto dell’immagine.

raytrace process

Il motore di rendering può creare i pixel interpretando le informazioni che raccoglie nella scena e riproduce ciascun pixel dell’immagine in base alle informazioni che ha contenuto, e la loro qualità è determinata dal campionamento o sampling.

sample single

Nel rendering devono essere generati vari tipi di effetti, alcuni molto complessi altri meno, più alto è il livello di complessità dell’effetto più i pixel che devono essere riprodotti necessitano di un campionamento più dettagliato, ovvero necessitano di più informazioni.

Cattura

Il sampling determina quante informazioni vengono raccolte per ogni pixel, maggiore è il numero di sammples più la definizione del pixel di cui è formata l’immagine è precisa.

sampling

Il motore determina i samples da utilizzare tramite l’algoritmo selezionato per il calcolo dei primary rays , scanline o ray tracing (consigliato il ray tracing).

Mental ray offre tre strumenti per determinare il campionamento :

  • Unified/Raytraced,introdotto dalla versione 2014 di 3dsMAx ;
  • Classic/Raytraced , metodo “adaptive Sampling” ;
  • Rasterize/Scanline (è un sistema ottimizzato nelle scene dove non viene utilizzata la global illumination)

Gli algoritmi detti ausiliari permettono di completare il rendering calcolando il comportamento dell’illuminazione globale (tecnicamente chiamata global illumination o GI) , ovvero tutto l’insieme di tecniche che intendono, più o meno approssimativamente , simulare la luce e le interazioni che si hanno tra luce e le superfici del modello 3D.

Per luce diretta si intende la componente generata direttamente da una fonte luminosa mentre viene intesa luce indiretta la componente dipendente dai rimbalzi della luce diretta sulle superfici.

Ovviamente in natura non vi è distinzione fra luce diretta e indiretta (intesa in questo modo) , la divisione è utile ai motori di rendering per l’efficienza della resa fotorealistica.

Inizialmente veniva considerata e calcolata solo la componente di luce diretta ( ottenibile tramite i primary e i secondary rays) e tutti gli effetti più semplici (ombre ,riflessi) tramite il ray tracing.

Successivamente si sono sviluppate tecniche che permettono di simulare anche la luce indiretta , ovvero i rimbalzi della luce sulle superfici .

La simulazione della luce indiretta è sicuramente più complessa (della luce diretta) e nella maggior parte dei casi ha un peso maggiore sui tempi di rendering.

Per questo sono stati studiati dei metodi appositi che simulino solo ed esclusivamente questo tipo di luce, ovvero gli algoritmi di calcolo dedicati a questo lavoro , il Final Gather la Photon Map e introdotta ufficialmente dalla versione 2014 di 3dsMax design l’IBL (image-based Lighting).

Final Gather e Photon Map saranno oggetto di approfondimento del prossimo articolo, alla prossima dunque!