Simulações físicas em render acelerado por GPU

Como o assunto de renderização por GPU pode ser estranho para a maioria dos artistas 3d, envolvidos apenas com a modelagem e visualização de objetos, vou passar a publicar mais material sobre as pesquisas e desenvolvimentos nessa área. Isso envolve a área de desenvolvimento e criação de jogos, que é um grande mercado aqui no Brasil com muitas oportunidades. Entre as principais frentes de pesquisa hoje tempos o time das empresas que desenvolvem suas Engines como é o caso da Crytek, Unity e outras. O outro lado dessa pesquisa envolve o uso de tecnologias próprias da NVidia ou ATI.

Se você é estudante universitário e pretende desenvolver o seu TCC ou monografia em computação gráfica, recomendo ler esse artigo recém publicado pelo Dr. Mattias Müller-Fischer que descreve como criar dobras em tecidos. O que tem de mais nesse artigo? Bem, o tecido está sendo deformado em tempo real com a ajuda de uma GPU. Os modelos de simulação de roupas que usamos em softwares de animação trabalham com processamento prévio das deformações.

Depois que rodamos a simulação uma vez, os keyframes ficam armazenados no software e a animação é executada de maneira linear. O método apresentado pelo Dr. Müller trata o tecido em tempo de execução, o que é muito mais complexo.

simulacao-tecido-deforma-gpu-wireframe.jpg

No link é possível fazer o download do artigo em PDF e um vídeo de demonstração. Confesso que não consegui copiar o vídeo, pois o link é muito lento.

Será que essas simulações físicas com GPUs são boas mesmo? Se você ainda tem dúvidas da qualidade desse tipo de simulação, encontrei um vídeo que pode fazer você mudar de idéia. Um usuário criou uma simulação com a Unreal Development Kit (UDK), aproveitando a Unreal Engine 3 para criar uma animação com Rigid Body Dynamics. Ele empilhou 25.000 barris que ganharam uma altitude de 15.000 pés (4.572 metros)!

O resultado? O vídeo abaixo mostra bem:

A simulação com o Rigid Body Dynamics é fluida e não é possível perceber atrasos ou travamentos nas colisões dos objetos. Só para lembrar, esse vídeo é a simulação de um jogo com interação entre os objetos sendo calculada e renderizada em tempo real.

Preciso trocar a minha GPU. Só estou com 112 núcleos. Acho que está ficando pouco. Se você quiser comprar uma nova placa de vídeo, recomendo a GeForce GTX 480. Mas, prepare o bolso.

Estudo sobre deformações em topologia de objetos 3D

A Siggraph 2009 ainda está alguns meses distantes, mas alguns estudos e artigos científicos com pesquisas e avanços na área de algoritmos e softwares para simulações e animações 3d já começam a aparecer. Um desses artigos é intitulado Deforming Meshes that Split and Merge. O artigo é fruto do trabalho de pesquisadores do Instituto de Tecnologia da Georgia (EUA) e promete grande evolução na animação em que objetos com corpos maleáveis realizam colisões e se fundem. Esse é um movimento relativamente simples e comum no mundo real, mas em 3d pode se transformar num grande problema.

Imagine a seguinte situação, dois objetos em 3d configurados para se comportar como um Soft Body ou até mesmo líquidos, estão em trajetória de colisão. Como fazer para que o objeto resultante da colisão obtenha a dinâmica e formas condizentes com a natureza flexível do objeto, e ao mesmo tempo cuidar da animação? É a solução para esse tipo de problema que o artigo se propõe.

Caso ainda não tenha ficado claro o objetivo do trabalho dos autores, o vídeo abaixo é uma demonstração do que pode ser realizado com o uso da pesquisa.

Para fazer o download do Deforming Meshes that Split and Merge, visite esse endereço e faça o download do artigo em PDF e um vídeo de demonstração.

A descrição do trabalho é bem clara no objetivo do procedimento, que é rastrear as alterações na topologia dos objetos. O próprio artigo faz referência ao método de rastreamento usado no estudo que é baseado na mecânica de Langrange para resolver os problemas de topologia. Se você tem interesse pela parte teórica da computação gráfica, ou gostaria apenas de conhecer um pouco mais das bases que criam esse tipo de animação, recomendo uma visita ao link da mecânica de Langrange.

Esse modelo tem várias aplicações em simulações de fluidos e líquidos, tanto na área de pesquisa para engenharia como na computação gráfica também.

