//
you're reading...
Artigos, Autodesk 3ds MAX, Autodesk Maya, Autodesk Softimage/XSI

O que é Linear Work Flow?

OBS.: esse artigo foi atualizado em 10 de maio de 2011.

Apesar de já trabalhar com Linear Work Flow (LWF) há uns dois anos, só agora, depois de uma boa pesquisa, eu compreendi melhor o que significa e como lhe dar com ele. No final deste tutorial estão listadas algumas fontes que tive acesso para entender o processo, e gostaria de destacar duas em especial que foram, na minha opinião, as melhores fontes, por explicar de forma didática o que é o LWF e como trabalhar com ele. Essas fontes são 4 vídeo-tutoriais do Zeth Willie (esse link é do primeiro vídeo tutorial: http://vimeo.com/8119194) e o blog de David Jonson, djx blog.

Minha intenção aqui é tentar explicar o conceito do LWF, de forma simples, sem muitos detalhes técnicos, e como incluí-lo na pipeline dos softwares Maya, Softimage e 3ds Max. Confesso que, por mais que eu tenha entendido o assunto, ainda existem lacunas. Existem várias questões técnicas de como o olho humano percebe a luz e de como os monitores tratam esse assunto. Porém, vou procurar simplificar as coisas para evitar confusões. É bem capaz que, mais pra frente, eu atualize esse artigo com informações (mais) corretas e detalhadas.

A teoria

Vou começar com parte de uma citação do Master Zap a respeito de Linear Work Flow:

Se você renderizar uma imagem num monitor comum (um monitor sRGB no qual tem um valor médio de gamma igual a 2.2) sem se preocupar com o gamma (acreditando que o gamma do monitor seja 1, como a maioria dos softwares acreditam), então, enquanto você acha que está gerando uma imagem duas vezes mais clara, você está, na verdade, gerando-a 5 vezes mais clara.

(…)

Por isso, os brilhos especulares estouram de forma não realista, os reflexos parecem errados, não é possível usar luzes de forma fisicamente corretas com atenuação quadrática (…)”

Luz com atenuação quadrática é como a luz se comporta na nossa atmosfera no que diz respeito à sua intensidade, ou seja, a luz perde intensidade com a distância (mais precisamente, com o quadrado da distância – Quadrático). Os renders gerados em monitores comuns não mostram essa atenuação de forma correta, fazendo a atenuação cair muito mais rápida, deixando as áreas escuras da imagem ainda mais escuras.

David Johnson em seu blog, djx blog, conta que antes de trabalhar com Linear Work Flow, ele usava luzes emitindo apenas iluminação ambiente ou difusa para clarear áreas escuras da imagem. Usava luzes sem atenuação porque elas pareciam dar a ele mais controle sobre a iluminação, evitando estouros de luz. Ele ajustava a reflexão de shaders Blinn tentando balancear as intensidades com os brilhos especulares, e na pós-produção adicionava contraste a imagem.

Essa era a forma que muitos de nós trabalhávamos a alguns anos atrás. Poderíamos continuar trabalhando nela, mas o fato é que trabalhar com LWF permite resultados melhores em menos tempo.

Ainda segundo Davide Johnson, monitores comuns costumam mostrar tudo em sRGB (sRGB color space). O que é gerado pelo Maya (ou outro software 3D) ou Mental Ray, por padrão, é Linear (Linear color space). Ao visualizar uma imagem Linear num monitor sRGB, as áreas escuras ficam muito escuras. Ao invés de compensar isso adicionando mais luzes, uma solução melhor é aplicar a correção do gamma na saída do renderizador para que a imagem seja convertida em sRGB.

O Workflow

Basicamente, o que vou fazer é transcrever parte do material do David Johnson e mesclar com informações minhas, da minha experiência, para mostrar um procedimento básico e geral de como trabalhar usando LWF.

Gamma 2.2

A correção do gamma pode ser feita através do uso de um shader de exposição que aplique o gamma no valor de 2.2 na imagem inteira ou através de outro recurso (que varia de software pra software) que faça a correção.

Gamma 0.455 (de-gamma)

Imagens usadas como texturas normalmente são bitmaps do tipo sRGB, ou seja, imagens já corrigidas com gamma 2.2 (imagens de câmeras digitais ou geradas em softwares de edição, por exemplo). Ao usar uma textura como essa em um render com correção, ela ficará mais clara do que deveria, pois ela está sendo corrigida duas vezes.

Para retirar uma aplicação do gamma no valor 2.2 da imagem, é necessário fazer o de-gamma. O de-gamma é o valor inverso do gamma aplicado, ou seja, 0.455 (1/2.2 = 0.454545… = 0.455).

Para aplicar o de-gamma é necessário usar um shader específico para isso (veja os tutoriais no final deste artigo).

Imagens OpenEXR como texturas

David conta que uma alternativa às texturas sRGB (que precisam de de-gamma) é usar como texturas imagens OpenEXR. O tamanho do arquivo é maior, mas não aumenta o tempo de render e não existe a necessidade de fazer o de-gamma, já que o OpenEXR é um formato Linear.

mia_material deve ter prioridade

Usar o shader mia_material (também chamado de Architectural ou Arch&Design) não é algo necessário para fazer o Linear Work Flow funcionar, mas deve ser levado em consideração.

Segundo Florian Wild, em seu blog, Floze.org, “diferentemente de shaders comuns e a maioria dos shaders customizáveis do Mental Ray, o mia_material possui precisão física, grande capacidade de otimização para reflexos, transparência e translucidez, ambient occlusion embutido para melhorar os detalhes gerados pelo Final Gather, shaders de sombra e photons automáticos, várias outras melhorias na performance e otimização e, a coisa mais importante: é realmente fácil de usar”.

Se estamos adotando o Linear Work Flow para ter melhores resultados, por que não usar o melhor shader de materiais para isso? Eu ainda vou mais longe: se o Mental Ray é o renderizador adotado, o mia_material já é a melhor opção, por causa de todas as vantagens descritas acima.

Final Gather

David Johnson também cita que é uma vantagem configurar o Diffuse Bounces do Final Gather para 2, para se ter um resultado melhor. Mais uma vez, não é um requerimento básico para se trabalhar com LWF, mas, segundo David, gera um resultado mais natural.

Lembrando que o Diffuse Bounces só deve ter um valor deferente de 0 se a iluminação global for gerada somente pelo Final Gather. Se usar Photons, o Final Gather irá apenas suavizar o efeito dos Photons, já que estes é que farão a iluminação global.

Floating Point e imagens HDR

Parece existir um conceito errado comum de que, ao adotar o LWF, deve-se salvar as imagens em formato HDR com Floating Point de 32 ou 16bit, mas não é bem assim. Se você quiser, tudo bem, desde que seu aplicativo de composite (After Effects, Nuke, Fusion, etc) interprete bem esse formato. O After Effects, por exemplo, importa o formato OpenEXR e permite trabalhar em floating point de 32-bit.

Novamente, segundo David Johnson, “o After effects não possui boas ferramentas para se trabalhar com imagem HDR – ele tem algumas, mas eu não acho que são boas o bastante para a maioria dos casos – então, se eu renderizo em floating point e ainda uso um node de exposição para manter a imagem em low dynamic range” (o oposto de High Dynamic Range – HDR. OpenEXR também é um formato High Dynamic. Os outros formatos, como JPG, por exemplo, são Low Dynamic). “E eu ainda aplico um gamma 2.2 (muitos dirão que eu deveria renderizar com gamma 1 e aplicar a correção do gamma no After Effects, mas eu prefiro usar renders com gamma 2.2 e depois fazer com que o After interprete-os da forma correta).”

Ainda segundo David, “outra vantagem de renderizar em formato Low Dynamic Range é que o sampleamento de anti-aliasing se comporta bem melhor neste tipo de imagem, impedindo aparecimentos de artefatos nas áreas de brilhos especulares e bordas com grande contraste. Eu configuro a exposição de luz dos meus renders para ter um pouco mais de intensidade nas áreas claras (algo em torno de 10% a 15%), no qual ainda me permite fazer ajustes no After Affects.”

Comparativo entre imagens sem e com correção de Gamma:

Aprofundando

No site My Mental Ray, existe um bom material (em inglês) a respeito do assunto, inclusive mostrando conceitos errados que existem por aí. O material é extenso e não vou transcrevê-lo, porém, adianto que fala, em linhas gerais, que a não linearidade dos monitores não é um defeito, não é um bug e que não adianta calibrar o monitor para evitar correção de gamma. Vale a pena dar uma lida.

Conclusão antes da prática

  • Monitores não trabalham de forma Linear, e sim, geralmente, com Gamma 2.2.
  • Sem correção de gamma, as imagens ficam mais escuras, com highlights estourados e atenuação de luz incorreta.
  • Imagens sRGB presentes no render, precisam de de-gamma.
  • Imagens lineares (HDR, EXR), não necessitam de de-gamma.
  • Imagens usadas em Bump, displacement, specular, etc, não devem ter de-gamma, pois não possuem informação de cor, assim como passos de Ambient Occlusion e Z-Depth.

Abaixo, seguem os tutoriais de como trabalhar com LWF no Maya, Softimage e 3ds Max, usando o Mental Ray:

_________________________

Fontes:

Zeth Willie: http://vimeo.com/8119194

3D Light: http://3dlight.blogspot.com/2008/09/linear-workflow-for-maya-mental-ray.html

djx Blog: http://www.djx.com.au/blog/2008/09/13/linear-workflow-and-gamma/

My Mental Ray: http://mymentalray.com/wiki/index.php/Gamma

Floze.org: http://www.floze.org/2008/07/six-tuts-on-light-and-shade-part-i.html

Discussão

12 comentários sobre “O que é Linear Work Flow?

  1. Excelente Post!

    Publicado por Bruno | 03/05/2011, 5:02 pm
  2. esse é o cara.

    Publicado por tomfrias | 10/05/2011, 6:41 pm
  3. aaaaffe maria !!!! que que é isso …
    cara que aula foi essa ….
    maravilhoso como de costume …
    parabéns Leandro realmente esse assunto só é abordado em cursos altamente profissionais de computação gráfica !!!
    Abração.

    Publicado por Gafanhoto | 11/05/2011, 6:11 pm
    • Obrigado, Gafa. Tive que atualizar esse artigo às pressas pois antes haviam informações erradas ou inconsistentes. É um assunto difícil ainda pra mim, quando de fala em questões técnicas, mas o objetivo é como trabalhar com LWF para gerar bons trabalhos artísticos.

      Mais uma vez, obrigado, cara.

      Abração.

      Publicado por Leandro Oliveira | 11/05/2011, 6:19 pm
  4. Olá. muito bom seu post. Sou estudante da Melies
    Tambem sou um adepto do LWF. Mas poucas pessoas conhecem esse metodo.
    Vim aqui compartilhar informação.
    Uma dica que eu dou é visitar o site do CGsociety na seção de render do Maya, têm muita informação tecnica sobre o MR.
    http://forums.cgsociety.org/showthread.php?f=87&t=959028
    http://forums.cgsociety.org/showthread.php?f=7&t=961853
    http://forums.cgsociety.org/showthread.php?f=87&t=966210
    http://forums.cgsociety.org/showthread.php?f=87&t=872744&page=6&pp=15

    Na melies agente usa o XSI, quando eu tiver meu blog pra postar algumas coisas, eu vou fazer uma matéria como esta, sendo que voltado pro XSI.
    http://kobayashystips.blogspot.com/2009/09/linear-workflow-in-softimage.html

    No XSI é mais facil de usar o LWF do que no Maya.

    Um tuto foda é o fxphd MRy 201 onde o MasterZap fala muita coisa sobre o MR.

    o/

    Publicado por Exsec | 14/05/2011, 3:10 am
  5. Parabéns Leandro pelas ótimas explicações sobre um processo tão importante como esse, que é o LWF – Linear work flow ou LCS- Linear Color Space. Um grande abraço Leandro e sucesso pra vc, sempre!! =)

    Publicado por danilo sarmento | 06/03/2012, 10:46 pm
  6. Muito obrigado pelas informações! Não sabia de quase nada sobre isso. Valeu!

    Publicado por Ronan | 22/10/2014, 1:46 am

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Arquivados

%d blogueiros gostam disto: