Posts Taged maya

Displacement no Maya

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.

displacement_fig01

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.

displacement_fig02

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”.

displacement_fig03

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.

displacement_fig04

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:

displacement_fig05

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.

displacement_fig06

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:

displacement_fig07

Introdução ao render – Maya

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:

introrender01

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

introrender02

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):

introrender03

introrender04

  • 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:

introrender05

  • 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.

introrender06

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:

introrender07

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

introrender08

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

introrender10

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 Outliner – Window > Outliner, ou pelo ícone da viewport). No Attribute Editor, procure pelo grupo Environment e altere o valor de Background Color:

introrender101

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

introrender12

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:

introrender09

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.

 

Maya Joint Orient

Introdução

Quando se fala em rigging no Maya, a primeira questão que vem na minha cabeça é como ficam as orientações dos eixos locais dos bones? Até que ponto elas influenciam no bom funcionamento do rigging? Fazendo algumas pesquisas e conversando com alguns amigos, gostaria de compartilhar as diferentes formas de corrigir a orientação dos bones (os quais o Maya também chama de Joints) e as difentes opiniões a respeito do assunto.

Ao criar uma cadeia de bones, por alguma razão, o Maya não alinha os bones, mantendo a mesma orientação. A informação geral é que é importante deixar todos eles com a mesma orientação, não importando qual. E normalmente, essa mesma orientação é importante na mesma cadeia. Outras cadeias parecem poder ter outras orientações. Algumas pessoas vão dizer que é melhor que todos os bones tenham, sim, a mesma orientação, não importa a cadeia a qual ele pertença. E eu conversei com pessoas que sequer se preocupam com essa questão, alegando que isso não atrapalha o rigging.

jointorientation01

No manual do Maya, na seção que fala sobre orientação dos joints, lê-se o seguinte:

“Você pode configurar a orientação do eixo local do joint para manter a simetria do esqueleto do personagem. Por exemplo, se você criar uma cadeia para o braço direito, pode fazer uma cópia espelhada para ser o braço esquerdo. Você deve alinhar um dos eixos locais do joint com o bone afim de que o eixo aponte em direção à cadeia. Esse procedimento assegura que a cadeia de joints se comportará de forma correta quando o IK for aplicado.”

Bom, a conclusão que eu tiro disso é que existe uma importância na orientação dos eixos locais dos joints, pelo menos, no que diz respeito ao espelhamento de cadeias e ao uso do IK (e talvez, o que seja realmente importante é que apenas o eixo que segue a orientação do bone seja o mesmo para todos). Talvez, mesmo usando IK e sem se preocupar com a orientação dos bones, possa dar certo para riggins mais simples (e acredito que dependa também do tipo de animação). É bem possível que riggings mais complexos só funcionem bem com a correta orientação configurada.

Feitas as observações, gostaria de destacar algumas formas de fazer e/ou usar a orientação local dos joints. Mas antes, lembro que é importante deixar os valores de rotação (campo Rotate) dos joints, no Channel Box, zerados. Para o processo de correção da orientação, é bom visualizar os eixos locais dos joints. Para isso:

  1. Selecione os joints desejados
  2. Acesse Display > Transform Display > Local Rotation Axis
  3. Para esconder os eixos locais, basta fazer o mesmo procedimento

No final deste artigo tem um vídeo mostrando, na prática, os métodos descritos abaixo.

Método manual

Uma das formas de fazer a correção é girando manualmente o eixo local do joint.

  1. Na barra de ferramentas, clique no ícone Select by component type
  2. Agora clique em Select miscellaneous components
  3. Selecione o eixo local de um joint e, com a ferramenta Rotate, rotacione o eixo até deixá-lo na orientação desejada.

Sinceramente, acho esse método o menos indicado, porque é muito difícil acertar a orientação exata rotacionando “na unha”…

Método de orientação World

Outra forma de usar a orientação dos joints, é configurar tudo pra World, ou seja, deixando a orientação dos eixos locais iguais as do espaço 3D.

Aqui existe duas opções: ou se constrói as cadeias já na orientação World ou corrige depois de criada a cadeia.