O artigo ainda será apresentado na Siggraph e nada garante que o material esteja presente em softwares 3d comerciais, mas é interessante acompanhar esse tipo de estudo. O material é uma excelente referência, principalmente pelas indicações de bibliografia tão úteis e necessárias em pesquisas acadêmicas. Como sempre recebo esse tipo de pedido pelo formulário de contato, ai está uma ótima dica para os estudantes que gostariam de abordar Computação Gráfica no TCC!

Introdução ao mapeamento de texturas para modelos 3D

O projeto Guerrilla CG lançou mais um vídeo para continuar com o seu projeto de apresentar as diversas técnicas e aspectos da computação gráfica para iniciantes. Para as pessoas que ainda não conhecem o projeto, o Guerrilla CG é uma iniciativa para prover treinamento e material educacional para artistas iniciantes, sempre com vídeos produzidos por pessoas e profissionais de renome na área da computação gráfica. O tema do vídeo lançado essa semana foi o mapeamento de texturas UV. Já comentei várias vezes aqui no Blog que essa é uma técnica de conhecimento obrigatório para qualquer artista 3d, pois todos os softwares e soluções de visualização usam esse tipo de informação para associar texturas em modelos 3d.

Caso você queira assistir ao vídeo que mostra uma introdução ao mapeamento de texturas UV, visite esse link.

tutorial-mapeamento-uv.jpg

A técnica é um pouco complicada de assimilar, pois é necessário ter a visão espacial bem desenvolvida e treinada para conseguir planejar o procedimento. Essa é uma das maiores causas de problemas com o mapeamento de texturas nas minhas aulas de introdução a modelagem 3d, pois os artistas que estão começando a trabalhar com modelagem 3d ainda não conseguem visualizar de maneira precisa o próprio modelo, ainda mais a malha aberta.

O procedimento para realizar o mapeamento de texturas UV é bem parecido em todos os softwares 3d, e consiste na seqüência de passos descritas abaixo:

  1. O modelo 3d deve ter algumas arestas marcadas como seams, que servem de referência para o procedimento.
  2. Com base na marcação dos seams, o modelo 3d deve ser planificado. Todas as faces do objeto 3d devem ser posicionadas apenas em um plano. Essa é a parte mais delicada do processo, pois um objeto 3d deve ser transformado em 2d.
  3. Quando o modelo 3d estiver planificado, a malha resultante desse processo deve ser exportada para um formato de imagem como TGA ou PNG.
  4. A textura deve ser pintada em algum editor de imagens como o Photoshop ou GIMP.
  5. O mapa resultante é aplicado novamente ao objeto como uma textura.

Simples, não é? A parte inicial do processo é a mais complicada e pode gerar um pouco de dificuldade na organização do modelo planificado, mas depois as coisas ficam mais fáceis. Se você não conhecia a técnica ou está começando a trabalhar com computação gráfica 3d agora,

Vídeo explicando sistemas de rotação para animação (Euler e Quarternions)

O projeto guerrillacg voltou a plublicar vídeos no seu web site com demonstrações e tutoriais relacionados aos assuntos relevantes de animação 3d e modelagem. Depois de um início empolgante, o pessoa do projeto diminuiu um pouco o ritmo, mas agora ao que parece a produção e publicação dos vídeos voltou a acontecer! Mas, o que é esse projeto? O guerrillacg é um projeto que tem como objetivo oferecer vídeos explicativos, sobre os aspectos mais importantes do trabalho na computação gráfica 3d, seja ele como animação ou modelagem. Todos os vídeos do projeto podem ser assistidos de maneira gratuita e agora existe até um canal no Vimeo, que permite assistir os tutoriais mesmo com o web site fora do ar.

Se você for usuário registrado no Vimeo, pode até mesmo fazer o download dos vídeos em resolução SD (640×480). O link para download está sempre no canto inferior direito da página, mas só aparece para oso usuários registrados.

Na semana passada foram lançados dois vídeos, um sobre os problemas nas rotações em animação e outro sobre subdivisão de superfícies. Hoje mostro o vídeo sobre rotações, por ser um assunto de suma importância para qualquer pessoa interessada em animação e que não é abordado com freqüência em tutoriais e artigos. Esse problema já foi abordado aqui no blog algumas vezes e se chama Gimbal Lock.

