Como funciona a correção de gama para artistas 3D?

Na área de computação gráfica existem vários termos que são conhecidos por pessoas mais ligadas as áreas técnicas, mas que para os artistas acabam passando despercebidas. Isso vale para os artistas 3d que estão iniciando os estudos e prática com softwares 3d também, pois os mesmos se concentram apenas na parte de modelagem 3d e renderização, deixando aspectos técnicos das imagens para segundo plano. Por exemplo, nas minhas aulas sempre tento abordar assuntos como Correção de Gama e problemas nas imagens como o famoso efeito Moiré. Esse efeito está ligado a criação de texturas e mapas do tipo displacement e tem relação com a maneira com que percebemos padrões em imagens.

Já a correção de gama se relaciona com o grau de brilho com que percebemos uma imagem. A grande maioria dos softwares 3d permite que algum tipo de correção de gama seja aplicada nas suas renderizações, desde o 3ds Max até o Blender 3D é possível aplicar esse tipo de correção. Mas, qual é o efeito que essa alteração exerce sobre as renderizações. O que justifica conhecer esse tipo de correção?

Caso você se interesse pela parte técnica e teórica da computação gráfica 3d, recomendo fazer o download de um arquivo PDF com um guia sobre correção de gama, organizado por um artista chamado Martin Breidt. (primeiro tutorial da lista)

ajuste-gama-computacao-grafica-3d.jpg

O artigo explica de maneira o funcionamento e as maneiras com que os algoritmos armazenam imagens, tanto no que diz respeito aos softwares 3d e nos dispositivos de visualização. Como você vai perceber ao ler o texto e a descrição do processo no PDF, o problema com a correção de gama é que os ajustes não são lineares. Por exemplo, uma imagem que precisa ser escurecida em 50% não pode ser ajustada com valores de correção equivalentes a 0.5, mas algo próximo de 0.3.

Parece confuso? Para muitas pessoas isso é um pouco contraditório, mas o funcionamento da correção de gama pode ser melhor entendida quando as bases do seu funcionamento, que são os métodos linear e não-linear com que as imagens são armazenadas é totalmente entendido.

Se você estiver aprendendo como funciona o processo de pós-produção e ajuste das imagens, o material e mais que recomendado!

Photon Mapping aplicado na renderização em tempo real

A Siggraph 2009 só vai acontecer no segundo semestre, mas alguns dos trabalhos científicos que devem ser apresentados na conferência já estão sendo divulgados na internet. Um desses trabalhos mostra o quanto já estamos nos aproximando de ambientes que utilizam a totalidade dos recursos das GPUs, para prover ambientes com iluminação global em jogos e animações interativas. O trabalho científico intitulado “Hardware-Accelerated Global Illumination by Image Space Photon Mapping“, cujos autores são Morgan McGuire e David Luebke, mostra como é possível usar Photon Mapping em ambientes de jogos.

Caso você tenha interesse em conhecer mais sobre o estudo, o material pode ser consultado e o artigo científico produzido com a descrição do método está disponível para download no formato PDF. Esse é o tipo de referência perfeita para quem está planejando produzir algum trabalho científico, principalmente devido a descrição histórica e funcionamento dos algorítmos responsáveis pelo Photon Mapping. Além do PDF, também é possível conferir vários vídeos de demonstração.

photon-mapping-jogos-render.jpg

O método apresentado pelos autores da pesquisa tenta acelerar o processo de cálculo e interação dos ambientes com a iluminação, e se chama Image Space Photon Mapping. Segundo a descrição realizada pelos autores no artigo, as fórmulas e técnicas desenvolvidas por eles tem como objetivo acelerar o Photon Mapping, mas de maneira mais eficiente ao que já se conhecia. Todas as técnicas conhecidas hoje, resultam em simulações de iluminação que não condizem com a realidade, e geram resultados inexatos. Com o método deles, o processo é feito de maneira fiel ao processo de iluminação gerando resultados muito próximos do ideal.

A parte de hardware e descrição da simulação é muito interessante, pois os mesmos conseguiram reproduzir nos ambientes estudados uma iluminação realista em resoluções de 1920×1080, com objetos em movimento e FPS comum a maioria dos jogos.

