Trieste, 15/12/2008
Studente: Banovaz Diego
AA: 2008/2009
Oggetto della Presentazione
 Spiegare il perché si sente la necessità di avere uno
strumento come il Cel Shading;
 Spiegare che cos’è il Cel Shading;
 Vederne le caratteristiche;
 Vederne le diverse implementazioni e capirne la
motivazione;
 Vedere un piccolo programma che sfrutti le librerie
OpenGL per mostrarci questa tecnica in azione.
Perché nasce il Cel Shading?
La grafica digitale non deve esser soggetta a vincoli e
quindi tutte le “forme d’arte” devono esser
rappresentate e rappresentabili.
In questo caso il Cel Shading serve a poter creare sul
calcolatore dei modelli (tridimensionali e non) che
esteticamente appaiano come “disegnati” a mano,
simili a dei fumetti.
È ovvio pensare che una tecnica di questo tipo può essere
sfruttata in ambito video ludico.
Cos’è il Cel Shading?
Il Cel Shading (spesso chiamato anche toon shading) è
una tecnica che permette di creare dei modelli che
assomiglino a dei disegni.
In poche parole vogliamo fare il seguente passaggio:
WARSOW
Come ottenere il risultato?
La tecnica principale di cel shading la si può dividere in
due parti:
1- Il cel shading vero e proprio, ossia il rendering della
scena con ombre nette
2- L'outline rendering, ossia il rendering dei contorni
XII
Immagine Prima di
ogni passaggio di
tipo grafico
Il primo passo: La luce
Elemento fondamentale su cui lavora il cel shading è la
luce. Un’immagine disegnata si differisce da una
“realistica” o renderizzata in maniera standard
soprattutto per la luce.
Il primo passo è quello di non considerare le ombre che
si creano sul modello: in un disegno solitamente non
sono delle variazioni “continue”, ma sono fatte in
maniera molto netta.
Immagine senza le
ombre e con
massima
illuminazione.
Primo passo: le ombre
Ci sono molti modi per ottenere le ombreggiature,
adesso vediamo alla lontana il Phong.
Per prima cosa viene ottenuto il valore di Diffuse tramite
il DotProduct tra la direzione della luce e un valore che
varia tra -1 e 1. Normalizzandolo tra 0 e 1 possiamo
utilizzarlo come valore di coordinata di una texture
che può essere simile a questa:
Applicando le
ombre ottenute
dalla texture
Secondo Passo: Outline Rendering
Questo passo è “opzionale”, il Cel Shading di per sé
finisce con la prima parte. Questa procedura serve a
disegnare i bordi del disegno. Per disegnarle dobbiamo
sfruttare un filtro di tipo Sobel che ci permetterà di
tracciare delle righe nere dove questo noterà una forte
differenza di colore.
Nello specifico: un punto dove tracciare una linea nera è
dove un corpo ha degli spigoli ed uno spigolo è proprio
un punto in cui le normali cambiano direzione
rapidamente. L'altro punto è invece quello in cui c'è
differenza di profondità e per quello si usa la distanza.
Secondo Passo: Sobel
float d=1.0f/1024.0f
/* Metti in aa – hh gli 8 valori della texture a distanza d*/
delX = ((cc + (2 * ee) + hh) - (aa + (2 * dd) + ff));
delY = ((ff + (2 * gg) + hh) - (aa + (2 * bb) + cc));
float4 var = abs(delX) + abs(delY);
/* Vincolo per la soglia */
float C= var.x<0.4F;
/* Disegna la riga */
Effetto Finale
Un’altra via per l’outline Rendering
Per ottenere “le righe” dell’immagine si può procedere
anche in questo modo.
Per prima cosa effettuiamo i passaggi che portano
l’immagine ad avere le ombre corrette.
Poi, creiamo un altro oggetto uguale al primo di
dimensione lievemente maggiore e con un’unica
texture nera rivolta verso il centro delle figura stessa.
In questo modo noi vediamo il nostro oggetto principale
contornato di nero, esattamente come con il filtro
Sobel.
Confronto tra Outline Rendering
Methods
Il primo metodo ha i seguenti vantaggi:
- È più leggero del secondo
- È più preciso
Il secondo metodo dal canto suo ha il vantaggio di essere
più “intuitivo”, anche se più pesante. Realizzare con
questa specifica permette una programmazione più
semplice e immediata.
Conclusioni:
Il cel shading è una tecnica molto pesante, ma permette
di ottenere un effetto molto gradevole e molto simile a
quello che abbiamo guardando un cartone animato.
Se fino a qualche tempo fa la tecnica doveva venir
scartata a priori in quanto tanto più pesante,
oggigiorno viene utilizzata molto in quanto le schede
video attuali hanno delle caratteristiche davvero
spaventose.
Come si potrà vedere nelle immagini che seguono, è
capace di regalare immagini di grande effetto.
The
Legend
of Zelda:
The
Wind
Waker
(Senza
outline
Render
per scelta
dei
sviluppat
ori)
Team Fortress 2
XII
Dragonball Z
Scarica

Elementi di grafica Digitale