Maxwell Render Book

Maxwell Render Book

9 aprile 2009

La prima cosa che mi ha colpito, la prima volta che sono venuto a conoscenza del progetto Maxwell Render, circa un anno fa, è stata la straordinaria qualità delle immagini d’esempio proposte sul sito ufficiale della casa
produttrice, la Next Limit, già conosciuta dagli appassionati di computer grafica per l’ottimo simulatore di fluidi RealFlow.

La seconda cosa che mi ha colpito era l’ambizione del progetto, per la prima volta veniva proposto un motore di rendering alternativo a quello interno, utilizzabile non solo dai soliti 3D Studio Max e Maya ma anche dagli
altri innumerevoli programmi di visualizzazione tridimensionale tra i quali anche il nostro amato Cinema 4D, ma soprattutto il primo motore alternativo multipiattaforma win-linux-mac. Da ormai pluriennale utente di Cinema 4d su piattaforma Mac, sentivo da tempo la necessità di un motore alternativo all’amato-odiato motore di Cinema, ottimo in moltissime situazioni ma con carenze in alcune circostanze, per esempio il radiosity in interni, il DOF, le caustiche e le riflessioni sfuocate. Non voglio dire che queste carenze fossero irrimediabili, in parte l’ultimo aggiornamento alla versione 9.5 ha notevolmente migliorato la situazione, ma che la risoluzione di questi problemi richiedeva molto tempo e fatica per venirne a capo.

La terza cosa che mi ha letteralmente sbalordito
ed affascinato è stato il drastico cambio di approccio che maxwell portava con se quando, uscita la versione Alpha del motore sia per mac che per Cinema4D, ho finalmente deciso di appoggiare il progetto acquistando una licenza di M~R. Non più innumerevoli parametri molto spesso astrusi ma settaggi riferiti alla fotografia tradizionale e al mondo fisico reale o almeno a come all’oggi viene interpretato. Un esempio su tutti il DOF o profondità di campo, in Cinema è un post-effetto con tutte le limitazioni del caso che molto spesso non viene neppure attivato, in M~R al contrario la profondità di campo è sempre presente e viene gestita dall’apertura del diaframma e dalla focale della camera di rendering esattamente come viene gestita da qualsiasi macchina fotografica, tradizionale o digitale che sia.

Un po’ di storia

Dopo circa due anni di sviluppo interno alla Next Limit hanno deciso che i tempi erano maturi per presentare al mondo della CG questo rivoluzionario motore di rendering. Essendo una Software House di piccole dimensioni hanno anche pensato di stupire gli appassionati non solo per la alta qualità del loro prodotto ma anche per una rivoluzionaria e spregiudicata politica commerciale che consisteva nella possibilità di poter utilizzare tutte i vari step di sviluppo sia del motore di rendering che dei plug-in di interconnessioni alle diverse applicazioni che della versione stand alone ad un prezzo di circa un terzo rispetto a quello finale della versione 1.0 del prodotto. Inoltre viene offerta la possibilità di interagire con gli sviluppatori tramite un forum in una sorta di beta-testing collettivo atto a scovare ed evidenziare gli errori e i difetti delle varie versioni. Questa nuova politica, se da una parte ha dato la possibilità agli sviluppatori di raccogliere le risorse per affrontare le complesse fasi di sviluppo di un progetto così ambizioso e dato la possibilità agli appassionati che hanno creduto in loro di pregustare nei momenti felici la piacevole sensazione di aver almeno in piccola parte contribuito a scrivere un pezzo di storia della computer grafica. Al contrario, nei momenti difficili ha generato malumori quando i miglioramenti al progetto stentavano ad arrivare o arrivavano in notevole ritardo rispetto alle aspettative. Quindi attraversando alti e bassi il progetto Maxwell ha comunque prodotto una prima versione Alpha molto stabile e capace di produrre immagini di altissima qualità ma ancora molto acerba come possibilità rispetto alle implementazioni previste ed un numero limitato di plug-in di interconnessione. Una versione Beta che ha portato una sofisticazione dei materiali, una riscrittura e stabilizzazione del motore e un aumento notevole dei plugin verso le altre applicazioni. A questo punto è emerso un problema con il motore e la visibilità delle caustiche attraverso un materiale trasparente, problema che si è rivelato essere di una certa importanza soprattutto per le immagini di architettura in esterni in quanto risulta impossibile vedere per esempio la luce del sole al di là di un vetro. La Next Limit dopo un intenso sviluppo annuncia l’uscita della versione RC1 con una sostanziosa riscrittura del motore e relativa risoluzione del problema caustiche attraverso ai vetri. Purtroppo però la versione RC pur arrivando alla versione 4 non riesce a sostituire la qualità della versione Beta introducendo notevoli artefatti nella gestione delle caustiche e viene accantonata. Finalmente dopo un ulteriore periodo di testing serrato, è stata presentata in questi giorni la versione RC5 che risulta essere un ibrido tra l’ancora valido e roccioso motore della versione Beta con il nuovissimo e potentissimo “Material System” a livelli introdotto dalla prima versione stand alone del programma. Sono attese nuove versioni RC prima dell’uscita dell’agognata versione definitiva 1.0

