RENDER MAP.


Le Render Map sono delle texture generate considerando la luce incidente sulle superfici, sulle quali vengono riportate ombre e ombreggiature. Si utilizzano per applicazioni in tempo reale, dove è necessario che i rendering delle scene avvengano in tempi brevi. Infatti in questi non aviene nuovamente il calcolo delle luci e delle ombre.
Il funzionamento è questo: i raggi di luce che cadono sulla superficie vengono memorizzati in base alle coordinate UV della superficie e si utilizzano per generare una texture.

Consideriamo questa situaizone: il modello di una città con 2 griglie messe sopra inclinate, sulle quali è applicato un materiale Constant.

Renderizziamo con il Final Gathering attivo prendendolo dalle opzioni di rendering.

Applichiamo una proprietà UNIQUE UV. Priama vediamo come funziona su una sfera.
Prendi una sfera e applicagli queste coordinate:

Nel Texture Editor appaiono così:

Questo perchè l'Unique UV è impostato così:

...cioè sul raggruppamento di poligoni con una inclinazione sotto la soglia dei 45 gradi.

Impostiamo i parametri così:

Ogni poligono della superficie viene isolato.

Altri parametri sono questi:

Torniamo alla scena della città.
Applichiamo alla città l'UV Unique impostando la modalità Individual Polygon Packing.

Seleziona l'UV Unique e Freezzalo.

A questo punto applica una Render Map.

Fra i parametri della Render Map imposta il nome del file della mappa:

Poi imposta la stessa risoluzione utilizzata nell' Unique UV.

Vai nelle opzioni di rendeiring.

Clicca sulpulsante "Copy Options From Region".

Riprendi i valori della Render Map.

Clicca sul pulsante Regenerate Map.


Apri il Render Tree e inserisci un nodo Image.

Sostituiamo la texture con la Render Map.

La texture è fatta così:

A questo punto nella vista si vedono i colori definiti dall'illuminazione direttamente impostati sulla texture.

La Render Map non è granchè perchè ha appena una risoluzione di 256 pixel. Potevamo aumentarla durante le impostazioni dell' Unique UV e della Render Map.
Apriamo nel Render Tree le caratteristiche della texture:


Da qui si impoa la risoluzione OpenGL massima nella vista con il parametro MAXIMUM WIDTH OR HEIGHT. Tuttavia impostare valori superiori a quelli della risoluzione massima effettiva della Render Map non comporta cambiamenti.


UNA SOLA RENDER MAP PER PIU' OGGETTI.

Vediamo come applicare una singola Render Map a più oggetti.
Il meccanismo consiste nell'assegnare a ogni singolo oggetto di un gruppo una proiezione di tipo Unique UV, in modo tale che le coordinate di mappatura di un oggetto non vadano a sovrapporsi a quelle di un altro.

Consideriamo questa situazione: 3 ciambelle con 2 griglie inclinate a destra e sinistra a cui sono associati dei materiali Constant di colore diverso.

Seleziona i 3 oggetti e assegnagli una proiezione Unique UV.

Imposta queti parametri:

Aumentiamo la risoluzione della proiezione da qui:

Imposta le dimensioni della proiezione così:

In questo modo parte della texture applicata rimarrà scoperta dalla proiezione.

A questo punto posizioniamo le proiezioni in zone diverse dell'Unwrap. Seleziona un oggetto alla volta e imposta questi parametri così:



Seleziona tutti e 3 gli oggetti e crea un gruppo.

A questo punto applica una Render Map.

Imposta fra i parametri il percorso dove verrà salvata l'immagine e la risoluzione, che risulta essere la stessa impostata per l' Unique UV. In particolare la risoluzione vale per l'intero gruppo, quindi non è applicata a ogni singolo oggetto del gruppo ma a tutti gli oggetti contenuti in essi.

Ricordiamoci di impostare le proiezioni di mappatura nel campo UV.

A questo punto clicca sul pulsante Regenerate Maps. La mappa generata è fatta così:

Assegna al gruppo intero un materiale che utilizza la Render Map come texture.

Applica alla texture la corretta proiezione di mappatura.

Clicca su EDIT per aprire i parametri della Render Map. Qui imposta la massima risoluzione OpenGL della vista a 2048.


MAPPE AD ALTA RISOLUZIONE.

E' possibile utilizzare le RenderMap per ricavare l'illuminazione relativa a modelli ad alta risoluzione, e mappare modelli a bassa risoluzione mantenendo così i dettagli pur operando su un modello leggero.
Consideriamo questo modello:

Creiamo un modello a bassa risoluzione partendo da questo.
Creiamo una sfera coincidente con questo oggetto.

Andiamo sul Visibility dell'oggetto a bassa risoluzione.

Disattiviamo i raggi primari e secondari.

 

 

 

 

Applichiamo una Render Map al modello a bassa risoluzione.
Impostiamo 1024 come risoluzione.

Poi creiamo una proiezione di mappatura direttamente da qui cliccando su NEW e impostando questo tipo:

Lo scopo è quello di creare una Render Map da utilizzare come mappa di Displacement sul modello a bassa risoluzione. Perciò nei parametri del Render Map andaiamo alla tabella Surface Map Settings e impostiamo il grigio medio.

Questo colore indica assena di Displacement. Valori più scuri rientranze, valori più chiari protuberanze. Occorre definire queste variazioni in base allo scostamento tra le superfici del modello a bassa risoluzione e quello ad alta.

Nella tendina Advanced troviamo i parametri della Virtual Camera.

