Análise do novo sistema de Raytracing do Blender 3D 2.50

Entre os diversos projetos que estão sendo desenvolvidos para o Blender 2.50 no Google Summer of Code 2009, um deles tem como objetivo melhorar o sistema de Raytracing do Blender, para tornar o processo de renderização mais rápido e eficiente. Esse é um dos projetos que tem grandes chances de ser concretizado, pois o responsável por ele é o mesmo que desenvolveu o modificador ShrinkWrap, também para o SoC em 2008. O simples fato de existir um projeto aprovado não é garantia de conclusão, como é o caso da integração entre o Blender 3D e o Freestyle para gerar imagens usando NPR. O projeto ainda está em desenvolvimento, mas em ritmo bem mais lento que no período em que o SoC 2008 estava acontecendo.

A evolução no sistema de melhorias do Raytracing está tão adiantada que já é possível inclusive fazer testes com versões experimentais do Blender 3D. Como não faz sentido algum desenvolver o projeto usando o núcleo do Blender 2.49, o material está usando o que existe do 2.50. Para mostrar a evolução e rapidez do novo sistema, fiz o download da versão experimental do Blender 3D e gravei uma pequena demonstração:

Blender 3D – Melhorias no Raytracing para o 2.50 from Allan Brito on Vimeo.

Para testar o render, a cena usada foi extremamente simples e tinha como objetivo apenas fazer a comparação entre o tempo de render no Blender 2.49 e no 2.50. Como o objetivo é avaliar a velocidade do render, acionei o Ambient Occlusion no Blender e acionei a renderização. No Blender 2.49 o tempo total de render foi de 25 segundos aproximadamente.

Quando mudei para o Blender 2.50, foi necessário abrir a cena que havia sido criada no Blender 2.49. Como você vai perceber, se decidir usar essa versão de testes do 2.50, ainda não é possível modelar no Blender 2.50 mas, essa limitação pode ser vencida abrindo os modelos 3d criados em outras versões do Blender. Só devo alertar que é muito perigoso abrir modelos 3d importantes nessa versão, pois existe um risco muito grande de alterar os dados do arquivo, fazendo com que o modelo fique incompatível com versões estáveis do software. Portanto, só use modelos que tenham cópias de segurança.

Já no Blender 2.50 foram usadas as mesmas configurações e ajustes de render, e para a surpresa do teste foi que a mesma cena foi gerada em menos de 10 segundos. Se considerarmos que essa é uma versão de testes, sem nenhum tipo de otimização ou ajuste para o render e com o software ainda inacabado, podemos concluir que as melhorias no Raytracing estão no caminho certo!

A versão do Blender 2.50 que usei para o tutorial pode ser copiada nesse endereço, apenas com opção para Windows.

Blender 3D: Projetos aprovados para o Google Summer of Code 2009

Como você já deve estar sabendo, caso acompanhe as notícias aqui do blog, o Google Summer of Code 2009 estava para anunciar os projetos aceitos, para receber patrocínio do programa de incentivo ao desenvolvimento de softwares abertos do Google. O projeto funciona assim, um estudante faz uma proposta de projeto, visando desenvolver ou melhorar um software de código aberto, indicando um orientador mais experiente para o projeto, e o Google recompensa a realização do projeto com pagamentos em dinheiro. Claro que o projeto é realizado no período de férias no hemisfério norte, por isso se chama Summer of Code.

Essa semana o Google anunciou a lista com os projetos aceitos para cada um dos softwares e estudantes cadastrados, e assim como acontece em todos os anos o Blender 3D teve uma ótima participação, com seis projetos aprovados! Para conferir a lista oficial com as indicações dos estudantes e orientadores, visite o web site oficial do SoC 2009.

Quais foram os projetos aprovados para o Blender 3D? Quais impactos eles podem trazer em futuras versões?

SoC 2008

Esse ano a lista de projetos aprovados é a seguinte, os títulos foram traduzidos:

  • Melhorias no sistema de Raytracing
  • Reformulação do NLA para o Blender 2.50
  • Melhoria no suporte ao formato COLLADA
  • Pintura de luzes com Spherical Harmonics
  • Implementação de uma API para importação e exportação com Python
  • Melhorias na renderização em tempo real com OpenGL

