Usando Unwrap no Blender
E aí pessoal. Esse é o meu primeiro tutorial sobre Blender. Nele mostro o workflow para gerar as UVs de um objeto não muito simples.
Olá pessoal,
Segue o vídeo de um tutorial que eu fiz explicando como importar arquivos DWG (arquivos do AutoCAD) para dentro do Blender.
Seguem 25 vídeos que eu disponibilizei para um curso de introdução ao Blender. Clique aqui para ter acesso a playlist.
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 é:
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.
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:
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”.
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:
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:
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:
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):
Por padrão, algumas informações são mostradas embaixo da imagem 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.
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:
Abaixo, segue um render com a cor de fundo alterada para azul:
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.
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.
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:
No final deste artigo tem um vídeo mostrando, na prática, os métodos descritos abaixo.
Uma das formas de fazer a correção é girando manualmente o eixo local do joint.
Sinceramente, acho esse método o menos indicado, porque é muito difícil acertar a orientação exata rotacionando “na unha”…
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:
Para configurar a orientação para World, após a cadeia ter sido construída numa orientação qualquer:
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.
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.
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:
É 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):
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.
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.
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:
Eu baixei um do forum da 3D Buzz: http://www.3dbuzz.com/vbforum/showthread.php?78879-how-to-re-orient-joints-after-rigging-animating
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.
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.
Logo, saber configurar o Anti-Aliasing é muito importante para a qualidade final do render. Lembrando que, quanto mais qualidade, maior o tempo de render.
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.
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:
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:
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.
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:
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:
Segue um comparativo entre os filtros:
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:
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é.
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,
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.
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.
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).
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.
Abaixo, segue o comparativo da imagem sem de-gamma nos materiais, e com de-gamma nos materiais.
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.
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).
Abaixo, mais comparativo: render da esquerda sem de-gamma no piso, render da direita com de-gamma no piso.
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:
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:
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:
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.
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:
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…):
A configuração que aplica a correção de gamma é a mesma do Color management do Render Settings com algumas configurações a mais:
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):
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):
Listo aqui o resumo das características que notei em cada um:
Método 01
Método 02
Método 03
Método 04
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:
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,
Para inserir luzes numa cena, acesse Create > Lights e escolha uma das luzes existentes:
Abaixo, segue uma tabela com os tipos de luzes e seus principais atributos comuns e específicos:
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.
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.
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.
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.
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.
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.
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.
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:
Emit Diffuse e Emit Specular
Por padrão, esses dois atributos estão habilitados.
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.
Quanto maior o valor do atributo Resolution, mais definida é a sombra. Quanto maior o valor em Filter Size, mais borrada é a borda da sombra.
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.