Cursos e Bibliotecas Ver Mais

Galeria 3D1 Ver Mais

Fernando Cunha   Porto-Portugal - PR
Jean Carlos Flores   SC - Florianópolis - SC
guiguerra   Fortaleza - AC
RHD3sign   Rio de Janeiro
Bona Studio 3D   Jaraguá do Sul/SC - Brazil - SC

Portfólios Ver Mais

marcomaquetes   Santos, SP - SP
3dmarco   Blumenau - SC
Rtrevelin   santo andré - sp
Fidelis   Salvador

Tutoriais - 3ds max avançado

Cartoon Shader 1

Introdução

Os renderizadores 3D evoluíram em duas direções: tanto para obter o foto-realismo, como para conseguir reproduzir o desenho 2D. E hoje, cada vez mais desenhos animados, no estilo clássico 2D, são feitos em 3D.
Apesar da maior complexidade, depois de criado em 3D, fica muito mais fácil e rápido para animar, já que não precisa desenhar cada movimento, e permite criar movimentações dificílimas, algumas muito trabalhosas ou até mesmo impossíveis para fazer em 2D.
Um bom exemplo é o filme do Bob Esponja, criado no 3ds Max com o Cartoon Shader do Brazil Render, da empresa Splutterfish: até mesmo um profissional tem dificuldade em afirmar se é 3D ou 2D, quando vê imagens estáticas do filme. Só se percebe mesmo que é 3D, quando há animação.
Alguns renderizadores oferecem mais recursos neste sentido, outros oferecem menos, mas quase todos os renderizadores modernos têm opções de renderização no estilo Cartoon. O V-Ray não tem, por enquanto, mas aceita o uso do Ink Paint, padrão do 3ds Max.
Ainda existem renderizadores exclusivamente para este tipo de imagem, como o Illustrate, o Pencil, o Final Toon, entre outros.
O Mental Ray pode usar qualquer material do 3ds Max para gerar o contorno do Cartoon, entre eles, o Ink Paint, que cria sombreamento no estilo Cartoon. No render padrão do Max, também é possível fazer esse efeito, porém, os contornos da imagem deixam o render mais lento, além de ficar limitado a poucos recursos.
Quando os contornos do Ink Paint são renderizados pelo Mental Ray, o tempo de renderização cai consideravelmente.
O Mental Ray também dispõe de diversos Shaders exclusivamente para gerar o contorno do Cartoon e podem ser usados em conjunto com o contorno do Ink Paint, permitindo resolver praticamente todas as situações, além de aceitar efeitos como Depht of Field.
Neste artigo eu vou mostrar como os Shader de Contour funcionam, e também algumas técnicas na criação de materiais no estilo Cartoon.
Figura 01
Conhecendo o Ink Paint

Antes de tudo vou fazer uma breve descrição do Ink Paint, para que conheça os recursos básicos dele e possa criar o material da superfície.
A primeira providência quando vai trabalhar com o Ink Paint, é desligar o ícone Backlight no Material Editor, que é o segundo de cima para baixo à direita (figura01). Assim, a segunda luz do Material Editor é desligada, permitindo ver o sombreamento do material.
No menu Paint Controls do Material Ink Paint (figura01), você encontra três parâmetros de cor:
- o Lighted, que define a cor do objeto;
- o Shaded, que define a cor da sombra, e costuma ficar conectado com a cor do Lighted, usando uma porcentagem para definir o tom mais escuro da mesma cor que será usada na sombra. Quanto mais baixo for o valor, mais escura é a sombra. Se desligar a caixinha de seleção na frente do valor, aparece o quadro de cor para escolher livremente a cor da sombra;
- E o Highlight, que define a cor do ponto especular, ou seja, o ponto brilhante em objetos que são polidos. Por padrão, ele vem desligado. Habilitando a caixinha de seleção na frente do quadro de cor, ele passa a ficar disponível e exibe o ponto especular na esfera de amostra do material. (figura01)
O Paint Levels define quantos tons de sombreamento haverá no Shader, normalmente usa-se 2.
E o Glossiness define o tamanho do ponto especular quando o Highlight estiver habilitado.
Nos três canais você pode aplicar texturas, clicando no botão None na frente de cada parâmetro.
Logo abaixo está o menu Ink Controls, com os parâmetros para gerar o contorno dos objetos. São estes recursos do Ink Paint que não utilizaremos inicialmente, pois faremos o contorno pelos Shaders do Mental Ray.
Para desligar o contorno padrão do Ink Paint, você deve clicar na caixinha de seleção Ink, logo no início do menu. (figura01)


Figura 02
Usando o Contour do Mental Ray

Com o Ink desligado, acesse o menu Mental Ray Connection, que está na parte inferior dessa mesma janela do Ink Paint.
Lembre-se de habilitar o Mental Ray no Assign Render da janela Render Scene, e também o Mental Ray Extensions no Preferences do menu Customize, caso ainda não tenha habilitado, para que os recursos do renderizador fiquem disponíveis.
Clicando no botão None do Slot Contour, aparece o Material/Map Browser com os Shaders de Contour disponíveis, são estes Shaders que criam os contornos no Mental Ray.
Selecione o Shader Simple (contour) para iniciar os testes, pois este é o Shader mais simples.
O Simple (contour) tem apenas dois parâmetros, você pode ajustar a espessura do contorno no valor de Width(%), que por padrão ele vem definido com 0.5, e pode escolher a cor do contorno no parâmetro Color.
Para os testes precisamos de uma cena, pode ser apenas um Plane com Teapots em cima, uma luz com sombra Ray Trace e uma câmera.
Aplique o material criado com o Ink Paint e o Shader Contour, em seguida renderize.
Vai perceber que o contorno não foi gerado, porque este recurso precisa de atribuições especiais na janela de render. Isso não acontece no 3ds Max 6, já que ele vinha com estas atribuições definidas, mas por outro lado, apareciam Shaders na cena sem necessidade, quando não se estava trabalhando com Cartoon. Assim, no 3ds Max 7, essas atribuições devem ser definidas quando for usar Cartoon, deixando as cenas foto-realísticas mais leves e sem Shaders desnecessários.
Estas atribuições especiais estão na ficha Renderer da janela Render Scene, dentro do menu Câmera Effects. (figura02)
O grupo Contour vem desabilitado por padrão no 3ds Max 7, clicando na caixinha de seleção Enable, seus parâmetros ficam disponíveis.
É necessário aplicar Shaders especiais nestes três Slots, para controlar como o contorno será mesclado na imagem, e para mostrá-lo no final da renderização.
Normalmente, os Shader não estão aplicados, você deve clicar no botão None na frente de cada Slot, assim, abre o Material/Map Browser. Nos dois primeiros Slots, só há uma opção de Shader para adicionar.
Figura 03

O Slot Contour Contrast define a tolerância ao contraste das cores para gerar o contorno, o Slot Contour Store guarda as informações do contorno para serem exibidas no final da renderização.
No último Slot, o Contour Output, você tem três opções de Shaders para adicionar. Este Slot define como será exibido o contorno dos objetos no final da renderização. Selecione o Shader Contour Composite para adicioná-lo ao Slot Contour Output.
Renderize a cena novamente, e agora verá que o contorno é criado no final da renderização. (figura03)
Estes Shaders especiais, usados para controlar e exibir o contorno na renderização, têm algumas configurações importantes. Vamos conhecê-las antes de estudar os demais Shaders de Contour.
Para ter acesso aos parâmetros destes Shaders aplicados na janela Renderer, é preciso arrastá-los para os Slots do Material Editor, e escolher a opção Instance, para refletir qualquer modificação feita na configuração.
Alguns destes Shaders não possuem parâmetros, como o Contour Store Function, aplicado no Slot Contour Store do Contour na janela Renderer. Ele é apenas um buffer para guardar dados do contorno.
Figura 04

Já o Shader Contour Contrast Function Levels, aplicado no Slot Contour Contrast, tem parâmetros importantes, portanto, arraste-o para o Material Editor.
O Angle Step Threshold define a tolerância à curvatura que será usada para traçar o contorno. Com valores maiores, o contorno só é gerado em curvaturas bem marcadas, com valores menores, o contorno é gerado em curvaturas mais suaves.