Qual o problema? Para responder à pergunta, assista ao tutorial:


The Rotation Problem from The Guerrilla CG Project on Vimeo.

No vídeo, temos a descrição dos dois principais sistemas de animação usados por softwares 3d para calcular rotações, que são o Euler e Quarternion.

O tutorial mostra que o software 3d usa códigos matemáticos para resolver o movimento dos objetos em animação, o que pode gerar alguns movimentos exóticos nos objetos. Por exemplo, ao criar uma animação simples com apenas dois keyframes, o software pode interpolar uma linha reta como sendo uma curva. Isso acontece devido a maneira com que as curvas são geradas para determinar o movimento do personagem ou objeto.

Esse tipo de problema acontece quando as rotações usando o sistema Euler são usadas. No caso do quarternion, os problemas são menores mas as curvas e controles que os animadores tanto adoram não existem nesse sistema. Por isso, a maioria das pessoas ainda prefere trabalhar com rotações usando Euler, mesmo com os possíveis problemas nas rotações.

Para quem nunca trabalhou mesmo com animações, esse tipo de problema pode ser até complicado de entender, mas basta começar um projeto que demande mais movimentos e rotações em animação que logo eles aparecem. Isso não é exclusividade de softwares proprietários como o Maya ou 3ds Max, mas de todos eles! Até mesmo o Blender 3D.

Por isso é tão importante conhecer esse tipo de problema e as técnicas de correção no editor de curvas do seu software de animação, pois na maioria dos casos esses problemas podem ser corrigidos com o ajuste dessas curvas.

Ainda essa semana, comento sobre o segundo vídeo do guerrillacg sobre suavização de superfícies. Para saber mais sobre o projeto, recomendo uma visita ao guerilla cg.

Qual a melhor versão de software 3d para começar a estudar?

Dentre a maioria dos e-mails que recebo aqui do blog, com dúvidas sobre softwares 3d, uma pergunta tem aparecido com mais e mais freqüência na minha caixa de entrada. Pelo que parece, essa dúvida foi motivada pelos recentes artigos que publiquei aqui no Blog, com a nova interface do Blender 3D, que está sendo planejada para a versão 2.50 do software. As dúvidas estão relacionadas à facilidade com que será possível migrar de softwares, com mudanças tão drásticas na interface dos mesmos. Por exemplo, vale à pena estudar Blender 3D agora com essa mudança na interface, planejada para as próximas versões?

Antes de responder a essa pergunta, me permitam explicar que isso é muito relativo e está diretamente ligado com o seu objetivo em aprender um software 3d.

Uma coisa que muita gente ainda acredita ser verdadeira, é que a maioria das empresas que trabalha com softwares 3d, sempre utiliza as últimas versões dos softwares. Isso é uma ilusão, pois a maioria das empresas está interessada mesmo em produzir conteúdos, como animações e imagens. A parte do software é o meio apenas.

Ainda conheço alguns artistas que usam o 3ds Max 8 como software, pelo simples fato dessa versão atender a todas as suas necessidades criativas.

Sem mencionar o fato de uma atualização de software, principalmente no que se refere a ferramentas 3d, demandar uma atualização de hardware também.

No caso do Blender 3d as coisas são um pouco mais complicadas, pois é muito fácil atualizar o software. Já que ele é totalmente gratuito, basta visitar o web site e fazer o download.

O que você precisa entender ao estudar esse tipo de software é a função de cada ferramenta, para poder se adaptar a qualquer software. O botão extrude está presente em softwares como o Blender 3D, 3ds Max, LightWave, Maya, Softimage e Cinema 4D. Mesmo não tendo usado nenhuma dessas ferramentas, sabendo o que faz o extrude, você saberá quando e como usar ele. Esse é o segredo!

Quando um dos meus alunos me fala que recusou uma proposta de emprego, por não conhecer o software que a empresa usa, eu geralmente digo a ele que em tom de sermão, que esse tipo de oportunidade não se perde por conhecimento de software. Você pode muito bem se adaptar a qualquer software 3d, contanto que a parte básica dos softwares 3d esteja bem fundamentada.

A moral da história? Pode estudar qualquer software hoje mesmo, e não se preocupe com as atualizações, elas são inevitáveis, mas é o seu conhecimento dos fundamentos da computação gráfica 3d que devem determinar a facilidade com que a adaptação, a novas interfaces e softwares será realizada.