Corona Renderer 7: CoronaPhysicalMtl in ANTEPRIMA

Corona Physical Material: il nuovo materiale di Corona Renderer 7

(Traduzione autorizzata dell’articolo ufficiale presente sul blog di Corona Renderer)

Autore: Corona Renderer Team

Traduttore: Francesco Legrenzi

La primissima versione del nuovo CoronaPhysicalMtl è apparsa nella Daily Build di Corona 7 di dicembre 2020.

Eravamo consapevoli che, grazie ai feedback degli utenti, avremmo dovuto apportare numerose modifiche e integrazioni. Ed è quello che abbiamo fatto. Infatti, nell’ultima Daily disponibile (Marzo 2021) si può già testare quella che diventerà, a luglio, la versione definitiva.

In quest’articolo analizzeremo assieme le sue più importanti caratteristiche in modo tale che tu possa arrivare preparato alla versione finale di Corona 7. Inoltre, grazie alla nuova Daily Build, lo potrai addirittura testare (Fig. 01).

CoronaPhysicalMtl anteprima - Sample 01
Fig. 01 - Tutti gli shader di questo rendering sono stati realizzati utilizzando il “CoronaPhysicalMtl”.

Voglio provarlo!

Hai ragione e questo è anche il nostro consiglio. Testandolo: potrai arrivare preparato alla versione finale; con i tuoi feedback potrai contribuire, nel corso del suo sviluppo, al suo miglioramento.

Se non hai familiarità con le versioni Daily Builds per 3ds Max e C4D, grazie a questi due link potrai scoprire come scaricarle e installarle. Questi due articoli ti spiegheranno inoltre come lavorare con più versioni contemporaneamente in modo da sperimentarle e avere a disposizione sempre la versione stabile con la quale lavorare ai tuoi progetti.

Cosa possiamo aspettarci dalle prossime versioni del CoronaPhysicalMtl (Corona v8)?

Corona: LA GUIDA COMPLETA

– PUBBLICITA’ –

Utenti di Cinema 4D

Il nostro team di sviluppo è in questo periodo impegnato nello sviluppo della versione del CoronaPhysicalMtl per 3ds Max e questa Daily è stata letteralmente completata oggi, 22 Marzo 2021. Questo shader sarà implementato anche in C4D una volta ritenuto affidabile in 3ds Max. Questo processo richiederà del tempo, in quanto dovremo integrare il nuovo codice all’interno di C4D, modificarne l’interfaccia e effettuare parecchi test in modo da assicurarci la perfetta stabilità. Nei nostri piani, sempre che non sorgano imprevisti, ciò dovrebbe accadere nell’arco della prossima settima. Tenete quindi gli occhi bene aperti!

Qualche esempio

Diamo uno sguardo al nuovo CoronaPhysicalMtl (Fig. 02 – Fig. 03 – Fig. 04 – Fig. 05 – Fig. 06).

CoronaPhysicalMtl anteprima - Sample 02
Fig. 02 - Immagine prodotta in 3ds Max.
CoronaPhysicalMtl anteprima - Sample 03
Fig. 03 - Immagine prodotta in C4D.
CoronaPhysicalMtl anteprima - Sample 04
Fig. 04 - Immagine prodotta in C4D.
CoronaPhysicalMtl anteprima - Sample 05
Fig. 05 - Immagine prodotta in 3ds Max.
CoronaPhysicalMtl anteprima - Sample 06
Fig. 06 - Immagine prodotta in 3ds Max.

Perché è stato necessario creare un nuovo materiale?

Le motivazioni in breve

  • Il nuovo CoronaPhysicalMtl possiede un modo più facile e naturale nell’impostazione dei materiali realistici.
  • Migliora la compatibilità con software tipo Quixel, Substance, ecc. in modo che l’importazione in Corona degli shader da loro prodotti sia facile e accurata.
  • Standardizzazione con altri motori di rendering per facilitare il passaggio a Corona per coloro che provengono da altri motori di rendering.
  • Assicura l’impossibilità di create materiali “falsi” e non realistici (anche accidentalmente) che infrangono le leggi della conservazione dell’energia. Comunque vengano impostati i suoi parametri, il CoronaPhysicalMtl genererà sempre materiali fisicamente corretti.

Di cosa non si tratta

  • Ottenere rendering più veloci.
  • Usare una minore o maggiore quantità di memoria.

