60 dicas para acelerar a renderização

A velocidade com que determinado software pode gerar imagens renderizadas é fator fundamental para a finalização de qualquer projeto, principalmente quando o objetivo do mesmo é a criação de uma animação. Mas, uma coisa que poucos artistas acabam percebendo é que a velocidade do render é determinada pelo conjunto de ferramentas disponíveis e diversos comportamentos e características da cena. Portanto, uma mesma cena configurada por dois artistas diferentes em softwares como o V-Ray podem acabar tendo tempos de render distintos, devido a diferenças nas configurações dos parâmetros do renderizador.

Além desses parâmetros, ainda existem características dos modelos 3d e texturas que podem influenciar negativamente no tempo de render. Se você nunca atentou para essas características das suas cenas, um usuário dos fóruns da CG Society publicou uma lista com diversas dicas para acelerar a renderização.

test01

As dicas são genéricas e podem ser aplicadas em praticamente qualquer renderizador ou software. Por exemplo, entre essas dicas encontramos algo semelhante ao que é usado em design de jogos que é o level of detail, também conhecido como LOD. Nessa técnica usamos modelos 3d com grandes quantidades de polígonos apenas em regiões próximas da câmera. A medida que os objetos são posicionados de maneira mais afastada da câmera, a quantidade de polígonos e detalhes é reduzida progressivamente. Isso ajuda a acelerar o processamento da cena e não prejudica a qualidade da visualização.

Outra dica interessante está na resolução das texturas usadas para o projeto, que devem ter tamanho proporcional a resolução desejada para a imagem final. Por exemplo, em projetos que pretendem gerar imagens com resolução mediada na casa dos 1200 pixels, o ideal é usar texturas que tenham aproximadamente essa mesma resolução. Se for o caso, as texturas podem ser substituídas por outras em maior resolução para gerar imagens maiores.

Essas são apenas duas das dicas existentes na lista publicada no fórum. Caso você já tenha se preocupado com a velocidade do render nos seus projetos, a resposta para acelerar a geração das imagens pode estar nessa lista. Claro que o conhecimento dos parâmetros do software usado ajudam, mas pequenos truques como esse da qualidade dos modelos 3d e resolução dos polígonos também ajuda.

Memória insuficiente no mental ray?

O uso de computadores cada vez mais rápidos e sistemas com grande capacidade computacional acabou deixando boa parte dos artistas 3d, que tem acesso a equipamentos e computadores poderosos, mais animados em tentar renderizar cenas complexas. Muitos desses artistas acabam escolhendo softwares para renderizar seus projetos como o mental ray, reconhecidamente um dos melhores renderizadores. Ele é conhecido pela qualidade com que é capaz de gerar imagens, e também pela dificuldade em dominar todos os seus parâmetros de configuração e ajustes. Motivo esse que faz com que muitos artistas 3d abandonem o software, mesmo acompanhando de maneira gratuita o 3dsmax, para usar o V-Ray.

Mas, mesmo com todo esse poder de processamento nas mão e o mental ray preparado para gerar imagens complexas, alguns artistas acabam encontrando mensagens de erro estranhas quando renderizam seus projetos. Uma das mais intrigantes é o aviso de memória insuficiente, mesmo com o computador estando livre de outros softwares e usando sistemas de 64-bits com mais de 4GB de RAM. O que é isso? Como resolver esses erros de memória?

erro-mental-ray.jpg

Esses erros podem ter diversas origens e os sinais podem ser identificados com o console de erros do mental ray. Caso você esteja passando por essa situação, esse artigo com soluções para erros no mental ray pode trazer alguma luz ao seu problema.

Muitos dos casos listados no artigo tem solução e envolvem modificações nos ajustes da cena e também nos modelos 3d. O primeiro erro abordado pelo autor do artigo são os de proxy. Esse tipo de erro mostra uma mensagem característica no console de erros do mental ray. A correção é simples e envolve a alteração do tipo de aceleração usada no ray tracing para BSP2, quando o normal é usar BSP. O que é esse BSP? Esse é um acrônimo para Binary Spacing Partitioning. É a técnica usada no mental ray para dividir a cena em áreas menores, para facilitar a análise no processo de ray tracing.

Com o BSP2 apresentado junto com o 3dsmax 2009, a capacidade e velocidade desse processo foi melhorado, fazendo com que a ocorrência de erros seja menor. Se você quiser saber mais sobre a otimização de ray tracing com o mental ray, visite o endereço indicado. Depois de ajustar a aceleração do ray tracing, ainda é recomendado otimizar o uso de proxies na cena e reduzir a quantidade de polígonos.

Outro erro comentado pelo artigo são os relacionados com o uso de mapas de displacement, que podem ser facilmente detectados.

No final do texto temos uma dica final do autor para resolver a maioria dos projetos que apresentam problemas de memória, e acabam abortando o processo. Isso é feito na configuração do render, habilitando a opção “use fast rasterizer”. Para os usuários do mental ray, o artigo é mais que recomendado!

18 horas de vídeos completos sobre teoria da computação gráfica 3d

Sempre que uma pessoa me pergunta os passos necessários para estudar mais a fundo os conceitos de computação gráfica, repondo com a seguinte pergunta “você gosta de matemática?”. Sim, para a infelicidade da maioria das pessoas que não gosta muito de números, trabalhar com conceitos avançados de computação gráfica, principalmente na personalização das ferramentas envolve boa dose de matemática, principalmente na parte de modelagem 3d e manipulação de vértices. Se você já tem facilidade com números, a parte lógica da programação em Python, MAXScript, MEL ou até mesmo em C não deve ser muito complicada para você.