Para construir a cadeia já com a orientação do espaço 3D:

  1. Antes de inserir qualquer joint, acesse as opções da ferramenta “Joint Tool“: F2 (módulo Animation > Skeleton > Joint Tool > options
  2. Mude a opção do campo Orientation para None
  3. Construa a cadeia

Para configurar a orientação para World, após a cadeia ter sido construída numa orientação qualquer:

  1. Isole todos os bones (unparent)
  2. Selecione um bone e acesse o Attribute Editor
  3. Zere os valores dos campos Joint Orient (faça isso para todos os bones)
  4. Re-Parent os bones na sequência original

Método pela ferramenta Orient Joint

Como eu citei na introdução, não parece haver uma orientação específica que deve ser seguida. Então, observe qual é a orientação que a maioria dos joints está usando e corrija os bones que estão com outra orientação, adotando a mais usada.

  1. Selecione o bone que está com a orientação incorreta
  2. Acesse F2 (módulo Animation) > Skeleton > Orient Joint > options

Aqui existem 3 campos os quais precisam ser compreendidos, pra não ficar clicando em todas as opções até chegar na orientação desejada:

Orientation: o importante é prestar atenção no primeiro eixo das opções. Nesse campo, se configura o eixo que apontará na direção do bone. Por exemplo, XYZ, quer dizer que o eixo X seguirá a orientação do bone. ZXY, quer dizer que o eixo Z seguirá a orientação do bone, e assim por diante.

Second axis world orientation: enquanto o campo acima guia o primeiro eixo das opções, este campo guia o segundo eixo. Mas em vez do segundo eixo seguir a orientação do bone, ele seguirá a orientação do World (espaço 3D). Exemplo, XYZ e +X, significa que o eixo local X do joint seguirá a orientação do joint enquanto o segundo eixo, Y, seguirá a orientação do eixo World X na direção positiva. ZXY e -Y, significa que o eixo local Z seguirá a orientação do joint e o eixo local X seguirá orientação World do Y na direção negativa, e assim por diante.

Hierachy: quando habilitado, muda a orientação de todos os joints abaixo do joint que está sendo corrigido. Cuidado! Nem todos os joints-filhos seguirão a orientação do joint-pai. Eu recomendo deixar essa opção desabilitada, fazendo com que a orientação mude apenas para o joint selecionado.

Método usando Constraint Aim

Dos métodos apresentados aqui, acredito que esse seja o mais complexo. Uma observação importante: ao montar a cadeia, se precisar rotacionar algum joint, faça isso via os campos do Joint Orient (para manter os campos Rotate zerados), dentro do Attribute Editor (clique dentro de um dos campos, CTRL + LMB e arraste o mouse, permitindo que os valores se alterem em tempo real).

O procedimento para esse método é o seguinte:

  1. Isole (unparent) o joint-pai e os joints com a orientação local incorreta
  2. Selecione esses joints isolados, acesse o Attribute Editor e zere os valores dos campos Joint Orient de cada um
  3. Crie um locator e posicione-o exatamente no centro do joint-pai (use o snap to point para posicioná-lo)
  4. Mova o locator, um pouco, para um dos lados (você vai entender mais pra frente o porquê disso)
  5. Selecione o joint-filho e em seguida o joint-pai (mantenha Shift pressionado) e acesse as opções do Constraint Aim (F2 > Constraint > Aim > options)

É importante saber o que o Constraint Aim faz: basicamente, ele faz com que um determinado objeto (driven) aponte na direção de outro (alvo). A ordem de seleção dos objetos define quem será o alvo (primeiro objeto selecionado). Assim, o joint-filho será o objeto alvo e o joint-pai, o driven. Seguem as explicações sobre os campos usados aqui, lembrando que 0 (zero) e 1 são o equivalente a desabilita e habilita determinado eixo, respectivamente, sendo que a direção do eixo pode ser positiva ou negativa (a ordem dos campos são respectivamente X, Y e Z):

  • Aim vector: especifica a direção do alvo. A configuração padrão (1,0,0) faz com que o eixo X, na direção positiva, aponte para o objeto alvo.
  • Up vector: enquanto o Aim Vector é o eixo que aponta para o alvo, o Up Vector é o eixo que aponta para uma outra direção, para tentar alinhar o objeto (no nosso caso, o eixo local) da forma desejada. A configuração padrão faz com que o eixo Y positivo do objeto driven (Up vector = 0,1,0) aponte na direção do eixo Y positivo do World (World up type = Vector e World up vector = 0,1,0).
  • World up type: especifica qual será a referência do Up vector. A opção padrão (Vector) faz com que a referência seja um dos eixos do World (definido no campo World up vector). Em vez de usar como referência o eixo World, vamos usar um outro objeto (locator) e, para isso, a opção escolhida deve ser alterada para Object up. Essa opção desabilita automaticamente o campo World up vector.
  • World up object: especifica o nome do objeto que será usado como referência para o alinhamento. No nosso caso, o nome do locator deve ser escrito aqui (o nome exato).

Após aplicar o constraint num bone e após se certificar se a orientação está correta, o constraint pode ser deletado (ele foi usado apenas para re-orientar o eixo do joint). Se você observar, os valores dos eixos de rotação no Channel Box não estão zerados, e é importante que esses valores sejam iguais a zero. Para fazer essa alteração, abra o Attribute Editor (com o bone selecionado) e copie os valores dos campos Rotate para os campos Joint Orient. Depois, zere os campos Rotate. Assim a orientação corrigida se manterá e os campos Rotate no Channel Box ficarão zerados.

Repita o procedimento acima para cada joint isolado, usando sempre como objeto-alvo o respectivo joint-filho. Não esqueça de alinhar o locator com o joint que terá sua orientação corrigida. No final do processo, é só “re-parentear” os joints na ordem original.

Método do Alinhamento

Eu vi esse método no tutorial sobre rigging do Danilo Pinheiro (obrigado Danilo!), da Vetor Zero (dêem uma olhada no tutorial dele. É muito bom). Independente do tipo de cadeia (perna, braço, coluna, etc) ele a cria com os bones todos retos, alinhados, com o grid visível e usando o Snap to Grid (tecla X). Isso faz com que tenhamos certeza de que a orientação dos joints seja a mesma. Depois, ele rotaciona e move  (com a opção “Along rotation axis” habilitada no painel Move do Tool Settings. Isso é muito importante para não alterar a orientação dos joints!) os bones até obter o correto posicionamento de cada joint na cadeia em questão.

Como os valores de rotação não ficam zerados, ele dá um Freeze Transformation, o que parece funcionar bem, já que ele faz automaticamente a transferência dos valores do campo Rotate para o campo Joint Orient, zerando o Rotate.

Método via Script

Uma das formas mais práticas e rápidas de re-orientar os eixos locais dos joints é usando um script. Porém, existem algumas questões que devem ser consideradas:

  • Se você não sabe escrever um script, vai depender de alguém que escreva ou de encontrar um script gratuíto para usar
  • Se o script tiver algum erro (de lógica, mesmo), ele não vai re-orientar os eixos de forma apropriada (por isso é bom que você o tenha escrito)

Eu baixei um do forum da 3D Buzzhttp://www.3dbuzz.com/vbforum/showthread.php?78879-how-to-re-orient-joints-after-rigging-animating

Conclusão

Eu não consigo me adaptar a montar um esqueleto sem me preocupar com a orientação dos eixos locais dos joints. Isso me incomoda bastante. Acho que existe um risco grande de alguma coisa dar errada, inclusive, quando já se está animando o personagem. Se isso fosse uma questão realmente sem importância, não existiriam profissionais adotando algum método para fazer a correção dessas orientações (nada contra aqueles que não se preocupam com isso. Experiência também conta).

Seja qual for o método adotado, apesar da orientação ser corrigida, os valores nos campos do Joint Orient nunca é igual de um método para outro. Como saber qual é o mais certo? A melhor forma é testar. Eu, particularmente, prefiro usar o Método Constraint Aim ou do Alinhamento, passado pelo Danilo Pinheiro. Acho que esses dois métodos deixam o esqueleto mais “limpo”, mais livres de bugs.

As diferenças que eu mais observo entre esses dois métodos é que, no primeiro, o posicionamento dos joints é mais fácil, gastando-se mais tempo re-orientando os eixos. No segundo, gasta-se mais tempo posicionando os joints, porém eles já estarão com a orientação correta.

Cabe a cada um escolher o que achar melhor.

Assista o vídeo do início do post mostrando os métodos acima.

Maya Mental Ray: Qualidade do Anti-Aliasing no Maya

O que é anti-aliasing?

Acho mais fácil entender primeiro o que é aliasing: é aquele “serrilhado” que aparece entre os pixels, principalmente, quando existe uma linha inclinada e manchas provenientes da falta de suavização entre pixels que ficam em toda a parte da imagem. Anti-aliasing, á a suavização desses pixels. Por isso, as configurações que controlam a qualidade do anti-aliasing do Mental Ray, suavizarão também os efeitos de reflexão borrada, sombra derivada de luz tipo area e até o efeito gerado pelo Final Gather (não mostrarei isso neste tutorial). A baixa ou incorreta configuração do anti-aliasing, numa animação, pode criar “flickerings”, ou seja, haverão áreas que ficarão “piscando” de um frame para outro.

OBS.: mesmo sendo este um tutorial de Maya, os conceitos passados aqui devem ajudar usuários de 3ds Max e Softimage também, pois o Mental Ray é o mesmo.

fig01

Logo, saber configurar o Anti-Aliasing é muito importante para a qualidade final do render. Lembrando que, quanto mais qualidade, maior o tempo de render.

Acessando as opções do Anti-Aliasing

Os atributos que controlam a qualidade do anti-aliasing no Mental Ray, estão dentro do Render Settings: Window > Rendering Editors > Render Settings > aba Quality > grupo Anti-Alising Quality.

fig02

Sampling Mode

Permite configurar a quantidade de “sampleamento” do anti-aliasing. Quanto mais samples (amostras) por pixel, melhor será a fusão dos pixels, gerando a suavização dessas áreas. Os atributos Min Sample Level e Max Sample Level, definem a faixa de níveis em que deve acontecer o sampleamento (do valor mínimo ao valor máximo).

Funciona assim: se o valor mínimo (Min Sample Level) for -1 e o valor máximo (Max Sample Level) for 2, significa que os pixels que puderem ser suavizados usando nível -1, serão suavizados nesse nível. Os que precisarem de um nível maior, serão suavizados em níveis maiores que -1, não ultrapassando o nível 2 (definido como valor máximo).

OBS: O atributo Min Sample Level é influenciado pelo atributo Anti-aliasing Contrast (ver mais abaixo). O valor configurado é o nível mínimo de samples garantido, porém dependendo do valor de Anti-aliasing Contrast, o Mental Ray pode aumentar o nível mínimo de samples (definido em Min Sample Level). Valores negativos são denominados Infra-Sampling e, positivos, Super Sampling.

Normalmente, valores -2 (Min) e 2 (Max) são uma boa configuração para renders finais. Mas se houverem falhas em objetos muito finos, como a tela de uma grade, por exemplo, então será necessário aumentar o valor de Min Sample Level.

Existem três opções no Sampling Mode. O que muda entre elas é a relação do valor de Min Sample Level e Max Sample Level, se usa ou não o atributo Anti-aliasing Contrast e a relação com o atributo Filter (ver mais abaixo):

Fixed Sampling: usa um número fixo de samples, ou seja, os valores de Min e Max Sample Level são sempre iguais (Exact). Esse modo ignora o atributo Anti-alising Contrast e habilita os atributos do grupo Multi-Pixel Filtering.

Adaptive Sampling (modo padrão): só é possível ajustar o valor de Max Sample Level. O valor de Min Sample Level é ajustado automaticamente. A relação entre esses valores é sempre de dois níveis. Exemplo: se ajustar o Max para 2, o Min será 0 (zero). Se o Max for 1, o Min será -1, e assim por diante. Esse modo trabalha junto com Anti-aliasing Contrast e só usa os atributos do grupo Multi-Pixel Filtering a partir do nível 1 de Max Sample Level.

Custom Sampling: permite configurar valores independentes para Min e Max Sample Level, mantendo o modo Adaptive Sampling (exceto se os dois valores forem iguais, resultando no modo Fixed). Em geral, a relação entre os valores de Min e Max não deve ser maior que 3 níveis. Esse modo trabalha junto com o Anti-aliasing Contrast e só usa os atributos do grupo Multi-Pixel Filtering a partir dos níveis -1 e 0 (zero) de Min e Max Sample Level, respectivamente.

O modo Custom Sampling é a forma manual de se configurar o sampleamento, enquanto as outras duas funcionam como pré-configurações (modos automáticos).Number os Samples: mostra a quantidade de amostras por pixel que está sendo usada na suavização da imagem. Os valores dos atributos Min e Max Sample Level, demonstram os níveis. Enquanto os níveis vão de -2 à 4, o número de samples varia de 1/16 à 256 amostras por pixel.

Abaixo, seguem alguns testes mostrando diferentes configurações versus o tempo de render. Todas foram renderizadas em 800×600 pixels. Os materiais da cena são todos mia_material _x:

fig03

Perceba que a partir de um determinado nível, a suavização das linhas retas não dá tanta diferença (ou nenhuma) de um configuração para outra. O que não suaviza totalmente são as áreas borradas da sombra e do reflexo do cromado. A única imagem que suavizou tudo 100% foi a que está usando o modo Fixed no nível 4. Com essa configuração, a imagem está perfeita (em termos de anti-aliasing), usando 256 samples por pixel na imagem inteira (nível máximo). Porém, o tempo de render foi de absurdos 16 minutos e 46 segundos! Muito tempo para uma imagem simples como essa… O Mental Ray gastou tempo usando 256 amostras em pixels que não precisavam de tudo isso, como nas áreas com cor chapada. Valeu a pena somente na sombra e reflexo. Porém, tanto a sombra tipo area quanto o reflexo borrado, possuem seus próprios atributos de controle de samples. Não preciso delegar unicamente ao Sampling Mode que faça isso. O tempo de render vai ser menor e com boa qualidade se eu baixar as configurações do Sampling Mode e aumentar o sampleamento da sombra e reflexo:

fig04

Observando as imagens acima, com uma configuração suficiente e mais baixa que a Fixed em nível 4, e aumentando a qualidade da sombra e reflexo do material cromado, obtive uma boa imagem que levou 8 segundos para renderizar… Lembrando que ainda não utilizei o Contrast e nem o Filter, ainda.

Anti-aliasing Contrast

O Contrast controla a intensidade do sampleamento, aumentando a quantidade de amostras a partir do valor determinado em Min Sample Level até o valor máximo configurado em Max Sample Level. É como se ele aumentasse a densidade das amostras. Quanto menor o valor do Contarst, melhor a qualidade da imagem.

A ação do Contrast é mais fácil de visualizar usando a opção Diagnose samples (ver abaixo).

Diagnose SamplesMostra a localização e a densidade dos supersamples na imagem em tons de cinza. É útil para visualizar o sampleamento quando se está configurando o Sampling Mode e o Contrast.A imagem abaixo mostra o comparativo entre as configurações do Contrast e a visualização do sampleamento. A qualidade da sombra e do reflexo está com 8:

fig05

Note que quanto maior a qualidade do Contrast, maior a suavização da sombra e do reflexo, mostrando mais uma vez, que sabendo lidar com os atributos, pode-se chegar numa imagem de alta qualidade, gastando menos tempo de render. As imagens do Diagnose Samples mostram com clareza a localização dos supersamples, a densidade e o contraste, que quanto maior, maior a qualidade imposta pelo atributo Contrast.

Filter

A função do Filter é mesclar os pixels vizinhos, ajudando a suavizar a imagem. Existem 5 tipos de filtros diferentes. A melhor maneira de saber qual filtro usar é testando, mas abaixo seguem algumas dicas para ajudar na escolha:

  • Box (padrão): é o que renderiza mais rápido.
  • Triangle: mais lento que o Box, produz resultados melhores. Amostras que estejam no centro do pixel terão mais peso, ao passo que as amostras que estiverem mais nas bordas do pixel se mesclarão mais com as do pixel vizinho. Isso faz com que os detalhes no centro do pixel estejam mais presentes na imagem final.
  • Gauss: as amostras se mesclam mais suavemente que os outros filtros, deixando a imagem mais borrada. Gauss requer, no mínimo, um Filter Size (veja abaixo) valor 3.
  • Mitchell e Lanczos: esses dois filtros tendem a aumentar o contraste da imagem (o Mitchell aumenta menos que o Lanczos) e resulta numa imagem mais nítida, sobressaltando os detalhes.

Segue um comparativo entre os filtros:

fig06

Filter Size

Controla o tamanho do filtro usado para mesclar cada pixel. Quanto maior o valor, mais informações são tomadas dos pixels vizinhos e mais borrada será a imagem final. O valor mínimo recomendado é 1,1.

OBS.: tanto o Filter quanto o Filter Size só serão habilitados se o Min e o Max Sample Level tiverem, no mínimo, valores de -1 e 0 (zero), respectivamente.

Comparativo entre valores do Filter Size usando filtro Mitchell:

fig07

Jitter

Reduz o aparecimentos de artefatos (manchas ou defeitos), redistribuindo as amostras localizadas nos cantos dos pixels.Sample LockQuando habilitado, essa opção se certifica de que as amostras de sub-pixel ocorram no mesmo lugar dentro de cada pixel, o que ajuda a reduzir problemas de flickering em animações. Só desligue essa opção caso você esteja tendo problemas no sampleamento do tipo padrão moiré.

Conclusão

1 – Entender o que cada atributo faz é importante, pois dependendo da imagem ou animação, as configurações finais podem ser diferentes.

2 – Faça sempre testes de render para saber qual a melhor configuração usar para obter boa qualidade e menor tempo de render.

3 – O tamanho final da imagem interfere nas configurações. Por exemplo, num objeto gradeado, quanto maior a imagem, menos necessidade de aumentar o valor de Min Sample Level, para eliminar possíveis falhas de render, comumente corriqueiros em objetos muito finos.

4 – Em animações, normalmente, é necessário maior qualidade de anti-aliasing, para evitar flickering. Faça testes de render em alguns frames para certificar que a configuração está adequada.

Um abraço,

Linear Work Flow no Maya

Antes de continuar, se você não sabe o que é Linear Work Flow (LWF), leia o artigo sobre o assunto: O que é Linear Work Flow?

Existem algumas formas diferentes de se trabalhar com LWF no Maya. Lembrem-se de habilitar o Mental Ray como renderizador.

Como estamos usando o Mental Ray, é melhor trabalhar com o shader mia_Material_x por ter características físicas reais.

Abaixo, segue o cenário que estou usando de teste, a configuração da luz e um render.

maya-lwf01

Método 01 – Correção de Gamma via Controle de Exposição da luz

Nesse método, a correção do Gamma é feita adicionando um shader de exposição no slot Lens Shader da câmera. Para simplificar o processo, optei por usar o mia_exposure_simple, que, como o próprio nome já diz, é mais simples. O shader mia_exposure_photographic é mais completo, possuindo atributos de uma câmera real. Esse tipo de shader controla a exposição da luz na imagem, tendo controles para clarear, escurecer e trabalhar o contraste do render. Note, na imagem abaixo, que um dos parâmetros do shader de exposição é o Gamma. Seu valor padrão é 2.2, permitindo assim, que o gamma da imagem seja corrigido para 2.2.

maya-lwf02

Veja uma comparação entre a imagem sem correção de Gamma (figura da esquerda) e a imagem com correção de Gamma (figura da direita).

maya-lwf03

Esse método corrige a luminosidade da imagem, mas não faz o de-gamma das cores dos materiais, deixando-os com a aparência de “lavados”. Esse de-gamma deve ser feito manualmente, conectando o shader gammaCorrect no slot de cor do material e alterando a cor preta padrão do shader para a cor atual do material. Não esqueça de alterar o valor 1, nos três campos (esses campos não tem rótulo, mas são respectivamente valores de R, G e B) para 0.455, que é o inverso de 2.2. Isso é o de-gamma.

maya-lwf04

Abaixo, segue o comparativo da imagem sem de-gamma nos materiais, e com de-gamma nos materiais.

maya-lwf05

Agora, vamos incrementar o cenário com uma esfera que englobe toda a cena. Nela, eu apliquei um shader Surface com uma textura HDR. No piso, apliquei uma textura sRGB. Habilitei o Final Gathering para fazer com que a imagem HDR emita luz. Estou mantendo o material das esferinhas com de-gamma, mas na textura do piso não. Como é uma textura sRGB, ela já tem gamma 2.2. Note que a textura tem um tom mais escuro e no render ficou mais clara. Isso porque o gamma da imagem (2.2) se somou ao gamma que apliquei no render (2.2) através do shader de exposição.

maya-lwf061

Para corrigir a aparência da textura do piso, é necessário fazer o de-gamma, da mesma forma que eu fiz com o material laranja das esferinhas. Porém, como a textura já está conectada no material, mostro abaixo como desconectar, inserir o shader gammaCorrect e reconectar tudo, através do Hipershade (Window > Rendering Editors > Hipershade).

maya-lwf07

Abaixo, mais comparativo: render da esquerda sem de-gamma no piso, render da direita com de-gamma no piso.

maya-lwf08

Não há necessidade de fazer de-gamma da imagem HDR pois ela é Linear, não possuindo adição de gamma.

Método 02 – Correção de Gamma através do Framebuffer

Outra forma de corrigir o Gamma, no Maya, é através do gamma no Framebuffer (Window > Rendering Editors > Render Settings > Quality > Framebuffer). A vantagem é que não precisa fazer de-gamma nas cores dos materiais, nem nas texturas sRGB. Porém, aqui existe uma particularidade. Veja a imagem abaixo:

maya-lwf09

No teste acima, não há shader de exposição. Ao fazer a correção trocando o valor de 1 para 2.2, no atributo Gamma, a imagem escurece ao invés de clarear. A documentação do Maya diz que o comportamento do Gamma no mental ray, através do Quality > Framebuffer é reverso, pois ele remove toda correção de Gamma existente para assegurar que a imagem gerada seja realmente Linear, antes de computar o render. Logo, valores altos de gamma escurecem a imagem e valores baixos clareiam a imagem.

Então, para termos a imagem correta com esse método, é necessário colocar o valor inverso de 2.2, ou seja, 0.455.

E se quisermos usar um shader de exposição para controlar a exposição da luz no render? Não tem problema. É só lembrar de baixar o valor do Gamma do shader de exposição para 1, caso contrário, ao render ficará 2 vezes mais claro, por causa da soma dos Gammas, como mostrado abaixo:

maya-lwf10

Método 03 – Correção de Gamma através do Color Management

A partir do Maya 2011, foi acrescentado o Color Management, na guia Commom do Render Settings (Window > Rendering Editors > Render Settings). Abaixo seguem os primeiros comparativos entre as configurações deste método:

maya-lwf111

A correção do gamma acontece quando “Default Input Profile” está como “Linear sRGB” e “Default Output Profile” está como “sRGB“, o que siginifica que os dados (texturas HDR, sRGB, cor de materiais, luz) entram (input) como Linear e saem (Output) com correção de gamma 2.2 (sRGB).

Abaixo, mais um comparativo mostrando o piso sem de-gamma e com de-gamma.

maya-lwf12

Com esse método, assim como o primeiro, é necessário fazer o de-gamma das cores e texturas sRGB.

Lembre-se que quando usar um shader de exposição, altere o valor do atributo Gamma para 1, para não aplicar o gamma 2.2 duas vezes na imagem:

maya-lwf13

Método 04 – Correção de Gamma através do View Color Management (Render View)

Com esse último método, a correção de gamma é feita, em tempo real, na janela de render (Render View). Para acessá-lo, clique em Display, na barra de ferramentas da Render View (Display > Color Management…):

maya-lwf14

A configuração que aplica a correção de gamma é a mesma do Color management do Render Settings com algumas configurações a mais:

  • Exposure: controla a exposição da luz na imagem. Valores negativos deixam a imagem escura e positivos, clara.
  • Contrast: controla o contraste da imagem.
  • LUT file: pode-se usar um arquivo para controlar a cor da imagem ou um arquivo de calibragem específico do seu monitor. Esses arquivos são de uso bem específicos. Eu mesmo nunca usei.

Após fazer os ajustes em tempo real da imagem, é possível salvar o render de duas formas: com essas alterações ou sem as alterações (RAW). Para isso, acesse as opções de salvamento (barra de ferramentas do Render View – File > Save Image):

maya-lwf15

Por que essa opção de salvar a imagem sem a correção de gamma? Porque a correção de gamma pode ser feita em softwares de pós-produção, também. Mas esse é um outro assunto.

Conclusão

Os 4 métodos acima farão a correção de gamma, porém, nos meus testes, o resultado entre eles não foi idêntico, como mostrado abaixo. Os renders foram salvos a partir do BatchRender (módulo Rendering > Render > Batch Render):

maya-lwf16

Listo aqui o resumo das características que notei em cada um:

Método 01

  • Correção de gamma feita através de um shader de exposição de luz
  • É necessário fazer de-gamma de cores e texturas sRGB
  • O resultado também é mostrado no Batch Render

Método 02

  • Correção de gamma alterando o valor do Gamma do Framebuffer
  • Valor de gamma deve ser inverso do usual
  • Não necessita de de-gamma nas corem nem texturas sRGB
  • Ao usar shader de exposição de luz, lembrar de alterar o valor do Gamma do shader para 1
  • O resultado também é mostrado no Batch Render

Método 03

  • Correção de gamma através de opções pré-definidas (não usa valores numéricos)
  • É necessário fazer de-gamma de cores e texturas sRGB
  • Ao usar shader de exposição de luz, lembrar de alterar o valor do Gamma do shader para 1
  • O resultado também é mostrado no Batch Render

Método 04

  • Correção de gamma através de opções pré-definidas (não usa valores numéricos) e em tempo real
  • É necessário fazer de-gamma de cores e texturas sRGB
  • Ao usar shader de exposição de luz, lembrar de alterar o valor do Gamma do shader para 1
  • O resultado é renderizado salvando a imagem pelo Render View

Muito provavelmente, existem outras características ligadas a pós-produção. Pretendo falar disso numa outra ocasião, quando abordar Render Layers e Pós-Produção.

Observação a respeito do node gammaCorrect

Só para esclarecer, ao usar o node gammaCorrect para fazer o de-gamma na cor de um material, ele escurecerá e alterará o tom da cor escolhida. Isso acontece para fazer a compensação da aplicação do Gamma 2.2 duas vezes na cor do material. Se o node for desconectado, a cor que permanecerá no slot Color é a cor do de-gamma. Na prática, ao renderizar essa imagem, não muda nada, pois a cor foi alterada para fazer o de-gamma. Porém, se houver necessidade de alterar a cor vai ficar difícil usando essa referência. As opções são, caso o de-gamma seja necessário:

  1. Não desconectar o node gammaCorrect e fazer a alteração da cor pelo slot Value desse node
  2. Se desconectar, aplicar novamente a cor original e reconectar o node gammaCorrect para alterar a cor e continuar o de-gamma

maya-lwf171

O assunto é confuso? Um pouco… Não me envergonho em dizer que também estou aprendendo mais sobre ele. Porém, havendo dúvidas, mande um comentário.

Abraço,

Introdução às luzes – Maya 2011

Para inserir luzes numa cena, acesse Create > Lights e escolha uma das luzes existentes:

luzes_01

Abaixo, segue uma tabela com os tipos de luzes e seus principais atributos comuns e específicos:

luzes_02

Descrição das luzes

Obs.: os testes abaixo foram todos renderizados com o Maya Software e sombra Raytrace. Existe uma tendência de aparecerem manchas nas áreas sombreadas dos objetos quando se usa sombras Raytrace e Maya Software para renderizar. Esse defeito é chamado de “Terminator Effect”. Para resolvê-lo, basta aumentar a resolução da malha. Se for uma superfície NURBS, deve-se aumentar o Tesselation. Se for um objeto poligonal, deve-se aumentar a quantidade de polígonos. Nos meus testes, usando sombra Depth Map (veja mais abaixo) não ocorreu o Terminator Effect. Com Mental Ray (falarei sobre ele mais tarde) e sombra Raytrace, isso também não ocorreu, o que é uma boa notícia.

luzes_03

Os testes abaixo estão mostrando o Terminator Effect, pois eu já havia gerado as imagens e não havia descoberto como resolver esse problema. E, usando a Ambient Light, nem mesmo aumentando o número de polígonos da esfera, o defeito sumiu completamente. Por isso, resolvi deixar as imagens como estão e postar o problema e solução acima.

Obs2.: as imagens abaixo que ilustram o resultado das luzes estão usando sombra Raytrace. Logo, os atributos Light Radius, Light Angle e Light Rays pertencem a sombra Ray Trace.

Ambient Light: Funciona de duas maneiras, parte dela ilumina diretamente e a outra parte ilumina toda a cena de forma infinita. Pode ser usada para simular uma combinação de luz direta e luz indireta, ou seja, iluminação gerada pela reflexão da luz num ambiente, por exemplo.

luzes_04

Directional Light: Emite luz apenas numa direção. Não importa a sua posição na cena, mas sim, a direção na qual está apontando, pois seus raios são emitidos a partir do infinito e de forma paralela. Toda a cena é iluminada.

Pode ser usada para simular um ponto de luz muito distante, como o sol, visto da Terra.

luzes_05

Point Light: Emite luz em todas as direções a partir de sua posição na cena. Pode ser usada para simular uma lâmpada incandescente ou uma estrela, por exemplo.

luzes_06

Spot Light: Emite luz através da limitação de um cone, cuja abertura pode ser configurada de acordo com sua necessidade. É possível, também, projetar uma imagem usando esse tipo de luz.

Pode ser usada para simular uma lanterna ou projetor.

luzes_07

Area Light: são fontes de luz bidimensionais e de área retangular. Essa área pode ser alterada através da ferramenta scale (R), alterando suas dimensões e a forma de iluminar. A sombra formada por esse tipo de luz, depende das dimensões dessa área.

Comparada às outras luzes, ela pode levar mais tempo para renderizar, mas produz iluminação e sombra de melhor qualidade.

Area lights são fisicamente corretas, dispensando o uso de Decay (veja mais abaixo). Quanto mais longe a area light estiver do objeto iluminado, mais a iluminação enfraquece, como ocorre com o atributo Decay.

Pode ser usada para simular claridade entrando por uma janela ou uma luminária de forma retangular.

luzes_08

Volume Light: Ilumina apenas o que estiver dentro da sua área. Para aumentar essa área, use a ferramenta scale (R).

A maior vantagem dessa luz é poder visualizar a luz e outros efeitos dentro dos limites de seu volume. A atenuação da luz é feita através de um gráfico de gradiente, dispensando o atributo Decay e dando maior controle sobre esse efeitos gerados por esse gráfico. Usando cores nesse gradiente é bem útil quando se habilita o efeito de Fog.

Essa luz também pode ser usada com valor negativo na intensidade para remover ou diminuir uma área iluminada ou para clarear sombras de outras luzes.

luzes_09

Decay

Decay é a atenuação da luz. Na realidade, a luz perde intensidade com a distância. Ou seja, objetos que estejam mais perto da fonte de luz, serão mais iluminados que objetos que estejam distantes. Sem decay, a intensidade da luz não se altera com a distância. Essa é a configuração padrão das luzes.

Existem 3 tipos de atenuação:

  • Linear: a intensidade da luz reduz diretamente com a distância (a perda é mais lenta que no mundo real).
  • Quadratic: a intensidade da luz reduz proporcionalmente com o quadrado da distância (o mesmo que no mundo real).
  • Cubic: a intensidade da luz reduz proporcionalmente com o cubo da distância (a perda é mais rápida que no mundo real).

luzes_10

Emit Diffuse e Emit Specular

Por padrão, esses dois atributos estão habilitados.

  • Emit Diffuse: faz com que a luz ilumine a cor ou mapa definido no slot Color do material.
  • Emit Specular: faz com que a luz gere o brilho specular, ou seja, o brilho gerado pelo reflexo da luz no material. Obviamente, materiais que não gerem brilho specular (Lambert, por exemplo) ou que estejam configurados para não gerá-lo, não mostrarão esse efeito.

luzes_11

Tipos de sombras

A maioria das luzes podem projetar dois tipos distintos de sombra: Ray Trace e Depth Map.

A sombra Ray Trace é definida pelo traçamento dos raios de luz. Ela simula a sombra de forma mais correta, interpreta transparência e é mais demorada para renderizar, quando se usa o Maya Software.

A sombra Depth Map é definida por um mapa de bits que é montado no momento da projeção da sombra. Sua qualidade depende da resolução desse mapa de bits. Ela não interpreta transparência e é mais rápida para renderizar, quando se usa o Maya Software.

luzes_12

Quanto maior o valor do atributo Resolution, mais definida é a sombra. Quanto maior o valor em Filter Size, mais borrada é a borda da sombra.

luzes_13

 

Unfold no Maya

Olá.

Neste vídeo tutorial eu mostro uma maneira de planificar a malha de um objeto complexo (uma cabeça) no Maya. É uma forma menos prática que utilizar o Unfold diretamente (mostrarei essa técnica em outra ocasião), porém, acredito que possa ser mais fácil de compreender como a planificação funciona. E, como é mais manual, é mais fácil de controlar as diversas áreas do objeto sem afetar outras. Isso é feito no final, quando todas as partes já estão “costuradas”.

Lembrem-se de deixar as emendas em locais menos visíveis. No meu caso, elas estão localizadas do topo da cabeça à base do pescoço, como comumente vemos em outros tutoriais.

O modelo foi pêgo do Softimage, pois ele já possui modelos de cabeça e de corpo prontos. No vídeo, utilizo o Maya 2012, mas acredito que mesmo quem use a versão 2009 possa usufruir do tutorial.

Qualquer dúvida, é só enviar um comentário.