Toon / cel shading
Cortar a iluminação em poucas faixas de cor chapada, como um acetato de animação pintado à mão.
Cards
Um exemplo ao vivo para ajustar, aprender e copiar.
Como funciona
A iluminação comum passa suavemente do lado iluminado de um objeto para o lado escuro. O toon shading, também chamado de cel shading, joga esse degradê fora e fica só com alguns degraus chapados: em geral uma cor iluminada e uma cor de sombra, às vezes uma terceira faixa para o brilho. O visual vem da animação desenhada à mão, em que cada quadro era pintado numa folha transparente de acetato (o “cel”) com poucas cores chapadas.
A conta começa onde começa toda iluminação difusa: o produto escalarMultiplica dois vetores componente a componente e soma os resultados. Para vetores unitários é o cosseno do ângulo entre eles, de 1 (mesma direção) a -1 (opostos). Produto escalar Multiplica dois vetores componente a componente e soma os resultados. Para vetores unitários é o cosseno do ângulo entre eles, de 1 (mesma direção) a -1 (opostos). Normal Um vetor unitário perpendicular a uma superfície, apontando para onde ela está virada. Iluminação e efeitos Fresnel o comparam com outras direções. Smoothstep Um limiar suave. Vale 0 abaixo da primeira borda, 1 acima da segunda e segue uma curva em S com as pontas planas entre elas.dot(a, b) = |a| |b| cos θt = clamp((x − e0) / (e1 − e0), 0, 1); s = t² (3 − 2t)
Tudo o que faz o toon parecer pensado, e não barato, acontece em volta desse limiar: onde a linha da sombra fica, quão nítida ela é e que cor a sombra recebe. Uma sombra que é a cor base multiplicada por um tom frio mantém o matiz, como um animador a pintaria; um cinza mais escuro da cor base parece sujo.
As engines variam muito aqui. O Godot deixa o shader trocar a iluminação dele por uma função light(), então as faixas
podem reagir a cada luz da cena. O card abaixo usa um sol fixo dentro do próprio shader, que funciona igual em toda
plataforma e é o ponto de partida.
Leitura complementar
- dot (abre em uma nova aba)Referência
- Dot product (abre em uma nova aba)Referência
- Basic Lighting (abre em uma nova aba)Artigo
- Normal (geometry) (abre em uma nova aba)Referência
- Normal Mapping (abre em uma nova aba)Artigo
- step (abre em uma nova aba)Referência
- smoothstep (abre em uma nova aba)Referência
- Shaping functions (abre em uma nova aba)Livro
- Cel shading (abre em uma nova aba)Referência
- GuiltyGearXrd's Art Style: The X Factor Between 2D and 3D (abre em uma nova aba)Vídeo