Displacement no Maya

20 10 2011

Com Displacement é possível criar relevo verdadeiro nas superfícies dos objetos (elevações e depressões), baseados em imagens em tons de cinza ou mapas procedurais em tons de cinza (Checker, Noise, Fractal, etc). Ou seja, a topologia da geometria é alterada, criando formas reais, diferente do que ocorre com Bump, que cria apenas a ilusão de relevo.

Ao renderizar um objeto com Displacement aplicado, os renderizadores (no nosso caso, Maya Software e Mental Ray) configuram o chamado Tessellation na malha poligonal ou NURBS.

Tessellation é o processo que os renderizadores usam para converter superfícies NURBS, ou malhas poligonais com displacement, em triângulos. Os triângulos determinam quão suavizado um objeto parecerá quando a câmera estiver próximo a ele. Objetos com poucos triângulos parecerão facetados perto da câmera, mas quando estiverem distantes da mesma, parecerão suavizados.

No Mental Ray, Tessellation é chamado de Approximation.

Se o displacement for gerado através de uma imagem bitmap, automaticamente o canal alpha da imagem é conectado ao node displacementShader (node responsável por gerar o displacement). Se a imagem não tiver um canal alpha ou não suportar canal alpha e o displacement não ocorrer, habilite o atributo “Alpha is Luminance” localizado na seção “Color Balance” do node “File”.

A intensidade do Displacement (altura) é configurada pelo atributo “Alpha Gain” (veja imagem acima).

O workflow para gerar o Displacement é:

  1. Abra o Hipershade
  2. Insira um novo node de material na Work Area do Hipershade (no meu caso, usei um novo Lambert)
  3. Insira na Work Area um node File, caso use um bitmap, ou node procedural qualquer, seja 2D Texture ou 3D Texture.
  4. Selecione o node File ou outro node procedural e arraste com o botão do meio do mouse até o node do material (no meu caso, lambert2)
  5. Solte o botão e escolha a conexão “displacement map”.
  6. Automaticamente, o node displacementShader é criado e conectado ao node Shading Group do lambert2 (lambert2SG)

A montagem está sendo mostrada na Fig 03, logo acima. Diferente de outros nodes mais comuns, o node displacentShader não é conectado diretamente ao node do material e sim ao seu Shading Group.

Configuração do Displacement no Maya Software

As configurações do Displacement para o Maya Software estão localizadas no node Shape do objeto. No meu caso, como estou aplicando o Displacement num Poly Plane, as configurações estão dentro pPlaneShape1, no Attribute Editor, seção Displacement Map.

Feature Displacement

Deixe-o habilitado para que o displacement funcione.

Initial Sample Rate

Esse atributo controla a qualidade do displacement, processando o tessellation. O que ele faz é checar os valores da textura para determinar a diferença entre as alturas do displacement e onde novos vértices devem ser introduzidos. Ele cria um grid de amostras em cada triângulo da malha do objeto. Por exemplo, o valor padrão 6 gera um grid de 6×6.

Na prática, quanto maior esse valor, melhor será a qualidade do displacement. Mas cuidado! Maior também será o tempo de render, pois ele está acrescentando triângulos, lembra? Comece com valores baixos e vá testando aos poucos, até alcançar o resultado esperado.

Extra Sample Rate

Esse atributo é usado para refinar os novos vértices adicionados pelo Initial Sample Rate. Ele ajusta os vértices alinhando-os com o Displacement.

Na prática, quanto mais drástico, “duro” for o resultado do displacement em encontros de planos, maior deverá ser o valor do Extra Sample Rate. Ele suavizará essas áreas do displacement.

O valor padrão é 5, mas é recomendado começar a configurá-lo usando 0 e ir aumentando aos poucos, não passando de 20 (normalmente, 20 é um valor máximo que costuma resolver os casos mais difíceis).

Texture Threshold

Esse atributo é usado para eliminar vértices que não contribuem de forma significativa para o displacement. Qualquer vértice onde a variação for menor que o valor de Texture Threshold não será considerado.

Dicas:

  • Recomenda-se que se for usada uma imagem bitmap para gerar o displacement, que esta tenha boa qualidade, com o mínimo de granulação. Assim, é possível manter o valor do Texture Threshold em 0 (zero).
  • Se o tempo de render estiver muito alto, aumente o valor deste atributo, mas bem pouco (comece com valores decimais).
  • Se na imagem o valor de branco e preto for drástico, sem tons de cinza entre eles para suavizar a transição, então deixe mantenha o valor padrão (zero).
  • Se imagem tiver transição suave entre os valores de branco e preto, então mantenha o valor deste atributo o mais próximo possível de zero.