O uso desse tipo de tecnologia mostra uma tendência que sempre comento aqui no blog, que é o uso das GPUs para exibir e facilitar o trabalho de manipulação e visualização de objetos em softwares 3D. Hoje em dia já é possível aproveitar muitos desses recursos no Blender 3D com os shaders GLSL e no 3ds Max 2010, com as opções de aceleração de hardware. Mas, para poder aproveitar todos esses recursos é necessário investir em placas de vídeo com boa capacidade de processamento, e grande quantidade de memória.

Se você quiser aproveitar todos os recursos existentes hoje, assim como os que estão para ser disponibilizados como fruto dessas pesquisas e trabalhos científicos, é interessante investir em placas de vídeo poderosas.

Ptex: Nova técnica promete abolir o mapeamento UV

O que seria o mundo da computação gráfica sem o mapeamento UV? A resposta para essa pergunta seria uma comunidade de usuários mais felizes e com tempo de sobra para trabalhar em partes dos projetos, como a melhoria da iluminação e os detalhes das animações. Quem sabe até melhorar os modelos 3d? O mapeamento UV é uma necessidade hoje, devido a sua flexibilidade em posicionar e configurar informações de texturas em praticamente qualquer lugar do modelo 3d. O problema dessa técnica é que o processo aplicado em um modelo 3d específico, não pode ser reproduzido em outras topologias, o que faz os artistas especializados em modelagem, sempre partirem do zero quando um modelo é alterado.

A parte mais complicada do processo é a configuração do modelo 3d usando os famosos Seams, que devem servir de referencia para a planificação do modelo 3d. Até mesmo para os usuários iniciantes, o processo é complicado e de difícil entendimento, pois é necessário um pouco de esforço extra para planejar a planificação do modelo 3d.

Para tentar resolver a maioria desses problemas, uma técnica inovadora desenvolvida por pesquisadores da Disney, promete abolir o uso de mapeamento UV no futuro. Essa técnica se chama Ptex, sendo quase que totalmente baseada em ferramentas de configuração automatizada.

Como funciona? Segundo a descrição dos idealizadores do Ptex, a técnica é baseada no mapeamento individual de cada face do modelo 3d, que é posteriormente agrupada em áreas delimitadoras de superfícies. Com isso é possível armazenar um arquivo em separado para as texturas, sem a necessidade de nenhum tipo de intervenção ou configuração manual. O vídeo abaixo demonstra o uso da técnica em um modelo 3d:

A técnica já está em uso em algumas das últimas produções relacionadas com animação da Disney. A mais famosa animação que já fez uso da técnica foi o Bolt, que foi exibido poucas semanas atrás nos cinemas. Segundo o próprio artigo, o processo acelerou de maneira significativa a produção, evitando que fossem necessárias várias horas de trabalho para ajustar mapeamento UV dos personagens.

Se você está interessado na parte científica da técnica, basta visitar a página com a descrição do Ptex e enviar um e-mail solicitando o texto, que os idealizadores encaminham para você o arquivo PDF. Agora é só esperar que a técnica seja avaliada e implementada na maioria dos softwares 3D. Na mesma página é possível fazer o download do vídeo que ilustra esse artigo em maior resolução, e também slides usados para apresentar o Ptex em congressos.

Klein Bottle: Superfícies que não podem ser orientadas em 3D

A computação gráfica 3d é totalmente baseada em conceitos oriundos da matemática e geometria, mas a maioria desses conceitos acaba ficando um pouco de lado para a maioria dos artistas, pois o software cuida da parte mais complicada, os cálculos, enquanto os artistas 3d acabam se concentrando apenas na parte visual. Mas, ainda assim alguns dos conceitos teóricos da geometria e matemática acabam sendo úteis para testar alguns conceitos importantes na modelagem 3d. Nas minhas aulas sobre modelagem 3d, quando estou explicando o significado das “normais” das faces em objetos 3d, geralmente solicito para os alunos a criação de alguns modelos 3d básicos, para visualizar e controlar a orientação das faces.