Ricorda

Quello che sarà mostrato in quest’articolo, compresi gli screenshot, riguarda un materiale ancora in fase di sviluppo. Con molta probabilità, ci saranno variazioni tra queste Daily e la versione finale.

Dove trovo il nuovo Corona Physical Material?

E’ sufficiente selezionarlo all’interno del Material Editor, come mostrato in Fig. 07.

CoronaPhysicalMtl anteprima - Material Editor
Fig. 07 - Il nuovo “CoronaPhysicalMtl” è selezionabile nel “Material Editor”.

Nota: il precedente materiale CoronaMtl, ora rinominato CoronaLegacyMtl, è ancora disponibile (Fig. 07).

Quali sono i benefici del nuovo Corona Physical Material?

Sono contento che tu l’abbia chiesto. Ecco una lista dei vantaggi che porta con se il nuovo CoronaPhysicalMtl.

Preset

Il CoronaPhysicalMtl fornisce 34 preset (plastiche, metalli, vetri ecc…) (Fig. 08 – Fig. 09). Questi shader non includono texture, ma offrono comunque degli ottimi punti di partenza con i quali realizzare materiali più complessi.

CoronaPhysicalMtl anteprima - Preset
Fig. 08 - Rendering realizzati con alcuni preset.
CoronaPhysicalMtl anteprima - User Interface
Fig. 09 - Interfaccia del “CoronaPhysicalMtl”.

Clearcoat (verniciatura)

Il Clearcoat è una feature a lungo richiesta dagli utenti di Corona. Il classico esempio è dato dallo strato di vernice di protezione che si applica su strutture in legno o dallo strato protettivo delle carrozzerie per automobili. Con il Clearcoat potrai ottenere una varietà infinita di effetti.

In Fig. 10 è stato usato solamente il valore IOR. Questo risultato è ottimo quando si ha la necessità di realizzare una singola superficie riflettente. In questo esempio, alla superficie irregolare del vaso generata tramite Bump è stato applicato un singolo strato di lucidatura blu: i riflessi seguono i solchi.

CoronaPhysicalMtl anteprima - Clearcoat simple
Fig. 10 - Esempio generato senza l’impiego del layer “Clearcoat”.

Attiviamo ora il layer Clearcoar (vernice trasparente), mentre lo strato di base sottostante mantiene il Bump. In sostanza è come se avessimo passato una mano molto spessa di vernice dalla superficie perfettamente liscia su un materiale “ruvido”: i riflessi non seguono più il Bump irregolare della struttura di base (Fig. 11).

CoronaPhysicalMtl anteprima - Clearcoat simpleCoronaPhysicalMtl anteprima - Clearcoat

Fig. 11 – Esempio generato con l’impiego del layer “Clearcoat”.

Se aggiungiamo la stessa mappa di Bump presente nel materiale base al layer Clearcoat riducendone l’intensità, si otterrà un risultato simile a uno strato protettivo “semi-spesso” di vernice che segue la struttura sottostante: i riflessi sono ora leggermente distorti (Fig. 12).

CoronaPhysicalMtl anteprima - ClearcoatCoronaPhysicalMtl anteprima - Clearcoat Bump 01

Fig. 12 – La stessa mappa “Bump” della struttura di base è stata inserita anche nel “Clearcoat”, ma con un’intensità minore.

Come si sarà già intuito, si può assegnare al Clearcoat una mappa Bump indipendente dalla struttura di base. E’ come se stessimo applicando uno strato di vernice dallo spessore non omogeneo. Anche in questo caso i riflessi sono distorti, ma da una mappa Bump diversa da quella utilizzata dalla struttura sottostante (Fig. 13).

CoronaPhysicalMtl anteprima - Clearcoat Bump 01CoronaPhysicalMtl anteprima - Clearcoat Bump 02

Fig. 13 – Il layer “Clearcoat” possiede la sua mappa “Bump”, generando una superficie liscia e leggermente increspata, come se fosse stato applicato spesso strato di vernice poco uniforme.

Tessuto morbido e vellutato (Soft and velvety)

La lucentezza (Sheen) è un’altra caratteristica che gli utenti di Corona ci chiedevano da molto tempo. Grazie ad essa potremo creare tessuti realistici, dall’aspetto vellutato che varierà al variare dell’angolazione con i quali vendono osservati (Fig. 14 – fig. 15).