Ma cosa vuol dire unbiased render?

La Next Limit ama definire M~R come il primo motore di rendering unbiased in antitesi ai motori tradizionali (RenderMan e Mental Ray per citarne un paio) definiti biased, cioè motori di rendering parziali, non obiettivi. Tipicamente infatti qualsiasi motore di rendering cerca di scomporre la realtà in tanti piccoli sottoinsiemi indipendenti fra di loro (Global Illumination, Radiosity, DOF, Caustiche ecc.) e sta alla bravura e all’esperienza dell’utilizzatore armonizzare tutti i singoli elementi che concorro alla realizzazione di un’immagine tridimensionale di qualità fotorealistica. Oltretutto la soluzione di calcolo è finita cioè al termine di un determinato tempo di calcolo il motore genera l’immagine. Al contrario M~R ha un approccio di tipo simulativo e fisicamente accurato basandosi su algoritmi di calcolo che considerano la propagazione della luce come onde elettromagnetiche (da qui il nome Maxwell riferito al fisico scozzese che la teorizzò) e non quindi con algoritmi più o meno accurati come i fotoni, proponendo una soluzione teoricamente infinita, è infatti l’utente a decidere quando fermare il calcolo, e dove ogni elemento della scena concorre ed influenza il risultato finale. Da qui la definizione di rendering “unbiased” cioè senza compromessi. Tutto ciò naturalmente comporta vantaggi e svantaggi, infatti se da una parte i risultati ottenuti sono caratterizzati da un impatto fortemente realistico, dall’altra tutti i trucchi tipici dei motori “biased” non sono più utilizzabili; per esempio non è possibile nascondere un oggetto alla camera e far si che partecipi al calcolo generale della scena; oppure non si possono usare sorgenti luminose puntiformi tipiche di tutti i motori in quanto ogni oggetto illuminante deve avere una geometria e la complessità di questa influisce sui tempi di calcolo.

Ma quanto è veloce?

