T4 - Cartoon Shading

Para o trabalho 4 de Fundamentos de Computação Gráfica (trabalho livre), decidimos por implementar Cartoon Shading, uma das diversas formas de NPR (non-photorealistic rendering). Participaram deste trabalho Fabrício Cardoso e Peter Dam. Os arquivos relativos a esse trabalho encontram-se arquivados na página do 4shared.

1 - Non-Photorealistic Rendering


Enquanto o rendering tradicional busca uma verossimilhança com uma fotografia, o NPR busca distanciar-se dos modelos de iluminação para diversos objetivos, como realçar detalhes, contribuindo para inspeções de peças e estruturas, e simular estilos de pintura, como por exemplo aquarela ou estilo desenho animado. Dentre as diversas formas de NPR, uma largamente conhecida é o Cartoon Shading.

2 - Cartoon Shading


Também conhecido como cell shading, cartoon rendering ou toon rendering, uma forma de implementar o cartoon shading consiste em realçar as bordas do objeto, através de detecção de arestas e realce da silhueta, e simplificar sua coloração, mantendo uma textura 1d para gradação da cor (de iluminado a sombreado). O efeito obtido assemelha-se com desenhos animados ou histórias em quadrinhos, derivando seu nome dessa semelhança. Möller et al [1] atribuem a popularização desse estilo de NPR a uma frase de Scott McCloud em seu livro Desvendando os Quadrinhos:

"... Amplificação através da simplificação. Quando abstraímos uma imagem através do cartum, não estamos eliminando os detalhes, mas nos concentrando em detalhes específicos. Ao reduzir uma imagem ao seu 'significado' essencial, um artista pode ampliar esse significado de uma forma impossível pra arte realista."
- Scott McCloud, Desvendando os Quadrinhos [2]

O cartoon shading através da "redução à essência" permite a observação de detalhes específicos, podendo ser usado na área de visualização científica para inspeções de estruturas, como mostrado em trabalho de Celes e Venetillo [3] e também é usado na indústria de jogos para obter um tom cartunesco, seja para efeito estético ou para aproximar o produto de uma obra da qual derivou.

 
Comparação entre braço mecânico em render normal e cartoon rendering.     Imagem do jogo Naruto: Clash of Ninja.

2.1 - Realce da silhueta

A definição arestas de silhueta em [1] é: Uma aresta de silhueta é aquela em que dois triângulos adjacentes possuem suas faces em direções diferentes, comparadas a um vetor direção, normalmente o vetor direção do olho da câmera. Por essa definição, tipicamente uma aresta de silhueta é caracterizada por pertencer a um triângulo que esteja de frente para a câmera (frontfacing) e a um triângulo que esteja "de costas" (backfacing).

A partir da definição, podemos realçar a silhueta através do desenho primeiramente dos triângulos que estiverem em backface em wireframe e com a cor preta, aumentando a espessura da linha e em seguida desenhando normalmente os triângulos que estiverem em frontface.

2.3 - Textura

O cálculo da textura de rendering para o cartoon shading é feito calculando para cada vértice o produto interno da sua normal com o vetor distância até a fonte de iluminação. O resultado obtido é sua coordenada de textura para o mapa de textura 1d, gerando o efeito de sombreamento desejado. Esse idéia foi apresentada por Lake et al [4] e Lander [5]. A imagem a seguir que demonstra o mapeamento é original de [3]


3 - Resultados

Para a demonstração da técnica de cartoon shading implementamos uma cena com objetos clássicos como o Coelho de Stanford, esfera e cubo e obtivemos os seguintes resultados.

 
Cena normal Cena Toon Shaded

O algoritmos pode ser alvo de melhorias, entre elas podemos tirar a carga da CPU e implementar o cartoon shading em um vertex shader. Houve uma leve perda de performance devido aos cálculos adicionais e trocas de contexto na máquina de estads do OpenGL.

Apresentação


T4 - Cartoon Shading


Referências:


[1] Möller et al, Real-Time Rendering 3rd Edition, A K Peters, 2008.
[2] McCloud, S., Desvendando os Quadrinhos: A Arte Invisível, Makron Books, 1995.
[3] Celes, W., Venetillo, J. S., Cartoon Rendering para Inspeção de Maquetes Eletrônicas de Modelos Industriais, REIC - Revista Eletrônica de Iniciação Científica, Ano VII, Número I, pp. 289-331, 2007
[4] Lake et al, Stylized Rendering Techniques for Scalable Real-Time Animation, Proceedings of the First International Symposium on Non-photorealistic Animation and Rendering, pp 13-20, Junho 2000
[5] Lander, J., Shades of Disney: Opaquing a 3D World, Game Developer Magazine, vol. 7, no. 3, pp 15-20, Março 2000.
Comments