CoronaPhysicalMtl anteprima - Sheen a
Fig. 14 - Attivazione del parametro “Sheen” senza l’ausilio di nessun colore.
CoronaPhysicalMtl anteprima - Sheen aCoronaPhysicalMtl anteprima - Sheen b

Fig. 15 – Attivazione del parametro “Sheen” dalla colorazione verde.

Anche se Sheen è sempre bianco puro nel mondo reale, il CoronaPhysicalMtl permette di regolarne il colore. Questo permetterà una rapida e facile simulazione dell’effetto di dispersione sub-superficiale nelle fibre, motivo per il quale gli effetti “vellutati” non sempre sono di colore bianco.

Per completare questa sezione, ecco una comparazione di un modello renderizzato con e senza l’attivazione del parametro Sheen (Fig. 16).

CoronaPhysicalMtl anteprima - Sheen Pillow aCoronaPhysicalMtl anteprima - Sheen Pillow b

Fig. 16

Metalli (Metal Detector)

Il CoronaPhysicalMtl possiede il parametro Metalness. Questa proprietà, che non era inclusa nel precedente CoronaMtl, è spesso presente negli shader esportati da programmi come Quixel e Substance.

Nella prossima immagine abbiamo un secchio renderizzato senza l’utilizzo di Metalness. Nel menu a tendina del CoronaPhysicalMtl selezionare quindi “Non-metal” (Fig. 17).

CoronaPhysicalMtl anteprima - Metalness 01
Fig. 17 - “CoronaPhysicalMtl” con selezionato il parametro “Non-metal”. Metalness non è mappato.

Ora inseriamo una mappa in bianco e nero proprio nel canale Metalness (Fig. 18).

CoronaPhysicalMtl anteprima - Metalness User Interface
Fig. 18 - Inserendo una mappa in bianco e nello slot “Metalness”, le parti bianche (i palloncini in questo caso) hanno assunto un aspetto metallico.

Ruvido o liscio? Decidilo tu

Per la gestione della ruvidità del materiale, lo shader CoronaPhysicalMtl utilizza la modalità Roughness come impostazione predefinita. Il motivo è molto semplice: il Roughness è oramai divenuto lo standard utilizzato nel mondo 3D ed è quello impiegato da programmi come Quixel e Substance. E’ comunque possibile tornare alla precedente impostazione “Glossiness”. In questo modo, il CoronaPhysicalMtl si comporterà esattamente come il vecchio CoronaMtl (ora rinominato CoronaLegacyMtl).

Si noti che quando si passa da una modalità all’altra, il valore nel CoronaPhysicalMtl verrà automaticamente aggiornato. Ad esempio, Roughness=0,2 sarà convertito in Glossiness=0,8. Naturalmente questa conversione avviene solo se stai usando valori numerici. Se il canale Roughness è mappato con una texture, essa non sarà modificata in alcun modo.

Facciamo un esempio. Se uno shader è stato correttamente realizzato con Corona v6.0 (quindi in modalità “Glossiness”) impiegando una texture in bianco e nero per definirne le parti satinate, se la si carica nel CoronaPhysicalMtl in modalità Roughness, tale mappa dovrà essere editata in Photoshop per poter ricreare il precedente risultato. Oppure, sempre nel CoronaPhysicalMtl, basterà selezionare Roughness mode=Glossiness (rollout Advanced options) nel menu a tendina (Fig. 19).

CoronaPhysicalMtl anteprima - Roughness
Fig. 19 - Puoi passare da "Roughness" (default) a "Glossiness" utilizzando il menu a tendina presente nelle opzioni avanzate. Notare come Corona converta il valore automaticamente (0.8 -> 0.2).

Niente più materiali "impossibili"

Il CoronaPhysicalMtl è stato sapientemente progettato in modo da permettere la creazione di shader realistici senza il pericolo di crearne di impossibili o poco “corretti”: la legge sulla conservazione dell’energia è stata ri-progettata da zero.

L’anisotropia non è più solo per le riflessioni

Quando si abilita l’anisotropia, ora sarà visibile non solo nelle riflessioni, ma sarà applicata anche alle rifrazioni (Fig. 20). Questo ha un duplice effetto: i materiali vetrosi saranno più realistici e anche le caustiche, quando attivate, saranno influenzate da questa proprietà materica, allungandosi a loro volta (Fig. 21).