Normal Threshold

Determina o limiar do ângulo (em graus) entre as normais de dois triângulos adjacentes. Recomenda-se usar o valor padrão de 30 graus.

Abaixo, seguem testes com diferentes valores:

Dica Master: a qualidade, o tempo de render e os valores dos atributos acima também dependerão da quantidade de polígonos atual do objeto e da qualidade do Anti-aliasing. Nas comparações acima, o Poly Plane está com 2500 faces e o Antialising (Render Settings > Maya Software > Anti-aliasing Quality) no campo Quality está com o preset “Intermediate quality”.

Configuração do Displacement no Mental Ray

Configurar o Displacement no Mental Ray é mais complicado, pois existe uma gama de atributos que permite ajustes finos em diferentes situações. Então, mostrarei da forma mais fácil e rápido, ou seja, usando presets (configurações pré-estabelecidas). Numa outra ocasião, tentarei escrever um post falando somente dessas configurações.

Nos exemplos a seguir, apliquei o mesmo Lambert no Poly Plane. Só alterei o renderizador para Mental Ray e configurei o Anti-Aliasing.

Ao renderizar, o Mental Ray utiliza as configurações do Maya Software para gerar o Displacement. Para usar as configurações do próprio Mental Ray, faça o seguinte:

  1. Selecione o objeto que possui o Displacement aplicado (no meu caso, polyPlane1)
  2. Acesse Window > Rendering Editors > mental ray > Approximation Editor
  3. Na primeira seção, Displacement, clique no botão Create.
  4. Para ter acesso às configurações, acesse o Attribute Editor (caso não veja as configurações, clique no botão Edit, no Approximation Editor).

Ao clicar no botão Create, o Mental Ray cria um node chamado mentalrayDisplaceApprox1, e o conecta ao objeto.

Presets

Lista de presets para executar o Tesselation (Approximation). Você pode usar os presets da forma como estão configurados ou usá-los como um início de configuração, ou seja, você pode alterar os valores da forma que achar melhor (lembrando que não vou falar de cada atributo neste post).

Parametric Grid (Low/Mid/High) Quality

Com esse método, cada patch da superfície (área entre isoparms) é subdividida em uma quantidade fixa de triângulos.

Regular Grid (Low/Mid/High) Quality

Este método subdivide toda a superfície (ao invés de fazê-lo por partes – patches) usando uma quantidade fixa de triângulos.

Angle Tolerance (Low/Mid/High) Quality

Usa um método de tessellation adaptativo no qual mais triângulos são adicionados em áreas de curvatura. O bom desse método é que ele adiciona mais triângulos nas áreas que são mais necessárias (áreas onde a superfície é curva) e adiciona menos triângulos em áreas maiores e planas, onde não são necessários tantos triângulos.

Pixel Length (Low/Mid/High) Quality

Adiciona triângulos com base no tamanho (em pixels) da superfície. As superfícies que estiverem perto da câmera terão muito mais triângulos, enquanto as que estiverem distantes, terão menos triângulos. A vantagem deste método é dar mais atenção nas superfícies que realmente precisam de maior suavização.

Abaixo, seguem alguns testes comparativos:





Service Pack 1 para Maya 2012

10 10 2011

Saiu, dia 28 de setembro, o Service Pack 1 para o Maya 2012. Para baixá-lo, clique no link abaixo:
http://usa.autodesk.com/adsk/servlet/ps/dl/item?siteID=123112&id=17847744&linkID=9242259

Para quem não sabe, Service Pack, no caso do Maya, é uma versão do próprio Maya, porém, contendo as correções dos bugs conhecidos até o lançamento. Logo, para quem tem o Maya “normal” já instalado, é necessário desinstalar a versão existente e instalar a versão com o Service Pack 1. Caso contrário, haverão dois Mayas instalados.