Veja o exemplo dos Teapots da figura 03. Em alguns, o contorno não é gerado em toda a circunferência da borda da tampa, se diminuir o valor do Angle Step Threshold para 10, o contorno será gerado em toda a circunferência. Por outro lado, nos pontos onde a curvatura é mais marcada, o contorno ficará mais espesso, e se o valor for muito baixo, pode criar manchas nessas áreas com a cor escolhida para o contorno.
O parâmetro Material Contours habilita a geração do contorno de acordo com os materiais, se desligar, os contornos serão gerados apenas de acordo com as curvaturas, desprezando os materiais, e em alguns pontos não haverá contorno.
O Face Contours, quando habilitado, gera o contorno em todas as faces do objeto, incluindo as Edges diagonais invisíveis. (figura04)
Figura 05

O Color Contrast Contours gera o contorno também entre os contrastes de cores, não apenas na borda dos objetos, como mostra a figura 05. Este parâmetro é particularmente importante quando pretende usar materiais com Multi/Sub-Object, como veremos mais adiante.
Veja que, o contorno será gerado onde há contraste entre as cores, portanto, será criado contorno ao redor do ponto especular e também nas sombras.
Figura 06

No Slot Contour Output da janela Renderer, estamos usando o Shader Contour Composite, que aplica o contorno sobre a renderização, mas tem outras duas opções:
- O Shader Contour PS grava o contorno dos objetos num arquivo PostScript;
- E o Shader Contour Only, exibe apenas o contorno dos objetos.
Este último é usado quando deseja o traçado num fundo branco, ou de qualquer outra cor.
Para testar, clique no Slot Contour Output e escolha o Shader Contour Only. Renderize a cena e espere completar: apenas os contornos serão exibidos num fundo branco. (figura06)
Você pode trocar a cor do fundo arrastando o Shader para o Material Editor e fazendo uma instância. Entre os seus parâmetros está o quadro de cor, que vem com branco definido por padrão. Salve a sua cena, pois iremos usar na próxima parte.
Figura 07

Crie uma esfera, transforme em Mesh, divida em quatro IDs e aplique um Multi/Sub-Object com 4 materiais, procedimento básico no 3ds Max para aplicar múltiplos materiais, pode ler sobre isso nos tutoriais do site www.tresd1.com.br, caso ainda não conheça este recurso.
Aplique o Ink Paint em cada material do Multi/Sub-Object, usando cores diferentes e atribua um Shader Simple (contour) a cada um deles, como expliquei no início, desabilitando o Ink do Ink Paint, para gerar o contorno apenas pelo Shader do Mental Ray.
Aplique na esfera e renderize, não aparecerá o contorno, porque o Mental Ray não vai entender o Multi/Sub-Object para gerar o contorno. Afinal, há diversos Shaders controlando o contorno no mesmo objeto. Para ele entender, precisamos que apenas um Shader de Contour controle o contorno do objeto, isso pode ser feito usando o Shader Material To Shader no Slot Surface de um novo material.
Você pode usar um Material Standard comum, ou pode usar o Material Mental Ray. Eu estou usando o Material Mental Ray, clique no botão None do Slot Surface e escolha o Shader Material to Shader.
Este Shader tem apenas um Slot para colocar um material do 3ds Max, arraste para ele o Multi/Sub-Object que criou, de preferência, deletando os Shaders de Contour que aplicou dentro dos materiais, e se achar conveniente, pode escolher Instance, para poder modificar os parâmetros do Multi/Sub-Object no Slot original dele, já que dentro do Shader Material To Shader, não é possível acessar os parâmetros do material do 3ds Max que foi aplicado.
Agora, aplique o Shader Simple (contour) no Slot Contour do material Mental Ray, assim, fica o material Mental Ray com o Shader Material to Shader no Slot Surface, contendo o Multi/Sub-Object, e o Shader Simple (contour) dentro do Slot Contour, formando um material só, com apenas um Shader de Contour controlando o contorno.
Renderizando a cena agora, o contorno volta a aparecer normalmente. (figura07)
Figura 08