CoronaPhysicalMtl anteprima - RAnisotropy
Fig. 20 - “Roughness= 0,05”. L’anisotropia è chiaramente visibile nelle rifrazioni.
CoronaPhysicalMtl anteprima - Caustics
Fig. 21 - L’effetto di anisotropia nelle rifrazioni influenza ora anche le caustiche.

Compatibilità, in sintesi

Avete mai creato uno shader usando programmi come Quixel, Substance chiedendovi dove inserire la mappa “Metalness“, ricordandovi di invertire la mappa “Roughness” inserendola poi nello slot “Glossiness“? Bene, sarete felici di sapere che quei giorni sono finiti.

Note: solitamente, questi programmi hanno incorporato script o strumenti d’esportazione verso Corona Renderer. Non sappiamo ancora se e quando saranno aggiornati per essere compatibili con Corona 7. Con tutta probabilità, al momento della stesura di quest’articolo, supporteranno solo il vecchio CoronaMtl. Confidiamo in un celere upgrade.

Corona: LA GUIDA COMPLETA

– PUBBLICITA’ –

Il convertitore

Per facilitare l’utilizzo del nuovo CoronaPhysicalMtl, stiamo aggiornando il CoronaConverter in modo da poter passare dal CoronaMtl al CoronaPhysicalMtl con estrema facilità (Fig. 22).

CoronaPhysicalMtl anteprima - Converter
Fig. 22 - L’interfaccia del convertitore non ha bisogno di un gran restyling.

Il converter è ancora in fase di sviluppo, ma la sua realizzazione è già a buon punto. Potete osservare un render di esempio in Fig. 23, il quale è stato generato utilizzando il converte del 15 marzo 2021.

CoronaPhysicalMtl anteprima - After ConversionCoronaPhysicalMtl anteprima - Before Conversion

Fig. 23

I due materiali nel test precedente che mostrano le maggiori differenze sono quelli che fanno uso della translucenza (Translucency): le tende e il paralume. Questo accade perché, in questo momento, il colore della translucenza non è ancora integrato nel converter: sarà aggiunto nella prossima Daily Build. Anche la bottiglia avrebbe bisogno di qualche ritocco manuale.

Si prega di notare che anche nella versione finale del convertitore non tutto sarà convertito al 100% e potrebbero essere necessarie piccole regolazioni da parte dell’utente.

Come ottenere gli stessi materiali che creavo con il CoronaMtl

Al di la della nuova collocazione di alcuni parametri nell’interfaccia del CoronaPhysicalMtl, per alcuni tipi di materiali, il flusso di lavoro potrebbe essere leggermente diverso. In questa sezione mostreremo alcuni esempi in modo che tu possa comprendere cos’è cambiato.

La riflessione e l’IOR della rifrazione sono ora collegati nel layer di base. Come faccio quindi a generare un vetro con una riflessione di forte intensità?

Se avete impostato un corretto valore di IOR per un vetro o un materiale liquido ma i riflessi non vi sembrano abbastanza visibili dal punto di vista artistico, potete aggiungere un layer di vernice trasparente (chiamato Clearcoat) impostando un valore di IOR elevato in modo tale che i riflessi siano più intensi.

In Fig. 24 (immagine di destra) abbiamo usato uno IOR di 1,2 per il vetro, aggiungendo un layer Clearcoat d’intensità 0,6 (Amount=0,6) e IOR=1,5.

CoronaPhysicalMtl anteprima - Extra reflection
Fig. 24 - Aggiunta del layer “Clearcoat”.

Nota: se è possibile usare il layer Clearcoat per aumentare l’intensità delle riflessioni su un materiale base dal basso valore di IOR, non è possibile l’opposto. Ossia non si può ridurre l’intensità delle riflessioni su un materiale base dall’alto valore di IOR. Questo fenomeno è un esempio di vincolo introdotto per generare materiali fisicamente realistici.

Naturalmente si può usare il Clearcoat per aggiungere riflessi nitidi (basso Roughness /alto Glossiness) “sopra” un vetro o un materiale satinato (alto Roughness /basso Glossiness) in modo da simulare uno strato di vernice liscia su un materiale grezzo.

Come faccio a creare un materiale con translucenza, se quest’ultima è disabilitata (greyed out)?

