EFFETTO CARTOON
Un render in stile cartoon è piuttosto semplice da ottenere in XSI con i toon shader, sono necessari 2 componenti:
  • un toon lens shader applicato alla camera con cui controllerete i contorni degli oggetti (ink)
  • un toon shader applicato agli oggetti con cui controllerete le caratteristiche di shading (painting) e potrete ridefinire l'ink
toon01

toon02

toon03

Oltre all'effetto cartoon modificando i parametri del toon shader potrete ottenere diversi effetti non foto-realistici.
Applicando il toon lens shader alla camera l'effetto sarà applicato all'intera scena a meno che non usiate un Paint & Host toon shader per controllare in maniera "locale" l'ink degli oggetti a cui avete applicato questo shader.
Procedura per applicare l'ink a tutta la scena:
  • selezionate la camera e apri il property editor (Modify -> Shader)
  • Nel lens shader tab c'è il lens shader stack, cliccate su "add" per aprire il browser
  • dalla libreria degli shader (nella cartella lens) scegliete toon ink lens shader
  • nello stack selezionate lo shader appena aggiunto e cliccate su "inspect" per aprire il property editor dello shader
  • modificate a vostro piacimento i parametri
Procedura per applicare l'ink in maniera locale (una volta applicato l'ink a tutta la scena):
  • selezionate l'oggetto a cui volete modificare l'ink
  • dalla render toolbar scegliete "Get -> Material -> toon paint and Host oppure Simple Toon Host
  • sempre con l'oggetto selezionato aprite il property editor dello shader
  • nel tab "Ink" attivate l'opzione "override"
  • modificate a vostro piacimento i parametri
Procedura per applicare l'ink a un solo oggetto:
  • Applicate il toon ink lens shader alla camera e il toon paint and Host (oppure Simple Toon Host) all'oggetto
  • Selezionate la camera e aprite il render tree (premete il tasto 7)
  • con il doppio clic sullo shader toon ink lens shader aprite il property editor
  • nel tab "advanced" attivate l'opzione "Require host"
Nel menù nodes trovate altri shader toon:
    • Toon_Host – output Color – uno shader, da applicare all'oggetto, che modifica i parametri del toon_ink (ampiezza, colore, disturbo….) per l'oggetto a cui è applicato
    • Toon_Paint – output Color – controlla gli attributi del toon surface shader (painting)
    • Toon_Paint_Ambient – output Color – controlla il colore base e l'ambient del toon surface shader
    • Toon_Paint_and_Host – output Color – combinazione del toon_paint e toon_host
    • Toon_Paint_Highlight – output Color – controlla le caratteristiche degli highlight del toon surface shader
    • Toon_Paint_Rimlight – output Color – controlla le caratteristiche degli rimlight del toon surface shader
    • Toon_Paint_Rounded – output Color – controlla le caratteristiche del toon surface shader utilizzando differenti tipi di highlight
    • Toon_Node_Mix – output Color – mescola (mix) un colore o una texture con un altro colore o texture utilizzando uno dei metodi di compositing (transfer) del toon shader
Spessore delle linee
Il parametro base per lo spessore delle linee è lo "Spread
toon04

toon05

Le linee tendono a essere "sfocate", per eliminare questo effetto bisogna agire sul antialiasing della scena.

Tapering
Il parametro tapering rende variabile lo spessore della linea, esistono 3 tipi di tapering:
  • Anisotropy: varia lo spessore con un preciso angolo, simula il tratto di una penna a "punta rettangolare inclinata"
  • Direction: varia in funzione della direzione delle facce
  • Distance: varia in base alla distanza degli oggetti in sceane, utilizzato per simulare la profondità di campo
toon06

toon07

toon08

toon09

Variation
Modificando i parametri di questo tab potete simulare l'irregolarità del tratto a mano
toon10

Pressure
In questo tab è possibile simulare la pressione della penna.
toon11

Questi sono i tab principali con cui modificare le linee di contorno, i loro parametri sono molto intuitivi e combinando questi parametri è possibile ricreare una gran moltitudine di effetti molto convincenti… vi consiglio di fare un po' di pratica ;) .

Texturizzare i contorni
Per ottenere effetti + particolari è possibile utilizzare le texture per le linee dei contorni, sia in locale che in globale. Applicando le texture alle global lines (cioè nel toon ink lens shader) è + complesso perché i texture shader non generano le coordinate quando sono applicati a una camera e bisogna utilizzare un texture space generator shader.

Local:
toon12

Global:
toon13

Nel property editor dello shader "Color Math Basic" il primo input (texture) verrà moltiplicato (di default è su "add") dal secondo input RGBA settato su 1,1,1,1.
Se volete applicare in maniera locale diversi colori alle linee di contorno degli oggetti, ma volete controllare lo spread in maniera globale, potete farlo ad esempio attraverso una texture (ottenendo anche effetti interessanti) in maniera molto simile all'esempio precedente:
toon14