Como você pode perceber, não existe nenhum projeto direcionado para modelagem 3d e criação, mas muitos direcionados para render e visualização. Um dos que pode trazer benefícios indiretos para o Blender, é o projeto que envolve a pintura de luzes com Spherical Harmonics. Em resumo, o projeto pretende criar no Blender 3D uma interface para pintar modelos 3d alterar imagens HDRI com base nessa pintura. Se esse projeto for concluído, muitos artistas que usam plataformas como 3ds Max, Maya, Cinema 4D e outros softwares deve começar a usar o Blender para esse propósito.

Todos os projetos devem deixar o Blender mais robusto e melhor de trabalhar. Com mais flexibilidade para importar e exportar modelos 3d, renderizar com Raytracing e visualizar cenas na 3D View com recursos da GPU, o Blender fica mais amigável e melhor visto por profissionais de computação gráfica 3D.

Agora precisamos ficar torcendo para que os estudantes consigam finalizar os seus projetos, pois o fato de ter sido aceito não significa que o mesmo será concluído. Hoje mesmo, ainda existem projetos remanescentes de 2008 que ainda não foram finalizados.

O Blender 3D não foi o único software aberto relacionado com computação gráfica com projetos aprovados, ainda foram listados na página do SoC 2009 projetos envolvendo GIMP, Inkscape, Scribus e Aqsis.

Blender 3D e o projeto GSOC 2009: Quais ferramentas podem surgir?

O projeto Google Summer of Code 2009 já está com suas inscrições abertas e o Blender 3D, assim como outros projetos de softwares abertos já começam a reunir idéias e projetos na sua comunidade de usuários, para submeter ao programa. Mas, o que é o Google Summer of Code? Essa é uma iniciativa do Google para promover a melhoria e desenvolvimento de novos recursos entre os diversos softwares de código aberto, em que estudantes de informática das universidades localizadas no hemisfério norte, que no meio do ano estão de férias, possam trabalhar nesse período no desenvolvimento de ferramentas e melhorias para projetos como o Blender.

Nos últimos anos o Google Summer of Code já trouxe inúmeras ferramentas e benefícios para o Blender, como os modificadores Bevel, ShrinkWrap e outros. O fato de m projeto ser aceito não é garantia que o mesmo seja finalizado dentro do prazo. Por exemplo, no ano passado tivemos um projeto que pretendia integrar o Blender com o Renderizador Freestyle, para criar imagens estilizadas. Apesar dos avanços feitos pelo autor do projeto, o mesmo ainda está em desenvolvimento e não há data para que seja finalizado.

Para conhecer a lista de projetos e idéias que podem ser submetidas para o SoC 2009, visite esse endereço na Wiki do Blender 3D.

Existe algum projeto que se destaca na lista? Na verdade, todos os projetos propostos são interessantes e podem ajudar em muito no uso de produção de conteúdo com o Blender 3D. Mas, a meu ver podemos destacar alguns deles, pois a sua implementação pode trazer algumas mudanças na maneira com que trabalhamos no software. Repare nos projetos que envolvem o uso de Nodes. Entre os projetos, podemos encontrar um deles que propõe o uso de sistemas de modelagem e modificadores baseados em Nodes, o que deixaria o Blender 3D muito parecido com o Houdini em termos de modelagem. Outro projeto que pode trazer a possibilidade de expandir as funções dos nós com o uso de scripts em Python.

Como é que isso pode mudar a maneira de trabalhar com o Blender? Para ter uma idéia de como funciona a modelagem no Houdini, veja o vídeo abaixo que é um exemplo de como os nós se relacionam com o processo de modelagem.

Se o projeto do SoC for aprovado e concluído, esse pode ser o futuro da modelagem 3d no Blender 3D. O único problema é que esse tipo de recurso requer conhecimentos avançados e pode dar muito trabalho, para a pessoa que se dispuser a enfrentar o projeto. Repare no vídeo que o artista usa ao mesmo tempo o espaço 3d para modelar, e ao mesmo tempo que os objetos são modelados e transformados, a janela em que são exibidos os nós, recebem a nova estrutura. Por exemplo, ao aplicar um simples extrude ao modelo 3d, um nó correspondente ao extrude é adicionado a janela. Ficou curioso com a demonstração? A segunda parte do tutorial pode ser conferia aqui.

Outro ponto interessante sobre o projeto, algumas das idéias já envolvem melhorias para o Blender 2.50. Mas, as outras idéias listadas na página não fazem menção de como as ferramentas desenvolvidas podem ser incorporadas ao que já está pronto no Blender 2.50. Como será que esses projetos devem se relacionar com o futuro Blender 2.49 e o Blender 2.50? Ainda é cedo para dizer, agora só nos resta esperar até o dia 3 de Abril, quando a submissão de projetos é encerrada.