domingo, 23 de maio de 2010

Brincadeiras em 3D

Hoje resolvi dar uma de" James Cameron do Uberaba" e finalizei alguns testes de imagem em 3D. Claro, como não tenho uma placa 3D Vision da nVidia (e nem pretendo ter tão cedo), brinquei com óculos anaglíficos (o com lente vermelha e azul). Claro, o resultado ficou bem longe de um Avatar ou Alice, mas para algo feito sem maiores compromissos e usando uma câmera digital normal, ficou mais do que bom. Se tiver um desses óculos em casa (ou empenho em fazer um), pode testar na imagem abaixo.


O interessante é que não importa a técnica usada na visualização (no meu caso, os óculos anaglíficos), a captura da imagem 3D é a mesma. Então, essa técnica também serve para gerar conteúdo para as placas 3D Vision ou TVs 3D que vão começar a pipocar no mercado logo, logo. Por isso o meu interesse na técnica e, quem sabe, na aquisição de 2 webcams xing ling para fazer vídeos teste. Inclusive o próprio You Tube tem suporte a vídeo 3D, convertendo na hora para o seu método de visualização. Tem uma explicação bem completa de como funciona imagem 3D aqui, então evito repetir o que já tem em outro lugar.

O mais difícil é acertar a(s) câmera(s) para simular o olho humano. Disso depende o que está sendo focado, a distância, etc. O macete é simular a convergência dos olhos em um objeto de interesse (se você testou com õculos a foto, percebeu que tem que focar para ver o efeito 3D). Assim, não basta distanciar uma lente da outra, é preciso também fazer com que uma delas cruze o foco de visão da outra no ponto em que queremos focar.

Gerar a imagem 3D final é fácil, basta aplicar uma máscara ciano na imagem da direita, e uma vermelha na imagem da esquerda. Tem um plugin do Gimp que faz isso direto, que eu usei no teste acima. O mais chato foi acertar o óculos em si. Tem vários templates disponíveis, eu peguei o do The Paper Project e imprimi em sulfite 120g/m². O difícil é que ninguém explica direito de que o celofane colorido tem que bloquear por completo uma das imagens filtradas. Tive que colocar três pedaços de celofane vermelho para conseguir bloquear o ciano, além de dois azuis para bloquear o vermelho. Fica a dica para quem quiser tentar: no Paper Project tem uma explicação da composição, é só usar essas imagens para ver se o celofane (ou várias camadas) dão o efeito desejado.

Agora tem que descobrir um programa de Linux que suporte mais de uma webcam :).

3 comentários:

Eduardo disse...

Que legal hein Paulo, o bom é que se você forçar um pouquinho a barra dá pra dizer que você estava fazendo isso por causa do trabalho ;-)

Christian disse...

muito bom ! ja andei pesquisando sobre imagens anaglificas, inclusive andei brincando com a OpenCV para fazer um programa que converte duas imagens em uma com os filtros. Disso para duas webcams é tranquilo. E o melhor é que é multiplataforma. Fica ai a dica.

PV disse...

Eduardo, você conhece chefe de pesquisa tipo Sabourin, a gente até pode contar uma dessas, mas é aquele negócio, a gente faz de conta que é verdade, e o cara finge que acredita pra não criar caso :).

Christian, já mexi com OpenCV, mas não sabia que ela gerava imagens anaglíficas. Agora fiquei pensando, que é relativamente simples de fazer um programa com 3D assim. Acho que vou fazer um mod da Chien2D para exibir mapas em camadas usando 3D anaglífico :P.