La prima domanda che tutti si fanno quando vedono i risultati che si possono ottenere con questo motore è: “Ma quanto tempo ci mette?” Purtroppo la risposta molto spesso è sbalorditiva tanto quanto il risultato ottenuto in quanto in generale sono necessarie diverse ore di calcolo per ottenere un’immagine “pulita”, soprattutto in relazione ai tempi di calcolo dei motori tradizionali. Va precisato però che M~R non è un motore di tipo scan-line dove al discendere della “linea” di rendering appare la soluzione di calcolo determinato della scena, ma al contrario funziona a “Sampling level”, cioè riesce a restituire molto velocemente l’illuminazione globale della scena caratterizzata però da un forte “noise” o rumore formato da tanti pixel neri, all’aumentare dei “Sampling level” corrisponderà una progressiva diminuzione del disturbo. Semplificando, in genere è necessario un tempo di 1,5 volte superiore a quello precedente per il raggiungimento del sampling level successivo. Questo permette di valutare se il dispendio di tempo necessario a raggiungere la successiva “pulitura” valga l’attesa o se al contrario convenga interrompere il calcolo. Altro aspetto fondamentale da tener presente è che se da una parte si hanno lunghi tempi di calcolo, dall’altra, una volta raggiunta una certa dimestichezza con lo strumento, si riducono drasticamente i tempi di settaggio e preparazione della scena, non essendo necessari tutti quegli artifici per ottenere un risultato realistico e riducendo notevolmente il numero di prove necessarie al raggiungimento di un determinato effetto (per esempio le caustiche). Oltretutto è molto difficile fare un paragone con un motore tradizionale in quanto è come se renderizzassimo sempre con GI, caustiche, DOF e anti-aliasing (altro parametro che scompare con m~r) impostati alla loro massima qualità. Difficilmente si riescono ad ottenere rendering in pochi minuti in queste condizioni anche con il più veloce dei motori. Non ultimo, un errato settaggio dei parametri può determinare un aumento notevole dei tempi di rendering dovuto al fatto che con m~r abbiamo sempre come referente la fisica. Un esempio, la versione Beta del software aveva un problema, risolto dalla versione RC,con il parametro di riflettenza impostato su valori inappropriati, infatti in laboratorio si sono misurati i valori di riflettenza di alcuni materiali e riportati ai corrispettivi valori RGB e si è evidenziato come una carta ultra bianca abbia una riflettenza pari all’88% che corrisponde ai valori RGB di 224,224,224. Bene se si renderizza una scena completamente bianca con valori 255,255,255 come verrebbe spontaneo fare, si avrà un aumento dei tempi di rendering di circa il 350% rispetto ai valori fisicamente corretti di 224,224,224.

Un nuovo modo di rappresentare i materiali

Da quanto detto precedentemente si evince che anche i materiali hanno un’importanza fondamentale per questo motore. Normalmente siamo ormai abituati a simulare i vari materiali scomponendo anche qui le varie caratteristiche in ambiti distinti che tutti insieme concorrono al risultato finale. Anche in questo aspetto M~R si pone con un approccio rivoluzionario rispetto al passato. Tipicamente siamo abituati a distinguere la componente di specularità dalla riflessione, al contrario Maxwell parte dal presupposto corretto che tutti i materiali abbiano una “riflessione-speculare” e le variazioni di questa dipendano dalla rugosità o micro-rugosità della superficie. Pensiamo per esempio alla plastica, al variare della rugosità della superficie corrisponde un aspetto più o meno “diffuso” mentre più la plastica è liscia e più avremo un aspetto di tipo “specchio”. Attraverso i vari plug-in di interconnessione a M~R è possibile partire da quattro tipologie distinte di materiali, Dieletric (vetri), Metal, Diffuse e Plastic per realizzare tutti i vari materiali necessari alla nostra scena. Per i vetri e i metalli sono disponibili alcuni preset (per esempio alluminio, oro, argento, rame ecc.), il Diffuse e il materiale più semplice tipo Lambert. Il materiale Plastic non è confinato alla simulazione della sola plastica, come il nome potrebbe far intendere, ma a tutti i materiali con una riflessione speculare come per esempio materiali verniciati, legni trattati, ecc. Attraverso l’utilizzo di texture rigorosamente in formato RGB (anche se in bianco e nero) è possibile controllare la riflessione e la specularità. Grazie a queste quattro tipologie è stato possibile, fino alla versione beta, rappresentare con una certa facilità la maggior parte dei materiali con alcune limitazioni per quanto riguarda i vetri e i metalli. Con l’arrivo della versione RC e con la conseguente introduzione della versione standalone denominata Studio, è possibile realizzare materiali molto complessi, composti anche da diversi livelli adatti alla rappresentazioni di materiali multi-strato (legni e metalli verniciati ad esempio), oppure caricare i complessi dati ricavati in laboratorio dei materiali per una simulazione ancora più realistica. I materiali realizzati con la versione Studio potranno essere salvati e caricati all’interno della nostra applicazione preferita per essere assegnati alla nostra scena o essere riutilizzati in lavori futuri.