Mas não gerou o Contorno na divisão dos materiais, como percebeu na figura 07. Porém, há uma opção com o Mental Ray, útil principalmente se for usar o contorno com fundo branco, que permite que se faça linhas onde quiser, apenas dividindo em IDs e aplicando cores contrastantes.
Habilite a opção Color Contrast Controls, no Shader Contour Contrast Function Levels, que está aplicado no Slot Contour Contrast, dentro da janela Render Scene na ficha Renderer, como expliquei no início.
Assim, é gerado o contorno nos materiais, porque aplicou cores contrastantes, mas se aplicar a mesma cor, ou tonalidades próximas, o contorno também não será criado. O inconveniente desta opção é o contorno nas sombras, sendo mais adequado para usar com fundo branco, ou cores sem sombreamento. Basta diminuir o valor de Paint Levels para 1, dentro do material Ink Paint, que não haverá sombreamento, e o contorno será gerado apenas entre os materiais.
Mas se precisa fazer colorido, sombreado e contornar os materiais do Multi/Sub-Object, entra o que eu disse no início, pode mesclar o contorno do Ink Paint com o do Mental Ray.
O contorno do Ink Paint é lento no render padrão, mas no Mental Ray é bem mais rápido, portanto, mesmo que use apenas o contorno do Ink Paint, é melhor renderizar pelo Mental Ray.
Habilite a caixinha Ink de todos os materiais Ink Paint que aplicou no Multi/Sub-Object, para seus parâmetros ficarem ativos. (figura 08)
Figura 09

Aumente o valor do Quality para 3, logo no início de cada menu Ink Controls, para melhorar a qualidade do traçado do Ink Paint, em seguida, defina a espessura do contorno no campo Min abaixo do Ink Width.
Depois desabilite todos os parâmetros do Ink Controls, desligue o Outline, Overlap, Underlap e SmGroup, deixando ligado apenas o último, MatID. (figura 08)
Este item habilita a geração do contorno apenas entre os IDs de materiais, permitindo que use sombreamento normalmente e crie o traçado apenas nas divisões. O contorno da borda é feito no final, pelo Mental Ray, usando o Shader Simple (contour) que aplicamos no Slot Contour. (figura 09)
Figura 10

Uma outra situação para usar estes recursos padrões do Ink Paint, será quando desejar mapear a espessura ou a cor do traçado, usando um mapa procedural para controlar a espessura do contorno, ou usando uma imagem aplicada na cor do traçado.
Pode aplicar uma imagem normalmente em qualquer um dos recursos do Ink Controls, clicando no botão None, na frente de cada um, e escolhendo o mapa que desejar, como acontece no material Standard.
Como também pode aplicar o mapa que quiser no Slot do Ink Width, para controlar a espessura do contorno - normalmente, usa-se um mapa procedural ou uma imagem em tons de cinza.
Nestes casos, vai preferir criar todos os contornos usando apenas os recursos do Ink Paint, como se fosse renderizar no render padrão do programa, sem aplicar os Shaders de Contour do Mental Ray, mesmo assim, é melhor renderizar pelo Mental Ray, ele vai aceitar perfeitamente e fará a renderização muito mais rápido do que o render padrão. Veja um exemplo de mapeamento da espessura do contorno na figura 10, eu usei o mapa Noise, variando o Width de 1 a 10.

Assim, acabamos de estudar os recursos mais básicos na geração de Cartoon, também os mais importantes, porque conhecendo isso, fica fácil resolver eventuais problemas. Na próxima edição eu vou mostrar os outros Shaders de Contour do Mental Ray, que oferecem diversas possibilidades, e também a composição com mapas procedurais, para criar rabiscos na superfície e outros estilos de pintura.
Guarde sua cena com os Teapots, pois iremos usar na continuação deste artigo. Até lá

No vídeo curso de Mental Ray, disponível aqui na seção CDs da 3D1, eu explico todos os recursos das fichas de render do Mental Ray e os principais Shaders, além de técnicas envolvendo HDRI, Volume Caustics, entre outros, você pode ver a descrição completa do conteúdo na seção CDs.

Este tutorial continua na próxima matéria \"Mental Ray parte 5 - Cartoon Shader 2\"

Faça o login para poder comentar

Elis Comentou em 23/02/2016 08:45 Ver comentário
Alê Zephyr Comentou em 21/02/2016 19:30 Ver comentário
Andre Vieira Comentou em 23/06/2011 09:07 Ver comentário

Usuários conectados

Total de mensagens publicadas pelos membros da comunidade: 707103.

Total de membros registrados: 134867

Últimos membros registrados: Roxiie, Uzumaki02, Rehquina, emailblocos, Ranyakb, giiwski, kamahell, Saul_Salazart.

Usuário(s) on-line na última hora: 424, sendo 2 membro(s) e 422 visitante(s).

Membro(s) on-line na última hora: BROTHER1, pinart.

Legenda: Administrador, Especial, Moderador, Parceiro .

3D1 © Três D1 © 1999-2024. Todos direitos reservados.