Caso você tenha interesse, principalmente as pessoas que estão fazendo faculdade e procuram assuntos para escrever monografias ou trabalhos de conclusão, com estudos mais aprofundados sobre computação gráfica teórica, encontrei uma série de vídeos que podem ser de grande ajuda. Um professor da Universidade de Utrecht na Holanda, chamado Wolfgang Hürst, gravou e disponibilizou uma série de aulas que ele fala sobre computação gráfica.

É a parte teórica mesmo! Não espere encontrar nos vídeos, tutoriais ou dicas sobre como é possível criar modelos 3d com ferramentas como extrude, mas sim a maneira com que o extrude funciona, assim como as fórmulas e algoritmos que regem essas ferramentas.

No total são 24 vídeos, com aproximadamente 50 minutos cada um, o que corresponde a exatamente o tempo de uma aula em ambientes universitários. Portanto, se você sempre teve curiosidade para saber como é que uma aula sobre computação gráfica era ministrada, em ambientes universitários era ministrada, essa é a sua chance.

O material está todo em língua inglesa, mas se o seu objetivo é estudar e você está fazendo uma faculdade, isso faz parte da pesquisa para preparar uma boa monografia ou artigo científico. Para acessar a coleção completa, visite esse link que leva a lista de vídeos.

Essa é uma pequena lista com os temas abordados nos vídeos:

  1. Introdução
  2. Conceitos básicos de Ray tracing
  3. Vetores e curvas
  4. Curvas, superfíces e sombreamento
  5. Matrizes
  6. Transformações lineares
  7. Projeção de perspectivas
  8. Exclusão de superfícies ocultas
  9. Rasterização de triângulos e sombreamento
  10. Ray Tracing
  11. Mapeamento de texturas
  12. Radiosidade
  13. Sombras
  14. Processamento completo de gráficos

Como você pode perceber, os assuntos abordados nos tutoriais são diversos e são uma excelente aula sobre o funcionamento dos softwares 3d. Essa é a base fundamental na qual todos eles funcionam!

Quer ter uma idéia de como é organizado o conteúdo? Esse é o vídeo com a primeira aula, sendo apenas uma introdução ao módulo completo de computação gráfica.


Computer Graphics 2008, Lect. 1(1) – Organization and introduction from Wolfgang Hürst on Vimeo.

O slide título é bem sugestivo, pois o professor Hürst usa o Big Buck Bunny como exemplo, para demonstrar alguns dos conceitos de computação gráfica.

Já assisti a maioria dos vídeos, e recomendo a todos com interesse em aprender mais sobre computação gráfica.

Como funciona o processo de Ray tracing e Photon Mapping?

Depois de algum tempo usando ferramentas gráficas, principalmente com tanta freqüência como eu uso, seria normal que me interessasse pelos mecanismos que fazem as coisas acontecerem. Principalmente no meu caso, em que preciso ministrar aulas sobre esses softwares, explicar a função de um botão é fácil. Mas contextualizar a lógica matemática e códigos por trás dele é mais complicado. Apesar de vários artistas 3d, torcerem o nariz para esse tipo de explicação, conhecer a fundo o código fonte desses processos pode ajudar, na personalização de ferramentas.

Sendo o Blender, uma ferramenta que disponibiliza o código fonte, para qualquer pessoa consultar e eventualmente alterar. Seria utópico, imaginar que alguém sem experiência em programação iria abrir o código fonte do Blender e automaticamente, entender e alterar as suas funcionalidades.

Mas, para quem está interessado em aprender ou ter um conhecimento básico, sobre como funcionam processos como o Ray tracing, e até mesmo programar um protótipo de software, usando a base matemática do Ray tracing, existe o processing.

Recebo várias mensagens de estudantes que gostariam de usar o Blender, como tema para os seus trabalhos de graduação. Como alguns desses alunos, tinham dificuldades em identificar e usar códigos escritos em C. Para facilitar a vida desses alunos, estava pesquisando por algo mais simples e que pudesse ser usado para fins de pesquisa, foi quando encontrei o processing, que é uma linguagem e ambiente de desenvolvimento, direcionada para artistas e pessoas sem experiência com programação. Não entendeu? Pois visite esse exemplo, em que um estudante chamado Grant Schindler.

Processing - Cornell Box

Ele conseguiu recriar um ambiente interativo, usando um Cornell Box com um ponto de luz e duas esferas. O ambiente é uma simulação interativa, então é possível alterar em tempo real a posição das esferas e do ponto de luz. E por incrível que pareça, a renderização é muito rápida! Tudo isso com apenas 150 linhas de código. Esse sistema ganhou mais um usuário, Ray tracing com photon mapping em 150 linhas? Ainda mais com possibilidade de interação em tempo real? Já estou com o processing aqui, que por sinal é de código aberto. Ele é gratuito!

Aproveite o trabalho do Grant Schindler, para estudar o código fonte, que está comentado e organizado, para aprender como funciona um sistema de Ray tracing com photon mapping simplificado.

Esse é um ótimo exemplo de trabalho acadêmico, realizado com o processing. O estudante usou um artigo científico como base, para implementar o sistema. As possibilidades na simulação 3d em tempo real são muito boas, sem mencionar os usos acadêmicos. Já estou estudando a ferramenta/linguagem e assim que for possível, publico um tutorial.

Quero aproveitar o artigo, para agradecer aos estudantes que usaram o livro Blender 3d – Guia do Usuário em seus trabalhos científicos com Blender. Se você está nessa situação, gostaria de pedir que me informasse sobre a referência ao livro ou ao site. Assim posso adicionar as informações no meu currículo Lattes. Quem trabalha com pesquisa, sabe o quanto esse tipo de referência é importante.