Per utilizzare la translucenza (Translucency), è necessario abilitare la modalità ” Thin mode ” per uno shader “Non-metal”. Facciamo notare che questo procedimento è valido anche quando il canale Metalness è mappato. In questo caso, la translucenza sarà visibile sono nelle zone non metalliche.

In Fig. 25 si può vedere un esempio nel quale il canale Metalness è stato mappato con una Bitmap in bianco e nero: la translucenza è visibile nelle sua aree bianche (parti beige).

CoronaPhysicalMtl anteprima - Translucency
Fig. 25 - Abilitando la modalità “Thin” è possibile utilizzare la translucenza. In questo caso, anche la proprietà materica “Metalness” è stata mappata utilizzando la texture "Checker" di 3ds Max.

Infine, se finora hai usato una versione della Daily Build prima del 22 marzo, ora puoi controllare il colore della translucenza in modo separato dal colore del materiale base (Fig. 26).

CoronaPhysicalMtl anteprima - Translucency Color
Fig. 25 - Ora il colore della translucenza è un parametro distinto dal resto nel materiale.

Facciamo un altro esempio, devo fare in modo che il mio cilindro appaia completamente nero. Selezioniamo quindi un nuovo CoronaPhysicalMtl, imposto IOR=1 e Roughness=1, ma nel rendering, alcune sue aree non sono completamente nere. Perché?

Questo fenomeno può accadere quando un oggetto è inserito dentro una geometria alla quale è stato assegnato un materiale trasparente con un valore di IOR diverso da 1 (Fig. 26). Ad esempio quando è immerso in un liquido trasparente. Lo stesso effetto può essere osservato anche quando il materiale del cilindro è un CoronaMtl con Fresnel IOR=1 e Reflection Level=1. Bisogna far notare, a differenza del precedente CoronaMtl dove era possibile azzerare completamente le riflessioni portando Reflection Level=0, con il nuovo CoronaPhysicalMtl non potrai mai avere una riflessione uguale a zero poiché questa caratteristica materica è ora controllata dallo IOR e dal parametro Roughness (esattamente come accade con i materiali del mondo reale). Questo è motivo per il quale questo “problema” potreste non averlo mai visto prima, in quanto si era soliti impostare, erroneamente , Reflection Level=0.

La ragione di questo fenomeno è che lo IOR finale di una superficie è determinato dalla differenza di IOR del cilindro (nel nostro esempio il tronco di legno) e il materiale che la circonda (l’acqua). Poiché lo IOR dell’acqua è diverso da zero, anche il valore di IOR finale della parte di tronco immersa sarà diverso da zero (IOR dell’oggetto diviso lo IOR dell’acqua).

CoronaPhysicalMtl anteprima - IOR
Fig. 26 - Il valore di “IOR” finale di una superficie dipende dal materiale in cui è immerso.

Posso colorare i riflessi di un oggetto manualmente usando una texture?

Nell’uso “normale”, il CoronaPhysicalMtl funziona esattamente come il mondo reale, nel quale i riflessi sono sempre bianchi, con una leggerissima variazione di colore lungo le parti di oggetto paralleli alla vista. Per mantenere vera questa fondamentale regola fisica, lo slot Reflection Color, che era presente del CoronaMtl, nel CoronaPhysicalMtl è stato eliminato. Al suo posto è stato introdotto il parametro Edge color.

Seguiamo il prossimo mini-tutorial, utilizzando un semplice metallo satinato come shader di partenza (Fig. 27).

Fig. 27 - Lo shader di partenza è un metallo, al quale aggiungeremo un effetto metallico arcobaleno: vogliamo simulare un sottile strato di vernice riflettente.

Per creare lo strato riflessivo arcobaleno abbiamo inserito una mappa Falloff nel canale Bottom di una CoronaMix e una mappa Noise nel suo canale Top. Dopodiché abbiamo a sua volta inserito la CoronaMix come Source Map di un Gradient Ramp (Fig. 28).

Fig. 28

Potremmo inserire la Gradient Ramp direttamente nel Base Color del CoronaPhysicalMlt, ma perderemmo l’aspetto grigio-metallico del materiale (Fig. 29).

