|
Introdução: O jogo!
O jogo Levelhead, desenvolvido por Julian Oliver, utiliza a técnica de realidade aumentada, definida como a sobreposição de objetos virtuais tridimensionais gerados por computador no ambiente real por meio de algum dispositivo tecnológico (webcam, por exemplo). A computação gráfica, em junção de algoritmos de visão computacional, é o principal fator que permite o desenvolvimento desta técnica.
Além da sobreposição dos objetos virtuais, a realidade aumentada permite o manuseio/interação destes objetos com os próprios movimentos das mãos. Assistindo o vídeo, parece até ficção científica, mas não é. É apenas um software livre: basta compilar, imprimir e jogar.
Levelhead é também conhecido como o cubo mágico do século 21; ele utiliza cada face de um cubo para projetar os cômodos do labirinto. Cada cômodo possui uma ligação lógica com outro cômodo, assim podemos conduzir o personagem até a saída.
O jogo utiliza memória espacial, onde o jogador deve passar por 3 fases (cada fase pertence a um cubo). Atualmente existem 3 níveis interligados entre si. O desafio é conduzir o personagem até a saída dos 3 cubos no menor tempo possível.
O jogo não é comercializado e pode ser obtido gratuitamente na internet para montagem. O projeto foi desenvolvido na plataforma Debian GNU/Linux. A seguir, um vídeo demonstrando a operacionalidade do jogo (uma verdadeira obra-prima). Aos interessados na demonstração do sistema em eventos de software livre, entrem em contato para um possível agendamento.
Fontes de pesquisa:
Download e dependências
O jogo Levelhead requer uma série de requisitos. Alguns não obrigatórios, outros já são imprescindíveis. Sendo assim, seguem abaixo os links para download e uma breve explicação de cada item.
Cal3d 0.11: Cal3D é uma biblioteca de animação esqueletal de personagens com código-fonte aberto e multiplataforma (obtenha o pacote da sua distro).
https://gna.org/projects/cal3d/
osgcal 0.1.44: Ambiente de desenvolvimento de adaptação do Cal3d para OpenSceneGraph.
http://download.gna.org/underware/
openscenegraph 1.2: Biblioteca para o desenvolvimento de aplicações gráficas de elevado desempenho.
http://www.openscenegraph.org/projects/osg/wiki/Downloads/PreviousReleases
gstreamer: Biblioteca para aplicações multimídia (obtenha o pacote da sua distro).
http://www.gstreamer.net/
bakefile: Automatizador de projetos (obtenha o pacote da sua distro).
http://www.bakefile.org/
Artoolkit 2.71.1: Biblioteca de realidade aumentada.
http://www.hitl.washington.edu/artoolkit/download/
ArtoolkitPlus 2.1.1: Biblioteca de AR baseada no Artoolkit.
http://studierstube.icg.tu-graz.ac.at/handheld_ar/artoolkitplus.php
Pacotes opcionais:
uvcview: Módulo do kernel. Muito utilizado pelas câmeras atuais.
http://linux-uvc.berlios.de/
libwebcam: Biblioteca para câmeras logitec, utilizado para ajustar o foco da câmera.
http://www.quickcamteam.net/software/libwebcam
PS: Se fosse fácil, não seria necessário postar um documento. ;-)
Use a força!
Instalação: A gincana...
Devemos começar a gincana com o pacote ARToolKit.
Em primeiro lugar, descompacte o pacote tar.gz e execute o comando ./configure. Selecione a opção "5" para o sistema de vídeo/captura utilizar a biblioteca gstreamer. Logo após, responda as perguntas com a opção "n" e "y". A seguir, utilize o comando make para compilar o pacote.
Abaixo um exemplo de cada passo:
$ tar -zxvf ARToolKit-2.72.1.tgz
$ cd ARToolKit/
$ ./configure
Select a video capture driver.
1: Video4Linux
2: Video4Linux+JPEG Decompression (EyeToy)
3: Digital Video Camcoder through IEEE 1394 (DV Format)
4: Digital Video Camera through IEEE 1394 (VGA NONCOMPRESSED Image Format)
5: GStreamer Media Framework
Enter : 5
Do you want to create debug symbols? (y or n)
Enter : n
Build gsub libraries with texture rectangle support? (y or n)
GL_NV_texture_rectangle is supported on most NVidia graphics cards
and on ATi Radeon and better graphics cards
Enter : y
$ make
Antes de continuarmos com a compilação do próximo pacote, testaremos primeiramente a funcionalidade da biblioteca Artoolkit executando os comandos abaixo:
$ export ARTOOLKIT_CONFIG="v4l2src ! video/x-raw-yuv,width=320,height=240 ! ffmpegcolorspace ! xvimagesink ! identity name=artoolkit"
$ cd bin/
$ ./videoTest
A biblioteca ARToolkitPlus é descompactada com o comando unzip, na pasta criada anteriormente. Antes de compilarmos com o comando make, crie a variável ambiental ARTKP, informando a localização exata da biblioteca ARToolkit. Veja a instrução a seguir:
$ mkdir ARToolKitPlus/
$ cd ARToolKitPlus/
$ unzip ../ARToolKitPlus/ARToolKitPlus_2.1.1.zip
$ export ARTKP=[PATH-ARTOOLKIT]/ARToolKitPlus
$ qmake
$ make
Agora descompacte, compile e instale o pacote OpenSceneGraph seguindo as instruções abaixo:
$ tar -zxvf ../openscenegraph-1.2.0.tar.gz
$ cd openscenegraph-1.2.0/
$ cd OpenThreads
$ make
$ sudo make install
$ cd ..
$ cd Producer
$ make
$ sudo make install
$ cd ..
$ cd OpenSceneGraph
$ make COMPILE_EXAMPLES=yes
$ sudo make install
*** Vá tomar um café...
O próximo passo é descompactar, compilar e instalar a biblioteca osgcal. Veja os comandos a seguir:
$ tar -zxvf ../osgcal-0.1.44.tar.gz
$ cd osgcal-0.1.44/
$ ./configure
$ make
$ sudo make install
Finalmente compilaremos o jogo Levelhead. Primeiramente efetue o download do jogo no repositório svn:
$ svn co http://www.inclusiva-net.es/svn/levelhead/trunk
$ cd trunk/bin
Edite o arquivo path_config.sh e informe a localização das bibliotecas ArtoolkitPlus e Artoolkit. Apenas para efeito de verificação, confirme também os PATHs no arquivo build.sh. Finalmente, para compilar, execute o comando:
$ sh build.sh
Atenção: Os arquivos path_config.sh e build.sh encontram-se na pasta trunk/bin do Levelhead.
Imprima as imagens, recorte e monte os cubos localizados na pasta trunk/bin/Data/images e pronto!
Agora, para jogar, basta executar o comando:
$ sh start_levelHead.sh
Mais informações sobre o projeto em: http://selectparks.net/~julian/levelhead/
Como diz o Prof. Pietro Ubaldi:
"O próximo grande salto evolutivo da humanidade será a descoberta de que cooperar é melhor que competir"

|