Home

Tese 11,1 MB - Técnico Lisboa

image

Contents

1. Carregar em bot o de volta para menu principal Voltar atr s Menu Principal Tecla de Menu de Op es Altera o de op es Par metros alterados Sim Actualizar par metros Menu de Op es Onentar c mara Esconder Menu de Op es Actualizar vari veis de Set Ponto Sim Sim Menu Principal Figura 5 2 Arquitectura simplificada de PongVR Neste cap tulo apenas descrita a arquitectura de jogo a partir do estado In Game sendo que o resto devidamente explicado em anexo A titulo exemplificativo s o colocados em anexo alguns dos scripts constituintes de PongVR Ao iniciar o estado In Game s o lan ados scripts que s o respons veis por e Aquisi o e tratamento de dados de gestores de dispositivos e Motor f sico de jogo e Gest o de l gica de jogo e C lculo de Intelig ncia Artificial de advers rio 48 5 1 1 Aquisi o e tratamento de dados de gestores de dispositivos criado um script que est em constante comunica o tanto com o gestor das luvas gestor do tracker e gestor dos culos atrav s da utiliza o dos comportamentos GloveBlock TrackerBB e eMaginBB Os dados retirados s o depois passados por um filtro passa baixo simples de modo a eliminar ru do de altas frequ ncia A sequ ncia de opera es a seguinte Obten o Tratamento de dados de tracker Obten o Tratamento de dados de culos Retira posi o e orienta
2. 49 Figura 5 4 M quina de estados de atribui o de pontua o em PongVR 1 5I Figura 5 5 M quina de estados de atribui o de pontua o em PongVR 2 51 Figura 5 6 M quina de estados de atribui o de pontua o em PongVR 3 52 Figura 5 7 Areas de 000 curas UG L S 52 Figura 5 8 Contador de toques consecutivos sciri E a E T renta s 53 Figura 5 9 Localiza o marca N vel de dificuldade m dio 1 0 0 0 ececccsescceeeeeceeeeeeceneeees 54 Figura 5 10 Localiza o Marcas N vel de dificuldade dif cil c cc ccceeccccsseeceeeeeeeeeeees 54 Figura 5 11 Aspecto in game de PongVR com ajudas visuais ACtivas ccccccssesceeeeeeeeeeees 56 T ADD a AA e EEE T E A A A EE as tee OD SE 57 Figura 5 13 Arquitectura simplificada de PianoVR 1 errar erre 57 Figura 5 14 Arquitectura simplificada de PianoVR 2 erre eeeerree arenas 58 Figura 5 15 Arquitectura simplificada de PianoVR 3 errar 58 Figura 5 16 Mapeamento de ossos na m o virtual cce eee eeereererrerereneeaaeanea 59 Figura 5 17 Pseudo c digo de aquisi o de informa o de flex o das luvas 60 Powa 5215 Colis o dedo ee a ssacanae teenies angie a wanennns n e Sonido qualidade snes aaa 61 Figura 6 1 Funcionamento de Get Precise Time esquerda Gestor a direita 63 Figura 6 2 Aspecto visual de Get System Time e Get Precise Time cccccceecceneeeeeee
3. 4 Ch o 2i Rall Figura 3 7 Bloco de comportamento eMaginBB Apenas cont m um parametro de entrada e PollTime do tipo float Permite ao utilizador modificar o tempo de polling O valor colocado tem com unidades ms e dever estar contido no intervalo 30 60000 Cont m os seguintes par metros de sa da e Roll do tipo float indica em graus o ngulo de Roll actual dos culos e Pitch do tipo float indica em graus o ngulo de Pitch actual dos culos e Yaw do tipo float indica em graus o ngulo de Yaw actual dos culos e FetchTimeL do tipo Inteiro indica 32 bits mais esquerda do tempo de lat ncia interno em us do Gestor e FetchTimeH do tipo Inteiro indica 32 bits mais direita do tempo de lat ncia interno em us do Gestor 23 In cio de comunica o com 3D Visor Comunica o N o bem sucedida Sim ide Desactiva o de Gestor de 3D Visor PEEN a Pedido de Dados de Inicializar temporizador Fecho Virtools emaginBB Novo Tempo de Polling N vo tempo de Polling actual tempo de PEON Terminar Inicializar estrutura de amna amii dados de orienta o pa Visor Obten o de dados Desaciiver de orienta o de 3D Temporizador Visor Inicializar pin pOut bln but Sinal da Aciiva o em bin Pedido de dados temporais e de tracking ao Gestor Envio de novo tempo de palling QS polling antigo Obten o de dados temporais e de or
4. Mostra conteudo da composicao Tarefa mais dispendiosa Dispositivos de Render independentes para modo de execu o e modo de cria o Dispositivos dispon veis dependentes da placa gr fica Comportamentos Behavioural Building Blocks BB s Como interpretar a representa o de uma BB Behaviour Input bin Localizada a esquerda da BB Inicia o processamento da BB Behaviour Output bOut Localizada direita da BB activada no final do processamento da BB dentro de uma frame Fluxo de activa o percorre links que estejam ligados a essa ao v gt Get Good Grade at CV b lt Comportamentos Behavioural Building Blocks BB s Como interpretar a representa o de uma BB Parametros de entrada saida pln pOut Forma de a BB receber e transmitir dados Par metro de alvo Tipo especial de par metro Indica explicitamente a entidade a ser afectada pela BB GerGood Grade at CV 1 O an x Get Good Grade at CV Comportamentos Behavioural Building Blocks BB s Como interpretar a representa o de uma BB BB podem ter icone de Mensagem Pode enviar ou receber mensagens Diversos usos AA v Boend Message D D Comportamentos Behavioural Building Blocks BB s Tipos de Processamento Single Action E a Set Ambient Light Color Internally Looped Externally Loope
5. 52 Foi acrescentado um contador de toques em que o gestor de l gica mostra ao jogador mensagens de incentivo e altera o aspecto visual da bola associando a esta um rasto e um sistema de part culas a medida que este aumenta o n mero de toques consecutivos na bola sem perder para o advers rio As mensagens apresentadas s o as seguintes e Cool Combo para 3 toques consecutivos e Awesome Combo para 7 toques consecutivos e Ping Pong God Combo para 9 toques consecutivos Blavar 1 Dlavar 9 Cool Comboll Plaver 92 Figura 5 8 Contador de toques consecutivos 5 1 4 C lculo de Intelig ncia Artificial de advers rio Para o jogo s o elaborados tr s n veis de dificuldade para o advers rio f cil m dio e dif cil No grau f cil o advers rio envia a bola de volta na direc o do jogador com uma elevada componente vertical de modo a que bola fa a uma traject ria maior para que assim seja dado mais tempo de resposta ao jogador facilitando a sua jogada Em rela o ao grau m dio o oponente ir ripostar sempre para uma marca situada no centro do campo do jogador sem a componente vertical elevada colocada no grau de dificuldade anterior 53 Player 1 Player 2 Points Won Sets Won q routs Wor Sets Won Figura 5 9 Localiza o marca N vel de dificuldade m dio No grau de dificuldade dif cil o advers rio ir enviar a bola para o canto oposto do campo ao qual o jogador esteja p e caso o jogador
6. Convers o de tipo de par metro Atributos Informa o extra de um elemento Aplicados apenas as BehObjects Cont m um Nome e Categoria Podem apenas ser editados em Author Mode Gest o de Atributos pelo Attributes Manager VSL Virtools Scripting Language Interface para o SDK dentro ambiente de desenvolvimento da Virtools Limitada Schematic vs VSL vs SDK Para scripts simples aconselh vel o uso das BB SDK o melhor em termos de performance VSL bom para prototipagem de comportamentos Motor de Intelig ncia Virtual Gest o de personagens aut nomas AlBots AlBots com capacidade para Avalia o e navega o no ambiente envolvente Efectuar decis es Comportamento de grupo O Lado Negro da Virtools With Great Power comes Great Crashes Corrompe ficheiros Performance diminui drasticamente com grau de complexidade das composi es e que tenham interac o com dispositivos externos n o standard Pouco flex vel Dif cil de optimizar Motor F sico Motor constru do em conjunto com a Havok Funciona em paralelo com o Motor Comportamental da Virtools Permite simular comportamentos f sicos para os diversos elementos da composi o Diversos comportamentos predefinidos Molas Motores Fric o Carros Motor de Realidade Virtual Integra o de dispositivos de RV nas composi es Utiliza protocolo de comunica o VRPN
7. Fonte de Luz C mara lt ES Figura 4 16 Modifica o Stencil Buffer 1 algoritmo m ltiplos objecto No entanto h uma falha neste algoritmo caso a c mara esteja dentro do volume de sombra provoca valores an malos no stencil buffer fazendo com que as sombras n o sejam constru das correctamente Fonte de Luz C mara lt Figura 4 17 Erro no preenchimento de Stencil Buffer De modo a contornar esse erro Jonh Carmack 30 modificou o algoritmo de modo se utilizar n o o teste de depth pass mas sim o teste de depth fail para modificar o conte do do stencil buffer Os novos passos do algoritmo conhecido como Carmacks Reverse s o e Renderizar face traseira Se teste de profundidade falha ent o incrementar o valor correspondente do stencil buffer caso contrario n o se faz nada Desactivar escrita tanto para o color buffer como para o depth buffer e Renderizar face frontal Se teste de profundidade falha ent o decrementar o valor correspondente do stencil buffer caso contrario n o se faz nada Desactivar escrita tanto para o color buffer como para o depth buffer Deste modo as sombras s o geradas correctamente independentemente da posi o da c mara como se pode verificar na figura abaixo 43 Fonte de Luz C mara lt o Figura 4 18 Preenchimento de Stencil buffer com algoritmo de Carmack Este algoritmo de gera o de sombras utilizado dentro de uma aplica o e
8. almo os e principalmente pelas Reuni es das 17h no ISR colega Lu s Loureiro pela ajuda e conselhos de modela o em Blender e pelo beta testing das aplica es Diogo Neves pelo beta testing das aplica es Lu s Coutinho pela ajuda na rea musical Andr Serpa por filmar as aplica es e pelo beta testing e finalmente um grande obrigado a todos os elementos do F rum Swap Meet 1 il 1V Resumo A presente tese tem a finalidade de criar uma aplica o interactiva 3D utilizando a ferramenta profissional de desenvolvimento de videojogos Virtools que apele destreza e ast cia do utilizador atrav s do uso de diversos dispositivos imersivos estado de arte tais como luvas de captura de movimentos culos de realidade virtual e tracker magn tico Adicionalmente utilizada o software Microsoft Visual Studio NET de modo a desenvolver novas funcionalidades na ferramenta acima referida Palavras Chave Realidade Virtual Dispositivos Imersivos Motor de Jogo Jogo de Computador Interactividade Imers o vi Abstract This thesis has the goal to create an interactive 3D application with Virtools a professional videogames developer tool that appeal to the gamer dexterity and astuteness through the use of several immersive devices like data gloves VR glasses and magnetic trackers Microsoft Visual Studio Net platform is also used to develop new plug ins into Virtools Keywords Virtual Reality Im
9. http Avww vrpn org Composi es podem estar a correr em Clusters de PC s Suporte para HMD s e CAVES Onde encontrar ajuda Documenta o oficial Virtools Direct rio Documentation e Mini site Ficheiros chm e PDF s Site Oficial http www virtools com F rum na Internet http theswapmeet forum com Anexo Figura 13 Apresenta o Virtools 18 19 11 4 Anexo D Scripts PongVR Anexo Figura 14 Script de comunica o com Gestores characterEntity Script w characterEntityAzimy EFE EEE CEPE dealKeyboard ea Se 4 Anexo Figura 15 Script de tratamento de dados De notar que os comportamentos LowPass Filter Rotate Right Hand e LowPass Filter Translate Right Hand n o s o comportamentos nativos da Virtools mas sim scripts VSL escritos especificamente para a aplica o 20 ordem de rota o azimuth gt elevation gt roll ment Right Han Low Pass Filter RotateRight Hand Anexo Figura 16 Conte do grafo comportamental Implement Right Hand Rotation Anexo Figura 17 Movimenta o de objecto ap s inclus o no motor de f sica 21 Ter cuidado em como est o emissor do tracker Este jogo est feito de maneira que o emissor esteja com o eixo dos xx para a esquerda e o eixo dos yy em frente ou seja o y do nosso tracker oz do sistema de coordenadas do mundo do Virtools ement Right Hand M Eal Low Pass Filter Translate Right Ha
10. mostrada uma tabela comparativa entre os dois modelos Tabela 2 1 Compara o modelos 5 Ultra e 14 Ultra 5DT Data Glove 5 Ultra 5DT Data Glove 14 Ultra Resolucao dos sensores 12 bits A D alcance tipico de 12 bits A D alcance tipico de 10 bits 10 bits Numero de sensores e 5 Sensores de flexao 14 Sensores de flexao localiza o baseados em fibra ptica Um baseados em fibra ptica 2 sensor por dedo localizado Sensores por dedo um na entre a junta e primeira junta e outro na primeira jun o nas falanges jun o 1 Sensor por cada zona interdigital Ritmo de amostragem 75Hz m nimo 75Hz m nimo Para melhor ilustrar a localiza o dos diversos sensores s o mostradas abaixo duas figuras obtidas a partir da documenta o oficial a primeira referente ao modelo de cinco sensores e a segunda em rela o ao modelo de catorze sensores a b Figura 2 5 Mapeamento luva a 5 sensores b 14 sensores 2 2 Dispositivos imersivos de sa da 2 2 1 culos Virtuais eMagin Z800 3D Visor Nesta sec o descrito o modo de funcionamento da componente de visualiza o dos culos de realidade virtual eMagin Z800 3D Visor Para melhor perceber o seu funcionamento primeiramente explicado o que estereoscopia quais os tipos de estereoscopia existentes e como este conceito se aplica aos culos utilizados Uma das poss veis defini es de estereoscopia a cria o de uma vis o tridimensional atrav
11. ngulos Yaw Azimuth e Pitch Elevation dado que o movimento de Roll n o normalmente utilizado na orienta o de uma c mara de jogo 5 1 2 Motor f sico de jogo utilizado o motor Physics Pack da Virtools para a simula o de f sica de jogo em PongVR Um objecto 3D para ser tido em conta pelo motor f sico necessita de ser integrado no motor de f sica atrav s do bloco de comportamento Physicallise Atrav s deste comportamento s o indicados par metros como massa do objecto e malha poligonal a considerar na detec o de colis es Ap s este processo deixa de ser poss vel efectuar opera es de transla o e rota o directamente ao objecto 3D pelo que ter o de ser aplicadas a uma entidade 3D que n o esteja ligada ao motor f sico e depois ordenado ao objecto f sico que siga esta entidade atrav s do bloco de comportamento Motion Controller Ap s todos os objectos estarem integrados no motor f sico este fica automaticamente respons vel pelo comportamento e interac o entre todos os objectos fisicalizados Os scripts de inser o e transforma o de objectos no motor f sico encontram se em anexo 5 1 3 Gest o de l gica de jogo agora mostrada e explicada a m quina de estados para a atribui o de pontua es aos jogadores e de seguida s o detalhados os tr s n veis de intelig ncia artificial que podem ser atribu dos ao oponente 50 notTouched Table notTouchedTable P2TableSide Fresen P
12. Componentes Polhemus PF astral sai casada ieni a a i E is caaceuneaons 5 PISA 2 a DO DIO fa rere etna aan aaa SS da Da Raid E Er ad a 6 Piura 25 Tres BODE usas da Sa OS a add 7 Fiora 2 4 Lica ao LUV aS SD carnais nada ain D aden SS teats Dada DANS E 9 Peira 2 5 Mapeamento UVA era caiecc ci aaa So tado tas di aaa a delice ania ck ieeewt 10 Figura 2 6 Anasiyph Stereo assists inte san GR dE cadena Qi 1 Pe Wiad TAWES CO statin cask eae ies eas eben ete RR 1 Fira 2 8 sNCIVC OICT CO Risos ccna as ES REA Sd aaa E ae GN A O aaous 12 Figura 2 9 Layout principal Virtools eera a 12 Figura 2 10 Exemplo blocos de comportamentos Behavioural Building Blocks 13 Figura 2 11 Componentes de um bloco de comportamento cece eeeeceeeeeceeeeeeeeseeaeeeeaaees 14 Figura 2 12 Localiza o de Start bLink pLink shortcut PLINK ccccccccseccceeeeceeeeceaseeaaees 14 Fisura 2515 Drace de Drop de RECUISO Suas sane a TE ia 15 Figura 2 14 Drag amp Drop de blocos de comportamentos i iriamos 15 Figura 3 1 Bloco de comportamento TrackerBB ccccccccccccneececeeenceceeescecaeeeeenaeeceesaneseaaases 17 Figura 3 2 Funcionamento TrackerBB a esquerda Gestor direita ccccceeeceseeeeeeees 19 Figura 3 3 M utiliza o espacial do tracker magn tico cc ri eereeeeereerereeeanea 19 Figura 3 4 Funcionamento de GloveBlock a esquerda Gestor direita 20 Figur
13. HS eMagin Manager 54000 54000 54000 HS De modo a melhor se fazer a avalia o dos valores dados acima necess rio fornecer informa o sobre o grau de complexidade de cada uma das aplica es e redefinir o conceito de tempo de lat ncia O tempo de lat ncia como foi indicado anteriormente indica o tempo necess rio a efectuar o transporte de dados entre o emissor e o receptor A aplica o Pong VR cont m um total de 752 blocos de comportamento em 47 scripts cont m um total de 49 objectos 3D utiliza cerca 4 35MB em mem ria de texturas e executada a aproximadamente 30 fps Para a aplica o PianoVR esta cont m 9831 blocos de comportamento em 90 scripts cont m um total de 103 objectos 3D utiliza cerca de 5 69MB em mem ria de texturas e executada a aproximadamente 30 fps Assim para uma an lise de pior caso analisado o caso da aplica o PianoVR dado que utiliza um maior n mero de dispositivos e cont m um muito maior n mero de blocos de comportamento No entanto pode se observar que o tempo de obten o dos dados pelos gestores independente da complexidade do jogo apenas variando do tempo de execu o dos blocos de comportamento 6 1 Polhemus Fastrak A utiliza o de tracking magn tico em Virtools produz um valor total de 34ms que a soma entre a componente que dada internamente pelo gestor e pela execu o do bloco de comportamento O resultado interno do gestor fica um pouco acima do valor apre
14. Object Collisions Gamasutra CMP Media 2003 http www gamasutra com features 20000330 bobic 02 htm 24 http Awww havok com 25 http www ode ora 26 http www ageia com 27 http Awww newtondynamics com 13 28 http www continuousphysics com Bullet 29 Kwoon Yen Hun The Theory of Stencil Shadow Volumes Gamedev net 2002 http www gamedev net reference articles article18 3 asp 30 http en wikipedia org wiki John Carmack 31 Van Der Burg John Building an Advanced Particle System Gamasutra 2000 http www gamasutra com features 20000623 vanderburg_ pfv htm 32 Vale Marco B sicos da Anima o Knowledge Box Gamedev pt 2006 http gamedev pt net forum vertopico php tid 826 33 http msdn2 microsoft com en us library ms644904 aspx 74 10 Bibliografia eMagin User Guide eMagin Corporation 2005 Virtools 4 0 Online Reference Virtools 2006 Almeida Vieira Miguel Detec o de Colis es 2005 Callele David Virtools Behaviour Libraries Physics Library Dassault Systemes 2006 Fernandes Louren o Fonseca Manuel Jo o da M todos de Avalia o e Estat stica IPM 2005 Foley James Van Dam Andries Feiner Steven Hughes John Computer Graphics Principles and Practices Second Edition Addison Wesley Publishing Company Inc 1992 Hagland Torgeir A Fast and Simple Skinning Technique Game Programming Gems P 2000 pp
15. P l F Lefi I Righi Lsual Camera Figura 3 11 Estereoscopia com c mara convencional Como se pode notar com as duas c maras a olharem na mesma direc o os objectos t m sempre um parallax negativo e o plano de converg ncia localizado em infinito sendo os objectos sempre percepcionados em frente ao plano de converg ncia o que claramente contradiz a vis o percepcionada na vida real J com a utiliza o de Projection Referential Cameras obt m se o seguinte esquema j r i kN h Fi FU 1 Lad WED igh Praection Ret Camera Figura 3 12 Estereoscopia com Projection Referential Cameras verificado que com esta configura o se consegue uma correcta defini o de estereoscopia em que a 3D Sprite representa o referencial de projec o e plano de converg ncia Ap s uma correcta constru o da c mara de jogo necess rio integrar o plugin VR Pack na aplica o Uma composi o que fa a uso do VR Pack necessita de ficheiros de configura o externos de modo a possibilitar diversas configura es de Hardware sem que seja necess rio a altera o da aplica o Os ficheiros de configura o s o constitu dos por tokens palavras chave seguidos dos respectivos valores que poder o ser inteiros floats ou strings S s o abordados os tokens necess rios para a configura o da estereoscopia sendo os restantes descritos na documenta o oficial da VR Pack Quando se executa uma aplica o necess rio ter criado
16. Polhemus Fastrak com um emissor e um receptor culos eMagin Z800 3D Visor Luva 5DT 5 Ultra Left Handed Requisitos M nimos Software Microsoft Windows 2000 XP Microsoft DirectX 9 0c para placas gr ficas que sejam compat veis com DirectX OpenGL 2 0 para placas gr ficas que sejam compat veis com OpenGL Microsoft Internet Explorer 6 0 Drivers de suporte a Estereoscopia Activa Para jogar o jogo Pong VR necess rio antes de o executar ter o seguinte Hardware ligado e Tracker Magn tico Polhemus Fastrak com um Emissor e Receptor ligados ao Filtro e Luva 5DT 5 Ultra Left Handed e culos eMagin Z800 3D Visor O objectivo do jogador de ganhar tr s Sets ao advers rio em que cada Set ganho caso se consiga obter um total de onze pontos O jogador ganha um ponto fazendo com que a bola toque consecutivamente no seu campo e no campo do advers rio sem que este consiga ripostar Ao entrar no jogo o jogador confrontado com o seguinte ecr inicial Anexo Figura 1 PongVR Main Menu e Start Game Primeiro passo para iniciar jogo passa para menu de jogo para a escolha de dificuldade da IA do advers rio Anexo Figura 2 PongVR Start Menu o Easy Inicia jogo com IA de advers rio f cil o Medium Inicia jogo com IA de advers rio m dio o Hard Inicia jogo com IA de advers rio dif cil Player 1 Player 2 Points Won Sets Won Points Won Sets Won re Anexo Figura 3 PongVR In Game Ao iniciar 0 jogo ne
17. a E E E E E E E E E E EE EE N E 35 FiO ast O ROC Onenean N a la 35 Figura 4 7 ngulos de Ea 36 Fourra Scala ogai aea aaa a a e a 37 Fona 0 Vo umne EE d n aa vaso in A nas 37 Pieura da10 Volume AAD DB ras teessetieseccenctae st seen a ca eames 38 i ro Biles di VoluincODD semeree nearer ernment eter merry reer Senet er Pere yier Dna aa dai asa aE eee eer errr 38 Figura 4 12 Restri es em motores de FISICA spa vas ccoes snencodadasnhenetadsdawsdesnsticas aves ieaneee Aomateunass 39 Piguita del JS ISte Mla Ce 7a COO IIS ssa siena dado Jalsa des ERROR ROD Ea o Clan UERR d idea 40 Pieura 4 14 Volume de Sombra au suada iu is oba ARARAS ce a pad 42 Figura 4 15 Modifica o Stencil Buffer 1 algoritmo 1 objecto ciiseiiiseiiieenn 42 Figura 4 16 Modifica o Stencil Buffer 1 algoritmo m ltiplos objecto 43 Figura 4 17 Erro no preenchimento de Stencil Buffer ccc ecccccssesceceeeeceeeesceessecenaeees 43 Figura 4 18 Preenchimento de Stencil buffer ec eeccccceeccceeesceceeeececseeceeeeseceseeeeeneeses 44 Preura LO Retlexoes plananes i ck arandos aa NG aa Da eia doa T 44 Figura 4 20 Sistema de pamicuiAS eein ea E E E Md 46 Fioura SA Pons VR E E E E Sana aaa RAD OA END UE 47 X1V Figura 5 2 Arquitectura simplificada de PongVR ccccccsecccceeececeeeececeeeseecaesecenaeseeeaaneeeaaases 48 Figura 5 3 Pseudo c digo de scripts de aquisi o de dados de PongVR
18. a se que a utiliza o dos dispositivos empobrecida por alguns aspectos Para o manuseamento do tracker magn tico necess rio definir uma zona muito espec fica do espa o O 71 facto da liga o entre os receptores e o filtro ser cablada e tamb m no caso das luvas e culos VR ter de haver um liga o entre estes e a porta USB retira mobilidade pessoa esta que tem de necessariamente interagir numa rea delimitada pelos diversos cabos Nota se que apesar dos tempos de lat ncia serem id nticos em ambas as luvas os tensores do modelo 5DT 5 Ultra Left Handed s o menos sens veis que no modelo 5DT 14 Ultra Right Handed Juntando o facto de haver uma discrep ncia entre o n mero de sensores em cada uma das luvas nota se que movimenta o dos dedos da m o virtual esquerda de qualidade inferior m o direita 72 9 Refer ncias 1 http Awww theswapmeet forum com 2 Crespo Rui Gustavo Specification and Description Language http comp ist utl pt ec st PDFs SDL pdf 3 http ot wikipedia org wiki Wii_ Remote 4 htip wii nintendo com controller jsp 5 S3SPACE FASTRAK USER S MANUAL 2005 htip polhemus com polhemus editor assets FASTRAKRevE paf 6 http Avww hitl washington edu projects knowledge_base virtual worlds tracker fag html 7 http www inrialpes fr sed 6doftracker 8 http Avww worldviz com vizhelp WorldViz Optical Tracker PPT htm 9 http Awww vrealities c
19. body com uma malha poligonal n o deform vel no entanto torna se cada vez mais comum a simula o de corpos com malhas deform veis soft bodies tais como roupa ou bal es Para al m de informa o geom trica cada objecto passa a ter propriedades f sicas tais como e Massa e Posi o do Centro de massa e Atrito e Elasticidade Um motor de f sica define tamb m restri es entre objectos limitando desta forma o tipo de movimentos que estes possa efectuar Na sequ ncia de figuras abaixo s o mostrados alguns exemplos de restri es normalmente disponibilizados pelos motores de f sica Body 1 Body 2 Body 1 Anchor Body 2 Body 2 Axis 2 Axis 1 Figura 4 12 Restri es em motores de f sica Para al m de restri es simples s o utilizados sistemas de restri es tais como ragdolls bonecos de trapos Estes s o restri es associadas ao esqueleto de uma personagem de modo a que esta quando actuada por algum est mulo do jogo fa a movimentos equivalentes aos efectuados por um 39 ser humano ou outro tipo de animal Na aus ncia de est mulos por exemplo morte da personagem as restri es dever o continuar activas para que a queda deste seja a mais real stica poss vel Figura 4 13 Sistema de ragdolls Para efeitos de optimiza o usual num motor de f sica a desactiva o de objectos caso estes estejam im veis durante um determinado tempo e estes s s o activos e tidos novamente
20. c mara esquerda negativa ficando assim com um paralax negativo Assim este sempre percepcionado em frente superf cie de visualiza o Caso o ponto estivesse deslocado mais esquerda na projec o da c mara da esquerda em rela o projec o da c mara da direita ent o este teria um paralax positivo e seria percepcionado atr s do plano de visualiza o Um paralax zero acontece no caso do ponto ter uma projec o id ntica em ambas as c maras Paralax positivo Plano de A B H B Paralax zero B Paralax negativo Olho esquerdo Olho direito Figura 3 16 Tipos de paralax Imagem estereosc picas balanceada utilizam tanto paralax negativo como positivo e alguma parte do cen rio ser projectada no ou pr ximo do plano de visualiza o No entanto utilizando as equa es 4 2 e 4 3 faz com que todos os pontos de um cen rio sejam projectados com um paralax negativo tornando a experi ncia estereosc pica desagrad vel vis o do utilizador Isto pode ser alterado simplesmente deslocando os valores projectados da c mara esquerda para a esquerda e os valores da c mara direita para a direita Se o deslocamento aplicado aos pontos igual ao deslocamento original da c mara a geometria resultante ir colocar o plano de projec o original em paralax zero Os objectos que estejam originalmente em frente ao plano de visualiza o ficam com um paralax negativo e os objectos que estejam atr s do plano de vi
21. conte do de jogos em Virtools efectuada atrav s de entidades denominadas cameras estas que tal como o nome indica utilizam a analogia a uma c mara fotogr fica Uma camera em Virtools cont m e Posi o Posi o da c mara em coordenadas x y z do mundo e Orienta o Orienta o da camara atrav s dos ngulos aplicados a cada um dos seus eixos x y z local e Near clip e Far clips Plano de cortes que ajudam a definir qual a zona do espa o 3D que visualizada e Tipo de projec o O tipo de projec o indica qual o volume de visualiza o pretendido A camera pode ter um tipo de projec o Perspectiva ou Ortogr fica o Projec o Ortogr fica Cria um volume de visualiza o na forma de um paralelep pedo rectangular assim e como o seu tamanho n o varia entre os extremos faz com que os objectos desenhados mantenham sempre o mesmo tamanho independentemente da dist ncia que se encontra do nosso ponto de visualiza o As dimens es do volume de visualiza o s o dadas pela especifica o de seis planos de corte left right top bottom near far Em direc o ao ponto de k vista viewpoint Far Figura 4 1 Projec o Ortogr fica o Projec o Perspectiva Com a projec o Perspectiva o volume de visualiza o tem a forma de um frustum pir mide com o topo cortado Este tipo de projec o aproxima se mais da realidade dado que medida que um objecto se vai afastando do ponto
22. dados retirados dos sensores para ambas as m os de certa forma an logo ao como feito para os dados do tracker Os dados de cada um dos sensores s o passados por um filtro passa baixo para minimizar ru do em alta frequ ncia depois o valor filtrado comparado com o recebido na frame anterior e calculado o novo movimento a aplicar em cada um dos ossos Retirar flex o de sensores da luva Determina o de tempo de execu o de bloco de comportamento Passar dados por filtro passa baixo b Inserir dados num vector de tamanho predefinido i Se vector cheio eliminar elemento mais antigo antes da inser o c Calcular m dia aritm tica de valores contidos no vector Para cada sensor calcular varia o de flex o Aplicar varia o de flex o a eixo de coordenadas local de osso correspondente Figura 5 17 Pseudo c digo de aquisi o de informa o de flex o das luvas Em anexo mostrada a sequ ncia de scripts que efectua estas opera es para a luva da m o esquerda Para a m o direita o procedimento id ntico apenas com o acr scimo do n mero de sensores a tratar O script de movimenta o da m o direita cont m no entanto uma pequena diferen a ao in cio feita uma calibra o da dist ncia inicial entre as m os virtuais de modo a que haja correspond ncia directa entre a dist ncia entre os dois receptores e a dist ncia entre as m os virtuais De seguida explicado como feita a interac o entr
23. entre estes e os sensores dispon veis Tabela 3 1 Identifica o de sensores activos Sensor Identificador do Sensor A OA Baal DO E 28 21 Par metro de sa da do tipo Inteiro de nome gesture indica qual o gesto que a m o est a fazer de entre um total de 16 gestos standard O valor 16 determinado pelo facto de a API internamente fazer o processamento de gestos recorrendo apenas informa o de 4 4 Bo ug dedos tendo assim acesso a 2 16 combina es poss veis O mapeamento dos gestos 3 3 o indicado pela figura abaixo 1 Index finger point 2 Middle finger point 3 Two finger point 4 is 3 4 Ring finger point 5 Ring index finger point 5 Ring middle finger 7 Three finger point or int po not little finger point 8 Little finger point 8 Index and little finger 10 Little middle finger 11 Not ring finger point point point 12 Little ning finger point 13 Not middle finger 14 Not index finger point 15 Flat hand Figura 3 6 Mapeamento de gestos Par metro de sa da do tipo String de nome hand indica tipo de luva que est a ser processada pelo comportamento Par metro de sa da do tipo String de nome type indica se luva de a m o direita ou esquerda Par metro de sa da do tipo String de nome numGlovesConn indica n mero total de luvas ligadas ao Gestor Par metro de sa da do tipo String de nome typeGlovesConn indica n mero de se
24. esteja com a raquete junto s redes do seu lado esquerdo o advers rio ir atirar a bola para o canto direito mais afastado da rede Player 1 Player Points Wor ets W RS Points Wor 0 I 0 Points Wor N Poi y Sets Won Points Wor l 0 0 Figura 5 10 Localiza o Marcas N vel de dificuldade dif cil Para todos os graus de dificuldade o impulso aplicado pelo advers rio bola e movimento do advers rio s o efectuados de forma id ntica Enquanto a bola se encontra no campo do jogador 54 humano o advers rio apenas efectua movimentos num plano xy atr s da mesa de modo a se alinhar com os movimentos da bola efectuados dentro do espa o da mesa S quando a bola toca na rea advers ria de forma v lida que este efectua um deslocamento at posi o da bola aplica lhe um impulso e retorna sua posi o inicial O impulso aplicado proporcional tanto dist ncia entre a bola e a marca colocada na rea de jogo como velocidade da bola no momento do impacto por parte do jogador 1 O impulso calculado atrav s da varia o de momento linear I Ap 5 1 I mAyv 5 2 I mX V sinal o Vinicial 5 3 Em que 7 o impulso a aplicar a bola Ap define a varia o do momento linear m indica a massa da bola e Av indica a varia o de velocidade desta A componente V dada pela velocidade actual da bola necess rio descobrir qual a velocidade final que a bola ter obter de mod
25. figura abaixo encontram se alguns exemplos de blocos de comportamento E CO CN CN Ci CI Cl E E EI O O mw O oF F F Set Light Range Translate D Fet Projection gt CO Player E Collision Detection Keyboard Controller Emo rr Dr DD rr criem Dr o DD Pr O Figura 2 10 Exemplo blocos de comportamentos Behavioural Building Blocks Um bloco de comportamento para iniciar o seu processamento necessita de receber um sinal de activa o este que originado por um bloco especial de nome Start existente em cada script A constitui o b sica de um bloco de comportamento de e Pelo menos uma entrada comportamental bin que conduz o sinal de activa o ao bloco de comportamento e respons vel por iniciar o seu processamento e Zero uma ou mais sa das comportamentais bOut que s o activadas quando o processamento efectuado no bloco de comportamento termina e O sinal de activa o depois conduzido para novos blocos de comportamento atrav s de liga es comportamentais bLinks A passagem de dados entre comportamentos feita atrav s de e Par metros de entrada pin por um nome tipo e valor e Par metros de sa da pOut por um nome tipo e valor e Os par metros s o passados atrav s de liga es de par metros pLink ou por atalhos de par metros 13 Figura 2 11 Componentes de um bloco de comportamento Cada bloco de comportamento cont m igualmente uma marca Properties mark que ind
26. indicando um m nimo de 75Hz para o caso de se estar a utilizar o modelo que cont m tracking incorporado pelo que o valor real de frequ ncia de amostragem das luvas que s o utilizadas na tese em principio maior em algumas ordens de grandeza assim n o poss vel efectuar o c lculo de uma quantidade temporal te rica de modo a fazer uma compara o com o valor real De acordo com a Tabela 1 2 e comparando com os valores apresentados na Tabela 2 1 pode se apenas verificar que as luvas 5DT se encontram num patamar interm dio em termos de frequ ncia de amostragem e com uma resolu o id ntica aos exemplos apresentados 6 3 culos eMagin Z800 3D Visor Para o seguimento proveniente do girosc pio dos culos segundo 12 este possui uma velocidade de refrescamento de 125Hz com um tempo de lat ncia do dispositivo de 4ms Os dados s o fornecidos com uma resolu o de 1grau O tempo te rico total de utiliza o assim 12 ms H uma discrep ncia entre o valor obtido atrav s do gestor e bloco de comportamento eMaginBB que soma um total de 54ms e o valor te rico devido contabiliza o no primeiro do tempo de polling que estava configurado em eMaginBB com um valor de 30ms H igualmente um acr scimo de 12ms do valor obtido pelo facto de o gestor estar inserido dentro do ambiente Virtools aumentando assim o tempo total de obten o dos dados 66 7 Testes de Utilizador 7 1 Objectivos Com os testes de utilizador
27. induzida nas tr s bobines pela 2 6 componente da liga o magn tica e pelas suas sensibilidades descritas pela matriz S ils USAS Assim nove valores de tens o s o calculados atrav s de 2 7 v STM 2 8 p Em que K um factor de ganho Acoplado liga o magn tica existe uma componente de ru do na liga o magn tica em conjunto com ru do atmosf rico representados por N e ru do electr nico representado por N Estes factores ter o de ser postos em conta no c lculo de V pelo feita a soma alg brica das suas quantidades com a express o acima A express o para o c lculo das tens es fica com o seguinte aspecto final V STM N N 2 9 p O m dulo de interface tem aqui o papel fundamental pelo que neste que s o feitos todos os c lculos e s o descobertos os novos valores de posi o e orienta o atrav s dos valores obtidos de V Consultar 5 13 14 2 1 1 1 Pontos fortes A tecnologia de tracking magn tico tem como qualquer tecnologia pontos fortes e fracos Aqui s o listados os pontos que tornam esta tecnologia uma boa escolha para a captura de movimentos e Utilizando trackers magn ticos n o h problemas de linha de vista O campo magn tico gerado atravessa obst culos ligeiros Assim pode se utilizar os dados gerados pelo tracker mesmo que o receptor esteja ocluso em rela o ao emissor e O custo associado a um tracker magn tico inferior a um sistema de trac
28. m de uma componente de visualiza o Estes possibilitam ao utilizador o seguimento dos movimentos feitos pela sua cabe a Atrav s de um sistema de girosc pios MEMS Micro Electro Mechanical System de alta velocidade em conjunto com aceler metros em cada um eixos xX yy zz s o capturados todos os movimentos feitos pela cabe a do utilizador A tecnologia de MEMS descrita como a integra o de diversos elementos mec nicos tais como sensores e actuadores num substrato comum de sil cio atrav s de tecnologia de micro fabrica o 2 1 3 Luvas 5DT Atrav s da utiliza o de luvas 5DT poss vel atrav s de sensores localizados em pontos espec ficos destas determinar movimentos efectuados na m o em que a luva est cal ada 15 As luvas descritas nesta sec o s o os modelos Left Handed 5DT Data Glove 5 Ultra e Right Handed 5DT Data Glove 14 Ultra A principal diferen a entre estes dois modelos a localiza o e n mero de sensores que as constituem Cada luva cont m um porto Rj12 que em conjunto com um cabo fornecido pela 5DT permite a liga o a um computador atrav s de uma porta USB ou Serial RS 232 Existe igualmente dispon vel um m dulo Wifi Wireless Fidelity que permite uma liga o sem fios via BlueTooth entre o computador e as luvas dando assim maior liberdade de manuseamento destas por parte do utilizador Rj12 Connector USB A Connector REA Figura 2 4 Liga o Luvas 5DT Abaixo
29. neste cap tulo tal como interpreta o do HUD e campos do menu de op es 62 6 Medi o de Desempenho Para determinar o desempenho de utiliza o dos dispositivos inseridos no contexto de uma aplica o em Virtools s o desenvolvidos dois novos blocos de comportamento e Get System Time Bloco de comportamento que fornece informa o do tempo de sistema em UTC Universal Time Co ordinated todavia a resolu o temporal fornecida por este baixa apresentando tempos em milissegundos e Get Precise Time Bloco de comportamento desenvolvido em conjunto com um Gestor que fornece informa o temporal ao programador com resolu o temporal ao n vel de u segundos As medi es de desempenho s o efectuadas utilizando Get Precise Time dado que este apresenta melhor resolu o temporal O tempo fornecido por Get Precise Time o tempo desde a activa o do Gestor quando iniciada a aplica o Virtools at activa o corrente do bloco de comportamento Este tempo internamente calculado pelo Gestor recorrendo directamente ao registo Inicio Virtools p Inicializar estruturas de de contador do rel gio do processador 33 temponzador Activar temporizador Inicializar pOut bln bOut Sinal de Activagao em bin Fecho Virtools Desactivar Tamporizadar Padido de tempo passado desde inicia o do Gestor de Pedido de Dados de Get Precise Time Tempo Determinar tempo E Obten o de
30. o f Mover c mara em x o 0 Aumentar campo de vis o o 9 Diminuir campo de vis o o 8 Aproximar plano de converg ncia de estereoscopia o T Afastar plano de converg ncia de estereoscopia e Credits Cr ditos do Jogo PianoVR 11 Anexo Figura 12 PianoVR Credits Menu e Exit Sai do jogo 11 3 Anexo C Apresenta o Virtools Gerador de Conte dos Permite a cria o r pida de conte do 3D interactivo N o uma ferramenta de modela o Permite criar c maras luzes curvas param tricas elementos de interface O que Virtools Gerador de Conte dos Motor Comportamental Motor de Renderiza o e Web Player SDK Motor Comportamental Virtools processa comportamentos O que s o Comportamentos Descri o de como um certo elemento actua num determinado ambiente Est o na forma de Behaviour Building Blocks N o requerem uma nica linha de c digo 12 Motor de Renderiza o Web Player Desenha conte do no ecr 3D Life Player Funciona sobre DX9 DX8 DX7 OpenGL e Permite a visualiza o interac o de 2 0 conte do atrav s de p ginas Web Pode ser substitu do por um motor constru do pelo utilizador atrav s do SDK Layout Virtools Permite Criar Modificar comportamentos Criar novos tipos de par metros Criar plugins de media Modificar Extender Substituir Motor de Renderiza o
31. o para Lab Carregar em Nivel de principal bot o de volta dificuldade para menu Teda aser principal pressionada Voltar atr s Si m Actualizar par metros Voltar atr s Eas Hard Medium Definir tempo de execu o de m sicas Menu Principal Figura 5 13 Arquitectura simplificada de PianoVR 1 57 Espera de dados Espera de dados de flex o vindos de flex o Menu Principal In Game Iniciar Continuar comunica o Iniciar Continuar l gica de jogo Marcar pr xima tecla a ser tocada com gestores de dispositivos Espera de dados vindos de gestor Tecla de piano de gestor de luva vindos de gestor de tracking Espera de dados pressionada esquerda de luva direita magn tico vindos de gestor de tracking culos Reduzir ruido Reduzir ruido Reduzir ruido Reduzir ruido de alta de alta de alta de alta frequ ncia frequ ncia frequ ncia frequ ncia dados m o dados m o esquerda direita Reduzir ruido de alta frequ ncia Movimentar Movimentar c mara c mara Movimentar e Movimentar e orientar m o orientar m o esquerda direita Onentar c mara Encerra todos os gestores de jogo Iniciar Gastos de Tempo de Jogo de acordo com grau de dificuldade Reiniciar Decrementa N o temporizador tempo restante de EXECU O Carregar em bot o de volta para menu Taca d MENU Reinicia temporiz
32. o de tracker 1 Retirar orienta o de tracker culos magn tico Determina o de execu o de bloco de Determina o de tempo de execu o de comportamento bloco de comportamento Passar dados por filtro passa baixo Passar dados por filtro passa baixo a Inserir dados num vector de a Inserir dados num vector de tamanho predefinido tamanho predefinido i Se vector cheio eliminar i Se vector cheio eliminar elemento mais antigo antes elemento mais antigo da inser o antes da inser o b Calcular m dia aritm tica de valores b Calcular m dia aritm tica de contidos no vector valores contidos no vector 4 Determinar nova orienta o 4 Determinar nova orienta o a Aplicar nova orienta o a eixo de a Aplicar nova orienta o a eixo coordenadas local de coordenadas local 5 Determinar nova posi o a Aplicar nova posi o a eixo de coordenadas do mundo Obten o Tratamento de dados de luvas Retira gesto de luvas Determina o de tempo de execu o de bloco de comportamento Transla o de c mara de acordo com gesto Figura 5 3 Pseudo c digo de scripts de aquisi o de dados de PongVR Dado que a orienta o e posi o do receptor do tracker relativa ao seu emissor n o s o utilizados os dados directamente como v m do filtro passa baixo mas sim calculada a varia o entre os dados actuais e os calculados na frame anterior para que deste modo se possa colocar e orientar a raquete num estado in
33. semelhante Nesta tese utilizado o tracker Polhemus Fastrak pelo que dada uma explica o aprofundada do seu funcionamento na sec o 2 1 1 e 4 1 e Head Mounted Displays culos eMagin z800 3D Visor com girosc pio interno e aceler metros permite determinar a sua orienta o e tipo de movimentos efectuados Este dispositivo utilizado nesta tese pelo que dada uma explica o aprofundada na sec o 2 1 2 e 4 3 mostrada abaixo uma tabela em que s o comparadas diversas tecnologias de seguimento atrav s de diversos tempos de lat ncia e frequ ncias de amostragem O tempo de lat ncia indica o tempo necess rio para fornecer os dados dos dispositivos ao computador a que est o ligados e frequ ncia de amostragem indica o n mero de amostras que s o capturadas por segundo Finalmente DoF indica o n mero de graus de liberdade que o respectivo dispositivo fornece ao utilizador Tabela 1 1 Compara o de tecnologias de tracking 6 7 8 Tempo de Frequ ncia de DoF Tecnologia Lat ncia amostragem InterGlide IS 300 Se QO ms 125Hz 500Hz 3 Inercia FakeSpace 200ms gt 70Hz Mec nico O T C Lipman Vscope 100Hz 3 Ultra som DynaSight asin sins pA 3 Optico Cyclop Tracker 30 60Hz 6 Optico Tracker Polhemus Fastrack ms 20HZ 6 Magn tico FlockofBirds o 44H 6 Magn tico 1 3 1 2 Captura de Movimentos e Data Gloves dispositivos em forma de luva qu
34. telic saias ses AAEN 66 vestes de UUM ZAC OF csciccciuccivecsvasciee ical ciue dia a a ias aaa 67 7 1 ODICCNVOS ne E ee E re 67 Ta Descricao do sistema A TES CAP aaa sind ani 67 to AMDiente CO LESTE osseo a a aa 67 7 4 Caracter sticas dos participantesS sscecsseccecsecccccseccccsececcseccecseecccsseccccseeeccseeeeo 67 7 5 MEelodol DIA sas ai Tas Des ads TOS east Dada tao EEEE ONSE 67 nO Tarcfas ssni a Ta dani Sea a op esa dead a ia aaa Latas aaa tada 68 Tek Testese Medidas erise brado asi os or ani paras da iiCa di aan asas Ee 68 7 8 Conclus es para Testes de Utilizad Or ccsscccsssccssscccssscccsscccsscccssscccssccessces 70 7 8 1 PONO VIR upar onte AE EAN EN 70 48 2 PlaNOV o PODER DO CRS PO PRGNIOD PR END ROSE RS DRT RINDO PRP UERR 70 S MCOMECIUIS OCS rasas aras estada acaso dada bo TE aa 71 Reoler NaS aeee E E E EES 73 10 Bibliografia sissies E aaas 75 IL ANXOS ueser e aa ENa aa 1 11 1 Anexo A Manual de Instru es de jogo PongVR ssssssesssseccssecossecossecoseecsssessoe 1 Xi 11 2 Anexo B Manual de Instru es de jogo PianoVR cccccccceeecsereccsoceresseeeeos 7 11 3 Anexo C Apresenta o Virtools ccccccssssccccssssscccsssssccccssssccccssssscccsssssscssesess 12 4a Anexo De Scripts Pone VR asisaaasassonss cones cassa Ran Do REa daN San so bias ana eaa Eoia sin as 20 11 5 Anexo E Scripts PianoVR assassinas asa seis eae 23 XII Lista de Figuras Pigtita 2 1
35. um ficheiro com nome VRPack cfg no mesmo direct rio desta pelo que este ficheiro dever conter ou referenciar toda a informa o necess ria para a configura o do VR Pack poss vel referenciar ficheiros externos dentro de um ficheiro de configura o podendo assim criar uma estrutura modular de ficheiros de configura o 26 Apenas ser o colocados e explicados os ficheiros de configura o que contenham informa o essencial para a defini o de estereoscopia driverld O bitPerPixel 32 View O O quad O O 800 600 Figura 3 13 Conte do de VRDisplay cfg Dentro do ficheiro VRDisplay cfg que referenciado por VRPack cfg s necess rio descrever a linha View O O quad 0 0 800 600 Esta efectua a configura o de estereoscopia activa A sintaxe do token a seguinte View hostld chanld stereomode cameraname x y w h Sendo que e hostld Lista de ndices de Hosts come ando com o valor zero que indica o Master e chanld ndice para a vista de determinado Host e stereomode Indica tipo de stereo a utilizar o none N o utiliza stereo o quad both Utiliza stereo activo o left Olho esquerdo em stereo passivo o right Olho direito em stereo passivo e cameraname Nome da camara tal e qual como aparece na composi o que ir sobrepor a c mara activa Caso se queira utilizar c mara activa por defeito utilizar par metro e xyw h posi o e tamanho da viewport StereoInvertEyes 0 InterpupillarDis
36. utilizando ferramentas profissionais e dispositivos imersivos estado de arte Todo o trabalho realizado na cria o de estruturas para a utiliza o dos dispositivos em Virtools feito de tal forma que possa ser reutilizado em diversos contextos e aplica es No caso desta tese foi escolhido um contexto l dico na rea de programa o de jogos mas pode ser apontado para aplica es industriais p e uma linha de montagem de carros virtual em que o utilizador tem sua disposi o um armaz m de pe as e consegue agarra las e as deslocar para uma determinada posi o e com uma determinada orienta o de modo a construir virtualmente um prot tipo de um carro necess rio focar toda a aus ncia de experi ncia tanto na utiliza o da ferramenta de desenvolvimento Virtools como na utiliza o dos diversos dispositivos imersivos Pelo que no in cio do desenvolvimento n o haver ajuda e suporte no estabelecimento de ensino em que foi desenvolvida dado ser a primeira vez que estava a ser dada uma utiliza o tanto para os dispositivos como para o software Virtools Assim h um esfor o inicial de auto aprendizagem tanto da plataforma Virtools utiliza o do seu SDK para o desenvolvimento eficiente de plugins como da correcta utiliza o de cada um dos dispositivos e respectivas API s Foi tamb m importante aprendizagem de ferramentas de modela o 3D Blender SD Studio MAX e manipula o de imagem ADOBE Photoshop de modo a cria
37. visto de cima em que a esfera o elemento oclusor e o pol gono o receptor de sombra De forma a simplificar a situa o n o ser tida em conta a sombra gerada pelo pol gono 41 Luz Receptor Figura 4 14 Volume de Sombra A regi o a cinzento representa o volume de sombra Esta obtida extrudindo as arestas de silhueta da esfera a partir do ponto de vista da fonte de luz at uma dist ncia finita ou infinita O cen rio depois renderizado e para cada fragmento feito o seguinte teste que ir modificar os valores do stencil buffer e Renderizar face frontal do volume de sombra Se teste de profundidade passar entao incrementa se valor correspondente de stencil caso contrario nao se faz nada Desactivar escrita tanto para o color buffer como para o depth buffer e Renderizar face traseira do volume de sombra Se teste de profundidade passar ent o decrementa se valor correspondente de stencil caso contrario nao se faz nada Desactivar escrita tanto para o color buffer como para o depth buffer Abaixo mostrada uma figura que exemplifica os passos referidos acima a mbra Receptor d go Figura 4 15 Modifica o Stencil Buffer 1 algoritmo 1 objecto Dado que utilizado a informa o de z pass depth pass este algoritmo conhecido por t cnica de Depth Pass Stencil Shadow Volume O algoritmo tamb m aplic vel para m ltiplos oclusores como se pode verificar na figura abaixo 42
38. 0 3D VISOP scsescscscsssssssssssesssssseseseeees 10 2 3 Software de Desenvolviment ccssccccssscccsssscccsssccccssscccssscccessscccsscccssscccesess 12 1X 2 3 1 Dassault Syst mes Virtools ssscccccccssssssssccccccssssssssscccccsesssssssccecesees 12 3 Integra o de Dispositivos Imersivos em Virtools ccccccrssssccccsssssees 17 SA LolhemisBastial et A E E EA EENE EATE 17 3 2 ETE T S A OEE RE AA A RR RAR EA RODE RR RD CR 20 3 3 culos virtuais CMA Z800 wrccrccsscesuccsessisdeceisctscseevesscuvedebecdsvestnesscsveisbivsuseuaseioes 22 3 3 1 SEQUIMENTO rsrs aE E R 23 3 32 VISUAlZ CAO sinia AA Ea aR a 24 4 Conceitos b sicos para a cria o de jogos em Virtools e essssssssseccooosoos 31 4 1 Cria o e controlo d e camara siicesisieosiccsaeisiecalvenceisicdesdcinecncesasebssecwenesovecessisccedeuts 31 AZ ADATONCIA osrin E EEEE EENE EE S E EES 32 4 2 1 Modelo de reflex o de Phong sssssseseeseeesssssosoccececeeeeesessooooccccceeeeeeeessosoo 32 4 2 2 Modelo de ilumina o de Gouraud ssccscesssssoccecessssocccccessssooooceses 33 4 3 Transforma es geom tricas sssssseccccsssseccccsseccceccsseccccccossececesossececcssssececssssseeoo 34 Aa Detec o de ColS ES siisii ceninin sor asd Dera rasa easa Eaa S E aos 37 4S Motor de FISICA ssa raias ensaiadas nei na casada 39 dO Efeitos ESPECIAIS sa ccseedcscsescesedeethesaycvesescotessaueutecseuccbause E OE a NO EASA SiS 40 4 6 1 So
39. 471 475 Charles River Media Inc 2000 Maillot Patrick Giles Using Quaternions for Coding 3D Transformations Graphics Gems 1998 pp 498 515 Morgan Kaufmann 1998 Mc Carthy Christopher Callele David Krupa Fr d rique Virtools User Guide Dassault Systemes 2006 Moller Akenine Tomas Haines Eric Real Time Rendering Second Edition pp239 243 A K Peters Ltd 2002 Nahon David Philippon Nicolas Kaci Leila Ait Kuntz S bastien Virtools Behaviour Libraries VR Library VR Publisher 2 0 User Guide Dassault Systemes 2006 Rost J Randi OpenGL Shading Language Second Edition Addison Wesley 2006 Shreiner Dave Woo Mason Neider Jackie Davis Tom OpenGL Programming Guide Fifth Edition Addison Wesley 2005 Svarovsky Jan Quaternions for Game Programming Game Programming Gems 2000 pp195 199 Charles River Media Inc 2000 Taylor Il Russell M Hudson Thomas C Seeger Adam Weber Hans Helser Jeffrey Juliano Aron T VRPN A Device Independent Network Transparent VR Peripheral System University of North Carolina 75 16 11 Anexos 11 1 Anexo A Manual de Instru es de jogo PongVR Requisitos M nimos Hardware Pentium Ill ou equivalente 512 MB RAM Monitor com resolu o de pelo menos 800x600 com 16bit por pixel Placa gr fica NIVIDIA com suporte a OpenGL ou Direct3D com 64MB de RAM e estereoscopia activa Rato ou dispositivo semelhante Drive de CD ROM
40. 9 Anexo Figura 9 PianoVR In Game O Heads Up Display de jogo constitu do por quatro zonas Next Note em que dada informa o numa Clave de Sol de qual a pr xima nota a ter de ser tocada Success Rate que indica a percentagem de notas tocadas na sequ ncia correcta Remaining Time que indica o tempo restante para tocar a sequ ncia de notas para a m sica actual e Elapsed Time que indica o tempo total de jogo tamb m dada informa o visual atrav s da cor azul nas teclas para saber qual a pr xima tecla a carregar de modo a efectuar correctamente a sequ ncia para a m sica actual e Options Abre Menu de Op es Anexo Figura 10 PianoVR Options Menu o Left Tracker X Sensibilidade no eixo x do receptor de tracking esquerdo Y Sensibilidade no eixo y do receptor de tracking esquerdo Z Sensibilidade no eixo y do receptor de tracking esquerdo Azimuth Sensibilidade no ngulo azimuth do receptor de tracking esquerdo Elevation Sensibilidade no ngulo Elevation do receptor de tracking esquerdo Roll Sensibilidade no ngulo Roll do receptor de tracking esquerdo o Right Tracker X Sensibilidade no eixo x do receptor de tracking direito Y Sensibilidade no eixo y do receptor de tracking direito Z Sensibilidade no eixo y do receptor de tracking direito Azimuth Sensibilidade no ngulo azimuth do receptor de tracking direito Elevation Sensibilidade no ngulo El
41. A Soana Stan Aive Now Priory 3D Layout 3D Layout e Constituido por Barra de ferramentas esquerda e Constitu do por Selection Tools Transformations Tools Reference amp Screen Guides Creation Tools Camera Navigation Tools Barra de Ferramentas no Topo 3D Layout Explorer Selection Group Select Camera General Preferences 3D Layout Building Blocks amp Data Resources e Constituido por e Cont m comportamentos dispon veis ao Janela de Renderiza o utilizador Organizados por tipo Aplicados a Behavioural Objects 13 Building Blocks amp Data Resources Recursos Multim dia disponibilizados pela Virtools Objectos 3D Sons Imagens etc Building Bloc Level Manager amp Schematic Windows Level Manager consiste Barra de Ferramentas esquerda Cria o de s Grupos Arrays Scripts Scenes Schematic Window Constitu da por Barra de Ferramentas no topo Diversas fun es de ajuda na manipula o de scripts modo Debug Mostrar Esconder Scripts etc Barra de Status e Localizada no canto inferior do ecr Fornece informa o util sobre a Composi o Informa o de performance FPS taxa de ocupa o de recursos Coordenadas do Mundo para um dado objecto seleccionado 14 Level Manager amp Schematic Windows Level Manager consiste Barra de Ferrament
42. INSTITUTO SUPERIOR T CNICO fi Concep o e Desenvolvimento de um jogo 3D para Computador utilizando o software VIRTOOLS e Tecnologia de Seguimento Ricardo de Castro Aguiar n 49482 Disserta o para obten o de Grau de Mestre em Mestrado em Engenharia Electrot cnica de Computadores Relat rio de Tese de Mestrado 412 2007 M Presidente M rio Serafim dos Santos Nunes Orientador Jo o Ant nio Madeiras Pereira Co Orientador Carlos Jorge Ferreira Silvestre Vogal Manuel Jo o Toscano Pr spero dos Santos Setembro 2007 il Agradecimentos Esta tese n o teria sido poss vel sem a ajuda das seguintes pessoas os meus pais Daniel e Suzete Aguiar e irm os Paulo e Rafael Aguiar que ao longo de toda a minha vida t m me dado o seu apoio incondicional Prof Jo o M Pereira que aceitou orientar a minha tese dando me assim a possibilidade de trabalhar numa rea de elei o para mim a rea dos videojogos Prof Carlos Silvestre que aceitou co orientar a minha tese e assim criou a ponte necess ria entre o Departamento de Engenharia Electrot cnica e Computadores e o Departamento de Engenharia Inform tica e de Computadores Eng Bruno Rodrigues de Ara jo por ajudar a dar um rumo minha tese pelas dicas acerca dos aspectos relacionados com a interface das aplica es e testes de utilizador colegas Lu s Tavares Nelson Gon alves e Ricardo Ferreira pelas dicas na rea de Sistemas de Decis o e Controlo pelo beta testing
43. a 3 5 Bloco de comportamento GloveBlock cccccccsccccceececeseeeeceeeseeesesecesanseseaaeeeeaanses 21 Figura 3 6 Mapeamento de SESLOS uses panesa a SAS ST a UI Da da E es 22 Figura 3 7 Bloco de comportamento eMaginBB o eoessseessenesseessseessssrssserssseesssersssersseessseeo 23 Figura 3 8 Funcionamento de eMaginBB esquerda Gestor direita 24 Prora 3 9 Delimi o de cameras asia Le apta Era das E na saca DG La aaa 25 Figura 3 10 Esquema correcto de CStereOSCOPta secccccssseceeeececceesceceescecsesecesansceeseeeeenaaees 25 Figura 3 11 Estereoscopia com c mara convencional esseessseessserssserssseressersssersseesseeo 26 xiii Figura 3 12 Estereoscopia com Projection Referential Cameras ietemmereremeeramea 26 Fiotra3 15 Conteudo de VRDISDia O Cs praiaad rss oo DESSES a 21 Figura 3 14 Contetdo de VA Stereo Cfo cineris aa S a a Red dadas N 21 Figura 3 15 Projec o de pontos no plano de visualiza o ccccceccccseesceceeeceeescceeeeecenseees 28 Figura 3 10 Tipos de paralla ssa asia E Dodi aaa 29 Piura A Projece Io Oro G6 ali Ca us iss ada as das COROAS a dna 31 Figura 4 7 Projec o PELSPECIVA ona eta erie ide RL Rd ca Daa x 32 Figura 4 31 Ilumina o por pixel vs ilumina o por VEFtiCe cc ecccceeescecneseceeeeeceeeeeeceneeees 34 Figura 4 4 Sistema de coordenadas regra da m o esquerda sssoesssoessserssseesssersssersseessseee 35 R NS E
44. a informa o recolhida com a arquitectura especificada poss vel determinar se a varia o da corrente nos receptores devido a mudan as de orienta o ou de dist ncia entre emissor e receptor Y a Figura 2 3 Tr s Bobines Em cada uma das bobines o tamanho das suas espiras mantido muito pequeno em rela o a dist ncia entre o emissor e o receptor isto para que o emissor e receptor possam ser considerados pontos ou dipolos infinitesimais produzido um campo magn tico excitando cada uma das bobinas com uma componente long nqua e uma componente pr xima quasi static esta que ser predominante caso a dist ncia entre receptor e emissor seja A p lt lt 2 1 2m Em que 2 o comprimento de onda do sinal de excita o Assim considerando uma corrente i t I cos wt A atravessar uma bobine produz se um campo magn tico a uma distancia 9 e ngulo com as 2 2 seguintes componentes M H cos Componente radial de Campo Magn tico 2 3 270 M o HH G sing Componente tangencial de Campo Magn tico 2 4 Ty Pelo que M NIA 2 5 M o momento magn tico N o n mero de espiras e A a rea da bobine Existem tr s bobines no receptor para tr s momentos magn ticos pelo que se pode considerar o momento magn tico total como a matriz M IMIM IM A posi o e orienta o do sensor descrita atrav s da tens o
45. ador de acordo com grau principal de dificuldade Esconder Menu de Op es Encerra todos os gestores dejogo Menu Principal Actualizar par metros Menu de Op es Figura 5 15 Arquitectura simplificada de Piano VR 3 Tal como em PongVR a an lise da arquitectura ser feita apenas ao estado In Game pelo que uma descri o mais detalhada dos restantes componentes efectuada em anexo Ao passar para o estado In Game s o iniciados scripts que s o respons veis por e Aquisi o e tratamento de dados de gestores de dispositivos e Gest o de detec o de colis es e Gest o de l gica de jogo e Gest o de reprodu o de sons e Gest o de temporizador 5 2 1 Aquisi o e tratamento de dados de gestores de dispositivos O processo de utiliza o dos trackers id ntico ao mostrado na aplica o PongVR com a pequena diferen a de se estar a utilizar dois blocos de comportamento TrackerBB Isto deve se ao facto de ser necess rio retirar informa o de dois receptores um localizado na m o direita e o outro localizado na 58 m o esquerda Ambos os valores retirados de cada um dos trackers s o passados de forma id ntica por um filtro passa baixo de modo a atenuar o ru do de alta frequ ncia Das luvas retirada informa o de flex o para cada sensor Esta informa o tratada e depois aplicado o novo movimento calculado a um sistema de ossos previamente implementa
46. anto com ilumina o por pixel renderizada a 1609 fps H uma perda total de mais de 200 fps no entanto pode se verificar atrav s das figuras uma melhoria substancial da qualidade da ilumina o do modelo A Virtools n o em si um motor gr fico pelo que recorre s API s OpenGL ou Direct3D para fazer a renderiza o do conte do 2D 3D Ambas as API s especificadas utilizam o modelo de ilumina o de Gouraud dado que este significativamente mais r pido pois o c lculo de cor apenas feito para cada v rtice Sendo assim a Virtools apenas dada a op o de renderizar sem modelo de sombreamento ou com modelo de Gouraud A defini o das propriedades de uma determinada superf cie em Virtools feita atrav s de materiais A cada objecto est atribu do um material que cont m as tr s componentes ambiente difusa e especular referidas acima Numa fonte de luz apenas se pode especificar a componente difusa da fonte de luz e se esta activa ou n o a componente especular do material A componente ambiente da luz n o est associada a uma fonte de luz mas sim a todo o ambiente do mundo e pode ser especificada atrav s do bloco de comportamento Set Ambient Light 4 3 Transforma es geom tricas atrav s da utiliza o de transforma es geom tricas que todos os objectos existentes num jogo s o movimentados rodados ou modificados de tamanho As transforma es s o efectuadas atrav s de um sistema de coordenadas cartesian
47. as no topo Mostrar Ocultar Layers Expandir Colapsar elementos seleccionados Level Manager amp Schematic Windows Level Manager consiste Janela Principal e Lista todos os elementos do Level Scene IO E EIS Ratvat A toe Reset A Scene Stat _Ative Now Ray Schematic Window Constitu da por Zona de cria o e modifica o de conte do nos scripts Cora o da nossa composi o Schematic Window Constitu da por Zona de cria o e modifica o de conte do nos scripts Cora o da nossa composi o Sistema de Coordenadas na Virtools Sistema de Coordenadas 2D Definida por 2 eixos X Horizontal Y Vertical com origem no canto superior esquerdo do ecr Coordenadas 2D ou Coordenadas de ecr expressas em Pixeis coordenadas absolutas Coordenadas homog neas relativas 0 0 1 0 Y Barra de Status Localizada no canto inferior do ecr Fornece informa o til sobre a Composi o Informa o de performance FPS taxa de ocupa o de recursos Coordenadas do Mundo para um dado objecto seleccionado Sistema de Coordenadas no Virtools Sistema de Coordenadas 3D Cont m Profundidade para al m de Altura e Largura Novo Eixo Z Profundidade Sistema de Coordenadas do Mundo Origem no ponto de intersec o dos 3 eixos Unidades de Medida Sugest o 1 unidade no Sistema de Coordenadas 3D por defeito
48. ca para cada uma delas Mais uma vez para fins de optimiza o tal como foi feito para o tracker na altura da recolha de dados n o efectuado a verifica o de se ter Inicio Virtools Detec o do n mero de luvas ligadas Inicializar pin pOut bin but Inicio de desligado a luva ap s o gestor ter criado uma liga o comunica o com O diagrama de blocos luva abaixo efectuado para cada liga o USB Comunica o N o inal de Activaca bem sucedid Sinal de Actva o em bin sucedida Sim Obter identificador id de luva e forma dos dados de pin Desactiva o i M dados de sensores de comunica o com de flex o sensores para luva dados para e de flex o sensores para luva Eliminar estruturas de dados de luva s da mem ria para luva de GloveBlock flex o luva s i atrav s de Gestor GloveBlock id atraves de Gestor C lculo de tempo de lat ncia Activar bQut Ea espec fica Pedido de dados temporais amp Inicializar estrutura de Terminar E didi Obten o de dados Ba sd i de sensores de flex o ra cc Obten o de dados temporais Actualizar pQut s Desactivar bin Figura 3 4 Funcionamento de GloveBlock a esquerda Gestor a direita necess rio ter em conta igualmente o n mero de sensores que a luva cont m no entanto para fins de optimiza o o mesmo tipo de opera es efectuada independente do tipo de luva ligada pelo que a API da 5DT retorna automati
49. camente o valor O caso o sensor ao qual se tenha pedido n o esteja mapeado na luva em quest o O comportamento criado para obter os dados do Gestor das luvas fica com o seguinte aspecto final 20 Figura 3 5 Bloco de comportamento GloveBlock Os par metros deste bloco de comportamento indicam Par metro de entrada de tipo Inteiro de nome mode que refere o modo pelo qual s o obtidos os dados Os modos dispon veis s o raw e auto calibrated em que no primeiro os dados s o apresentados tal e qual como s o recebidos pela luva com um valor entre 0 e 4095 pelo que 0 nenhuma flex o e 4095 flex o total do sensor e no segundo s o auto calibrados de modo a ficarem com um valor entre O e 1 em que 0 nenhuma flex o e 1 flex o total do sensor Par metro de entrada de tipo Inteiro de nome gloveld que dever ser colocado do porto USB da luva para o qual se quer receber a informa o sensorial Par metros de sa da 0 13 do tipo float de nome sensor 0 13 indicam o valor de flex o de cada um dos sensores existentes No caso da luva de 14 sensores os par metros t m correspond ncia directa com o sensor a que est o associados ver figura 2 4 Para a luva de 5 sensores o mapeamento entre os par metros do comportamento e os sensores da luva s o os especificados pela tabela abaixo e identificados na figura 2 3 Aos par metros com identificador 2 5 8 e 11 retornado o valor O dado que n o h nenhuma correspond ncia
50. cess rio ter cuidado com a posi o e orienta o tanto do emissor como do receptor no menu de ajuda dada informa o respeitante a esse assunto O Heads Up Display de PongVR constitu do por quatro zonas Player 1 Points Won Player 1 Sets Won Player 2 Points Won e Player 2 Sets Won que indicam respectivamente o pontos ganhos pelo jogador 1 sets ganhos pelo jogador 1 pontos e sets ganhos pelo jogador 2 PC e Options Abre Menu de Op es Anexo Figura 4 PongVR Options Menu o X Translation Speed Sensibilidade no eixo x do receptor de tracking o YTranslation Speed Sensibilidade no eixo y do receptor de tracking o Z Translation Speed Sensibilidade no eixo y do receptor de tracking o Azimuth Speed Sensibilidade no ngulo azimuth do receptor de tracking o Elevation Speed Sensibilidade no ngulo Elevation do receptor de tracking o Roll Speed Sensibilidade no ngulo Roll do receptor de tracking o Auto Aim Min Dist Dist ncia para o qual feito o auto aim da raquete do jogador o Ball Magnet Volume Factor de escala para Volume de atrac o da bola o Number of Translation Initial Samples Discarded N mero de amostras de posi o do receptor desprezadas no inicio do jogo o Number of Rotation Initial Samples Discarded N mero de amostras de rota o do receptor desprezadas no inicio do jogo o Number of Translation Samples Per Action N mero de amostras de posi o do recept
51. componentes que s o igualmente importantes Cen rios e personagens extremamente detalhados s o sem d vida um bom passo mas n o garantem o sucesso de um jogo Infelizmente a componente de jogabilidade tem sido desprezada tornando os jogos pouco intuitivos e apesar da boa apar ncia pouco estimulantes a serem jogados Felizmente j se come a a tomar consci ncia de que a jogabilidade t o ou mais importante que a componente visual de um jogo j se come am a explorar novas formas de interac o com o utilizador A presente tese visa o desenvolvimento de jogos utilizando uma ferramenta profissional Virtools que apele a formas de interac o de um jogador com um jogo recorrendo a dispositivos imersivos estado de arte O objectivo proporcionar ao jogador uma maior imers o e interac o no ambiente virtual de jogo sem recorrer a um rato teclado e monitor 1 2 Organiza o do documento A presente disserta o constitu da por onze cap tulos 1 Introdu o feita um enquadramento da tese seguido de uma pequena descri o de alguns dispositivos imersivos estado de arte existentes no mercado 2 Tecnologias utilizadas Neste cap tulo feita uma descri o detalhada das tecnologias utilizadas pelos dispositivos imersivos e software empregados na tese 3 Integra o de dispositivos imersivos em Virtools Para a utiliza o dos diversos dispositivos na plataforma Virtools necess rio criar mecanismos de comun
52. controlo de uma raquete configurada uma c mara com estereoscopia activa pelo que a sua posi o controlada atrav s de gestos com uma luva cal ada na m o esquerda e orienta o controlada pelo girosc pio interno dos culos No entanto esta aplica o n o faz uso de todo o potencial das luvas pelo que se decide criar mais um jogo em que cal ado um par de luvas 5DT cada uma com um receptor de tracker magn tico Com a informa o obtida de posi o e orienta o de cada m o aliada com a informa o de flex o dos dedos pelas luvas movimenta se e manipula se um par de m os virtuais que t m como finalidade a interac o com um piano virtual sendo o nome do jogo PianoVR O presente cap tulo tem assim o intuito de explicar o desenvolvimento de cada uma das aplica es 5 1 PongVR O objectivo desta aplica o o de simular um jogo de t nis de mesa Para isso o jogador utiliza o receptor do tracker magn tico para movimentar e orientar a raquete no mundo virtual Player 1 Player 2 Points Won Sets Won Points Won Sets Won Figura 5 1 PongVR A visualiza o do jogo feita atrav s da utiliza o dos culos eMagin Z800 em que a c mara virtual orientada atrav s da utiliza o do girosc pio dos culos e movimentada atrav s de um c digo gestual interpretado de uma luva 5DT cal ada na m o esquerda De notar que a simula o f sica do jogo efectuada atrav s do plugin de f sica disponibilizado pela Vi
53. corresponde a 1 metro Sistema de Coordenadas no Virtools Sistema de Coordenadas 3D Coordenada 3D Posi o x y z num certo Sistema de Coordenadas 3D Sistema de Coordenadas 3D local Cada entidade 3D cont m um Sistema de Coordenadas 3D local Canto da Bounding Box correspondente Barycenter Sistema de Coordenadas no Virtools Transforma es Sistema de Coordenadas Local Sistema de Coordenadas do Mundo Usando termo especial NULL O que uma Composi o e Mundo Virtual Elementos em cena e os seus comportamentos associados Podem ter um presen a visual Personagens objectos c nicos Podem ser elementos abstractos Liga es l gicas arrays Comportamentos S o o que tornam um elemento interactivo Utilizador Outros elementos na Composi o Elementos de uma Composi o CMO Virtools Process Loop BeObject Render Objects 2D Entity 3D Entity Objectos invis veis Cameras e Curves Grids Lights Arrays Groups Level Material Mesh Place Processo repetitivo que ocorre quando um utilizador corre uma composi o Dura o de um Process Loop chamado de Frame Constitu do por dois passos Processamento de comportamentos Scene Sound e Texture 15 Renderiza o da cena de Jogo 1 Frame Rendering Process Behaviors Process Behaviors l Frame R
54. ctuar o teste de colis o basta verificar se a dist ncia entre objectos ou n o inferior soma dos raios das suas esferas envolventes Efectuado pelo bloco de comportamento Sphere Sphere Intersection Figura 4 9 Volume Esfera e Colis o com Axis Aligned Bounding Box AABB O objecto est contido num cubo envolvente alinhado com os eixos globais do mundo pelo que estes n o podem ser rodados atrav s das opera es de rota o aplicadas aos objectos Assim torna se necess rio recalcular as AABB para cada frame 37 Figura 4 10 Volume AABB e Colis o com Oriented Bounding Box OBB T cnica parecida descrita acima no entanto os cubos envolventes s o orientados de forma a minimizar o espa o vazio ou erro provocado pela aproxima o da forma do objecto ao cubo Este processo mais preciso que AABB no entanto computacionalmente mais pesado Figura 4 11 Volume OBB e Colis o Face Face Teste de colis o entre os diversos tri ngulos constituintes de cada objecto T cnica mais precisa no entanto computacionalmente pesada Diversas t cnicas s o utilizadas em paralelo de modo a melhorar o c lculo de colis es tal como a utiliza o de m ltiplos OBB para cada parte do objecto em vez de apenas um estes que poder o estar ligados hierarquicamente entre si Para o teste de colis o Face Face de modo a optimizar o n mero de c lculos dever ser realizada a detec o de colis es com uma malha alte
55. d a vy v switch On Key T By E ee vy yy y b o Bezier Progression Ps D s TEF e Par metros Constitu dos por Nome pName Tipo de dados pType Valor pValue Parameter Input pln Argumentos de entrada de um comportamento Representados por um tri ngulo em cima de uma BB paramOp ou BG Par metros Par metros Locais Guardam Valores at serem necess rios Par metro This Refer ncia ao Dono de um determinado script e Atalhos para par metros Simplifica o visual Utiliza o de par metros entre scripts Par metros Opera es sobre Par metros ParamOps N o s o activos da mesma maneira que BB s S calculado quando necess rio Pedido por uma BB ou outro ParamOp Aplicados a qualquer tipo de Script Sincronizados com o fluxo de activa o de um script BB Op e BB Identify 17 Comportamentos Behaviour Graphs Composi o de BB s encapsuladas e tratada como se fosse em si uma BB Pode ser salva e reutilizada Par metros Parameter Output pOut Valores processados pela BB paramOp ou BG Parameter Link pLink Propaga o valor de um pOut para um pin N o cont m atraso Par metros Opera es sobre Par metros ParamOps Opera es sobre um ou um par de par metros Obter informa o do motor de comportamento Efectuar opera es matem ticas
56. de visualiza o vai diminuindo as suas dimens es Isto porque a dimens o 31 relativa do objecto diminui dado que o volume do frustum aumenta O frustum definido por dois planos de corte Near Clip e Far Clip rela o de aspecto entre largura e altura da janela de visualiza o e abertura da c mara field of view bottom zNear Figura 4 2 Projec o Perspectiva 4 2 Apar ncia Para aumentar o realismo num jogo introduzida ilumina o no mundo virtual de modo a melhor simular um ambiente real com fontes de luz S o descritos abaixo os m todos de c lculo de ilumina o mais comuns e a forma como estes est o integrados dentro da Virtools 4 2 1 Modelo de reflex o de Phong Descreve a interac o entre a luz e uma superf cie de acordo com as propriedades da luz incidente e do material constituinte da superf cie O c lculo de ilumina o efectuado para cada pixel da superf cie Tanto a luz como o material da superf cie s o compostos por tr s componentes distintas pelo que as componentes para a fonte de luz indicam a sua quantidade emitida e no material indicam a sua quantidade reflectida Componente Ambiente Componente que representa luz que j foi reflectida em todo o ambiente e est espalhada em todas as direc es E representada por uma constante Ls 1 K 4 1 I representa a intensidade da componente ambiente da luz e K o coeficiente de reflex o ambiente do material A com
57. do nas m os virtuais Assim criada uma malha poligonal na forma de uma m o e reveste se esta com ossos processo denominado por skinning Esta tarefa feita atrav s do software 3D Studio Max e exportada para Virtools para o seu formato nativo A cria o de ossos essencial dado que atrav s destes que a malha poligonal se deforma de modo a simular a movimenta o de uma m o real Os ossos s o transformados dentro da aplica o atrav s dos dados retirados dos sensores de ambas as luvas Para mais informa o visualizar 32 Abaixo mostrada uma figura com o mapeamento e identifica o de ossos Note se que apresentada uma figura da m o esquerda pelo que a m o direita um espelho daquela Figura 5 16 Mapeamento de ossos na m o virtual Atrav s da tabela 4 1 mostrado o mapeamento entre os ossos da m o esquerda e os sensores da luva 5DT N o esquecer que esta cont m apenas cinco sensores Tabela 5 1 Mapeamento ossos sensores para luva m o esquerda SensorA TX SensorB XP SensorC d X G Sensor D S Sensor E o S S AX O De seguida mostrado mapeamento entre os sensores da luva da m o direita e ossos da m o virtual Note se que foram desprezados os valores obtidos pelos sensores localizados nas zonas interdigitais 59 Tabela 5 2 Mapeamento ossos sensores para luva m o direita Sensor9 Sensor 10 Sensor 12 Sensor 13 O modo como s o tratados os
58. e C lculo de nevoeiro Por defini o um fragmento corresponde convers o de uma geometria em elementos quadrados e tem correspond ncia directa com os pixeis constituintes do FrameBuffer Um fragmento composto por informa o de e Cor e Profundidade e Valor de coordenadas de textura Um Framebuffer constitu do pelos seguintes buffers e Color Buffer Guarda a cor constituinte de cada pixel Esta cor costuma ser expressa em RGBA Red Green Blue Alpha e Depth Buffer Guarda um valor de profundidade para cada pixel e Stencil Buffer Normalmente utilizado como m scara para restringir o desenho a partes espec ficas do ecr e Accumulation Buffer Cont m dados RGBA tal como o Color Buffer tipicamente utilizado para acumular uma s rie de imagens numa imagem final composta por todas as anteriores Tendo esta informa o em conta procede se de seguida explica o dos efeitos especiais integrados nas aplica es em Virtools 4 6 1 Sombras Stencil Ser feita uma breve descri o do processo de cria o de sombras volum tricas utilizando o Stencil Buffer Primeiramente abordada a forma tradicional de cria o de sombras stencil 29 e de seguida descrito o m todo Carmack s Reverse que corrige certos aspectos da primeira abordagem Definem se como oclusores todos os objectos que provoquem sombra sendo os restantes objector definidos como receptores de sombra Na figura abaixo encontra se um cen rio
59. e as m os virtuais e o piano virtual 5 2 2 Gest o de detec o de colis es Neste jogo ao contr rio do anterior n o utilizado o motor f sico disponibilizado pela Virtools dado que este pouco flex vel Todo o mecanismo de interac o das m os virtuais com o piano virtual foi desenhado de raiz A cada tecla est associado um volume de colis o Atrav s da intersec o dos dedos com este volume de colis o gerado um deslocamento fixo independentemente da 60 velocidade de penetra o no volume colocando a tecla numa posi o de tecla premida A tecla s volta sua posi o de repouso quando deixar de haver intersec o entre esta e os dedos Quando uma tecla premida lan ada uma mensagem internamente indicando apenas informa o de qual a tecla em que ocorreu colis o irrelevante enviar informa o de qual foi o dedo que tocou na tecla 075170 Breas 6459p OD Ts GO m E PO Figura 5 18 Colis o dedo tecla 5 2 3 Gest o de reprodu o de sons Ao se iniciar 0 jogo s o carregados em memoria os diversos sons de duas oitavas de piano Quando recebida uma mensagem interna de colis o reproduzido apenas uma vez o som correspondente tecla pressiona dado que se pretende simular um piano e n o um rg o 5 2 4 Gest o de l gica de jogo Com o objectivo de melhorar o n vel de interactividade do jogo pedido ao utilizador que toque uma sequ ncia de teclas de uma m sica previam
60. e se ligam a um computador via USB ou porta serial RS 232 Ap s cal adas as luvas fornecem informa o de flex o em pontos espec ficos da m o do utilizador O detalhe da informa o determinado pelo n mero de sensores que estas contenham Exemplos destes dispositivos s o as luvas CyberGlove Il 9 ou 5DT 9 Fifth Dimension Technologies Estas ltimas de 14 e 5 sensores s o utilizadas nesta tese e como tal ser o descritas em detalhe na sec o 2 1 3 e 4 2 de seguida apresentada uma tabela que visa a compara o entre diversos tipos de luvas de captura de dados Tabela 1 2 Compara o de tecnologias de Data Gloves consultar 9 10 100 200Hz Nos exemplos colocados acima nas tabelas a documenta o obtida para estes indica apenas a utiliza o de tensores mas n o encontrada especifica o para o tipo de tensor em si 1 3 1 3 3D Mouses Dispositivos que substituem o rato convencional Um 3D Mouse fornece mecanismos adicionais que permitem a navega o intuitiva em ambientes 3D atrav s do tipo de movimento aplicado a este Exemplo de um 3D Mouse o caso do SpaceNavigator da empresa 3D Connection 11 1 3 2 Dispositivos de sa da 1 3 2 1 Dispositivos H pticos Fornecem a sensa o de tacto ao utilizador Como exemplo desta tecnologia refere se o dispositivo CyberGrasp Um CyberGrasp uma luva de captura de movimentos que cont m um exo esqueleto associado luva O exo esqueleto fornece um
61. em conta pelo motor de f sica caso haja uma colis o com estes Desta forma os recursos do processador s o melhor utilizados aumentando consequentemente a frame rate do jogo Exemplos de motores f sicos s o e Havok 24 e ODE 25 e Ageia PhysX 26 e Newton Game Dynamics 27 e Bullet Physics Library 28 A plataforma Virtools cont m um motor de f sica Physics Pack baseado no motor Havok Este permite a inclus o de comportamentos f sicos nos objectos de um jogo criado em Virtools atribuir lhes propriedades f sicas e restri es simples ragdolls e sistema f sico de um carro e definir constantes do mundo virtual tal como a gravidade Isto pode ser efectuado atrav s da utiliza o dos blocos de comportamento disponibilizados pelo motor de f sica Exemplos de blocos de comportamentos de Physics Pack s o e Physicallize e Set Physics Ball Joint e Set Physics Joint e Set Physics Constraint e Modify Physics Globals e Physics Car 4 6 Efeitos especiais Nesta sec o s o descritos os modos de funcionamento de efeitos especiais que est o integrados nas aplica es em Virtools No entanto ser antes feita uma pequena descri o do que um 40 FrameBuffer Este o ultimo est gio numa pipeline de renderiza o onde s o guardados os resultados de uma s rie de opera es efectuadas em fragmentos tais como e Aplica o de textura e Testes de recorte alpha stencil e remo o de superf cies ocultas
62. enas se ter calibrado a dist ncia inter pupilar para cada utilizador N o foi efectuada nenhuma calibra o em rela o ao campo de vis o da c mara e dist ncia entre esta e o plano de converg ncia Tendo esse aspecto em conta foi posteriormente desenvolvida a possibilidade de calibrar ambos estes par metros em tempo real durante a execu o do jogo para que cada utilizador consiga obter uma maior experi ncia estereosc pica poss vel 7 8 2 PianoVR Para este jogo apesar de todos os utilizadores terem gostado da sua jogabilidade houve um maior impacto e agrado nas pessoas com experi ncia musical A facilidade de jogo foi como se pode observar pelos resultados obtidos superior ao jogo PongVR devendo se ao facto de neste n o ser exigido ao utilizador um tempo de resposta t o r pido aos est mulos provenientes do jogo Os resultados obtidos para a utiliza o de tracking e culos foram praticamente id nticos aos de PongVR dado que a sua arquitectura interna semelhante Tal como em PongVR foi posteriormente desenvolvida a possibilidade de calibrar o campo de vis o da c mara e dist ncia entre esta e o plano de converg ncia em tempo real A utiliza o das luvas foi avaliada como muito boa as suas funcionalidades foram bem empregues no contexto do jogo com uma resposta r pida entre os movimentos aplicados na luva e os movimentos 70 8 Conclus es O objectivo principal deste trabalho visa o desenvolvimento de jogos
63. endering And so On Virtools Process Loop Passos Processamento de Comportamentos Comportamentos activos executados por prioridade Um comportamento pode activar outros atrav s de links que cont m um certo atraso 0 propaga a activa o na mesma frame 1 propaga a activa o na pr xima frame e n propaga a activa o na n frame a seguir actual Comportamentos Identificados como Behavioural Building Blocks BB s Caixinhas que mudam o Mundo Existem em diferentes tipos e tamanhos Oo y v v v SetLightRange Translate A oo E Set Projection gt D CD Player Keyboard Controller Collision Detection s VV W V V TEN A SE 2 Comportamentos Behavioural Building Blocks BB s Como interpretar a representa o de uma BB Behaviour link bLink BB ligadas por bLinks Definem sequ ncia de processamento Atraso especificado pelo programador v __ gt 24 6et Good Grade at CV E Finish Course Y Comportamentos Behavioural Building Blocks BB s Como interpretar a representa o de uma BB Algumas BB s est o marcadas com as letras C S e V no seu canto inferior esquerdo C Custom Dialog Box S Settings V Variable configuration E O vv vv vw if imation Synchronizer i 2D Text Ra tn reo O hd Virtools Process Loop Passos Renderiza o da cena de Jogo
64. ente registada num per odo de tempo determinado pelo n vel de dificuldade escolhido Para isso h um gestor de l gica a monitorizar todas as ac es efectuadas entre as m os e o piano Caso o jogador consiga tocar todas as m sicas dentro do tempo o gestor de l gica indica que o jogo ganho caso contr rio o utilizador perde e ter de recome ar tamb m calculada pelo gestor uma taxa de sucesso isto a rela o entre o n mero de teclas premidas na ordem correcta e o n mero total de teclas pressionadas esta que vai sendo actualizada em tempo real e mostrada ao jogador no HUD do jogo 5 2 5 Gest o de temporizador Como foi indicado anteriormente o utilizador disp e de um tempo finito para tocar uma sequ ncia de teclas Este tempo determinado pelo grau de dificuldade tem um gestor pr prio para que seja independente do processamento da l gica de jogo A fun o do gestor de actualizar o tempo passado desde o in cio de execu o de determinada m sica e enviar uma mensagem interna caso seja ultrapassado o tempo estipulado Esta mensagem recebida pelo gestor de l gica do jogo para 61 que este termine o jogo O gestor de l gica comunica igualmente com o gestor de temporizador de modo a que quando uma m sica seja completamente tocada este reinicie a sua contagem Tal como para o jogo PongVR est colocado em anexo para o PianoVR um manual de instru es que cobre os aspectos do jogo que n o foram referenciados
65. erBB GloveBlock e eMaginBB que efectuam a comunica o com o Gestor dos dispositivos de tracking magn tico luvas e tracking de culos e atrav s da subtrac o deste termos calculado um tempo de execu o do bloco de comportamento Para al m desta informa o em Virtools ambos os gestores de comunica o com as luvas tracker magn tico e tracker de culos s o modificados de modo a que estes internamente fa am tamb m uma medida do tempo de c lculo de dados directamente nos dispositivos atrav s da medi o temporal ao in cio e final da fun o que faz a recolha dos dados Esta funcionalidade n o estava dispon vel na primeira vers o dos gestores Com os novos dados temporais fornecidos pode se saber o tempo total desde que a informa o pedida ao dispositivo e fica dispon vel ao programador em Virtools Abaixo mostrada uma tabela com valores m dios em diversas situa es Para o c lculo dos valores m dios utilizada uma popula o de 100 amostras obtidas executando as aplica es num computador port til com um processador Intel T2400 Core Duo a 1 8 GHz 1024 MB de RAM e uma placa gr fica ATI X1600 com 128 MB de VRAM dedicadas 64 Tabela 6 1 Desempenho de dispositivos imersivos Empty PongVR Scene 345 26 9 0 45 42 200 123 123 GloveBlock HS TrackerBB HS HS EN Glove Manager us Tracker Manager 22000 22000 One Receiver HS Tracker Manager Two Receivers 33000 33000
66. es 64 ANEZO Pisura Fone VR Man M enosn aE na as Rui A E wisn eran api 2 Anexos Pisura Z BoneVR S MENU ena a ET 2 Anexos Fisura 3 PonsVR INGAME susre a a eae 3 Anexo Figura 4 PongVR Options Menu sosirii iriennet i iE aE AAAS AS A ERS 3 Anexo Fig ra PoneVR Help Menus nadas nenni an a ER 5 Anexo Figura 6 PongVR Credits Ment oooneensenssnensnnsseessenssersseessesssersserssersssssserssersseeseeo 6 XV Anexo Picura 7 Piano VR Main MENU as ssa Teca ude ar anda 8 Anexo Fisura S Pianoy KR Siart Men tania ienes di an RD AS ounce eh owed eae ae 8 Anexo Heura O PranoVR Ia GAME ssa rs siena a a E a e 9 Anexo Fig ra 10 Piano VR Options Meni ssc ses cs ccctsecstsntes eet samharecide Se wudecuemaderesesaeniaen ceieensteae 9 Anexo Fig ra 11 Piano VR Help Menus aan isso gera Eai casi a iene le saacenesedeaduasadanaehs 1 Anexo Figura 12 PianoVR Credits Menu c cccccccccccscccccsecccseeceneeeeeaeeseeeseeaeeeseaeeseaaseeaeeeeaaaes 12 Anexo Fisura ts Apresenta o Vir OOlS erriei nian del deur T ata 18 Anexo Figura 14 Script de comunica o com Gestores ccecccseecceeeeeeeeecceeeceeeseeaeeeesanes 20 Anexo Figura 15 Script de tratamento de dados c erre erre reereeereeaanea 20 Anexo Figura 16 Conte do grafo comportamental Implement Right Hand Rotation 21 Anexo Figura 17 Movimenta o de objecto ap s inclus o no motor de f sica 21 Anexo Figura 18 Conte do gra
67. est a ocorrer A informa o resultante da colis o pode ser utilizada ligando os seus pOut s a pln s de outros blocos comportamentais como exemplificado na figura em que o bloco de comportamento Text Display imprime para o ecr o resultado do pOut Object Part Nas figuras 2 14 e 2 15 abaixo s o exemplificadas opera es de drag amp drop tanto para recursos como para blocos de comportamento File Resources Editors Options Help rtools Resources f 3D Layout y Building Blocks qa on v Perspective Aew JE nr 8 ep Sh y ot af Dl a Schematic Level hiana ger Character Setu P Name Magician Figura 2 13 Drag amp Drop de Recursos irtools File Resources Editors Options 3D Layout Building Blocks rtools Resources 30 Transformations Animation e Rotate gt v Perspective ew v e Rotate Around Constraint et Scale ee Set Euler Orientation et Set Local Matrix Level Manager Character Setup Hide All w Magician Script Magician RE Figura 2 14 Drag amp Drop de blocos de comportamentos 15 A Virtools fornece ainda aos seus utilizadores um SDK Software Development Kit para C que permite criar ou modificar blocos de comportamentos e criar novos plugins igualmente fornecido pela Virtools uma linguagem de scripting VSL Virtools Scripting Language que apesar de ter um n mero menor de funcionalidades em rela o ao o SDK permite fazer prototipagem de novos b
68. evation do receptor de tracking direito Roll Sensibilidade no ngulo Roll do receptor de tracking direito o Left Hand Sensors A D Sensibilidade dos sensores A D gt ver figura da luva da m o esquerda o Right Hand Sensors 0 13 Sensibilidade dos sensores 0 13 gt ver figura da luva da m o direita O e Help Menu de Ajuda R pida Ao iniciar o jogo necess rio ter cuidado com a posi o e orienta o tanto do emissor como dos dois receptor A posi o relativa de ambos os sensores irrelevante dado que a aplica o faz um ajuste autom tico de modo a que a dist ncia real entre os receptores seja correspondente dist ncia real aconselhado as seguintes orienta es e posi es relativas do emissor como os dois receptores atrav s da figura esquerda Caso n o se respeite esta conven o o movimento e orienta o da raquete no cen rio n o ser o esperado Ap s o correcto posicionamento do emissor necess rio ter em conta que a movimenta o do receptor s dever ser feita no volume especificado novamente especificado pela figura abaixo 10 Usable Zone Anexo Figura 11 PianoVR Help Menus o 3 Qa a D 53 Para al m das teclas indicadas no menu de ajuda est o tamb m mapeadas as seguintes funcionalidades o T Mover camara em z o g Mover c mara em z o T Mover c mara em y o C Mover c mara em y o h Mover c mara em x
69. fo comportamental Implement Right Hand Motion 22 Anexo Figura 19 Script de configura o de estereoscopia ccccecccceesceeeeeceeeceensceeeeeesaees 22 Anexo Figura 20 Grafo comportamental Implement Left Finger Motion 23 Anexo Figura 21 Script de tratamento de dados de m o esquerda cececeeeccceeeeeeeeeeeeees 29 Anexo Figura 22 Alinhamento m o direita ccccccccseeccssscceseeceesccensccaeeccaeesesenseseueeeseees 23 XVI Lista de Tabelas Tabela 1 1 Compara o de tecnologias de tracking 6 7 8 cccccsseeccsesceeeseeeeeeeaeeens 3 Tabela 1 2 Compara o de tecnologias de Data Gloves consultar 9 10 4 Tabela 2 1 Compara o modelos 5 Ultra e 14 Ultra ii cicccccccccccccccceccccnecece secs eeeseaeeeeeaesseaeeeeaes 10 Tabela 3 1 Identifica o de sensores ACV OS wsoeicstwosshadencttigutectsuandecsteawuneeehad aaadsiediabee 21 Tabela 5 1 Mapeamento ossos sensores para luva m o esquerda cccceeecceeeeceeeeeeeeeeeaes 59 Tabela 5 2 Mapeamento ossos sensores para luva m o direita eee ceeeccceecceeeeeceeeeeeeeeeaes 60 Tabela 6 1 Desempenho de dispositivos IMErsIVOS secccseeecceeseeeeeeceeeeeeeeseeaeeeeeseseeeeeeaes 65 Tabela Question no PoncVR asas ccc Rad Lind a sS ad A ea E N a tee aU 69 Tabela 7 2 Question no PIG VIR qa ED stngedaducedomesaesundceel 69 xvii XVIII Lista de S
70. ica o entre ambos pelo que o processo de integra o aqui descrito 10 11 Conceitos b sicos para cria o de jogo em Virtools S o explicados alguns conceitos necess rios para o desenvolvimento de aplica es gr ficas interactivas em Virtools Desenvolvimento de aplica es de Realidade Virtual S o desenvolvidas para a tese duas aplica es que utilizam os diversos dispositivos imersivos Neste cap tulo explicada a arquitectura para cada uma destas Medi o de Desempenho A cada dispositivo est associado um tempo de lat ncia proveniente do c lculo dos diversos dados associados e respectivos tempos de comunica o entre estes e o computador Neste cap tulo s o mostradas medi es temporais feitas e apresentadas conclus es sobre estas Testes de Utilizador As aplica es s o testadas por um grupo de indiv duos de modo a aferir o desempenho dos diversos dispositivos e aplica es O resultado dos testes analisado e s o tiradas conclus es sobre estes Conclus es S o expostas neste cap tulo as conclus es retiradas do desenvolvimento de todo o trabalho apresentado Refer ncias Cont m refer ncias utilizadas durante o desenvolvimento do trabalho Bibliografia Cont m bibliografia usada durante o desenvolvimento do trabalho Anexos Neste cap tulo apresentada informa o que seja importante referir no entanto n o completamente necess ria para a compreens o do trabalho desenvo
71. ica que tipo de propriedades que este cont m Esta indica se o bloco de comportamento e Cont m caixa de configura o avan ada e Pode enviar receber mensagens entre scripts e Pode alterar tipo de processamento efectuado sobre os seus par metros e Pode inserir novos bin bOut pin pOut Figura 2 12 Localiza o de Start bLink pLink shortcut pLink Como exemplo mostrado na figura 2 13 um bloco de comportamento Collision Detection Este cont m e Uma bin e Duas bOut e Quatro pin e Dez pOut A fun o deste bloco de comportamento de efectuar detec o de colis es entre um objecto 3D presente no cen rio e um grupo de obst culos previamente estabelecidos Para isso primeiro necess rio activar a bin do bloco de comportamento para que este inicie o seu processamento interno O processo de activa o efectuado como se pode verificar na figura atrav s do encaminhamento do sinal de activa o desde o elemento de Start at ao bin atrav s de um bLink 14 De seguida o bloco de comportamento utiliza informa o dos par metros de entrada para determinar qual o objecto 3D e grupo de obst culos a considerar nas colis es e inicia de seguida a detec o de colis es entre estes Caso n o haja colis o bOut False activada indicando que n o houve colis o caso contr rio bOut True activado indicando colis o e os valores de pOut s o modificados de modo a indicar informa o resultante colis o que
72. icial e s depois esta ser afectada pelas varia es na posi o e 49 orienta o do receptor do tracker Em anexo encontra se a sequ ncia de comportamentos para o c lculo da nova orienta o e posi o da raquete Foi pensada e testada a hip tese de utiliza o de quaterni es para a defini o da orienta o dado que estes s o imunes a problemas de Gimbal Lock no entanto os ngulos fornecidos j s o uma orienta o final e s o calculados internamente pelos dispositivos em forma de quaterni es logo como n o necess rio fazer composi o de orienta es a utiliza o de quaterni es n o se justifica importante notar que a aplica o dos ngulos de Euler calculados n o feita directamente ao objecto 3D que representa a raquete mas sim a uma entidade 3D denominada 3D Frame que nao tem uma presen a visual apenas contem informa o de transforma o no mundo virtual Para a configura o estereosc pica da c mara de jogo efectuado o procedimento j explicado em 3 3 A movimenta o desta feita atrav s da utiliza o de gestos com uma luva cal ada na m o esquerda ou atrav s de um suporte adicional criado para teclado A interpreta o dos gestos feita recorrendo ao par metro de sa da gesture do comportamento GloveBlock em que s o mapeados 6 dos 16 gestos disponibilizados O procedimento tomado para a orienta o de c mara em todo semelhante ao tracker magn tico mas considerando apenas os
73. ienta o do Gestor Sim Yovo tempo de polling entre 30 60000 ms Sim Activar bOut ES Nao Desactivar bin C lculo de tempo de ao Eliminar estruturas de de polling lat ncia E e dados de orienta o contabilizando tempo de mem ria N o de polling a Envio de dados para emaginBB Actualizar pOut s Figura 3 8 Funcionamento de eMaginBB a esquerda Gestor a direita 3 3 2 Visualiza o Para a integra o da componente de visualiza o dos culos VR com a plataforma Virtools utilizado o plugin oficial de realidade virtual VR PACK No entanto antes de ser explicada a integra o dos culos com a Virtools necess rio introduzir no es de boa defini o e utiliza o de estereoscopia Primeiro apresentado o conceito de Projection Referencial Cameras e o porqu da sua utiliza o em detrimento de uma c mara convencional Uma c mara convencional em Virtools definida por um frustum sim trico atrav s de e Posi o e Orienta o e Field of view e Aspect ratio e Neare far clips Ao contrario das Projection Referencial Cameras que sao definidas por um frustum assimetrico atraves de e Posi o e 3D Sprite e Neare far clips 24 Viewing Frustrum Viewing Frustrum 3D Sprite Projection Ref Far clip Far clip Camera x Camera a b Figura 3 9 Defini o de c meras a C mara normal b Projection Referential Camera Pe
74. iglas Instituto de Engenharia de Sistemas AABB bLink bOut e Computadores LCD Liquid Cristal Display XIX ERC Specification Description Language 1 Introdu o 1 1 Enquadramento Os jogos de computador e consolas s o hoje em dia um mercado lucrativo e s o estes que ditam o avan o tecnol gico do Hardware nos computadores pessoais e consolas de jogos Cada vez preciso maior capacidade de processamento num jogo ora para simular efeitos f sicos de extrema complexidade ou ent o para oferecer uma qualidade visual que torna a experi ncia de jogo cada vez mais realista assim apelativo para um programador enveredar pela cria o de videojogos criar um jogo que forne a ao jogador uma completa imers o numa nova realidade No entanto os jogos ditos convencionais est o quase sempre limitados aos dispositivos de entrada comuns como o rato e teclado num computador ou um gamepad numa consola Ainda mais est se agora a viver na era do 3D Tr s Dimens es em que o mundo virtual criado pelos videojogos apela as tr s dimens es do espa o atrav s da utiliza o de t cnicas de projec o perspectiva Todavia o jogador confrontado com o problema de que um jogo visualizado numa tela de ecr que apenas contem duas dimens es retirando a sensa o de imers o a 100 Nos dias de hoje igualmente h bito no desenvolvimento de videojogos a aten o desmedida na componente gr fica em detrimento das outras
75. ion especifica rota o no eixo global dos xx s Yaw Azimuth especifica rota o no eixo global dos yy s 35 X No entanto a utiliza o de ngulos de Euler faz surgir um problema denominado Figura 4 7 ngulos de Euler Gimbal Lock Este acontece quando h a perda de um grau de liberdade de rota o efectuando sucessivas rota es de 90 at que uma destas n o ocorra devido ao alinhamento dos seus eixos A raz o para acontecer este problema derivada do facto de os ngulos de Euler avaliarem cada eixo independentemente numa ordem preestabelecida Tomando o seguinte exemplo a ordem pela qual as rota es s o avaliadas xx yy e zz e aplica se uma rota o de 90 no eixo yy Como a rota o ao eixo dos xx j foi avaliada e n o ocorreu nenhuma rota o este continua com a mesma orienta o assim quando feita a rota o de 90 ao eixo dos yy tanto o eixo dos yy como o eixo dos zz v o sofrer altera o de orienta o ficando o eixo dos zz agora alinhado com o eixo dos xx Quaterni es Atrav s da utiliza o de quaterni es resolvido o problema de Gimbal Lock isto porque as rota es com aqueles avaliam os tr s eixos em simult neo para determinar a nova orienta o Um quaterni o tem duas nota es poss veis nota o de n meros complexos ou nota o de vector 4D wt xityj zk w x y e z s o escalares i j k representam a componente imaginaria w v v um vector
76. iva Rato ou dispositivo semelhante Drive de CD ROM Polhemus Fastrak com um emissor e um receptor culos eMagin Z800 3D Visor Luva 5DT 5 Ultra Left Handed Luva 5DT 14 Ultra Right Handed Requisitos Minimos Software Microsoft Windows 2000 XP Microsoft DirectX 9 0c para placas graficas que sejam compativeis com DirectX OpenGL 2 0 para placas graficas que sejam compativeis com OpenGL Microsoft Internet Explorer 6 0 Drivers de suporte a Estereoscopia Activa Para jogar o jogo Piano VR necess rio antes de o executar ter o seguinte Hardware ligado e Tracker Magn tico Polhemus Fastrak com um Emissor e dois Receptor ligados ao Filtro e Luva 5DT 5 Ultra Left Handed e 5DT 14 Ultra Right Handed e culos eMagin Z800 3D Visor O objectivo do jogo PianoVR o de completar uma sequ ncia de m sicas cada uma desta com um tempo limite de execu o dado pelo grau de dificuldade escolhido Ao entrar no jogo o jogador confrontado com o seguinte ecr inicial Piano VR Anexo Figura 7 PianoVR Main Menu e Start Game Passa para menu de jogo para a escolha de dificuldade da dificuldade do jogo Piano VR Eas dium Po Hare a AS Bu Anexo Figura 8 PianoVR Start Menu o Easy Inicia jogo com tempo de execu o de 4 minutos por m sica facil o Medium Inicia jogo com tempo de execu o de 2 minutos por m sica m dio o Hard Inicia jogo com tempo de execu o de 1 minuto por musica dif cil OD 7 s C227
77. ivos demonstrando o seu uso atrav s do respectivo software oficial 67 Os utilizadores dever o testar e familiarizar se com os dispositivos fora dos jogos para que possam ter uma base de compara o ao testar os jogos De seguida o utilizador ir come ar os testes de utilizador Para cada um dos jogos feita uma pequena apresenta o de como os dispositivos imersivos foram integrados nos jogos e feita uma demonstra o da sua utiliza o No pr ximo passo os utilizadores ir o cal ar os dispositivos necess rios para cada jogo e test lo Durante todo o processo de teste solicitado ao utilizador que fale enquanto esta a testar o jogo sobre e O que esta a pensar e Oque esta a tentar fazer e Quais as dificuldades que se esta a deparar No final do processo de teste feito um question rio de modo a quantificar a opini o do utilizador em rela o aos jogos 7 6 Tarefas As tarefas que s o efectuadas pelo utilizador s o as seguintes e Efectuar calibra o dos culos 3D Visor com NVIDIA Medical Test e Visualizar Demo Test NVIDIA e Utilizar Ambientar a Polhemus Fastrak com software FGUI e Utilizar Ambientar a 5DT Data Gloves com software GloveManager e Cal ar luvas 5DT 5 Ultra Left Handed culos 3D Visor e um receptor Polhemus Fastrak e Jogar PongVR e Responder a question rio e Cal ar luvas 5DT 5 Ultra Left Handed e 5DT 14 Ultra Right Handed culos 3D Visor e dois receptores Polhemus Fastrak e Jogar Pian
78. king ptico ex MoCaP Motion Capture e A precis o obtida bastante boa e Em circunst ncias ideais os trackers magn ticos podem ter um alcance de funcionamento elevado e Oritmo de amostragem apesar de n o ser o maior dos maiores com taxas a variarem nas 120 amostras segundo com 1 receptor 60 amostras segundo com 2 receptores 40 amostras segundo com 3 receptores e 30 amostras segundo com 4 receptores Consultar documenta o oficial Polhemus 5 2 1 1 2 Pontos fracos Infelizmente este tipo de tecnologia n o est isenta de falhas S o listados alguns dos problemas que est o associados utiliza o de um tracker magn tico e O campo magn tico gerado poder receber interfer ncias externas tais como dispositivos electr nicos nas redondezas ou mobili rio com materiais condutores ou f rreos e A medida que a dist ncia vai aumentado entre o emissor e o receptor vai se perdendo precis o nos dados obtidos e Dado que necess rio fazer processamento de dados no filtro introduzido a um tempo de lat ncia Para uma aplica o com requisitos de tempo real muito exigentes pode se tornar desastroso o tempo de lat ncia no filtro e Poder o haver pequenas flutua es de corrente o tipo de sala em que se est a utilizar o tracker etc fazendo com que este apesar de estar parado indicar movimento 2 1 2 culos virtuais eMagin Z800 3D Visor Os culos 3D Visor cont m uma componente de seguimento para al
79. lizador 7 8 1 PongVR Observando os resultados obtidos pode se concluir que os utilizadores gostaram de jogar e que as funcionalidades disponibilizadas pelo dispositivos foram integradas com sucesso neste jogo No entanto queixaram se do grau de dificuldade do jogo e de apesar da boa sensibilidade e tempo de resposta do dispositivo de tracking conjuntamente com as ajudas visuais e os culos estereosc picos era dif cil acertar na bola Em rela o utiliza o do girosc pio dos culos todos os utilizadores afirmaram que estes tinham tempos de resposta razo veis De acordo com esta opini o o Gestor dos culos 3D Visor e bloco de comportamento eMaginBB foram modificados de modo a se poder alterar o tempo de polling dado que esta funcionalidade n o estava dispon vel na primeira vers o do bloco de comportamento O tempo de polling define a periodicidade da fun o de CALLBACK respons vel por actualizar os dados de orienta o provenientes do girosc pio interno dos culos Com esta modifica o p de se alterar na aplica o atrav s do bloco de comportamento eMaginBB o tempo de polling de 100ms valor por defeito para um valor m nimo de 30ms melhorando assim o tempo de resposta dos culos de 123ms para um valor de 54ms A percep o de estereoscopia ou seja um bom efeito de profundidade foi comentada como boa No entanto para cada utilizador esta teve impactos ligeiramente diferentes pelo que isto deve se ao factor de ap
80. lo que uma 3D Sprite em Virtools um quadrado imagem 2D com uma certa posi o e orienta o pelo que pode ter a sua orienta o restrita a um certo eixo ou livre Um esquema correcto de estereoscopia tem o seguinte aspecto Cam ri Plane Let Es Right Figura 3 10 Esquema correcto de estereoscopia e Convergence Plane Tal como indicado pelo pr prio nome especifica o plano de converg ncia em que as imagens geradas por ambas as c maras s o id nticas e Parallax Representa a diferen a entre a imagem direita e esquerda de um certo objecto Objectos com um parallax negativo s o percepcionados antes do plano de converg ncia com um parallax positivo s o percepcionados atr s do plano de converg ncia e com um parallax nulo s o percepcionados no plano de converg ncia e IPD InterPupillar Distance Este valor indica a dist ncia entre as duas c maras que deve ser igual dist ncia entre o centro das pupilas humanas Com um bom esquema de estereoscopia existem zonas de paralax positivo negativo e zero tendo assim objectos a serem percepcionados antes coincidente e depois do plano de converg ncia ou visualiza o 25 A raz o pela qual as Projection Referential Cameras s o utilizadas em detrimento das c maras convencionais mostrada atrav s das figuras 3 11 e 3 12 Com uma c mara convencional o esquema de estereoscopia o seguinte Sie A fl l l
81. locos de comportamentos dentro do ambiente Virtools apresentada uma lista de acetatos sobre Virtools em Anexo C para informa o mais detalhada desenvolvidos no mbito de uma apresenta o feita para a cadeira de Complementos de Visualiza o pertencente Licenciatura em Engenharia Inform tica e de Computadores leccionada pelo professor Jo o Madeiras Pereira 16 3 Integra o de Dispositivos Imersivos em Virtools A utiliza o dos diversos dispositivos imersivos n o est dispon vel partida e de uma forma directa dentro da plataforma Virtools pelo que necess rio desenvolver plugins para cada um daqueles recorrendo ao SDK fornecido pela Virtools e as suas respectivas API s Application Programming Interface O presente cap tulo tem o objectivo de explicar o processo de integra o para cada um dos dispositivos na plataforma Virtools 3 1 Polhemus Fastrak utilizada a API FTApi fornecida pela Polhemus de modo a estabelecer uma liga o USB entre o PC e o tracker magn tico Ap s a liga o estar devidamente estabelecida pode ser retirada para cada receptor ligado ao filtro informa o da sua orienta o e posi o relativamente ao emissor atrav s de tr s ngulos de Euler Azimuth Elevation e Roll e coordenadas cartesianas x y 2 Numa primeira abordagem desenvolvido um bloco de comportamento respons vel pelo controlo total do tracker constitu da por um par metro de entrada que indique a es
82. lvido tal como manuais de instru es e scripts Virtools Todos os esquemas de arquitecturas de aplica es e plug ins s o descritos em SDL Specification and Description Language 2 dado que uma linguagem gr fica de descri o de software flex vel e de f cil leitura e interpreta o 1 3 Dispositivos de Integra o para Realidade Virtual Nesta sec o apresentam se e descrevem se dispositivos que proporcionam novos tipos de interac o de um utilizador com um computador ou consola relativamente s t cnicas convencionais de com dispositivos como teclado rato ou gamepad 1 3 1 Dispositivos de entrada 1 3 1 1 Seguimento Seguimento inercial Wii Remote tamb m conhecido por Wiimote 3 4 o comando da nova consola da Nintendo a Wii refor a o conceito de jogabilidade numa consola Este comando composto por sensores de movimento aceler metros nos 3 eixos Vertical Horizontal e Profundidade que aliado a uma liga o sem fios bluetooth consola d ao utilizador a possibilidade de utilizar todo o seu espa o envolvente para atrav s dos movimentos aplicados ao comando interagir com os jogos e Seguimento Magn tico Flock of Birds e Polhemus Fastrak 5 com liga o USB Universal Serial Bus ou porta serial RS 232 a um computador permitem saber a posi o e orienta o de um elemento receptor de campo magn tico em rela o a um elemento emissor de campo magn tico O funcionamento de ambos
83. m Virtools atrav s do bloco de comportamento ShadowStencil em que neste indicado e Fonte de luz a ser utilizada e Comprimento do volume de sombras e C mara pode ou n o penetrar no volume de sombra Para al m da utiliza o do referido bloco de comportamento tamb m necess rio indicar explicitamente quais os objectos oclusores existentes no cen rio 4 6 2 Reflex es planares Considera se uma superf cie plana reflectora ideal em que o ngulo de incid ncia da luz id ntico ao ngulo de reflex o fazendo com que a imagem de um objecto reflectida o pr prio objecto reflectido segundo o plano reflector Caso o plano reflector se encontre em Y O basta aplicar uma transforma o de escala S 1 1 1 a todos os objectos ou seja mant m se as coordenadas xx zz e espelha se as coordenadas yy Figura 4 19 Reflexdes planares 44 Para um plano reflector qualquer translada se e orienta se este de modo a passar na origem e coincidir com Y O aplicar uma transforma o de escala S 1 1 1 e inverter as duas primeiras opera es R ROTOT SA 1 D ROTO 4 9 necess rio restringir os objectos reflectidos superf cie reflectora Para isso utilizado o stencil buffer como m scara em que colocado um valor superior a zero nas posi es do stencil buffer correspondente ao plano reflector e o restante conte do deixado a zero para que quando os objectos reflectidos s o desenhados fiquem restritos a
84. mas num estado passivo ou seja n o ir ter numa corrente a ser injectada nesta O campo magn tico gerado pelo emissor ir criar uma corrente na bobine receptora proporcional corrente que est a correr naquele e dist ncia entre ambos Deste modo dado que se sabe a corrente que est a ser utilizada no emissor consegue se determinar a dist ncia entre o emissor e o receptor Suponha se agora que se pretende determinar a rota o num dos eixos do receptor em rela o ao emissor Com apenas uma bobine torna se imposs vel obter essa informa o isto porque a intensidade do campo magn tico no receptor diminu da tanto pela dist ncia com o emissor como tamb m pelo facto de as duas bobines n o estarem paralelas Assim imposs vel determinar no caso do nosso campo magn tico diminuir se por aumento da dist ncia ou por rota o do sensor Y CS li a Figura 2 2 Uma bobine Seis graus de liberdade O sistema completo para a determina o dos seis graus de liberdade composto por tr s bobines ortogonais entre si cada uma delas especificando um determinado eixo xx yy zz A corrente que passa por cada uma das bobines bem especificada O receptor tamb m composto por um conjunto de tr s bobines Cada um dos campos magn ticos gerados ter de ser isolado e isso poder ser feito ou atrav s de multiplexagem no tempo ou variando a intensidade da corrente aplicada Atrav s d
85. mbras SIC scesa a R 41 46 2 Retlexoes planares oorner aara e r Eaa R 44 4 6 3 Sistemas de Part culas oooeesssocceesssscccssssoccesssccceessscocessssoccesssscseceseso 45 5 Desenvolvimento de Aplica es de Realidade Virtual 0 0 00 47 SA Pona VK ret AA is ais a ER 47 5 1 1 Aquisi o e tratamento de dados de gestores de dispositivos 49 5 1 2 Motor f sico de jogo supresa se paia ia aaa date 50 5 13 Gestao de logica de JOJO assapasiaiiagsninbisis incas se leas isa tes deals das ma a 50 5 1 4 C lculo de Intelig ncia Artificial de advers rio 53 o PARE UAT OV E GRENIER DS RDNS NARR RO REPETIR RS ER SR EEA 57 5 2 1 Aquisi o e tratamento de dados de gestores de dispositivos 58 5 2 2 Gest o de detec o de colis es csssssssssssssssscscsssssssssssssssccsceees 60 5 2 3 Gest o de reprodu o de sons csscccccsssssssssrscscsssssssssrccsssssssssesees 61 5 2 4 Gest o de l gica de jogo ccccsssssscccscccssssssssssccccssssssssscccccscsssssccees 61 5 2 5 Gest o de tEMPOPIZACOM cccccssssscrssscccsssssssssrscssssssssssssssssssssssseesees 61 6 Medi o de Desempenho cccccsssscccssssccrssssscccssssccccssssccccsssccssessssees 63 61 Polhemus Fastral ssa sica nica E Pita a aulas serasa nuas 65 6 2 Tavas IDT Urais an iai a Ls sasaia Locais sidaa tania 66 6 3 culos eMasm Z800 3D VISOR sais soneto ias a
86. mersive Devices Game Engine Computer Game Interactivity Immersion vil Vill ndice PRE ACC CNN EOS 5 sa Sa a OA A acide eels lii Palavras Chave inae A E E T V RESUMO cioa do Ud AO dd ae V ADLER CE carota eaters a a a ad vii IN OVW OLS senpman a E A asa vii Vidice eE ROD DR see 1X Lista de BASU AS ss SD DS SA CASOS eae wea eG a xiii Lista de Tabelas capa Dia E N xvii Kistade SAS ear E OS XIX I IM POdU O escritas siis ioeiiossciaalan a dia de adia dest ssa bas dda dci daiida nas idosa sa ei 1 1 1 Enquadramento ssa cuninssaaiaue irao tantas a ada S dados 1 1 2 Organiza o do documento ja sessaianass mai siazaians o Rodas iadRaa as Asas ess aiadon euceaseececnacsvedss 1 1 3 Dispositivos de Integra o para Realidade Virtual sccccssssccsssscccsssscceeess 2 1 3 1 Dispositivos Je ntrada assssassossisasasaasoiaa rss paradeiro fossa isie 2 132 DISPOSITIVOS de Salda us esssaremainia ds is lsa pas tea Ed Dna da Dean 4 2 Tecnologias utilizadas sisirin asa sasio ponsoaaMs elis aa cinco sasapi karaari 5 2 1 Dispositivos imersivos de CNtLACA ccccsscccsscccssscccsscccsscccssscccsscccsssccessccessccessces 5 2 1 1 POINCINUS FASTAR ia 5 2 1 2 culos virtuais eMagin Z800 3D ViSOf scssssssscssssssssssesssssssssesesesees 9 Zid LUVAS SD ic E a dica adtta 9 2 2 Dispositivos imersivos de sa da sseeeccssceccseccccoecccccsececcsececcsececcoeecccssececcseeecsseee 10 2 2 1 culos Virtuais eMagin Z80
87. nd Anexo Figura 18 Conte do grafo comportamental Implement Right Hand Motion w VRConfig E Level BB Object Create s foi necess ria correr uma ez para criara 3D Sprite deixei a aqui para relembrar como se criou a sprite Priority 0 Nao esquecer meter no ficheiro de configuracao o valor de IPD a O default com valor real de 0 065 m e focal lenght igual da VRCamera WATERS Output To Console Anexo Figura 19 Script de configura o de estereoscopia 22 11 5 Anexo E Scripts PianoVR Anexo Figura 20 Grafo comportamental Implement Left Finger Motion De notar que Low Pass Hand Filtere New Angles Left Hand s o scripts VSL criados especificamente para a aplica o Anexo Figura 21 Script de tratamento de dados de m o esquerda azer com que posicao relativa entre as maos seja a correcta ver a distancia entre a mao esquerda e direita e depois posicionar a mao direita em relacao esquerda Anexo Figura 22 Alinhamento m o direita 23
88. nsores dispon veis Par metro de sa da do tipo Inteiro de nome FetchTimeL indica 32 bits mais esquerda do tempo de lat ncia interno em us do Gestor Par metro de sa da do tipo Inteiro de nome FetchTimeH indica 32 bits mais direita do tempo de lat ncia interno em us do Gestor 3 3 culos virtuais eMagin Z800 A integra o dos culos em Virtools composta por duas partes Seguimento Visualiza o 2d 3 3 1 Seguimento A integra o da componente de seguimento importante pelo que desta forma poder se saber quais os movimentos que est o a ser feitos pela cabe a do utilizador dos culos e utilizar convenientemente essa informa o desenvolvido de forma an loga aos dispositivos anteriores um Gestor de dispositivos e um bloco de comportamento de nome eMaginBB O gestor respons vel pela comunica o com os culos atrav s do EMA SDK v2 2 enviando dados para o bloco de comportamento sempre que solicitado Atrav s do SDK acima especificado n o poss vel obter os ngulos de Euler directamente do girosc pio interno dos culos E definida uma fun o de CALLBACK que executada chamada pela API com uma periodicidade dada por um certo tempo de polling e atrav s desta que s o obtidos os dados necess rios O valor por defeito do tempo de polling de 100ms O bloco de comportamento tem o seguinte aspecto O FollTime gt ehlaginBR T F F kz O FetchTimeH ap eae
89. o este que pode ser local ao objecto na qual se est a fazer a opera o ou global ao mundo virtual A Virtools utiliza um sistema de coordenadas definido pela regra da m o esquerda apesar dos sistemas de coordenadas diferirem de OpenGL para Direct3D regra da m o direita versus regra da m o esquerda 34 Figura 4 4 Sistema de coordenadas regra da m o esquerda De seguida feita uma breve descri o do tipo de transforma es geom tricas que podem ser aplicadas e Translacoes Este tipo de transforma o permite mover um objecto para uma nova posi o atrav s da especifica o de um vector de deslocamento ou de uma nova posi o O vector deslocamento pode ser relativo ao sistema de coordenadas local ou global Esta opera o efectuada atrav s dos blocos de comportamento Translate ou Set Position Figura 4 5 Transla o e Rotacoes A orienta o de um determinado objecto alterada atrav s de opera es de rota o A rota o tal como a transla o pode ser efectuada relativamente a um sistema de coordenadas local ou global Existem diversas formas de aplicar uma rota o a um objecto pelo que feita uma pequena descri o destas Figura 4 6 Rota o o Angulos de Euler Especifica uma nova orienta o atrav s da aplica o sucessiva de tr s rota es descritas pelos ngulos de Euler Estes ngulos s o os seguintes Rollespecifica rota o no eixo global dos zz s Pitch Elevat
90. o a conseguir viajar para o campo contr rio e embater no ponto especificado pela marca colocada naquele Para isso s o utilizadas as equa es que definem o movimento parab lico de uma part cula x vo Ilxcos xt 5 4 l 1 3 y Ilv Il lt sin Ea g Il xt 5 5 Em que x o alcance desejado Il v Il a norma da velocidade a aplicar a bola O o ngulo formado entre a bola e a mesa e Il g Il q norma da acelera o grav tica A equa o de traject ria obtida igualando a componente y a zero l 1 O vo Il xsin Gn g Ilxt 5 6 l l O tx lv ll Zinga A g Ilxt 5 7 2x sin 8X Il v Il t 0vr sn tom 5 8 ll g Il 2x sin Xx Il v Il x HI v Ilxcos 0x a 5 9 ll g Il Il vy II xsin 20 5 10 gl xxl g l lv 511 E sin 20 55 Com o valor de Il v Il calculado poss vel determinar um valor aproximado do impulso necess rio a aplicar bola fazendo V imal Vo 5 12 Ap s a estrutura base do jogo estar completa notado que mesmo com a utiliza o dos culos VR n o se consegue ter uma no o perfeita de profundidade do mundo virtual pelo que se torna dif cil acertar na bola na primeira jogada e agravada na situa o de ripostar a uma jogada feita pelo advers rio De modo a tentar minimizar esta dificuldade s o criados mecanismos adicionais para al m de um sistema de sombras que visam ajudar o jogador a ter uma melhor no o da rela o espacial bola raquete O primeir
91. o do ponto gen rico A no plano de visualiza o tem como coordenadas pas ai d z d z C mara Figura 3 15 Projec o de pontos no plano de visualiza o Considerando o seguinte exemplo a c mara est colocada em 0 0 10 e o ponto A tem como coordenadas 7 3 5 Este vai ser projectado em 14 6 numa c mara de projec o perspectiva convencional agora introduzida mais uma c mara e efectuado um deslocamento a ambas de modo a ficarem com um dist ncia c entre elas Para a c mara da esquerda feito um deslocamento esquerda de metade da separa o total entre c maras e para a c mara direita feito um deslocamento de metade da separa o total entre c maras para a direita Nas equa es abaixo em vez de se fazer um deslocamento s c maras faz se um deslocamento sim trico ao cen rio pelo que esta opera o equivalente descrita acima x 3 xd 2 yxd Para c mara esquerda 3 2 d z d z 28 C OE yxd E Para c mara direita 3 3 d z d z Utilizando novamente o exemplo anterior considerando agora A em 7 3 5 Caso tenha se uma separa o de camara de uma unidade a c mara esquerda projecta o ponto A em 5 2 e a camara direita projecta o ponto em 4 3 3 2 O ponto A fica projectado para a direita 0 667 unidades para a direita na c mara da esquerda em rela o c mara da direita ou seja a diferen a entre a projec o do ponto na c mara direita e na
92. o mecanismo inclu do o de desenhar uma linha que liga durante todo o jogo a raquete do jogador bola Esta linha tem o objectivo de fornecer informa o visual extra juntamente com as sombras projectadas ao jogador da dist ncia entre a bola e a raquete O segundo mecanismo o de desenhar mais duas linhas a primeira entre uma marca m vel e a raquete a marca tem as mesmas coordenadas x z da raquete mas com coordenada vertical y fixa a altura da mesa Em rela o segunda linha esta desenhada de forma an loga mas agora entre a bola e a sua respectiva marca O objectivo deste conjunto de duas marcas o de fornecer ajuda visual adicional sobre a rela o de alturas entre a bola e a raquete Um terceiro mecanismo o de fazer um ajuste autom tico da posi o da raquete caso esteja numa dist ncia pr xima da bola Este mecanismo apesar de continuar dispon vel n o est activo dado que piorava a jogabilidade na medida em que confunde o jogador com os auto ajustes efectuados O quarto e ltimo mecanismo a ser implementado o de caso a bola se encontre num volume preestabelecido envolvente raquete do jogador esta atra da para a raquete Infelizmente com os mecanismos descritos acima continua a ser dif cil ripostar s jogadas do advers rio O aspecto visual do jogo a decorrer com ajudas activas mostrado na figura abaixo Player 1 Player 2 Points Won Sets Won Points Won Sets Won Figura 5 11 A
93. o plano reflector No caso de existirem objectos localizados atr s do plano reflector necess rio definir um plano de recorte coincidente com aquele de modo a quando se reflecte a cena os objectos em que estejam atr s do plano reflector n o sejam desenhados em frente a este O algoritmo de reflex es planares pode ser utilizado dentro da Virtools atrav s do bloco de comportamento Planar Reflection no qual necess rio especificar o objecto planar que dever obter caracter sticas reflectoras configurar correctamente os seus materiais e indicar quais os objectos que dever o ser reflectidos 4 6 3 Sistemas de Part culas Um sistema de part culas basicamente um conjunto de pontos 3D no espa o A representa o visual destes pontos pode ser um simples v rtice no espa o um billboard quadrado constantemente alinhado com a orienta o da c mara ou um objecto 3D Cada part cula definida por um conjunto de propriedades estas que podem variar com o tipo de sistema de part culas e Posi o e Tamanho e Velocidade e Peso e Tempo de vida e Cor incluindo canal alfa As part culas s o geradas atrav s de um emissor Este controla factores como o n mero de part culas a ser geradas velocidade inicial de cada part cula e define os par metros iniciais destas O n mero de part culas a serem geradas e atribui o de velocidade inicial um processo estoc stico ou seja atribu da uma componente aleat ria a e
94. oVR e Responder a question rio 7 7 Testes e Medidas Como foi dito anteriormente pedido aos utilizadores que no final das tarefas d em uma classifica o de 1 10 a cada um dos t picos colocados no question rio abaixo para ambos os jogos Os valores apresentados no question rio indicam a m dia aritm tica de todos os testes de utilizador efectuados 68 Tabela 7 1 Question rio Pong VR PongVR Total Resposta 1 10 Sensibilidade de tracker Tempo de resposta do tracker Integra o funcionalidades do tracker no contexto do jogo Sensibilidade das de LA girosc pio culos Tempo de resposta de girosc pio culos Integra o das funcionalidades do de girosc pio culos no contexto do jogo Facilidade do jogo 17 Avalia o global do jogo 78 8 5 8 8 7 0 1 9 8 2 1 7 7 8 69 Tabela 7 2 Question rio PianoVR PianoVR Total Resposta 1 10 Tempo de resposta do tracker 8 7 Integra o das funcionalidades do tracker no contexto do jogo 9 2 Tempo de resposta de luvas 8 3 unload Eq no contexto do jogo 8 0 Sensibilidade de girosc pio culos Integra o das funcionalidades do de contexto do jogo No o de profundidade Interactividade do jogo Facilidade do jogo Sensibilidade de tracker Sensibilidade de luvas funcionalidades das luvas Tempo de resposta de girosc pio culos a giroscopio oculos no Avalia o global do jogo 7 8 Conclus es para Testes de Uti
95. om glove html 10 http www metamotion com hardware motion capture hardware gloves Cybergloves htm 11 http www 3dconnexion com products 3a1 d php 12 http www 3dvisor com 13 http Awww cs nps navy mil people faculty capps 4473 projects mag track full html 14 Raab H Frederick Blood B Ernest Steiner O Terry Jones R Herbert Magnetic Position and Orientation Tracking System IEEE Trans Aerosp Electron Syst vol 5 pp 709 717 1979 15 SDT Data Glove Ultra Series User s Manual 2004 http 5dt com downloads dataglove ultra 5DT 20Data 20Glove 20Ultra 20 20Manual pdf 16 Stereoscopic Imaging ECCS 208 2006 http vis eng uci edu mediawiki images a ab Stereo Introduction Parti Part2 pdf 17 http en wikipedia org wiki Stereoscopy 18 http en wikipedia org wiki Anaglyph_ image 19 Guo Jennifer Xichun Bruce Land Phong Shading and Gouraud Shading Cornell University Center for Advanced Computing http Awww nbb cornell edu neurobio land OldStudentProjects cs490 95to96 quo report html 20 htip ati amd com developer rendermonkey index html 21 Kessenich John Baldwin Dave Rost Randi The OpenGL Shading Language 3D Labs 2006 http www opengl org registry doc GLSLangSpec Full 1 20 8 pdf 22 Bobick Nick Rotating Objects Using Quaternions 1998 http www gamasutra com features 19980703 quaternions 01 htm 23 Bobic Nick Portal Engines and Object
96. or utilizadas no filtro passa baixo o Number of Rotation Samples Per Action N mero de amostras de rota o do receptor utilizadas no filtro passa baixo o Ball Manipulation Speed Velocidade de transla o da bola para posicionamento inicial desta o Camera s Pitch Sensitivity Sensibilidade do ngulo de Pitch aplicado a camara o Camera s Yaw Sensitivity Sensibilidade do ngulo de Yaw aplicado a c mara e Help Menu de Ajuda R pida No primeiro menu de ajuda aconselhado a orienta es e posi es tanto do emissor como do receptor atrav s da figura esquerda Caso n o se respeite esta conven o o movimento e orienta o da raquete no cen rio n o ser o esperado Ap s o correcto posicionamento do emissor necess rio ter em conta que a movimenta o do receptor dever ser feita apenas no volume especificado novamente na figura esquerda Em rela o ao segundo menu de ajuda este especifica quais os gestos mapeados para o controlo da c mara de jogo e indicado o mapeamento de teclado Key amp Gesture Bindings Tracker s Help Camera Movement z Up Cursor Ball Movement z w Racket Movement z DownCursor Ball Movement z s Racket Movement z Left Cursor Ball Movement x a Racket Movement x The relative position and orientation from the receiver i Camera Movement z to the emitter must be something like the pi gt on the r 2 left gt ado Ball Movement x d Racke
97. pais 3D Layout Buildind Blocks amp Data Resources e Level Manager amp Schematic Window File Resources Editors Options Help Figura 2 9 Layout principal Virtools e 3D Layout Nesta zona dada a possibilidade ao utilizador de criar objectos ditos abstractos comuns num motor de jogo tais como c maras ou fontes de ilumina o tamb m permitido manipular em tempo real o conte do 3D ou 2D de uma aplica o atrav s de opera es de 12 transla o rota o ou escala estas que ser o mais detalhadas no cap tulo 3 Permite igualmente modificar os par metros da c mara seleccionada tal como field of view orienta o ou panning e Building Blocks amp Data Resources Aqui est o localizados os diversos comportamentos dispon veis ao utilizador e recursos de dados nativos Virtools tais como imagens malhas poligonais sons etc e Level Manager amp Schematic Window Permite listar todas as componentes contidas na aplica o e manipular as suas propriedades criar entidades l gicas e criar e modificar scripts Estes ltimos ir o conter os comportamentos constituintes da aplica o em desenvolvimento e definir a sequ ncia de processamento desta Os comportamentos est o na forma de entidades denominadas por behavioural Building Blocks BB ou Blocos de Comportamento e atrav s destes programada a forma como um certo elemento interage com o utilizador e com os restantes elementos existentes na aplica o Na
98. ponente ambiente reflectida pela superf cie em todas as direc es Componente Difusa Fonte de luz emite luz com uma direc o e sentido espec ficos A luz ao bater na superf cie reflectida igualmente em todas as direc es no caso de esta ser uma superf cie difusa perfeita ou seja n o dependente da posi o na qual est a ser visualizada A intensidade da componente difusa da luz dada por 32 Lin 1 K p cos 4 2 diff I representa a intensidade da fonte de luz O representa o ngulo formado entre o vector de luz incidente e a normal da superf cie K uma constante que representa um coeficiente da quantidade de componente difusa que reflectida pelo material Esta express o pode ser reescrita pelo produto interno entre o vector Normal da superf cie e o vector de luz incidente estes que dever o estar normalizados l ug 1 K LeN 4 3 L representa a direc o do vector vindo da fonte de luz e Na normal superf cie Caso hajam m ltiplas fontes de luz todas as suas contribui es dever o ser tomadas em conta I iig K gt N 4 4 e Componente Especular Componente da luz com uma direc o definida e tende a reflectir numa determinada direc o R igual ao ngulo de incid ncia A quantidade de componente especular visualizada depende da direc o de visualiza o Pode se interpretar a componente especular como o brilho numa determinada superf cie A cor num certo
99. ponto de uma superf cie determinada pela combina o destas tr s componentes atrav s da seguinte equa o T 1 K 1 K L N K cos B 4 5 T 1 K 1 K L N K ReV 4 6 B o ngulo entre o vector de visualiza o V e o vector de reflex o R K o coeficiente de reflex o especular e normalmente uma constante que depende do material O expoente n indica a quantidade de brilho de uma superf cie 4 2 2 Modelo de ilumina o de Gouraud A ilumina o efectuada para cada v rtice S o calculadas as normais para cada um dos v rtices e de acordo com as normais material e fontes de luz calculada a cor do v rtice utilizando o modelo de Phong As cores dos pixeis interm dios s o depois calculadas atrav s da interpola o da cor calculada nos v rtices extremos Consultar 19 Para melhor se visualizar as diferen as entre os dois tipos de ilumina o foi desenvolvida uma pequena demonstra o de ilumina o por v rtice e por pixel recorrendo ao software RenderMonkey 20 e linguagem GLSL 21 cujo resultado mostrado nas figuras abaixo 33 a b Ilumina o por v rtice Ilumina o por pixel Figura 4 31 Ilumina o por pixel vs ilumina o por v rtice A esfera apresentada cont m apenas 112 tri ngulos pelo que um modelo extremamente simplificado de modo a melhor real ar as diferen as entre os tipos de ilumina o Para a ilumina o por v rtice esta renderizada a 1830 fps enqu
100. pretende se verificar o grau de imers o e interactividade dos jogos desenvolvidos 7 2 Descri o do sistema a testar O utilizador ir testar os dois jogos PianoVR e PongVR Para isso utiliza um computador com a plataforma Virtools devidamente instalada com os seguintes plugins desenvolvidos pelo aluno e GloveManager comunica o com luvas e Precision Timer utiliza o de rel gio de precis o e TrackerPlugin comunica o com tracker magn tico e VRManager comunica o com girosc pio de culos Estar o conectados ao computador os seguintes dispositivos e Emagin Z800 3D Visor e 5DT Data Goves 5 Ultra e 5DT Data Goves 14 Ultra e Polhemus Fastrak 7 3 Ambiente de teste Todos os testes s o feitos no gabinete 532 localizado no INESC Instituto de Engenharia de Sistemas e Computadores e dado que neste que se encontram localizados todos os dispositivos imersivos que v o ser utilizados como um computador com a plataforma Virtools actualizado com os plugins necess rios 7 4 Caracter sticas dos participantes Os utilizadores s o pessoas do ramo de Inform tica e Electrot cnica com conhecimentos de programa o No entanto apenas dois destes t m experi ncia de cria o de videojogos Nenhum dos participantes tem experi ncia na utiliza o dos dispositivos imersivos utilizados neste trabalho 7 5 Metodologia Antes dos testes serem efectuados feita uma pequena explica o do funcionamento de todos os disposit
101. r o conte do 3D e 2D dos jogos conseguido com sucesso a cria o de dois jogos que permitem uma experi ncia imersiva e interactiva ao utilizador sem fazer uso dos dispositivos de entrada e sa da convencionais de um computador O facto de ter escolhido a vertente de videojogo motivou a aprendizagem de no es de game design que muitas vezes ignorado na concep o de um jogo Foi criada uma arquitectura modular para cada jogo em que cada um tinha gestores respons veis por l gica de jogo comportamento f sico etc A cria o de uma interface ao utilizador jogador que seja apelativa contenha toda a informa o necess ria e ao mesmo tempo n o o distraia do objectivo do jogo foi tamb m uma preocupa o constante Toda a cria o de elementos tais como HUD menus de jogo op es disponibilizadas cen rio envolvente foram estudadas de modo a melhor se adequarem ao tipo de jogo Por exemplo em PianoVR os menus s o parte constituinte de uma pauta musical enquanto que em PongVR s o raquetes de t nis de mesa Apesar de PianoVR ser um jogo de maior dimens o e mais apelativo em PongVR que foi encontrado um maior desafio na programa o da componente de interactividade isto porque o tempo de resposta do jogador aos est mulos do jogo menor necess rio garantir uma elevada taxa de sucesso nas ac es que o jogador toma no curto espa o de tempo que tem de modo a criar motiva o para continuar no jogo No entanto real
102. rnativa low poly com um numero de tri ngulos significativamente menor e n o com a malha original de modo a que o n mero de tri ngulos testados ser inferior S o igualmente utilizadas t cnicas de particionamento espacial tal como Binary Space Partitioning BSP de modo a que os testes de colis es n o sejam feitos a todos os objectos de um cen rio mas apenas queles que est o mais pr ximos do objecto a que se quer detectar colis o Consultar 23 38 A Virtools fornece diversos blocos de comportamento que permitem fazer colis es utilizando Bounding Boxes e ou colis o de faces Como exemplo s o os blocos comportamentais Collision Detection Box Box Intersection Face Face Intersection e Box Face Intersection 4 5 Motor de F sica Define as bibliotecas respons veis pela simula o das leis da f sica Newtoniana calculando formas realistas de interac o entre os diversos objectos num mundo virtual A representa o de um determinado objecto num motor f sico costuma diferenciar da forma como este representado visualmente no jogo Tal como foi dito na sec o sobre detec o de colis es um objecto constitu do tanto por uma malha poligonal detalhada como por uma malha poligonal simplificada contendo apenas a informa o geom trica essencial esta ltima utilizada pelo motor de f sica para o c lculo de colis es e de f sica realista A simula o de um objecto tipicamente feita atrav s de corpos r gidos rigid
103. rso e Payeascxes t Payertscort Payertseoor t P2Tableside Pi TableSide else Player2sete 1 CollisionEvent CollisionE vent Figura 5 5 M quina de estados de atribui o de pontua o em PongVR 2 51 Player2 previousArea PlayerlScore gt 1 1 True PlayeriSeis 1 FZTableside else P TableSide Player Score 1 Player Score 1 il Playeri Score gt 1 1 True Playeri Sets 1 CollisionEvent CollisionEvent Figura 5 6 Maquina de estados de atribui o de pontua o em PongVR 3 A m quina de estados tal como mostram as figuras despoletada sempre que haja uma colis o da bola com um de quatro elementos c nicos jogador 1 jogador 2 mesa ou chao Caso seja jogador 1 ou 2 ha apenas uma atribui o do identificador do jogador em quest o a uma vari vel que indica o ultimo jogador que tocou na bola De acordo com as regras oficiais um jogador nao pode tocar mais que uma vez seguida na bola no entanto esta regra ignorada por uma quest o de oferta de maior jogabilidade ao jogador 1 Area Jogador 2 Area Jogador 1 Figura 5 7 Areas de jogo Caso a colis o seja entre a bola e a mesa ou ch o s o verificados factores como quem foi o ltimo jogador a tocar na bola quais as duas ltimas duas reas da mesa que foram tocadas pela bola e de acordo com essa informa o h ou n o a atribui o de ponto
104. rtools A arquitectura simplificada do jogo a seguinte 47 Carregamento de modelos texturas e materiais Configura o de c maras estereoscopicas Menu Principal Op o de Menu Inicializar Continuar IA ltima zona a ser tocada pela bola Inicializar Continuar motor de fisica Adicionar objectos de jogo a motor de f sica Start Game Options Op o Credits Exit escolhida ti Ultimo jogador a SS N o tocar na bola E Dificuldade Menu de Op es Posi o Bola Escolha de dificuldade Carregar em bot o de volta para menu Carregar em t principal bot o de volta N o para menu Carregar em Nivel de principal bot o de volta Tocar dificuldade para menu na bola via principal Voltar Easy Hard atr s N o Movimentar jogador IA Medium Definir IA de jogador 2 Calcular direc o e Movimentar impulso e aplica los jogador IA bola Menu Principal Iniciar Continuar comunica o com gestores de dispositivos Movi Movimentar e z mentar orientar estamos raquete Espera de dados Espera de dados nica 5 aos vindos de gestor vindos de gestor de dia de tracking de tracking ae poas a ocar na bola magn tico culos Menu de Op es N o Identificar Reduzir ruido Reduzir ruido 3 gesto de alta de alta Ultima zona a frequ ncia frequ ncia ser se pela a Iniciar Continuar l gica de jogo
105. s da jun o de duas vistas de ngulos ligeiramente diferentes sobre uma cena em cada uma das retinas dos olhos Diferentes t cnicas podem ser utilizadas para criar estereoscopia 16 17 Alguns exemplos ser o agora descritos e Anaglyph Neste m todo as imagens s o criadas atrav s de duas camadas de cores sobrepostas que cont m uma certa discrep ncia entre estas para permitir um efeito de profundidade de campo A imagem principal composta por duas imagens filtradas atrav s de cores diferentes uma para cada olho O objecto principal costuma estar no centro o cen rio em frente e o fundo ligeiramente deslocado De modo a poder visionar o efeito de 10 estereoscopia necess rio utilizar culos nos quais cada lente constitu da por um filtro de cor que corresponda s respectivas camadas utilizadas na imagem Consultar 18 aglyph St ED l Pe ne Figura 2 6 An Passive Stereo utilizada a polariza o da luz linear ou circular para transmitir de forma diferenciada as imagens para os respectivos olhos O par stereo renderizado dividido pelo hardware atrav s da utiliza o de filtros e a imagem final posteriormente reconstru da pelos culos com filtros para o efeito Consultar 16 Figura 2 7 Passive Stereo Active Stereo O princ pio base de estereoscopia activa o de alternar de forma r pida o envio de duas imagens cada uma destas para um olho diferente Os culos alteram a
106. sentado na descri o oficial do tracker dado que para uma frequ ncia de amostragem de 60Hz e tempo de lat ncia de 4ms soma um total de 20 67 ms A discrep ncia de 13 33 ms entre o valor real e o valor apresentado deve se ao tempo de c lculo interno dos dados por parte do m dulo de interface filtro que n o contabilizado na informa o oficial e tamb m introdu o de tempo de lat ncia inerente execu o das aplica es dentro do ambiente Virtools 65 Pode se definir um patamar no qual est localizada a tecnologia utilizada O tempo que est a ser utilizado como refer ncia obtido no caso de utiliza o de dois receptores pelo que os valores expressos na Tabela 1 1 s o referentes a tempos ptimos logo com apenas um par emissor receptor Como se pode verificar o valor obtido de 34ms est num patamar interm dio em compara o com as outras tecnologias apresentadas 6 2 Luvas 5DT Ultra De seguida analisado o valor apresentado para as luvas 5DT Dado que s o liga es USB separadas n o h um aumento do tempo total de utiliza o passando de uma para duas luvas Este facto vis vel pela semelhan a dos valores indicados pelo Gestor das Luvas tanto para a aplica o PongVR que apenas cont m a liga o a uma luva como para a aplica o PianoVR que utiliza duas luvas Ambos os valores apresentados pelo Gestor rondam os 123 us A fonte oficial da 5DT apenas fornece a frequ ncia de amostragem das luvas
107. sistema de force feedback a cada dedo de modo a que o utilizador possa sentir o tamanho e forma dos objectos 3D no mundo virtual Consultar 9 1 3 2 2 culos de Realidade Virtual culos que permitem uma melhor percep o da terceira dimens o perdida atrav s da utiliza o de um monitor plano convencional Cathod Ray Tube CRT ou Liquid Crystal Dysplay LCD Os culos poder o oferecer ao utilizador estereoscopia activa ou passiva Para esta tese s o utilizados os culos eMagin z800 3D Visor 12 pelo que estes conjuntamente com a no o de estereoscopia ser o explicados em maior detalhe na sec o 2 2 1 e 4 3 2 Tecnologias utilizadas No presente cap tulo s o detalhados os diversos dispositivos e plataformas utilizados no decorrer desta tese de mestrado dada uma descri o de funcionamento do tracker Polhemus Fastrak Luvas 5DT 5 14 Ultra culos eMagin Z800 3D Visor e software Virtools No cap tulo seguinte sera devidamente explicado como s o retirados e tratados os diversos dados de cada um dos dispositivos e como feita a sua integra o em duas aplica es desenvolvidas especificamente para a tese 2 1 Dispositivos imersivos de entrada 2 1 1 Polhemus Fastrak Dispositivo cont m tr s componentes principais e M dulo de Interface ou filtro e M dulo emissor e M dulo receptor Permite determinar posi o e orienta o com seis graus de liberdade de um elemento receptor em rela o a um elemento emis
108. sor atrav s de coordenadas cartesianas x y z e tr s ngulos de Euler estes ser o detalhados no cap tulo 3 Nesta sec o descrito o funcionamento do tracker Polhemus Fastrak e s o listados os pontos forte e fracos da utiliza o desta tecnologia em detrimento de outras com a mesma finalidade Figura 2 1 Componentes Polhemus Fastrak e M dulo de Interface Filtro no M dulo de Interface que efectuada a liga o de um emissor e at quatro receptores A liga o com o Personnal Computer PC feita tamb m atrav s desse m dulo por uma interface USB ou Serial O filtro tamb m respons vel pelo tratamento dos dados recebidos pelos receptores de modo a serem gerados uma posi o e orienta o que os defina no espa o e Emissor Receptor Para se melhor compreender a obten o de seis graus de liberdade do tracker ser primeiramente explicado o caso de apenas um grau de liberdade e a partir deste ser expandido para os seis graus de liberdade O Um grau de liberdade Para fins exemplificativos utilizado o eixo dos yy s para determinar a separa o entre o emissor e o receptor O emissor contem uma bobine alinhada com o eixo dos yy que ser passada por uma corrente A corrente tem o sentido apropriado para que seja gerado um campo magn tico na direc o pretendida A obten o da direc o a tomar obtida atrav s da regra da m o direita O receptor por outro lado contem uma bobine igual
109. specto in game de PongVR com ajudas visuais activas Encontra se em anexo um manual de instru es que cobre os aspectos do jogo que n o foram referenciados neste cap tulo tal como interpreta o do HUD Heads Up Display e campos do menu de op es 56 5 2 PianoVR O objectivo desta aplica o o de explorar melhor as funcionalidades do par de luvas 5DT dado que na aplica o anterior o seu uso foi extremamente reduzido Para tal decidido a cria o de um piano virtual que possa ser manipulado por um par de m os virtuais orientadas e movimentadas individualmente atrav s de um receptor de tracking para cada Mais uma vez a visualiza o feita atrav s da utiliza o dos culos VR eMagin Z800 3D Visor com uma configura o id ntica a apresentada no jogo Pong VR Pee Soe O ne DO Be Seg p g A cll R los a a O Figura 5 12 PianoVR Abaixo ilustrada a arquitectura simplificada do jogo Carregamento de modelos texturas materiais e sons InhelalizariContinuar Iniclalizar e o Sistema de Continuar estereoscopicas Detec o de Gestor de Colis es Sons Dee colis o entre Tecla dedos N o Pressionada Start Game Options Op o Exit escolhida S Menu de x Reproduzir uma vaz som ac epa correspondente de tecla pressionada Menu de Creditos Escolha de dificuldade Carregar em bot o de volta para menu Carregar em principal bot o de volta N
110. stes de modo a que o efeito final n o seja demasiado r gido mas flua de uma forma mais ca tica Por exemplo NumParticulasGeradas NumParticulasCte var i nciaEmissor numAleat rio 4 10 O n mero de part culas geradas a cada instante a soma de uma componente constante com uma componente que ir indicar a vari ncia ou seja o n mero de part culas a mais ou a menos que podem ser geradas Para isso numaAleat rio um n mero aleat rio entre 1 1 Para uma descri o detalhada sobre cria o de sistemas de part culas consultar 31 45 A plataforma Virtools permite a cria o de diversos tipos de sistemas de part culas podendo variar a forma do emissor por exemplo forma esf rica ou forma discoide Cada part cula pode ser representada como dito anteriormente atrav s de pontos billboards ou objectos 3D Figura 4 20 Sistema de part culas Os blocos comportamentais para os diversos sistemas de part culas s o e CubicParticleSystem e CurveParticleSystem e CylindricalParticleSystem e DiscParticleSystem e LinearParticleSystem e ObjectParticleSystem e PlanarParticleSystem e PointParticleSystem e SphericalParticleSystem 46 5 Desenvolvimento de Aplica es de Realidade Virtual Uma vez feita a integra o de todo os dispositivos procede se agora descri o do desenvolvimento dos jogos desenvolvido um jogo de T nis de Mesa Ping Pong de nome PongVR que faz uso do tracker magn tico para o
111. sualiza o ficam com um paralax positivo As novas equa es ficam assim com o seguinte aspecto 29 c yxd E aaa Para camara esquerda 3 4 d z 2 d z C x ae Pee Em Para c mara direita 3 5 d z 2 d z Retomando o exemplo aqui mostrado o ponto A ter agora novas projec es Este projectado em 4 5 2 para a c mara esquerda e 4 8 3 2 para a c mara direita tornando assim o paralax do ponto positivo fazendo agora sentido dado que a coordenada z original 5 colocando o atr s do plano de visualiza o este que tem coordenada z igual a zero As duas projec es derivadas das ltimas equa es s o chamadas de Parallel Axis Assymetric Frustum Perspective Projections Note se que transladando o cen rio em sentidos opostos de x tanto os eixos de projec o ou vectores de c mara alvo mant m se paralelos O passo final no qual se desloca o cen rio torna os frustums de projec o assim tricos ou seja para cada projec o mostrado mais de um cen rio num lado do eixo que no outro Com esse resultado consegue se obter um par de projec es perspectivas com frustum assim trico balanceando confortavelmente o efeito de paralax 30 4 Conceitos b sicos para a cria o de jogos em Virtools Pretende se com este cap tulo apresentar conceitos b sicos necess rios para a cria o de jogos dentro da plataforma Virtools 4 1 Cria o e controlo de c mara A visualiza o tradicional do
112. t Movement x Page Dbwn Ball Movement y q Racket Movement y Cameras The roget r are restricted tO Tre areas shown bellow a age Up Ball Movement y a Racket Movement ty a te a po 5 kg aa o sas mm 7 ey i aum 7 fm Cameras Movem i iina i Initual impulse to the ball Usable Zone Emulates Player 1 first move Space Reset P1 Racket Position Cameras Moment y r Reset Ball Position ueppiqio4 Cameras Movement y Anexo Figura 5 PongVR Help Menus o w Mover camara em z o s Mover c mara em z o q Mover c mara em y o z Mover c mara em y o d Mover c mara em x o a Mover camara em x o 0 Aumentar campo de vis o o 9 Diminuir campo de vis o o 8 Aproximar plano de converg ncia de estereoscopia o T Afastar plano de converg ncia de estereoscopia e Credits Cr ditos do Jogo PongVR Credits PongVR was created by Ricardo Aguiar eag 2 Wgmail com And is a part of 7 E intitled Creation and eae ae of a 5D Game using Virtools and Tracking Devices Anexo Figura 6 PongVR Credits Menu e Exit Sai do jogo 11 2 Anexo B Manual de Instru es de jogo PianoVR Requisitos M nimos Hardware Pentium Ill ou equivalente 512 MB RAM Monitor com resolu o de pelo menos 800x600 com 16bit por pixel Placa gr fica NIVIDIA com suporte OpenGL ou Direct3D com 64MB de RAM e estereoscopia act
113. ta o receptor qual se quer retirar informa o e fornece como par metros de sa da a respectiva posi o e orienta o No entanto com o bloco de comportamento a ser respons vel pela comunica o com o tracker baixa em muito o desempenho da aplica o limitando o n mero de fps frames por segundo de 60 a aproximadamente 5 10 De modo a ultrapassar esta limita o criada para al m do bloco de comportamento um Gestor uma entidade especial da Virtools que tal como o nome indica gere recursos de dados em background na altura da execu o de aplica es O Gestor respons vel pela comunica o com o tracker e faz a ponte deste com o bloco de comportamento a utilizar nas aplica es Com este mecanismo consegue se obter uma melhoria para cerca de 30 fps nas aplica es que fa am uso do dispositivo O inconveniente da utiliza o de um Gestor de que necess rio ligar o tracker antes de se executar a aplica o Na figura abaixo encontra se o aspecto visual final do bloco de comportamento criado para o Polhemus Fastrak O Stationld Ll E TrackerBB E Tr Tr r O FetchTimeH 1 FetchTimeL ka ka isConnected o roll m elevation O azimuth A Pos Figura 3 1 Bloco de comportamento TrackerBB 17 O comportamento cont m e Par metro de entrada de tipo Inteiro com nome Stationld que permite seleccionar qual das quatro esta es receptoras dispon veis se q
114. tance O FocalLength 1 Figura 3 14 Conte do de VRStereo cfg VRPack cfg referencia igualmente o ficheiro VRStereo cfg Dentro deste o primeiro token indica caso queira se as imagens estereosc picas invertidas left right gt right left com o valor 1 invertido e O normal O segundo e terceiro tokens s o exemplos de User Tokens isto tokens definidos pelo utilizador Neste caso os valores de InterpuppilarDistance e FocalLength s o utilizados para definir dentro da aplica o a IPD e dist ncia focal no bloco de comportamento VR Set Stereo Settings respons vel pela configura o de estereoscopia Note se que h limita es impostas ao jogo devido utiliza o dos culos necess rio limitar a frame rate do jogo a um m ximo de 30 fps e este tem de ser visualizado em modo ecr inteiro com uma resolu o de 800x600 a uma taxa de refrescamento de 60Hz 21 3 3 2 1 Cria o de imagens estereosc picas Apesar da estereoscopia ser automaticamente gerada pela Virtools dada uma breve descri o de como feita a cria o das duas imagens estereosc picas Assume se que e Tipo de projec o perspectiva ou seja objectos mais distantes da c mara diminuem o seu tamanho relativo e Sistema de coordenadas dado pela regra da m o direita e Plano do ecr de visualiza o encontra se em plano xy e Ponto gen rico A tem coordenadas x y z e Camara inicialmente situa se nas coordenadas 0 0 d A projec
115. tempo passado passado desde Eliminar estruturas de desde inicia o do Gestor de activa o de dados pr Tampo temporizador temporizador Envio de dados para 64 Actualizar pOut s Get Precisa Time a Activar bOut Desactivar bln Figura 6 1 Funcionamento de Get_Precise_Time a esquerda Gestor a direita Tendo uma medi o precisa do tempo dispon vel dentro da Virtools poss vel determinar o tempo de captura dos dados dos diversos dispositivos e com isso fazer uma avalia o quantitativa de desempenho destes 63 Set System Time Get Precise Time D O High Part O High Part ul Lowy Part O Low Fart Figura 6 2 Aspecto visual de Get System Time e Get_Precise_Time Ambos os blocos comportamentais cont m dois pOuts Para Get_System_Time indicam e Inteiro de nome LowPart indica 32 bits mais esquerda do tempo em ms passado em UTC e Inteiro de nome HighPart indica 32 bits mais direita do tempo em ms passado em UTC No caso de Get Precise Time os pOuts indicam e Inteiro de nome LowPart indica 32 bits mais esquerda do tempo em ms passado desde a activa o do Gestor de Temporizador e Inteiro de nome HighPart indica 32 bits mais esquerda do tempo em ms passado desde a activa o do Gestor de Temporizador O bloco de comportamento Get Precise Time integrado nas aplica es PongVR e PianoVR e feita uma medida temporal imediatamente antes e depois da utiliza o dos blocos de comportamento Track
116. tiva o par E E l de Gestor de Obter identificador id de Tracker receptor de tracking de pln p ra P Inicializar temporizador Pedido de Dados Fecho Virtools de TrackerBB Pedido de dados temporais e Inicializar estrutura de Terminar Envio de dados de tracking comunica o com dados para tracker TrackerBB de tracking para receptor id ao Gestor Desactivar Obten o de dados Temporizador de tracking Eliminar estruturas de dados de tracking da Actualizar pOut s mem ria Activar bOut C lculo de tempo de lat ncia Desactivar bin OS Obten o de dados temporais a de tracking para receptor id pelo Gestor QS 18 Figura 3 2 Funcionamento TrackerBB esquerda Gestor direita Para a utiliza o do comportamento necess rio referir algumas considera es fundamental ter sempre em conta que os valores de coordenadas dados pelo receptor s o sempre em rela o posi o e orienta o do emissor logo necess rio definir a priori uma posi o e orienta o por defeito do emissor de modo a que poder atribuir uma interpreta o fixa aos dados obtidos Devido natureza magn tica do tracker necess rio escolher uma rea de movimenta o do receptor dado que este tem comportamentos diferentes dependentes da zona de utiliza o p e imaginando uma linha de equador no emissor caso se passe essa linha os valores dados passam a ter interpreta es diferentes A figura abaixo exemplifica o q
117. ue foi anteriormente dito a segunda imagem obtida fazendo uma desloca o apenas no eixo Z do receptor Como se pode verificar com um deslocamento apenas no eixo Z altera as coordenadas z como tamb m as coordenadas x do objecto Deslocamento em Z a Deslocamento virtual b Deslocamento real Figura 3 3 M utiliza o espacial do tracker magn tico Por ltimo a utiliza o dos ngulos de Euler deve ser aplicada pela ordem azimuth elevation e finalmente roll isto porque a aplica o de rota es n o comutativa multiplica o de matrizes de rota o n o comutativa Caso n o se respeite a ordem dada pela Polhemus poder haver inconsist ncias na orienta o final do objecto 3D 19 3 2 Luvas 5DT De modo a integrar a informa o dada pelas luvas no ambiente Virtools utilizada a API FGlove da 5DT Mais uma vez a liga o estabelecida atrav s das portas USB Caso se ligue apenas uma luva independentemente de ser m o esquerda ou direita lhe automaticamente atribu do o endere o USBO No caso de se ligar um par de luvas o endere o USBO sempre atribu do luva da m o direita e o endere o USB1 atribu do luva da m o esquerda Tal como para o tracker utilizado um Gestor que efectua a comunica o entre o bloco de comportamento a ser criado e as luvas O Gestor no momento de execu o da Virtools detecta o n mero de luvas conectadas s portas USB e cria uma liga o espec fi
118. uer retirar dados e Par metro de sa da do tipo vector de floats de nome Pos com a informa o espacial do receptor identificado por Stationld e Par metro de sa da do tipo float de nome azimuth indica em graus o ngulo de Euler azimuth do receptor Stationld e Par metro de sa da do tipo float de nome elevation indica em graus o ngulo de Euler elevation do receptor Stationld e Par metro de sa da do tipo float de nome roll indica em graus o ngulo de Euler roll do receptor Stationld e Par metro de sa da do tipo String de nome isConnected indica sucesso da liga o e Par metro de sa da do tipo String e nome status indica informa o de debug e Par metro de sa da do tipo Inteiro de nome FetchTimeL indica 32 bits mais esquerda do tempo de lat ncia interno em us do Gestor e Par metro de sa da do tipo Inteiro de nome FetchTimeH indica 32 bits mais direita do tempo de lat ncia interno em us do Gestor O gestor antes de cada frame ser processada comunica com o tracker de modo a obter os dados necess rios N o feito nenhum teste de se o tracker desligado ap s se fazer a liga o inicial isso porque a referida opera o provoca um atraso no desempenho global do sistema Gestor BB e assim i Inicio Virtools In cio de comunica o com Tracker Comunica o N o bem sucedida para termos de optimiza o foi retirado Inicializar pin pOut bln bOut Pan x Sim Sinal de Actva o em bin Desac
119. visualiza o para o olho direito e esquerdo com as respectivas imagens recebidas A frequ ncia a que trocada a imagem entre os olhos costuma ser controlada pelo Vertical Sync da placa gr fica Os culos eMagin Z8003D Visor encontram se nesta categoria pelo que cont m um microdisplay de matriz activa Organic Light Emitting Diod OLED on Silicon 12 em cada olho respons vel pela visualiza o em cada um dos respectivos olhos 11 Hardware Left Image Left Image Glasses Figura 2 8 Active Stereo 2 3 Software de Desenvolvimento 2 3 1 Dassault Systemes Virtools Para o desenvolvimento das aplica es que fa am uso dos referidos dispositivos utilizado o software Virtools Virtools uma plataforma profissional que permite desenvolver de forma extremamente r pida e intuitiva conte do 3D interactivo para computadores pessoais e consolas de jogos Recorre a um paradigma de programa o propriet rio denominado por PCS Product Context Scenario que permite uma programa o baseada em comportamentos e que n o requer num n vel b sico a escrita de uma nica linha de c digo Pretende se com o paradigma PCS dar a possibilidade de se criarem aplica es recorrendo apenas a opera es de drag amp drop No entanto tal s pratic vel para aplica es que tenham um n vel de complexidade simples O layout principal da Virtools ao ser executada dado pela figura abaixo sendo constitu do por tr s reas princi
120. x y z e a um escalar Os valores acima representados podem ser calculados da seguinte forma 0 4 7 w is 4 7 p sin XV 4 8 Em que O o ngulo de rota o e v o eixo no qual efectuada a rota o Apenas quaterni es unit rios representam rota es estes que est o contidos numa esfera de raio unit rio contida num espa o 4D Para uma descri o mais detalhada consultar 22 36 A Virtools permite definir rota es tanto com ngulos de Euler quaterni es ou indicando directamente o ngulo e eixo no qual a rota o deve ser aplicada atrav s dos blocos comportamento Set Euler Orientation Set Quaternion Orientation e Rotate respectivamente Em todos os blocos comportamentais acima referidos necess rio igualmente optar pela transforma o ser aplicada utilizando o sistema de coordenadas local ao objecto ou global ao mundo e Escala Com uma transforma o de escala poss vel redimensionar um determinado objecto em rela o a um ou mais dos seus eixos Esta opera o efectuada na Virtools atrav s do bloco de comportamento Scale Figura 4 8 Escala 4 4 Detec o de Colis es A Virtools fornece diversos mecanismos de detec o de colis es dada uma pequena descri o de quais os algoritmos existentes de detec o de colis es e como podem ser utilizados dentro da Virtools e Colis o Esfera Esfera Cada objecto est contido numa esfera envolvente pelo que para efe

Download Pdf Manuals

image

Related Search

Related Contents

  Corsair Flash Voyager GTX, 128GB  Guia do usuário da Pro900 Series  Humax LP32-TDR1 User's Manual  12 - CHAPA QUENTE A GÁS  Prestigio PER3052W e-book reader  ショウゼット下水道施設用  - Lexing Alain Bensoussan  Guida dell`utente    

Copyright © All rights reserved.
Failed to retrieve file