Posts Taged lights

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