Fig. 29 - Anche se il risultato è piuttosto interessante, la componente colore è troppo intensa per simulare un riflessione metallica arcobaleno. Un’altra idea è di usare la mappa “Gradient Ramp” all’interno di un “CoronaLayerMtl”, ma non è lo scopo di questo esercizio.

Potremmo gestire la riflessione aggiungendo una seconda mappa CoronaMix miscelandola con un semplice colore prima di collegarla al Base Color, ma ci complicheremmo ulteriormente la vita.

Inseriamo quindi la mappa arcobaleno nello slot Edge color: questo potrebbe la soluzione che stavamo cercando. Tuttavia, l’effetto sarebbe visibile solo sulle parti della geometria parallele alla vista: non è quello che stiamo cercando di ottenere. In questo modo, inoltre, non avremmo nessun controllo sull’intensità dell’effetto. Controllo che potremmo ottenere aggiungendo un extra nodo per miscelare la texture arcobaleno con un colore semplice prima di collegarlo di nuovo all’Edge color (Fig. 30).

Fig. 30 - “CoronaMix” nel canale “Edge color”. Le riflessioni colorare sono visibili solo sulle parti di geometria parallele alla vista.

Un’altra soluzione è di aggiungere la CoronaMix nel canale Absorption del layer Clearcoat, impostando l’IOR del Clearcoat a 1.001 in modo da non aggiungere nessun riflesso proprio (Fig. 31). Abbiamo finalmente ottenuto una colorazione leggera del Base layer. Usando i parametri Amount e IOR del Clearcoat possiamo infine determinarne l’intensità: un gran vantaggio rispetto all’uso dell’Edge color. In Fig. 32 si può osservare come l’effetto arcobaleno sia applicato a tutto il modello e non solo sulle parti parallele alla vista.

Fig. 31
Fig. 32 - Utilizzo del layer “Clearcoat” per la gestione delle riflessioni colorate.

Lo stesso approccio può essere impiegato anche con i materiali non metallici (Non-metal). Per esempio, possiamo applicare l’effetto arcobaleno su di un vetro (Fig. 33) o su una pozzanghera per simulare residui di benzina. 

Fig. 33 - La stessa tecnica utilizzata per la generazione di riflessioni metalliche applicata a un materiale vetroso.
Corona: LA GUIDA COMPLETA

– PUBBLICITA’ –

Ci sono svariati aspetti che stiamo considerando e, grazie ai vostri feedback, è possibile che ci siano nuovi tool anche nell’imminente Corona 7.

Cos'altro conterrà Corona Renderer v7?

Moltissime cose! Puoi trovare tutti i dettagli all’interno dei changelog di 3ds Max e Cinema 4D. In quest’articolo ci siamo concentranti solo sul CoronaPhysicalMtl perché si tratta di un cambiamento importante nel flusso di lavoro. Probabilmente la tua memoria muscolare avrà bisogno di un po’ di tempo per adattarsi al nuovo materiale. Per questo abbiamo voluto darti un po’ di tempo prima del rilascio finale per assimilare i nuovi concetti introdotti dal CoronaPhysicalMtl.

In quest’articolo vi abbiamo fornito una gran quantità d’informazioni e non volevano sovraccaricarvi. State certi che Corona Renderer 7 porterà nuove ed interessanti novità.

Conclusioni

Bene ragazzi, questo è tutto quello che dovete sapere sul nuovo CoronaPhysicalMtl. “Ma, aspetta!, ci hai detto che c’era molto di più”.

Esatto, e quelle che seguono sono informazioni tecniche non necessarie per sfruttare a pieno il CoronaPhysicalMtl, ma che possono interessare quel 5% di utenti che sono particolarmente curiosi.

Non è necessario che le leggiate e, se lo farete, non bisogna capirle al 100% per usare a pieno il CoronaPhysicalMtl.

Nel frattempo, provatelo e fateci avere i vostri commenti.

Descrizione tecnica del nuovo CoronaPhysicalMtl (OPZIONALE)

Ricordate che non avete bisogno di leggere questa parte per essere in grado di usare il nuovo materiale fisico.

Rivestimento (Clearcoat)

Il layer superficiale del nuovo materiale è un rivestimento trasparente. È stato implementato usando la distribuzione isotropa chiamata “GGX microfacet” con la funzione “height-correlated Smith shadowing-masking” e ha un termine di Fresnel perfettamente dielettrico. Il Clearcoat possiede i parametri Amount (intensità del layer), Roughness (0-1), IOR (1-3), un Bump separato dal resto del sistema e un colore di assorbimento che influenza tutti gli strati sottostanti.