La Virtual Camera è una cinepresa invisibile che gira intorno all'oggetto scansionando la superficie per prenderne i dettagli di illuminazione. Da qui è possibile definire la distanza dalla superficie dell'oggetto. Non deve essere troppo vicina altrimenti interseca la superficie e perde dei dettagli, ma nemmeno troppo lontana altrimenti la scansione viene distorta.
Creiamo questo materiale per il modello ad alta risoluzione:

Il nodo Front-Back è stato preso da qui:

Le facce postive vengono visulizzare in rosso, quelle negative in blu. Perciò se la cinepresa va oltre la superificie appariranno zone blu perchè sta guardando al suo interno (qui nell'esempio appare una zona blu perchè ci sono delle facce irregolari in cima ribaltate).

Facciamo allora delle prove. Impostiamo questo valore:

Genera la mappa Render Map poi importala nel Clip Viewer.

Aumentiamo il valore e rigeneriamo la mappa finchè le parti blu non sono sparite completamente.

A questo punto riapri il Render Tree e cancella il noto Front-Back e crea questo nodo:

La sua funzione è ricavare la distanza tra la superficie e la cinepresa. Imposta i suoi parametri così:

Questo valore di distanza superficie-cinepresa deve essere trasformato in un range di colori RGB.
Crea questo nodo:

Collega i nodi così:

La funzione del Change Range è modificare il range dei valori passati in input. Lo scopo è ottenere in uscita un range [0...1], perciò imposta i suo valori così:

Alla fine colleghiamo l'uscita così:

A questo punto torna sulla Render Map del modello a bassa risoluzione e rigenerala.

Abbiamo ottenuto la mappa Displacement. Ora non resta che applicarla.
Nascondiamo il modello ad alta risoluzione.

Creiamo il materiale così, inserendo la texture del Displacement come input al nodo Image.

Lo scopo è trasformare il range [0..1] della mappa Displacement in un ragne più ampio. Utilizziaom lo stesso range applicato all'inizio per generare la mappa.

Infine colleghiamo l'output al Displacement del materiale.


Riattiviamo per il modello a bassa risoluzione la ricezione dei raggi luminosi nella traccia Visibility.

Poi renderizziamo.

Apriamo le proprietà del Geometry Approximation.

Imposta questi parametri:

Invertiamo la mappa Displacement utilizzando un nodo Invert:

Lo spuntone in cima lo eliminiamo modificando i parametri del Texture Projection:

Compariamo le due versioni visualizzando di nuovo il modello ad alta risoluzione.


 

 


BAKING DELLA LUCE.


Consideriamo questa scena:

Crea un Cluster per i poligoni a livello zero.

Poi creiamo un cluster per i palazzi.

Assegnamo un materiale Constant per le strade.

Facciamolo bianco.

Al cluster dei palazzi assegnamo un materiale Lambert. Bianco sul Diffuse, nero sull' Ambient.

Vai qui:

Abilita il Final Gathering.

Per regolare l'illuminazione agisci sul materiale dei palazzi. E' possibile regolare sia il Diffuse della superficie che l'illuminazione indiretta.

In questo caso lasciamo inalterati i valori in quanto nel rendering non appaiono zone eccessivamente sovraesposte.

Selezioniamo la luce.

Riduciamo tra i suoi parametri l'intensità.

Creiamo una griglia e mettiamola sopra la città per simulare il cielo.

Anche a questa griglia diamole un materiale di tipo Constant bianco.

Se la scena è troppo chiara abbassiamo il colore della griglia impostando un livello di grigio.

Seleziona la città e vai qui:

Nell'Explorer appare qui:

Cambiagli il nome.

Ora applichiamo alla città questa proprietà:
Nell'Explorer si trova qui:

Tra i suoi parametri imposta questi:

E imposta le luci stradali come colore delle superfici.

In basso seleziona anche la voce Shadows per disabilitare nuovamente la proiezione delle ombre.

Il Render Map funziona per bene solo se è attivo il Final Gathering. Dato che questo è abilitato solo per il Render Region, occorre attivarlo anche per il Render totale. Per farlo vai qui:

Nella finestra che si apre, in alto, clicca sul pulsante Copy Options From Region.

In questo modo le impostazioni del Final Gathering per il Region saranno impostate anche per il Render totale, compresa la sua attivazione. Occorre fare questo passaggio perchè la Render Map tiene conto delle impostazioni del Render totale, e non del Render Region.
A questo punto clicca su Regenerate Maps nel Render Map.

La scena sembra non cambiare. Questo accade perchè il Render Map ha lo scopo di assegnare ai vertici della superficie il colore presente nel rendering, in modo da vedere le ombreggiature del rendering direttamente nella vista. Facciamo il pavimento verde cambiando il colore del Constant applicato su di esso e poi fra i parametri del Render Map clicchiamo su Regenerate Maps. Come si nota sulle superfici, direttamente nella vista, appaiono le sfumature di luci.

Però rimettiamo il bianco...

Cancelliamo i materiali assegnati ai singoli clusters.

Poi riapplichiamo un Lambert ai palazzi.

Assegniamo alla città delle coordinate di mappatura di tipo SPATIAL.

In questo modo otteniamo per la superficie una proiezione tridimensionale delle texture procedurali.

Nel Render Tree creiamo questo nodo:

Colleghiamolo così:

Il Lattice ha la funzione di creare delle chiazze sulle superfici.
Disabilitiamo dal Render Regionil Final Gather e regoliamoi parametri del Lattice per ottenere qualcosa del genere:

Crea questo nodo:

Collegalo così:

La sua funzione è quella di assegnare un colore all'Incandescence del Lambert in base alla mappa di vertici creata in precedenza.

I parametri del Map Lookup Color impostali così:

Tra i parametri del Lambert aumenta l'intensità dell'Incandescence.