Il primo motore di rendering interattivo in fase di calcolo

Un altro aspetto “rivoluzionario” introdotto da M~R è la possibilità di modificare in tempo reale alcuni parametri relativi alla restituzione della luminosità della scena direttamente durante la fase di calcolo. Per esempio è possibile modificare la velocità dell’otturatore e il valore degli ISO in fase di rendering per sperimentare interattivamente la variazione degli stessi. Naturalmente non è possibile modificare il parametro dell’apertura del diaframma in quanto modificherebbe il calcolo della profondità di campo. Tutti questi parametri seguono la logica della fotografia tradizionale, quindi i valori di riferimento per il diaframma sono per esempio i classici 22-16-11-8-5.6-4-2.8 ecc. e per i tempi 1/30-1/60-1/125 ecc. e possono essere usati tutti i valori intermedi per piccole correzioni. Questo fa si che sia molto intuitivo padroneggiare i diversi parametri se si ha un minimo di confidenza con le macchine fotografiche del mondo reale. Fortunatamente la similitudine con la fotografia tradizionale non è così spinta al punto da simulare l’aumento di grana della pellicola con l’aumentare degli ISO, rendendo molto agevole, anche in fase di calcolo, intervenire su settaggi dell’esposizione generale dell’immagine. E’ anche possibile intervenire interattivamente in tempo reale anche sui parametri “Burn” e “Gamma” che, con un funzionamento molto simile al “Color Mapping” recentemente aggiunto nella versione 9.5 di C4D, ci permettono di intervenire anche sul contrasto dell’immagine. Non solo, alla fine del calcolo abbiamo la possibilità di variare ulteriormente questi parametri permettendoci di salvare diverse versioni della stessa immagine con variazioni di contrasto e luminosità.

L’interconnessione con Cinema 4D

Bisogna evidenziare che le innumerevoli connessioni con i più disparati programmi tridimensionali vanno distinte in due gruppi. Nel primo gruppo fanno parte tutti quei programmi di modellazione che non incorporano una gestione avanzata dei materiali e del rendering come Archicad Rhino ecc. e per il quale il plug-in risulta essere sostanzialmente un esportatore della geometria verso Maxwell Studio. Del secondo gruppo invece fanno invece parte i programmi come Cinema 4D, Maya, 3D Studio Max ecc. Per questi programmi è previsto un plug-in molto più ricco di funzionalità e che permette di settare praticamente tutti i parametri e di sfruttare tutte le potenzialità del motore ad eccezione del nuovo “Material System” recentemente introdotto e per il quale serve necessariamente la versione Studio. I nuovi materiali possono però essere salvati ed utilizzati con i plug-in “evoluti”. In particolare la connessione a Cinema risulta particolarmente interessante in quanto sfrutta la classica struttura a tag tipica di cinema in abbinata ai materiali proprietari di cinema che vengono sfruttati come serbatoi per le texture dei diversi canali. I canali utilizzati sono colore, diffusione che gestisce la microrugosità, trasparenza per il clipping, riflessione e bump. Purtroppo all’oggi alcune funzioni sono disabilitate prima fra tutte l’animazione dei parametri, in definitiva comunque risulta essere una buona connessione che permette un eccellente produttività a patto di aver posto molta attenzione e precisione sia in fase di modellazione che in quella di texturing. Infatti, a causa della sua natura unbiased, M~R non fa sconti di nessun tipo e qualsiasi imperfezione viene evidenziata come errore o come aumento dei tempi di calcolo.

Conclusioni

Non sappiamo quanta strada sia ancora necessaria per vedere finalmente la versione definitiva di questo straordinario motore, ad ogni modo allo stato attuale Maxwell Render si pone come una delle pochissime alternative al motore di rendering interno di Cinema 4D e risulta efficiente in molti contesti di visualizzazione e i futuri sviluppi non potranno che portare miglioramenti a questo fantastico motore che, pur non essendo ancora uscito in versione definitiva, riesce a stupire per l’altissima qualità delle immagini che riesce a produrre.

Beppe Gullotta

Condividi