Proveniendo da 3d studio max (dove ho usato molto vray) ho trovato un pò "traumatico" il passaggio a XSI soprattutto per gli shader, rendendomi conto di non sapere quasi nulla in materia (quindi perdonatemi nel caso ci fossero delle imprecisioni, ma correggetemi! ;) ).
Mi sono messo a studiare per bene la guida cartacea (basic guide) del sw e i pdf che si trovano nel sito della softimage. Come già scritto altre volte, quando studio per memorizzare e comprendere meglio ho bisogno di scrivere appunti così via via che vado avanti li pubblico qui ^_^ spero che vi faccia piacere e che possano tornarvi utili :)

MATERIALI E SHADER
Alcuni shader al momento del render servono a computare il colore dei pixel, altri possono generare geometrie o spostamenti; ci sono diversi tipi: surface, environment, volume, shadow, photon, light, lens, texture....
Per creare effetti su misura bisogna collegare gli shader tra loro (render tree).
Gli shader sono divisi per categorie, x ogni shader si può accedere (attraverso l'explore o il render tree) al proprio property editor.

Il surface shader è tra i + importanti, è applicato a tutti gli oggetti della scena (è anche lo shader di default) e determina il colore di base, l'environment (ambiente), le ombre, texture, displacement, i contour shader, le riflessioni, le rifrazioni, la trasparenza, lo specular e lo specular decay.

I texture shader applicano una texture 2D (o 3D) sull'oggetto, inoltre sono necessari per creare le mappe di bump.

I realtime shader permettono di controllare la pipeline di render attraverso il render tree, collegando insieme questi shader è possibile realizzare un gran numero di effetti complessi.

I light shader vengono usati per creare e modificare le fonti luminose.

I lens shader vengono usati quando un primary ray è proiettato dalla camera, possono modificare l'origine o la direzione del raggio e aggiungere effetti come lens flares, distorsioni....

I volume shader modificano i raggi nel momento in cui attraversano un oggetto, vengono usati per simulare le nubi, il fumo, la nebbia....

I toon shader applicano degli effetti non foto-realistici e in stile "cartoon", si possono controllare le proprietà della colorazione e dell'inchiostrazione. Per ottenere un effetto completo è consigliato usare i toon shader con i toon lens shader.

Gli output shaders operano sull'immagine dopo che è stata renderizzata, ma prima che sia salvata su file. Permettono di realizzare operazioni di filtering, blurring, compositing con altri file e salvare su differenti formati.

I tool shader permettono di creare uno shader da zero o possono essere aggiunti a altri shader, anche se alcuni possono essere utilizzati in maniera autonoma la maggior parte vengono utilizzati unitamente ad altri per creare effetti particolari:
  • Bump: Genera e applica il bump indipendentemente da un'immagine o da una texture map
  • Color Channels: manipola le componenti di un colore (rgb e alpha)
  • Conversion: Scalar, color, vector, boolean node possono essere cambiati in qualsiasi altro output (utile ad esempio per cambiare un node di tipo scalar in un colore)
  • Illumination: genera i + comuni algoritmi di shading (blinn, phong, lambert, photon....)
  • Image processing: definisce e edita i valori di colore e scalar
  • Map lookup: estrae i weight, le texture o le vertex maps in modo tale da poterle utilizzare con il blend shader, il mix shader o altri
  • Match: effettua operazioni matematiche come l'interpolazione, moltiplicazione, somma, esponenziale....
  • Mixers: attraverso una (o +) equazione di miscelatura di colori (o texture) da come output un unico colore
  • Raytracing: con questi shader si ha un controllo profondo della rifrazione, riflessione, trasparenza senza dover utilizzare controlli e valori troppo complessi
  • Share: coordina il contributo di un singolo valore su altri valori
  • State: vengono utilizzati da sviluppatori di shader per un controllo più profondo sugli shader raytracing
  • Surface: genera vari effetti predefiniti su una superficie
  • Switch: cambia il colore di un oggetto in base a un valore definito, alla sua posizione o all'inquadratura
  • Texture generators: generano le texture 2d e 3d basi
  • Texture space controllers: controlla le texture space attraverso un valore, una rotazione o altre funzioni
  • Texture space generators: genera una specifica texture space da mappare sull'oggetto in vari modi
Gli shadow shader determinano come si comporta una luce quando è ostruita da un oggetto, determinano la direzione dell'ombra proiettata dall'oggetto attraverso l'opacità e il colore.

I photon shader vengono utilizzati per creare le caustiche e l'illuminazione globale. Calcolano come la scena è immersa nella luce, i fotoni vengono proiettati da una sorgente luminosa piuttosto che da una camera.

Gli environment shader sono usati al posto dei surface shader quando un raggio non incontra nessun oggetto e raggiunge la sua profondità massima. Possono essere usati anche per illuminare una scena attraverso una HDRI.

I displacement shader modificano la superficie spostando i relativi punti, sarà visibile un bump e gli spostamenti produrranno ombre.

I lightmap shader sono utilizzati per "campionare" le superfici e salvare il risultato su un file da poter usare in seguito. Inoltre sono usati con il fast subsurface scattering e il fast skin shader per memorizzare le informazioni della scattered light.

I material phenomena sono combinazioni predefinite di shader, solitamente servono a creare complessi effetti in un singolo shader node. Il fast subsurface scattering e il fast skin shader ad esempio sono material phenomena.

I geometry shader vengono calcolati prima che parta il render e introducono nella scena le geometrie procedurali, ad esempio possono essere usati per creare le piume di un uccello o le foglie di un albero.

Toolbar shader: view -> toolbar -> shader
Utile per accedere velocemente a tutti gli shader presenti nelle librerie, divisi per categorie e visualizzabili attraverso delle thumbnails. È possibile trascinare un qualsiasi shader direttamente dalla toolbar su qualsiasi oggetto o view, ad esempio nel render tree senza doverli richiamare volta per volta dal node menù
imm01
È possibile assegnare uno shader a un oggetto geometrico, a una camera, a una luce a un render pass, a un gruppo di oggetti, a una gerarchia di oggetti.... in questo caso le proprietà si propagano a tutti gli oggetti presenti nel branch; quando si assegna uno shader a un cluster di poligoni si definiscono materiali e texture a livello locale. È possibile assegnare un albero di shader a una singola proprietà di un altro shader.
Inoltre è possibile trascinare uno shader da un browser (o toolbar) a un oggetto nella scena visualizzata come explorer o render tree.
Quando tentate di applicare uno shader a un oggetto non compatibile verrà visualizzato un messaggio "di errore" nella icon bar (ad esempio se volete aggiungere un lens shader a una sorgente luminosa).
Il primo shader che probabilmente assegnerete a un oggetto sarà un surface shader che definirà le sue caratteristiche superficiali di base, la procedura è "Render toolbar -> Get -> Material). Per assegnare uno shader a una camera o a una luce la procedura è molto simile.
Uno shader applicato a un oggetto è considerato "local shader", uno applicato a una scena è considerato "global shader" o "pass shader". I pass shader sono applicati alla scena come "render pass level" e controllano in maniera globale attributi come l'environment shading, i volume effects o gli output shader che sono applicati alla scena dopo la renderizzazione.

Conversion shader

Quando attaccate una "rete" di shader a un oggetto noterete che alcuni shader saranno denominati come "conversion shader", servono per modificare un output di uno shader prima che sia connesso a parametri di altri shader; si suddividono in 3 categorie:
  • Type conversion shaders: converte un output dello shader da un tipo a un altro, ad esempio il "Color2Scalar shader" converte l'informazione di colore dello shader in uno "scalar value".
  • Color conversion shaders: permette di modificare le informazioni di colore di uno shader, ad esempio il "color correction shader" permette di modificare la tonalità, la saturazione, il level, il gamma e il contrasto del colore di uno shader.
  • Simple match shaders: consentono le operazioni matematiche di base sull'output di uno shader, ad esempio lo "scalar share shader" permette di ripartire un singolo scalar value tra vari altri shader.
Solitamente questi shader richiedono alcuni aggiustamenti iniziali dei propri parametri al momento dela prima connessione, ma nelle successive richiederanno pochi aggiustamenti. Sono comodi anche perché di default sono esclusi durante la navigazione all'interno del property editor degli shader. All'interno del property editor potete sapere quali parametri sono connessi a altri shader con un (o +) conversion shader, poiché le icone di connessione sono marcate con una piccola lettera "C". imm02
Avvicinandovi con il mouse a questa icona potrete visualizzare la lista dei conversion shader.

Applicare gli shader

Una volta assegnato il materiale alla superficie di un vostro oggetto potete ricreare qualsiasi tipo di superficie, potete utilizzare vari metodi per assegnare gli shader:
  • Shader menù dalla render toolbar
imm03



Nel menù i parametri con il simbolo (=) sono già connessi a uno shader

Nei sottomenù troverete le seguenti opzioni per connettere uno shader:
    • Edit: quando uno shader è già connesso al port, questa opzione apre direttamente il relativo property editor
    • Disconnect: elimina il collegamento tra il port e lo shader connesso
    • Insert: Apre un sottomenù nel quale selezionare un conversion shader, se c'è già uno shader connesso al port verrà inserito in mezzo.
    • Edit conversion: apre un property editor di tutti i conversion shader connessi
    • Shader vari: mostra la lista degli shader + comuni, selezionandone uno lo collega al port; se uno shader è già collegato al port verrà disconnesso e sostituito con il nuovo
    • Clips: apre un sottomenù con la lista di tutte le image clip della scena, scegliendo questa opzione si connette al port una clip attraverso un image shader
    • Source: apre un sottomenù con la lista di tutte le image source della scena, scegliendo questa opzione create una clip e la connettete attraverso un image shader
    • More: apre un browser da cui selezionare un qualsiasi shader presente nella library. Lo shader viene connesso al parametro, se è già connesso viene sostituito con il nuovo. NOTA: ogni volta che utilizzate questa opzione sotto di essa nel menù verrà aggiornata una lista degli shader utilizzati + di frequente
  • Utilizzare le connection icon all'interno del property editor dello shader
imm04



Nel property editor degli shader a destra di ogni parametro c'è un'icona di collegamento, cliccando sopra appare il menù degli shader da poter attaccare direttamente a quel parametro. Il parametro a questo punto verrà controllato editando lo shader invece che un semplice colore o valore numerico. Attraverso questo menù potete connettere e disconnettere uno shader, inserire un conversion shader (tra il parametro e lo shader connesso) e inoltre usando il texture layer potete mescolare gli shader con specifici parametri.

Le opzioni presenti in questo menù sono:
    • Edit: se uno shader è già connesso al parametro questa opzione apre il relativo property editor, se lo shader connesso è un conversion shader aprirà l'editor del successivo shader (non conversion) connesso.
    • Disconnect: elimina la connessione tra parametro e shader
    • Blend with: apre un sottomenù in cui potete selezionare un texture shader, questo verrà mixato con il valore del parametro attraverso un nuovo texture layer. (nell'icona di connessione apparirà una "L" azzurra)
    • Insert: apre un altro menù in cui potete selezionare un conversion shader (apparirà una "C" nell'icona), se è già connesso a un altro shader il conversion verrà applicato in mezzo
    • Edit conversion: apre una finestra di editor per tutti i conversion shader connessi in serie al parametro.
    • Shader vari: appare una lista degli shader comunemente associati al parametro, selezionando uno di questi verrà connesso al parametro, se c'è già uno shader connesso viene sostituito da quello nuovo
    • Clips: apre un sottomenù con la lista di tutte le image clip della scena, scegliendo questa opzione si connette al port una clip attraverso un image shader
    • Source: apre un sottomenù con la lista di tutte le image source della scena, scegliendo questa opzione create una clip e la connettete attraverso un image shader
    • More: apre un browser da cui selezionare un qualsiasi shader presente nella library. Lo shader viene connesso al parametro, se è già connesso viene sostituito con il nuovo. NOTA: ogni volta che utilizzate questa opzione sotto di essa nel menù verrà aggiornata una lista degli shader utilizzati + di frequente
  • Utilizzare il render tree
imm05
Questo è il metodo per avere maggior controllo.

Editare gli shader

Gli shader vengono modificati attraverso il proprio property editor in cui sono riportati tutti i parametri relativi alle sue caratteristiche

imm06

L'icona con la chiave è x il keyframe controls, la freccia ad "U" serve per tornare alle impostazioni iniziali, poi ci sono i tasti per caricare o salvare (load/Save) gli shader e l'icona con il punto interrogativo aprirà l'help "tematico". Sotto abbiamo alcuni page tab in cui sono riportate le varie proprietà dello shader. I vari parametri solitamente sono editabili attraverso dei valori numerici o modificando il colore; quando al parametro è connesso uno shader al posto del color box apparirà un'icona nera con un punto interrogativo bianco, in questo caso il parametro è modificabile attraverso lo shader connesso.


imm07
Per ora mi devo fermare qui, spero a breve di poter continuare a pubblicare altri appunti su questo tema (ancora c'è veramente moltissimo da dire), spero che vi possa essere utile come lo è per me ^_^ e, ripeto, se qualcuno trova delle imprecisioni me le faccia notare ;)

Secondo parte ->


---
Questo articolo è stato importato automaticamente dal forum il 31/lug/2014
Per vedere il post originale e/o i commenti sul forum prima di quella data clicca qui