Lucentezza (Sheen)

Il prossimo layer presente nel CoronaPhysicalMtl rappresenta la lucentezza (Sheen). Abbiamo usato il modello descritto nel paper chiamato “Production Friendly Microfacet Sheen BRDF” di Estevez e Kulla (2017). Per questo layer abbiamo impiegato il modello di FresnelSchlick”. I parametri sono: Amount (con intensità da 0-1), Color (colore di input del Fresnel Schlick chiamato “normal-incident”) e Roughness (0-1).

Strato di base (Base layer)

Per il layer di base abbiamo impiegato una distribuzione anisotropa “GGX microfacet” con la funzione “height-correlated Smith shadowing-masking”. Lo abbiamo distinto tra una base di tipo metallica e una dielettrica. Queste due opzioni (Metal e Non-metal) possono essere definite sia da una texture (Metalness) oppure selezionate in un menu a tendina. I parametri in comune per il Base layer sono: Color, Roughness (0-1), Anisotropy (-1 – 1) e Bump.

Strato di base metallico (Metallic base layer)

Per il layer di base metallico abbiamo usato il metodo “Bringing an Accurate Fresnel to Real-Time Rendering: a Preintegrable Decomposition” di Belcour et al 2020. Questo nuovo metodo ci permette di utilizzare il Fresnel esatto per i conduttori (metalli). I due parametri esposti sono: il colore della base (Base Color) e colore del bordo (Edge color).

Strato di base dielettrico (Dielectric base layer)

Il layer di base usa un termine dielettrico di Fresnel esatto con un indice di rifrazione controllabile (valori modificabili tra 1 e 3) ed è una combinazione di plastica e vetro. Questa combinazione è controllata dal parametro Refraction Amount (0-1, 0=plastica pura, 1=vetro puro). La differenza tra materiali di plastica e vetro risiede nella gestione della luce non riflessa. Per la plastica, la luce entra in contatto con lo strato diffuso, il quale usa il BRDF Oren-Nayar mentre il colore è definito dal parametro Base Color. Per il vetro, la luce non riflessa viene rifratta.

Diffusione sotto-superficiale (Subsurface scattering - SSS)

Il layer diffuso (Diffuse layer) può essere sostituito dal SSS e l’utente è in grado di miscelare il Diffuse con il SSS tramite il parametro Amount (0-1). Il SSS ha un colore e un raggio di miscelazione controllabili, mentre il suo colore è uguale al colore diffuso (Base Color).

Diffusione volumetrica (Volumetric Scattering)

Il materiale vetro può avere proprietà di dispersione volumetrica con i seguenti parametri: colore dell’albedo di diffusione e colore di assorbimento.

Strato dielettrico sottile (Thin dielectric layer)

Il layer dielettrico di base può essere convertito in modalità sottile (Thin). In questo modo, la rifrazione del materiale vetro sarà sostituita dall’opacità (con l’Absorption color definito dall’utente), mentre il layer diffuso del materiale plastico è suddiviso in riflessione diffusa e translucenza in base al parametro Translucency Fraction (0-1). Da notare che, quando si è in modalità Thin, non sarà calcolato nessun effetto SSS o Volume Scattering.

Altro

Oltre a questi layer, l’utente può impostare, in maniera totalmente indipendente, i seguenti parametri: Emission, Opacity e Displacement.

Fusione di layer

Il CoronaPhysicalMtl è stato concepito in modo tale da conservare l’energia (nessuna energia è creata con l’eccezione di uno strato di emissione) che preservarla (nessuna energia è persa). La luce non riflessa dal layer Clearcoat trasparente passerà al layer Sheen. In seguito, quella non riflessa dal layer Sheen sarà suddivisa tra i layer Metal e Dielectric in base al valore di Metalness. Infine, la luce che raggiunge lo strato di base dielettrico sarà ripartita tra materiali plastici e vetrosi (in base al valore del parametro Refraction Amount). Facciamo notare che il CoronaPhysicalMtl assicura reciprocità, quindi segue correttamente gli algoritmi “bidirectional light transport”.

Corona: LA GUIDA COMPLETA

– PUBBLICITA’ –

Lascia un commento