Jump to content
gurugugnola

Toon Shaders

Recommended Posts

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

toon02.jpg

toon03.jpg

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:

  1. selezionate la camera e apri il property editor (Modify -> Shader)
  2. Nel lens shader tab c'è il lens shader stack, cliccate su "add" per aprire il browser
  3. dalla libreria degli shader (nella cartella lens) scegliete toon ink lens shader
  4. nello stack selezionate lo shader appena aggiunto e cliccate su "inspect" per aprire il property editor dello shader
  5. modificate a vostro piacimento i parametri

Procedura per applicare l'ink in maniera locale (una volta applicato l'ink a tutta la scena):

  1. selezionate l'oggetto a cui volete modificare l'ink
  2. dalla render toolbar scegliete "Get -> Material -> toon paint and Host oppure Simple Toon Host
  3. sempre con l'oggetto selezionato aprite il property editor dello shader
  4. nel tab "Ink" attivate l'opzione "override"
  5. modificate a vostro piacimento i parametri

Procedura per applicare l'ink a un solo oggetto:

  1. Applicate il toon ink lens shader alla camera e il toon paint and Host (oppure Simple Toon Host) all'oggetto
  2. Selezionate la camera e aprite il render tree (premete il tasto 7)
  3. con il doppio clic sullo shader toon ink lens shader aprite il property editor
  4. 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.jpg

toon05.jpg

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

toon07.jpg

toon08.jpg

toon09.jpg

Variation

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

toon10.jpg

Pressure

In questo tab è possibile simulare la pressione della penna.

toon11.jpg

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

Global:

toon13.jpg

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

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

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

toon17.jpg

toon18.jpg

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

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

a cui viene poi applicato il diffuse Highlight

toon21.jpg

Si può applicare un "glossy" highlight

toon22.jpg

E infine il Rimlight

toon23.jpg

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

toon25.jpg

Toon render pass

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

post-3829-1173862070_thumb.jpg


Edited by gurugugnola

Share this post


Link to post
Share on other sites
...ps esce in qualche formato vettoriale?

Non ho trovato info a riguardo, a dire il vero non ho pensato nemmeno di cercarle :P ... facendo una ricerca veloce nella guida non trovo nulla, bisognerebbe guardare se c'è qualche tool nel Netview da scaricare o se esiste qualche plug-in

P.S. anche nel Netview non sto trovando nulla


Edited by gurugugnola

Share this post


Link to post
Share on other sites

Prima di tutto salve, pensa un po tu, sono nuovissimo di sto forum e ho gia trovato dei tutorial interessantissimi, prima usavo dei plug-in per avere l' effetto cell-shading ma, siccome il tuo tutorial è fantastico ed il risultato mi sembra davvero eccellente ci provo immediatamente...raga sto forum è eccezionale grazie a tutti quelli che condividono la loro esperienza siete grandi:D:D:D quasi mi commuovo :crying::D:D:D :Clap03::hello:

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...