In questo caso la texture per essere applicata al parametro spread viene convertita in valore scalare.

Detection option
Dal property editor dello shader, nel tab "sampling", parametri di "boundaries":
  • Environment: disegna le linee di contorno che separano gli oggetti dal background della scena
  • Object: disegna le linee di contorno dove gli oggetti si intersecano, si sovrappongono o coincidono (spigoli)
  • Material: disegna le linee di contorno tra diversi materiali
Parametri di "Host materials":
  • Paint: disegna le linee di contorno delle paint region di tutti gli oggetti con ombreggiatura toon
  • Shadow: disegna le linee di contorno tra zone d'ombra e zone illuminate
  • Trasparency: disegna le linee di contorno tra zone trasparenti e opaque (comodo per simulare dei fori)
Renderizzare in wireframe
Sempre nel tab "sampling" trovate le opzioni "Facet" e "Merge coplanar" per poter renderizzare il wireframe, la seconda opzione serve per eliminare dal render le linee dei triangoli complanari della mesh. Se gli oggetti hanno uno shader toon con trasparenza verranno disegnate anche le linee delle facce nascoste (su queste avrà effetto il valore del "Trace depth", ma implica maggiori tempi di render).
toon15

Seams
Queste opzioni sono riferite solamente in locale, quindi iniziamo provando il parametro "blend group":
    • Posizionate degli oggetti nella scena vicini tra loro e che parzialmente si coprono tra loro
    • applicate un paint & host toon shader agli oggetti
    • nel property editor dello shader di uno degli oggetti andate nel tab "seams" e con add aggiungete gli altri oggetti a cui volete applicare questo effetto
    • oppure date a ogni oggetto lo stesso ID group diverso da zero
    • settate le distanze per l'occlusion tra i vari oggetti (provate diverse distanze per capire bene come funziona questo parametro)
toon16

toon17

toon18

Le linee delle zone sovrapposte tenderanno a sparire sempre di + con l'aumentare della distanza di occlusione.
Il parametro "Unblend Group" ha la funzione contraria del precedente, invece di togliere delle linee dove normalmente dovrebbero esistere ne aggiunge di nuove dove non dovrebbero esserci… ad esempio con questo parametro potreste mettere dei contorni alle texture come in questo esempio.
toon19

Aggiustando i valori dell'input 2 dello Scalar Math Basic shader potrete decidere quali contorni della texture "ricalcare".

Sampling
Il valore di "samples" determina la qualità delle linee e viene dato in globale (quindi nel Toon Ink Lens Shader), maggiore è questo valore e maggiore sarà la qualità. Il valore di default è 5 e va bene per tratti sottili, per uno spread pari a 10 si arriva anche un samples di valore 8 o maggiore. Questo parametro va a incidere su i tempi di render e a volte è consigliabile utilizzare i settagli del render pass antialiasing per migliorare la definizione dei tratti.

Background Color
Questa opzione è comoda quando si vuole renderizzare i nostri "oggetti toon" con uno sfondo a tinta piatta

Lens effect
In questo tab del lens toon shader potete applicare 2 differenti tipi di distorsione alla lente:
  • Fisheye
  • Bulge: (che può essere concavo o convesso)
Per quanto riguarda le linee di contorno non dovrebbe esserci altro da dire, ora passiamo ai parametri che definiscono la colorazione dei render in stile cartoon (o non foto-realistici).
La colorazione dello shader paint toon avviene per regioni di colore sovrapposte. C'è un colore di base (in pratica un constant)
toon20

a cui viene poi applicato il diffuse Highlight
toon21

Si può applicare un "glossy" highlight
toon22

E infine il Rimlight
toon23

Gli highlight e i rimlight vengono applicati al colore di base come livelli sovrapposti e potete decidere il metodo (normal, add, multiply…), l'ordine di applicazione, l'alpha di ognuno e la morbidezza dei contorni di queste regioni. Le combinazioni possibili sono molteplici.

Trasparenza e riflessioni
Gli oggetti a cui è applicato un paint & host toon shader hanno anche i parametri per la trasparenza e la riflessione (assolutamente simili ai parametri di trasparenza e riflessione degli altri shader). Quando in scena ci sono oggetti con queste caratteristiche è bene settare di conseguenza il parametro "trace depth" del Toon Ink Lens Shader in modo che le linee di contorno "reagiscano" in maniera "congruente". Questo valore deve essere maggiore di 1 perché le linee siano visibili in trasparenza o in riflessione.
toon24
toon25

Toon render pass
Per crearlo nella Toolbar "Render" scegliete Pass -> Edit -> New Pass -> Toon

---
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