No mesmo dia, a Autodesk lançou o Service Pack 2 para Max 2012 (http://usa.autodesk.com/adsk/servlet/ps/dl/item?siteID=123112&id=17826382&linkID=9241178). Para instalar, basta executar o patch baixado.

No dia 08 de Junho, a Autodesk lançou o Service Pack 1 para Softimage 2012 (http://usa.autodesk.com/adsk/servlet/ps/dl/item?siteID=123112&id=17182367&linkID=12544121), cuja instalação deve seguir a mesma metodologia da do Maya.





Introdução ao render – Maya

13 09 2011

Este post tem a finalidade de mostrar as principais ferramentas para render. É uma introdução e um guia rápido para começar a trabalhar com render pelo Maya Software. O Maya possui 4 renderizadores:

  • Maya Software (padrão): não gera iluminação fisicamente correta, nem materiais reais. É o método “old school”.
  • Mental Ray: gera GI e possui materiais reais e outros efeitos fisicamente corretos.
  • Maya Hardware: renderiza previews usando a placa de vídeo, passos específicos e partículas específicas.
  • Maya Vector: gera imagens em vetor ou estilo vetor.

Para visualizar na viewport o enquadramento correto da cena, habilite o Resolution Gate:

O tamanho final do render, mostrado no Resolution Gate, é configurado dentro do Render Settings, grupo Image Size:

O Render Settings também pode ser acessado através do menu Window > Rendering Editors > Render Settings.

Para visualizar a imagem na Render View, basta clicar no botão Render the current frame (renderizar frame atual). Isso fará com que a Render View seja aberta e o render comece no mesmo instante. Se você clicar no botão Open Render View, esta será aberta, porém, sem gerar render. Se nenhum render tiver sido feito antes, a Render View mostrará uma imagem preta, caso contrário, ela mostrará o(s) último(s) render(s) feito(s). Para renderizar a partir da Render View, basta clicar em Redo Previous Render (veja mais abaixo):

  • Redo Previous Render: renderiza imagem no frame atual
  • Render Region: renderiza somente a área onde foi feita uma janela de seleção. Clique com o botão esquerdo do mouse  em qualquer parte da imagem renderizada e arraste o mouse para desenhar uma área retangular, de borda vermelha. Solte o botão e clique em Render Region. Isso fará um render somente dessa área.
  • Snapshot: mostra a imagem da viewport no lugar da imagem renderizada. Isso é bom, pois gera uma referência para se usar o Render Region, caso nenhum render tenha sido feito previamente.
  • Open Render Settings window: abre as opções de render.
  • Display RGB Channels: mostra a imagem colorida, ou um dos canais RGB, ou em tons de cinza (Luminance). Clique com o botão direito sobre este botão para ter acesso a essas opções.
  • Dislay Alpha Channel: mostra o canal Alpha da imagem renderizada.
  • Display Real Size: na render view, é possível usar o Pan e o Zoom, da mesma forma que na viewport. Depois de dar um Zoom Out ou Zoom In na imagem, clique neste botão para que a imagem seja mostrada no tamanho real.
  • Keep Image: mantém uma cópia da imagem renderizada na Render View. Ao fazer outro render, tanto a imagem anterior quanto atual ficam na render view para comparação.
  • Remove Image: deleta imagens mantidas com o botão Keep Image.
  • Renderizador Atual: permite escolher o renderizador.

Por padrão, algumas informações são mostradas embaixo da imagem renderizada:

  • Tamanho da imagem: mostra o tamanho final da imagem gerada, configurada no Render Settings.
  • Zoom: mostra a quantidade de zoom atual na Render View, usando Alt + Botão Direito. O valor 1 significa imagem sem zoom (clique no botão Display Real Size).
  • Renderizador atual: mostra o nome do renderizador usado para gerar a imagem atual.
  • Frame: especifica qual frame foi renderizado.
  • Tempo de render: mostra o tempo que a imagem levou para ser gerada.
  • Câmera: mostra de qual vista a imagem foi renderizada.

Para salvar a imagem gerada na Render View, acesse o menu da Render View: File > Save Image…

Para escolher qual vista será renderizada na Render View, acesse o menu da Render View: Render > Render > escolha vista . O mesmo pode ser feito com o Snapshot: Render > Snapshot > escolha vista.

Por padrão, o renderizador usado no Maya  é o Maya Software. Se você tentar renderizar uma imagem cujas luzes projetam sombras do tipo Raytrace ou que tenham materiais no qual o valor do campo Reflectivity seja maior que 0 (zero), deve-se habilitar a engine Raytrace, no Render Settings. Caso contrário, sombras Raytrace não serão geradas, assim como os reflexos dos materiais, pois os reflexos reais são Raytrace. Para habilitar a engine Raytrace, acesse o Render Settings > Maya Software > Raytracing Quality e habilite a opção Raytracing:

Para renderizar animações, deve-se usar o Batch Render (modo Rendering > Render > Batch Render ):

Porém, antes, é necessário fazer algumas configurações no Render Settings:

Grupo File Output

File name prefix: nome base do arquivo de imagem que será gerada.

Image format: tipo de arquivo de imagem. Em animação, renderiza-se sequência de imagens, uma para cada frame.

Frame/Animation ext: define como será a nomenclatura dos arquivos que serão gerados. Por exemplo, se o nome definido em File name prefix tiver sido casa, a opção do Frame/Animation ext for name#.ext, e Image Format for TGA, então, os arquivos se chamarão casa1.tga, casa2.tga, casa3.tga e assim por diante (name = nome do arquivo; # = número do frame e ext = extensão do arquivo).

Frame padding: define quantos dígitos haverão na nomenclatura do frame. Por exemplo, no valor padrão (1), a nomenclatura fica casa1.tga, casa2.tga, etc. Com valor 3, fica casa001.tga, casa002.tga, etc.

Grupo Frame Range

Nota: se o campo Frame/Animation ext estiver com o valor padrão name (Single Frame) ou name.ext (Single Frame), o grupo Frame Range estará desabilitado.

Start Frame: define o início da renderização da animação, ou seja, a partir de qual frame a animação deve ser renderizada.

End Frame: define o final da renderização da animação, ou seja, até que frame a animação deve ser renderizada.

Grupo Renderable Cameras

Renderable camera: define a vista que será renderizada.

Cor do Background da imagem

A cor de fundo (background) está atrelada à câmera. Ou seja, se houver mais de uma câmera, cada uma pode gerar uma cor diferente para o fundo. Para alterar esse atributo, selecione a câmera (pode ser pelo OutlinerWindow > Outliner, ou pelo ícone da viewport). No Attribute Editor, procure pelo grupo Environment e altere o valor de Background Color:

Abaixo, segue um render com a cor de fundo alterada para azul:

Qualidade do render

Por último, para aumentar a qualidade do render no Maya Software, acesse Render Settings > Maya Software > Anti-aliasing Quality e configure os campos Quality e Edge anti-aliasing, usando os presets existentes. Quanto melhor a qualidade, maior o tempo de render:

Mais uma vez, esse post é só uma introdução e um guia rápido, sendo assim, só os principais atributos foram mostrados. Posts futuros discutirão essas mesmas áreas de forma mais profunda e abordarão outras áreas que não foram mostradas aqui. Qualquer dúvida, entre em contato.





Rigging Básico no Maya

22 07 2011

Fiz uma série de vídeos mostrando como construir um rigging básico. Esse rigging é bem básico, mesmo, havendo algumas limitações como, por exemplo, a inexistência da opção de FK para os braços. O objetivo é dar uma visão geral de como tudo funciona.

Abaixo, seguem os links para as etapas:





Rigging Básico no Maya – Parte 04 – Cabeça

22 07 2011

Seguem os últimos vídeos mostrando o rigging da cabeça e a finalização de todo o processo. Para redimensionar o rigging, é só selecionar o grupo “grp_Character” que engloba tudo (joints, IKs, Cluesters, Controles, etc). Porém, confesso que nesse rigging, as curvas de referência visual, criadas nos controles dos joelhos e cotovelos, não estão acompanhando o redimensionamento de forma correta. Como elas são dispensáveis, isso não atrapalha o funcionamento do rigging. Quando eu tiver uma solução para isso, eu posto aqui.





Rigging Básico no Maya – Parte 03 – Braços

30 06 2011

Seguem mais 3 vídeos mostrando o rigging dos braços.

Observação:

No meu caso, eu modelei a mão de forma mais natural. Isso acaba deixando o posicionamento dos joints dos dedos mais complexo. Se quiser facilitar, mantenha os dedos mais retos. Dessa forma, pode-se até criar controles diretos nos dedos ao invés de usar atributos no controle da mão.

Parte 04 – Cabeça





Rigging Básico no Maya – Parte 02 – Coluna

17 06 2011

Segue a segunda parte do tutorial sobre rigging básico no Maya. Dúvidas sobre orientação dos joints, acesse http://wp.me/pRIbw-io .

Parte 3 – Braços





Rigging Básico no Maya – Parte 01 – Pernas

16 06 2011

Olá a todos,

Essa é uma série de tutoriais sobre rigging básico no Maya. Antes de continuar, gostaria de fazer algumas considerações:

  • Se não leu, leia o meu artigo sobre orientação dos eixos locais dos Joints: http://wp.me/pRIbw-io
  • Organize todo o seu projeto, nomeando tudo e criando grupos coerentes.
  • Teste o rigging durante o processo de construção para ter certeza de que está tudo funcionando.
  • Faça tudo com calma, procurando entender cada etapa.

Na segunda parte do vídeo, no final, antes de conectar o controle do pé ao Reverse Foot, eu coloco o Reverse dentro de um grupo e conecto o controle ao grupo. Faço isso porque os atributos de rotação do Reverse já estão conectados com outros atributos. E eu quero que o controle do pé também guie a rotação do Reverse. Se eu usar um constraint Parent, que controla ao mesmo tempo a rotação e posição, vai dar problema. Então, eu coloco o Reverse dentro de um grupo e uso o constraint Parente para controlar o grupo que, por sua vez, controla o Reverse.

Eu poderia, ao invés disso, usar um Parent normal (P), fazendo o Reverse, filho do controle, mas isso criaria uma hierarquia entre esses objetos distintos, colocando o Reverse dentro do controle, no Outliner. Para deixar tudo organizado, eu prefiro usar o constraint, pois ele não cria hierarquia. Assim, eu posso agrupar objetos semelhantes, sem misturar curvas com joints, por exemplo.

Parte 2 – Coluna





Meu novo site está no ar

20 05 2011

Finalmente consegui colocar o novo site no ar! Essa é a versão 3.

Agradecimentos especiais ao meu amigo Mateus Neves (mesmo sabendo que ele não gostou do layout) e a minha mais nova amiga Isabela Cacique.

O layout ainda não ficou exatamente como eu queria, mas se eu fosse esperar pra colocar o conceito que eu gostaria, iria demorar muito. Quem sabe na próxima versão eu consigo implementá-lo…

Segue o link: www.leandrooliveira.com

Abraço a todos.





Gaffinha

19 05 2011

Gaffinha é um personagem que eu criei para mostrar o processo de desenvolvimento de uma animação qualquer, desde a concepção do personagem até a animação. Eu tinha pretenção de criar várias animações com ele, mas não passou de um walk cycle. Porém, é possível que eu utilize o Gaffinha para estudos de rigging e/ou em algum projeto mais ambicioso.

Abaixo seguem alguns screenshots e animações de testes:

Screenshots

O desenho abaixo é um Model Sheet simples, com as vistas frontal e lateral do Gaffinha. Esse desenho é usado como referência dentro do software 3D para fazer a modelagem:

O screenshot abaixo mostra o modelo 3D do Gaffinha finalizado:

Após finalizar o modelo, geram-se as UVs. Uma UV é basicamente a representação planificada da malha 3D. Depois de pronta, gera-se uma imagem para ser usada em qualquer software de pintura (Photoshop, Painter, Gimp, etc) como referência para criar as texturas. Abaixo, seguem 3 tipos de mapas para criação do material do Gaffinha: o mapa para cor (Diffuse), um para controlar o brilho (Specular) e outro para controlar o relevo (Bump):

Depois de feita a textura, é hora de criar um esqueleto com controladores. O esqueleto deformará a malha 3D, como acontece na realidade, ou seja, quando o esqueleto se mover, a pele (malha 3D) o acompanhará. A animação é feita através de controladores e não diretamente nos bones (ossos do esqueleto).

O projeto foi feito no Softimage (antigo XSI). Ele tem um recurso muito bom e muito fácil de criar, chamado Synoptic View. Consiste na criação de imagens para servir de referência rápida e visual para selecionar os controladores, criar keyframes, etc.

Testes de animação

Teste do rigging:

Teste de envelopamento (Skin)

Envelopamento ou Skin, é a etapa que faz com que o esqueleto do personagem influencie a malha 3D para que seja deformada corretamente quando o esqueleto se mexer:

Teste de animação: Blocking

Abaixo, segue o teste animação do Gaffinha caminhado, ainda “blocado”. O blocking consiste em mostrar apenas as poses da animação. Aos poucos, vamos refinando a animação até finalizá-la:

Teste de animação final








Seguir

Obtenha todo post novo entregue na sua caixa de entrada.