O objetivo do exercício é mostrar que para alguns objetos os mais caros e sofisticados softwares 3d não conseguem resolver e identificar a parte de interior e exterior dos modelos 3d. Por exemplo, um cubo apresenta de maneira bem clara, faces voltadas para a parte de dentro e também para a parte exterior do modelo 3d, quanto a isso não há dúvida.

Para as pessoas que não conhecem, apresento o objeto chamado Klein Bootle, ou Garrafa de Klein:

garrafa-klein

Esse objeto tem uma característica muito interessante, ele não possui parte de dentro ou parte de fora, as normais dele não são orientadas para o mesmo lado. Isso não pode ser resolvido por nenhum software 3d, por um simples motivo; é impossível.

Sempre que passo esse modelo 3d para os alunos, e depois solicito que orientem as normais do objeto 3d na mesma direção, a principio algumas pessoas conseguem visualizar que é impossível, mas outras pessoas percebem o fato, apenas quando o software 3d não consegue resolver a situação. Isso acontecia nas aulas de modelagem com o Blender 3D, 3ds Max e outros.

Você pode até pensar que esse tipo de conhecimento é inútil para um artista 3d, mas é importante conhecer alguns aspectos da matemática e geometria que tem aplicação visual no nosso trabalho em 3d. A garrafa de Klein é muito famosa entre estudiosos de computação gráfica teórica, inclusive é muito fácil encontrar referencias, como imagens e modelos 3d desse objeto espalhado por cenários de jogos, filmes e seriados.

Se você não conhecia o objeto, agora já sabe um pouco mais sobre esse famoso ícone da geometria e computação gráfica. Para quem quiser colocar em prática o conceito, recomendo modelar o objeto no seu software 3d preferido e tente orientar as superfícies para o mesmo lado.

klein-blender3d

Wiki sobre renderização e termos técnicos de computação gráfica

Uma coisa que é inerente a todos que estão começando a ter experiências com softwares e sistemas modelagem 3d, é a adaptação aos inúmeros termos técnicos existentes nessa área. Para dificultar um pouco mais esse processo, a maioria desses termos relacionados com a área gráfica são escritos em língua inglesa. Vejo essa dificuldade, sempre que inicio uma nova turma, com alunos muito interessados em aprender computação gráfica, mas sem conhecimento dos termos. Quando começo a falar em Ray Tracing, Shader, Topologia, Mesh, N-Gons e outros, o pessoal fica voando.

Por isso é sempre bom, encontrar referências para estudo dessa área, como uma Wiki sobre termos técnicos de usados apenas na renderização, como essa. Como o próprio nome diz, essa é uma Wiki, em que usuários adicionam um pouco do conhecimento deles, explicando os mais variados assuntos.

Por exemplo, você sabe a definição de Antialiasing? Na Wiki existe uma página inteira apenas explicando o conceito do aliasing, e como ele se dá na finalização da imagem.

Além da parte técnica, existe uma ótima lista com renderizadores externos, que podem ser utilizados por uma vasta gama de ferramentas 3d. A lista de renderizadores nem é apenas ilustrativa e não é a parte de maior destaque da Wiki. Na parte inferior do menu de navegação existe um tópico chamado “How Render Works?”, que em tradução direta seria algo assim “Como funciona o Render?”.

Esses são alguns dos tópicos abordados e explicados na Wiki:

  • Aliasing
  • Ambient Occlusion
  • Final Gathering
  • Global Illumination
  • Ray Tracing
  • Refractions
  • Volume Rendering
  • Displacement Mapping
  • Render Passes

Interessante não é? A Wiki como um todo ainda não está finalizada, mas já conta com muita informação valiosa para quem está interessado em estudar em profundidade o funcionamento das ferramentas de computação gráfica. O material será de uso obrigatório nas minhas aulas, por ser difícil encontrar referências como essa, principalmente para quem está começando na área.

Se você tem dificuldades com o inglês, recomendo usar o Google Translate para traduzir as páginas, mas use apenas para auxiliar o entendimento geral, pois a tradução não é perfeita.