Jogos em Blender no iDome

English version: Blender games in the iDome

Implementação por Dalai Felinto: dfelinto@yahoo.com
Suportado pela SAT (Society for Arts and Technology) através do SAT Metalab immersion research program.

Contribuição de códigos-fonte e testes por Paul Bourke
Abril 2009

Veja também: Unity Game engine and the iDome

E também: Apresentação de slides por Dalai Felinto na Che Blender - a Primeira Conferência de Blender na Argentina.


Este documento serve de suporte ao uso de projeções fisheye [olho de peixe] e warped fisheye [olho de peixe com deformação] na engine interativa do Blender (Blender Game Engine). Apesar dos exemplos mostrados aqui utilizarem um iDome, a técnica é acessível à qualquer superfície orientada semi-esférica, incluindo o tradicional domo encontrado em planetários. O suporte foi incluído na última atualização do Blender, na versão 2.49. O método empregado utiliza um algoritmo para processamento da textura em múltiplos passos como descrito aqui. Em resumo isso envolve renderizar a cena 4 vezes e colocar cada uma das imagens em uma malha desenhada especialmente de modo que, quando visto de uma câmera ortográfica, resulte em uma projeção fisheye. Para se obter uma projeção fulldome [de domo completo] usando um espelho esférico ao invés de lentes olho de peixe, se utiliza um método de deformação de imagem como o descrito aqui. A implementação em Blender suporta diretamente projeção fisheye (para projetores com lente olho de peixe) assim como sistemas que requeiram mapas de deformação (warped fisheye images). A solução através de mapas de deformação foi desenvolvida para suportar sistemas baseados em espelhos esféricos (ilustrado ao longo desta página), sistemas truncados, e suporte para lentes olho de peixe de função radial não linear.


Modelo cortesia de Mike Pan.

Apesar das imagens no iDome parecerem distorcidas, este é um efeito da posição (incorreta) da câmera. Quando se senta no meio da semi-esfera a cena parece natural, ou seja, todas as linhas retas se parecem retas. É por isso que em ambientes de projeção estereoscópica ou imersiva as imagens só são consideradas corretas à partir de um único e específico ponto de observação.

Na maior parte dos programas que suportam espelhos esféricos, primeiramente cria-se uma imagem fisheye através de algoritmos próprios. Esta imagem é então mapeada de acordo com uma malha desenhada especificamente para a instalação em particular. Desta maneira, uma vez criada a malha de distorção para um equipamento, esta pode ser usada por qualquer programa que a suporte. É importante lembrar que o programa não precisa, portanto, ser configurado de acordo com as particularidades de uma dada instalação. Isso é exatamente o papel da malha de deformação, independente do programa interativo usado. A implementação em Blender não é diferente. A primeira imagem abaixo mostra uma grade polar (deformada) sobreposta a uma imagem fisheye também deformada. Uma vez projetada, a imagem resultante no domo surge sem quaisquer distorções ou deformações aparentes.

Exemplo 2

Projeto de Habitação Popular: Este é um projeto acadêa desenvolvido no curso de arquitetura e urbanismo da Universidade Federal Fluminense (Niterói / RJ - Brasil). O projeto foi desenvolvido por Dalai Felinto, Maria Sorrentino e Nathalia Lopes. Orientado pelo arquiteto Gerônimo Leitão.

 

Vídeo de exemplo (QuickTime, H264 codec)

Exemplo 3

ClubSilo por Luma Labs.

 

Por favor repare que a falta de nitidez de algumas das imagens é fruto do tempo de exposição prolongado (1/2 segundos) devido à pouca iluminação da sala. A imagem apresenta nitidez e alta resolução ao longo de toda a superfície do domo.

Exemplo 4

Yo Frankie, o projeto de jogo aberto desenvolvido pelo Blender Institute.