ARTIGOS:Levelhead Um jogo Print e Play
"Levelhead é um inovador e fantástico jogo, criado pelo designer e programador Julian Oliver. O jogo open source é baseado em um cubo real que utiliza recurso da tecnologia de realidade aumentada para reproduzir o cubo virtual no monitor. É um novo conceito: print e play!"
Índice
- 1 Introdução
- 2 Download e dependência
- 3 Instalação com 1-Click Install
- 4 Instalação total a partir do código fonte
- 4.1 Download e instalação da ARToolKit
- 4.2 Procedimentos para dispositivos compatíveis com a API V4L1
- 4.3 Procedimentos para dispositivos compatíveis com a API V4L2
- 4.4 Instalação da biblioteca ARToolkitPlus
- 4.5 Instalação da biblioteca OpenSceneGraph
- 4.6 Instalação da biblioteca osgcal
- 4.7 Compilação do jogo Levelhead
Introdução
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. Confira o vídeo AQUI ou na figura !
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.
Download e dependência
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
Instalação com 1-Click Install
Graças a tecnologia openSUSE Build Service, podemos intalar o jogo levelhead sem a menor dor de cabeça. A seguir os links:
Versão GStreamer: open source multimedia framework e V4L1 (Video for Linux 1)
levelhead no repositório de software.
Instalação total a partir do código fonte
Download e instalação da ARToolKit
Devemos começar a gincana com o pacote ARToolKit.
Em primeiro lugar, após o download, 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:
Podemos encontrar o código fonte no SourceForge: http://sourceforge.net/projects/artoolkit/
A seguir, o comando para efetuar o download do projeto:
$ wget http://downloads.sourceforge.net/project/artoolkit/artoolkit/2.72.1/ARToolKit-2.72.1.tgz
Descompacte o pacote com o comando:
$ tar -zxvf ARToolKit-2.72.1.tgz
Procedimentos para dispositivos compatíveis com a API V4L1
Entre na pasta recém-criada.
$ cd ARToolKit/
Execute o comando ./configure, selecione a opção 1 e responda as perguntas como no exemplo a seguir:
$ ./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 : 1 Color conversion should use x86 assembly (choose 'n' for 64bit systems)? Enter : n 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 create ./Makefile create lib/SRC/Makefile create lib/SRC/AR/Makefile create lib/SRC/ARMulti/Makefile create lib/SRC/Gl/Makefile create lib/SRC/VideoLinux1394Cam/Makefile create lib/SRC/VideoLinuxDV/Makefile create lib/SRC/VideoLinuxV4L/Makefile create lib/SRC/VideoSGI/Makefile create lib/SRC/VideoMacOSX/Makefile create lib/SRC/VideoGStreamer/Makefile create lib/SRC/ARvrml/Makefile create util/Makefile create util/calib_camera2/Makefile create util/calib_cparam/Makefile create util/calib_distortion/Makefile create util/mk_patt/Makefile create util/graphicsTest/Makefile create util/videoTest/Makefile create examples/Makefile create examples/collide/Makefile create examples/exview/Makefile create examples/loadMultiple/Makefile create examples/modeTest/Makefile create examples/multi/Makefile create examples/optical/Makefile create examples/paddle/Makefile create examples/paddleDemo/Makefile create examples/paddleInteraction/Makefile create examples/range/Makefile create examples/relation/Makefile create examples/simple/Makefile create examples/simple2/Makefile create examples/simpleLite/Makefile create examples/twoView/Makefile create examples/simpleVRML/Makefile create include/AR/config.h Done.
Crie a variável ambiental ARTOOLKIT_CONFIG conforme o exemplo abaixo:
$ export ARTOOLKIT_CONFIG="-dev=/dev/video0 -palette=YUV420P -width=640 -height=480"
Entre na pasta bin e execute o programa videoTest para verificar se tudo está funcionando corretamente.
$ cd bin $ ./videoTest Using config string from environment [-dev=/dev/video0 -palette=YUV420P -width=640 -height=480]. Image size (x,y) = (640,480)
Se tudo estiver funcionando corretamente, será apresentada uma janela cujo seu conteúdo será o vídeo ao vivo da sua webcam.
Procedimentos para dispositivos compatíveis com a API V4L2
Após a descompactação do pacote, baixe o patch para a API V4L2:
$ wget http://img.vivaolinux.com.br/imagens/artigos/comunidade/artk-v4l2-2.72.1.20080427.patch
E o aplique na pasta recém criada:
$ patch -p0 -d . < artk-v4l2-2.72.1.20080427.patch
Agora entre na pasta ARToolKit.
$ cd ARToolKit/
Execute o comando ./configure, selecione a opção 3 e responda as perguntas como no exemplo a seguir:
$ ./configure Select a video capture driver. 1: Video4Linux 2: Video4Linux+JPEG Decompression (EyeToy) 3: Video4Linux2 4: Digital Video Camcoder through IEEE 1394 (DV Format) 5: Digital Video Camera through IEEE 1394 (VGA NONCOMPRESSED Image Format) 6: GStreamer Media Framework Enter : 3 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 create ./Makefile create lib/SRC/Makefile create lib/SRC/AR/Makefile create lib/SRC/ARMulti/Makefile create lib/SRC/Gl/Makefile create lib/SRC/VideoLinux1394Cam/Makefile create lib/SRC/VideoLinuxDV/Makefile create lib/SRC/VideoLinuxV4L/Makefile create lib/SRC/VideoLinuxV4L2/Makefile create lib/SRC/VideoSGI/Makefile create lib/SRC/VideoMacOSX/Makefile create lib/SRC/VideoGStreamer/Makefile create lib/SRC/ARvrml/Makefile create util/Makefile create util/calib_camera2/Makefile create util/calib_cparam/Makefile create util/calib_distortion/Makefile create util/mk_patt/Makefile create util/graphicsTest/Makefile create util/videoTest/Makefile create examples/Makefile create examples/collide/Makefile create examples/exview/Makefile create examples/loadMultiple/Makefile create examples/modeTest/Makefile create examples/multi/Makefile create examples/optical/Makefile create examples/paddle/Makefile create examples/paddleDemo/Makefile create examples/paddleInteraction/Makefile create examples/range/Makefile create examples/relation/Makefile create examples/simple/Makefile create examples/simple2/Makefile create examples/simpleLite/Makefile create examples/twoView/Makefile create examples/simpleVRML/Makefile create include/AR/config.h Done.
Crie a variável ambiental ARTOOLKIT_CONFIG conforme o exemplo abaixo:
$ export ARTOOLKIT_CONFIG="v4l2src device=/dev/video1 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24,width=960,height=720 ! identity name=artoolkit ! fakesink"
Entre na pasta bin e execute o programa videoTest para verificar se tudo está funcionando corretamente.
$ cd bin/ $ ./videoTest Using config string from environment [v4l2src device=/dev/video1 use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24,width=960,height=720 ! identity name=artoolkit ! fakesink]. libARvideo: GStreamer 0.10.22 libARvideo: GStreamer pipeline is PAUSED! libARvideo: GStreamer negotiated 960x720 libARvideo: GStreamer pipeline is PLAYING! libARvideo: GStreamer pipeline is PAUSED! Image size (x,y) = (960,720)
Se tudo estiver funcionando corretamente, será apresentado uma janela cujo seu conteúdo será o vídeo ao vivo da sua webcam.
Instalação da biblioteca ARToolkitPlus
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
Instalação da biblioteca OpenSceneGraph
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
Instalação da biblioteca osgcal
O próximo passo é descompactar, compilar e instalar a biblioteca osgcal. Veja os comandos a seguir:
Verifique a existência do arquivo openscenegraph.pc e openthreads.pc na pasta /usr/lib/pkgconfig/ ou /usr/lib64/pkgconfig/. Se não existir, copie com o comando cp:
cp [PATH openscenegraph]/OpenSceneGraph/Make/openscenegraph.pc /usr/lib/pkgconfig/ cp [PATH openscenegraph]/OpenThreads/Make/openthreads.pc /usr/lib/pkgconfig/
Exporte a variável PKG_CONFIG_PATH (se necessário):
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig
Para inicar a compilação, utilize os comando abaixo:
$ export OPENTHREADS_INC_DIR=[PATH openscenegraph]/OpenThreads/include $ export OPENTHREADS_LIB_DIR=[PATH openscenegraph]/OpenThreads/lib/Linux64 $ export PRODUCER_INC_DIR=[PATH openscenegraph]/Producer/include $ export PRODUCER_LIB_DIR=[PATH openscenegraph]/Producer/lib/Linux64 $ tar -zxvf ../osgcal-0.1.44.tar.gz $ cd osgcal-0.1.44/ $ ./configure $ make $ sudo make install
Compilação do jogo Levelhead
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.
A seguir o conteúdo EXEMPLO dos arquivos path_config.sh e build.sh:
- path_config.sh
ARTOOLKIT_PATH=/neti/programas64/levelhead/DEPENDENCIAS/ARToolKit-V4L1 ARTOOLKITPLUS_PATH=/neti/programas64/levelhead/DEPENDENCIAS/ARToolKitPlus
- build.sh
#!/bin/sh . ./path_config.sh echo $ARTOOLKIT_PATH echo $ARTOOLKITPLUS_PATH bakefile -f gnu my_make.bkl make -f GNUmakefile DEBUG=1 ARTOOLKIT_PATH=${ARTOOLKIT_PATH} ARTOOLKITPLUS_PATH=${ARTOOLKITPLUS_PATH}
Verificar a existências de alguns arquivos na pasta/usr/lib64/blender:
$ ls blender GPL-license.txt Makefile.in outfit00.xfg outfit04.xfg outfit08.xfg outfit12.xfg outfit.xfg texture blenderplayer icons MC1.blend outfit01.xfg outfit05.xfg outfit09.xfg outfit13.xfg plugins verse cal3d.xfg Makefile MC2.blend outfit02.xfg outfit06.xfg outfit10.xfg outfit14.xfg Python-license.txt copyright.txt Makefile.am MC3.blend outfit03.xfg outfit07.xfg outfit11.xfg outfit15.xfg release_249.txt
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/
Sobre o autor: (Alessandro de Oliveira Faria A.K.A.CABELO )