Book 1.indb
Transcription
Book 1.indb
Tendências e Técnicas em Realidade Virtual e Aumentada Av. Bento Gonçalves, 9500 - Setor 4 - Prédio 43.412 - Sala 219 - Bairro Agronomia CEP 91.509-900 - Porto Alegre - RS - Tel. (51) 3308-6835 - Fax (51) 3308-7142 Home: www.sbc.org.br - E-mail: [email protected] Paulo Roberto Freire Cunha (UFPE) Presidente Lisandro Zambenedetti Granville (UFRGS) Vice-Presidente Luciano Paschoal Gaspary (UFRGS) Diretor Administrativo Luci Pirmez (UFRJ) Diretor de Finanças Altigran Soares da Silva (UFAM) Diretor de Eventos e Comissões Especiais Mirella Moura Moro (UFMG) Diretora de Educação Karin Koogan Breitman (PUC-Rio) Diretora de Publicações Ana Carolina Brandão Salgado (UFPE) Diretora de Planejamento e Programas Especiais Thais Vasconcelos Batista (UFRN) Diretora de Secretarias Regionais Edson Norberto Cáceres (UFMS) Diretor de Divulgação e Marketing Roberto da Silva Bigonha (UFMG) Diretor de Relações Profissionais Ricardo de Oliveira Anido (UNICAMP) Diretor de Competições Científicas Raimundo José de Araújo Macêdo (UFBA) Diretor de Cooperação com Sociedades Científicas Sergio Vanderlei Cavalcante Diretor de Articulação de Empresas Tendências e Técnicas em Realidade Virtual e Aumentada Publicação anual | Cuiabá | v. 3 | p. 1-278 | 2013 EDITORES Alexandre Cardoso Ezequiel Zorzal Marcelo de Paiva Guimarães Márcio Pinho CONSELHO EDITORIAL Alexandre Cardoso Ezequiel Zorzal Fátima L. S. Nunes Liliane dos Santos Machado Luciano P. Soares Marcelo de Paiva Guimarães Márcio Pinho Selan Rodrigues PRODUÇÃO GRÁFICA Canal 6 Projetos Editoriais - www.canal6.com.br Dados Internacionais de Catalogação na Publicação (CIP) Tendências e Técnicas em Realidade Virtual e Aumentada. Sociedade Brasileira de Computação - SBC. -- (2011 --) - . Porto Alegre, RS: a Instituição, 2011- . v. 3 Anual ISSN 2177-6776 1. Realidade Virtual, Realidade Aumentada. I. Cardoso, Alexandre. II. Zorzal, Ezequiel III. Guimarães, Marcelo de Paiva. IV. Pinho, Márcio. CDD 006 Este periódico foi especialmente editado, em tiragem limitada, a partir de conteúdos desenvolvidos para os minicursos apresentados durante o XV Simpósio de Realidade Virtual e Aumentada, realizado em Cuiabá, de 27 a 30 de Maio de 2013, promovido pela Sociedade Brasileira de Computação e organizado pelo Instituto de Computação da Universidade Federal de Mato Grosso (UFMT) e apoiado pelo Instituto Federal de Ciência e Tecnologia de Mato Grosso (IFMT). Cuiabá, MT 2013 Índice para catálogo sistemático: 1. Realidade Virtual e Aumentada: Ciência da Computação 006 TODOS OS DIREITOS RESERVADOS: Permitida a reprodução total ou parcial desde que citada a fonte (Tendências e Técnicas em Realidade Virtual e Aumentada, Porto Alegre-RS, Brasil). Na ausência da indicação da fonte ou expressa autorização da Instituição, é proibida a sua reprodução total ou parcial, por qualquer meio ou processo, especialmente por sistemas gráficos, microfílmicos, fotográficos, reprográficos, fonográficos ou videográficos. Vedada a memorização e/ou recuperação total ou parcial, bem como a inclusão de quaisquer partes desta obra em qualquer sistema de processamento de dados. Essas proibições aplicam-se também às características da obra e à sua editoração. A violação dos direitos autorais é punível como crime (art. 184 e §§, do Código Penal, cf. Lei no. 6.895, de 17-12-1980) com pena de prisão e multa, conjuntamente com busca e apreensão e indenizações diversas (arts. 122, 123, 124 e 126, da Lei no. 5.988 de 14-12-1973, Lei dos Direitos Autorais). Sumário Prefácio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Desenvolvimento de Aplicações Educacionais Adaptáveis Online com Realidade Aumentada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Claudio Kirner Visualização e Interação em Arquitetura via RV e RA . . . . . . . . . . . . . . . . . . . . . . . . . 26 Luciano Silva Realidade Virtual e Aumentada Aplicada na Área de Negócios: casos na área de Marketing e de Projeto e Desenvolvimento de Produtos . . . . . . . . . . . . . . . . 43 Ildeberto A. Rodello, Marize Minakawa, Thais F. da Paz e José R. F. Brega Realidade Aumentada Móvel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Gesmar de Paula Santos Júnior, Luciene Chagas de Oliveira, Alexandre Cardoso, Edgard Lamounier Júnior, Marcos Wagner de Souza Ribeiro e Thamer Horbylon Nascimento Utilização de Dispositivos de Interfaces Naturais de Usuário em Aplicações de Realidade Aumentada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 André Luiz Satoshi Kawamoto e Flávio Soares Correa da Silva Desenvolvimento de Aplicações com Interface Natural de Usuário e Dispositivos PrimeSense como Meio de Interação para Ambientes Virtuais . . . . . . . 89 Diego Roberto Colombo Dias, Gustavo Jordan Castro Brasil, Bruno Barberi Gnecco, Mário Popolin Neto, Isabele Andreoli Agostinho, Richard Valdívia, José Remo Ferreira Brega e Luis Carlos Trevelin 5 Estratégias mistas de mecanismos para imersão em modelos de interação em ambientes virtuais de treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Bruno Barberi Gnecco, Rodrigo de Godoy Domingues, Gustavo Jordan Castro Brasil, Diego Roberto Colombo Dias e Luis Carlos Trevelin Avatares baseados em vídeo e suas aplicações em sistemas virtuais imersivos . . . 121 Cléber Gimenez Corrêa, Silvio Ricardo Rodrigues Sanches, Daniel de Andrade Lemeszenski, Daniel Makoto Tokunaga e Romero Tori Avaliação de Usabilidade para Aplicações de Realidade Aumentada . . . . . . . . . . . . 138 Valéria Farinazzo Martins, Ana Grasielle Dionísio Corrêa e Marcelo de Paiva Guimarães Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality . . . . 157 Ermano Ardiles Arruda, Lucas Silva Figueiredo e Veronica Teichrieb Desenvolvimento de websites com ambientes virtuais 3D interativos . . . . . . . . . . . . 185 Maria Amelia Eliseo, Beatriz de Almeida Pacheco e Darlan Silva Alves Delmondes Simulações Físicas para Ambientes de RV e RA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 Luciano Silva Desenvolvimento de Aplicações de RV e RA para Smart TVs . . . . . . . . . . . . . . . . . . 227 Luciano Silva Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 Christopher Shneider Cerqueira e Claudio Kirner 6 Prefácio O Simpósio de Realidade Virtual e Aumentada (SVR) é a principal conferência em Realidade Virtual e Realidade Aumentada (RVA) no Brasil, promovido pela SBC (Sociedade Brasileira de Computação), com periodicidade anual, desde 1997. O SVR reúne pesquisadores, estudantes e diversos profissionais das áreas acadêmica, industrial e comercial interessados nos avanços e nas aplicações da RV e RA. Tradicionalmente, o SVR oferece minicursos, que visam promover as habilidades de especialização, bem como ampliar a formação específica dos participantes, com perspectivas de aprimoramento de suas pesquisas; e além disso, conta com o pré-simpósio, que apresenta um conjunto de tutoriais, de curta duração, e de conteúdo introdutório. Tais ações criam um repertório de conhecimento básico, intermediário e avançado capaz de melhorar as condições de aproveitamento dos temas que serão exibidos e discutidos ao longo do simpósio principal. Com o intuito de continuar a democratização e a disseminação do conhecimento sobre RVA, neste ano de 2013, o conteúdo dos Minicursos e do Pré-simpósio foram compilados nesta revista e apresenta o resultado do trabalho de autores da comunidade brasileira, previamente avaliado pelo conselho editorial. Pretende-se que esta revista seja uma referência para atualizações, tanto por profissionais quanto por pesquisadores ávidos pelo conhecimento e aprimoramento do domínio de tendências e técnicas de RVA. Agremiando distintos perfis de conteúdos, torna-se ainda ponto de partida para iniciantes e profissionais de outras áreas do conhecimento interessados em ingressar no fascinante mundo da tecnologia de Realidade Virtual e Aumentada. Agradecemos a todos que colaboraram. Desejamos a todos uma excelente leitura! Os organizadores Alexandre Cardoso Ezequiel Zorzal Marcelo de Paiva Guimarães Márcio Pinho 7 9 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 9-25, maio/2013. KIRNER, Claudio. Desenvolvimento de Aplicações Educacionais Adaptáveis Online com Realidade Aumentada. Desenvolvimento de Aplicações Educacionais Adaptáveis Online com Realidade Aumentada Claudio Kirner Abstract Augmented reality has strong appeal for educational usage due to its features involving: intuitive interactions, high levels of motivation and involvement, autonomy, special devices independence, etc. Furthermore, some factors is still lacking to be solved in order to the augmented reality can be intensively used by teachers and students, such as: necessity to have technical knowledge, non availability of free online applications really useful in Education, difficulty to adapt the applications, changing content and structure, difficulty to find suitable authoring tools for teachers and students. This paper promotes a discussion about the use of augmented reality in Education, presenting the free authoring tool FLARAS and its using on creating the educational online game with augmented reality capable to be adaptable. Resumo A realidade aumentada, em função das suas características, envolvendo interatividade intuitiva, alto grau de motivação e envolvimento, autonomia, independência de dispositivos especiais, etc., tem forte apelo para uso na área de Educação. No entanto, ainda resta resolver alguns problemas para que professores e alunos possam utilizar intensivamente essa tecnologia, como a necessidade de conhecimentos técnicos, pouca disponibilização de aplicações gratuitas online realmente úteis à Educação, falta de adaptabilidade das aplicações, poucas ferramentas gratuitas simples de serem usadas. Este artigo aborda uma discussão sobre o uso da realidade aumentada na Educação, apresentando a ferramenta de autoria livre de aplicações de realidade aumentada FLARAS e o seu uso na produção de um jogo educacional online adaptável com realidade aumentada. 9 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 9-25, maio/2013. KIRNER, Claudio. Desenvolvimento de Aplicações Educacionais Adaptáveis Online com Realidade Aumentada. 1. Introdução A realidade aumentada, definida como o enriquecimento do mundo físico com elementos virtuais interativos, visualizados em tempo real com o auxílio de algum dispositivo tecnológico, apresenta características bastante favoráveis ao seu uso na área educacional, como: • Interatividade intuitiva no ambiente do usuário, envolvendo textos, imagens, objetos 3D, vídeos, etc., exigindo participação ativa do estudante; • Alto grau de motivação e envolvimento, decorrente dos elementos interativos inovadores utilizados; • Independência de dispositivos especiais, uma vez que pode usar somente um computador com webcam ou mesmo um tablet; • Autonomia na exploração da aplicação; • Adequação a diversos tipos de estilos de aprendizagem, apresentando o assunto através de conteúdo rico em múltiplas mídias; • Alto potencial de uso em trabalhos colaborativos. No entanto, para que a realidade aumentada seja efetivamente usada em Educação, ainda restam algumas questões a serem resolvidas, como: • Disponibilidade de aplicações educacionais gratuitas online, realmente úteis em ensino e aprendizagem, nas várias áreas do conhecimento; • Criação de aplicações abertas adaptáveis, que possam atender as necessidades dos professores, de forma que eles possam apropriar-se das aplicações, alterando-as e utilizando-as de fato; • Desenvolvimento de ferramentas livres para autoria de aplicações, que permitam o desenvolvimento e adaptação de aplicações educacionais de realidade aumentada online, por parte de usuários, sem conhecimentos técnicos profundos, utilizando estruturas pré-montadas e os conteúdos fornecidos pelos professores; • Elaboração de cursos de capacitação abertos, para que professores e estudantes aprendam como explorar melhor a tecnologia de realidade aumentada, utilizando material existente em repositórios na Internet ou desenvolvendo seu próprio material didático. Este artigo tem por objetivo mostrar algumas iniciativas, que estão em andamento, visando encontrar soluções para as questões apresentadas, de forma a possibilitar o uso da realidade aumentada na Educação, fazendo com que professores e estudantes possam produzir seu próprio material educacional. Nesse sentido, a seção 2 apresenta uma discussão sobre o uso da realidade aumentada na educação; a seção 3 descreve a ferramenta de autoria de aplicações de realidade aumentada online, denominada FLARAS; a seção 4 apresenta um jogo educacional desenvolvido com a ferramenta FLARAS; e a seção 5 apresenta as conclusões do trabalho. 10 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 9-25, maio/2013. KIRNER, Claudio. Desenvolvimento de Aplicações Educacionais Adaptáveis Online com Realidade Aumentada. 2. Requisitos das Aplicações Educacionais com Realidade Aumentada A publicação Horizon Report [NMC 2013] anualmente aponta as áreas e tecnologias emergentes, que deverão apresentar impactos significativos na Educação, nos próximos anos. Em 2011 e 2012, a publicação preconizou grande impacto da realidade aumentada e de aprendizagem baseada em jogos, na Educação, para os próximos dois a três anos [Johnson et. Al. 2011, Johnson et. al. 2012]. Em função da exigência de interação e envolvimento do usuário com a aplicação, além de outras propriedades comuns, essas duas áreas podem atuar de forma conjugada. Em 2013, dentre as 12 tecnologias listadas, ainda persistiram realidade aumentada e aprendizagem baseada em jogos, ao lado de cursos online abertos e massivos, aplicações móveis, computação para tablets e tecnologia vestível, entre outras [NMC 2012]. Cabe salientar que a tecnologia vestível tem ligação muito forte com o projeto Google Glass, que está em fase de desenvolvimento e é baseado em realidade aumentada, prometendo mudar as formas de interação do usuário com a Internet e com o mundo. O uso da realidade aumentada na Educação pode ser visto de várias maneiras: • Em relação ao usuário; • Em relação à interação com as aplicações • Em relação à execução das aplicações; • Em relação ao custo; • Em relação à abertura do código da aplicação; • Em relação à capacidade de adaptação da aplicação; • Em relação à quantidade de marcadores necessários para a aplicação; • Em relação aos recursos da interface da aplicação; • Em relação ao tipo da interface da ferramenta de autoria; • Em relação à edição proporcionada pela ferramenta de autoria; • Em relação às plataformas de execução das aplicações e ferramentas de autoria. • Em seguida, cada item citado será discutido. 2.1. Em Relação ao Usuário O usuário (professor ou estudante) pode ser consumidor ou produtor de aplicações educacionais com realidade aumentada. Na maioria das vezes, ele assume o papel de consumidor, uma vez que produzir tais aplicações, geralmente, exige conhecimentos técnicos profundos. Por conta disso, as aplicações educacionais acabam sendo desenvolvidas por técnicos e podem não satisfazer adequadamente as necessidades dos professores e estudantes, que, na falta de outras opções, ou não usam as aplicações ou não as exploram com todo potencial. 11 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 9-25, maio/2013. KIRNER, Claudio. Desenvolvimento de Aplicações Educacionais Adaptáveis Online com Realidade Aumentada. 2.2. Em Relação à Interação com as Aplicações As aplicações podem apresentar interação com o usuário em níveis baixo, médio e alto. As primeiras aplicações educacionais com realidade aumentada, em função da novidade, foram contemplativas, resumindo-se a apresentar objetos virtuais 3D sobre os marcadores colocados em frente a webcam. Em seguida, apareceram aplicações mais sofisticadas com interações que promoviam alterações no cenário virtual ou disparo de animações. As aplicações mais recentes envolvem comportamento e inteligência, funcionando como jogos, usando interações mais variadas e intensivas. Nesse caso, usuário tem que interagir com o conteúdo da aplicação, usando sua habilidade e conhecimento, melhorando-os, no decorrer do processo, e estimulando-o a estudar o tema abordado. Enquadram-se aqui os jogos educacionais com realidade aumentada, integrando as duas tendências educacionais dos últimos três anos. 2.3. Em relação à Execução das Aplicações A execução das aplicações de realidade aumentada pode ser local ou online. A execução local exige que a aplicação, normalmente, seja baixada e eventualmente instalada no computador do usuário, dificultando a utilização e desestimulando o usuário. Muitos usuários desistem da aplicação, antes mesmo de baixá-la. No entanto, depois de baixada ou instalada, a execução da aplicação dependerá somente da potência do computador, o que normalmente é rápido. Esse inconveniente se agrava, se for necessário fazer instalações múltiplas, na sala de aula, em casa, etc. A execução online de aplicações tem a vantagem de não necessitar de download e instalação, mas depende de uma conexão de Internet com boa velocidade, limitando a utilização dos usuários que não dispõem de bons recursos de conexão. As aplicações com execução online podem ser usadas em sala de aula, em casa e em ambientes de educação à distância, bastando acessá-las de qualquer lugar. 2.4. Em Relação ao Custo Existem aplicações comerciais (com custo) e aplicações gratuitas (sem custo). Normalmente, as aplicações comerciais tendem a ser de melhor qualidade, por serem desenvolvidas por equipes de profissionais comprometidos com o produto, mas, recentemente, com o crescimento da filosofia de abertura [Okada 2012], estão surgindo boas aplicações de realidade aumentada gratuitas. 2.5. Em Relação à Abertura do Código da Aplicação Existem aplicações de código fechado e de código aberto. As aplicações de código fechado são aquelas, em que os autores não disponibilizam o código das aplicações, produzidas por eles próprios ou compradas. Estão aqui as aplicações comerciais. 12 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 9-25, maio/2013. KIRNER, Claudio. Desenvolvimento de Aplicações Educacionais Adaptáveis Online com Realidade Aumentada. As aplicações de código aberto, ou usaram ferramentas abertas ou foram abertas pelos próprios autores. Nessa situação estão várias aplicações educacionais elaboradas com ARToolKit [Kato, H. e Billinghurst 1999], FlartoolKit [Saquosha 2008], SACRA [Kirner e Santin 2009], FLARAS [Souza et. al. 2013], basAR [Cerqueira e Kirner 2011, Cerqueira e Kirner 2012] e outras [Kirner et. al.2012]. 2.6. Em Relação à Capacidade de Adaptação da Aplicação Algumas aplicações são elaboradas, de forma a não separar estrutura da aplicação e conteúdo, enquanto outras fazem essa separação. Quando não há separação de estrutura e conteúdo, a aplicação impõe dificuldades de alteração de conteúdo, sendo inflexível. Quando há a separação de estrutura e conteúdo, como ocorre na família de ferramentas SACRA, FLARAS e basAR, o usuário pode ter certa facilidade em trocar o conteúdo, sendo possível realizar-se adaptação de aplicações. Em alguns casos, também é possível adaptar-se a estrutura da aplicação, com certa facilidade, como ocorre com as aplicações desenvolvidas com a ferramenta FLARAS. A adaptação tem alto potencial de criação de aplicações derivadas com facilidade, sendo adequadas para uso educacional, tanto em ensino, pelos professores, como em aprendizagem, pelos estudantes. 2.7. Em Relação à Quantidade de Marcadores Necessários para a Aplicação Há aplicações com muitos marcadores, com poucos marcadores e com nenhum marcador. A quantidade exagerada de marcadores pode confundir o usuário, além de gerar dificuldade em ser acomodada no campo de visão da webcam. As ferramentas SACRA e basAR estão aqui enquadradas. A quantidade pequena de marcadores (um ou dois) permite manipulação mais fácil das aplicações, exigindo, no entanto, outras formas de inserção de elementos no cenário, como pontos e cenas, e outras formas de seleção de funções, como funções selecionadas pelo mouse ou teclado. A ferramenta FLARAS enquadra-se aqui, usando dois marcadores. A ausência de marcador facilita a manipulação da aplicação, mas deve ser precedida de um cadastramento de elementos do cenário, que funcionarão como os marcadores. 2.8. Em Relação aos Recursos da Interface da Aplicação Há interfaces de aplicações exclusivamente visuais, enquanto outras exploram sons e animações. A complexidade do projeto tende a crescer com a melhoria da interface, mas, em alguns casos, como a ferramenta FLARAS, a complexidade das funções já está embutida na ferramenta, permitindo o uso de recursos avançados com certa facilidade. 13 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 9-25, maio/2013. KIRNER, Claudio. Desenvolvimento de Aplicações Educacionais Adaptáveis Online com Realidade Aumentada. 2.9. Em Relação ao Tipo da Interface da Ferramenta de Autoria Considerando-se a interface de autoria das aplicações de realidade aumentada, pode-se encontrar quatro tipos de ferramentas: exclusivamente visuais, parcialmente visuais, configuráveis e programáveis. As ferramentas de autoria exclusivamente visuais apresentam interfaces com manipulação visual, nas quais o usuário, movimentando o mouse, consegue elaborar uma aplicação, a partir de objetos virtuais disponíveis na biblioteca da ferramenta ou no computador do usuário. Todas as ações são visuais e pode haver pouca precisão em posicionamento, inclinação e escala. No entanto as interações podem ser rápidas e intuitivas. As ferramentas de autoria parcialmente visuais buscam objetos virtuais na biblioteca ou computador do usuário, a partir de ações visuais, e solicitam a digitação de parâmetros como posição, inclinação e escala dos objetos virtuais, assegurando precisão e rapidez. O software FLARAS é um exemplo desse tipo de ferramenta. As ferramentas de autoria configuráveis utilizam pastas, onde são inseridos objetos virtuais e arquivos de texto, descrevendo a configuração da aplicação. Embora não sejam visuais, essas ferramentas também não dependem de programação, facilitando o desenvolvimento de aplicações, mas exigem algum conhecimento de manipulação das pastas e edição dos arquivos de texto. Enquadram-se aqui as ferramentas SACRA e basAR. As ferramentas de autoria baseadas em programação necessitam da atuação de especialistas em programação e geram aplicações na forma de código, mais difíceis de serem alteradas. Nessa situação estão ARToolKit, FlarToolKit, Metaio SDK [Metaio 2013], etc. 2.10. Em Relação à Edição Proporcionada pela Ferramenta de Autoria Há ferramentas que permitem quatro tipos de edições das aplicações: difíceis, meio fáceis, fáceis e muito fáceis. As ferramentas com edições difíceis são aquelas, cujas aplicações foram geradas, a partir de programação, exigindo conhecimentos técnicos e visão muito detalhada da aplicação. As ferramentas com edições de facilidade média são aquelas baseadas em configurações de pastas e edição de arquivos de texto, que podem ser realizadas por usuários com poucos conhecimentos de informática. Nesse caso, encontram-se as ferramentas SACRA e basAR. As ferramentas com edições fáceis são aquelas, cujas aplicações são criadas através de ações visuais e alguma digitação de parâmetros. Nesse caso, está a ferramenta FLARAS. As ferramentas com edição muito fácil são aquelas, cujas aplicações são criadas com ações puramente visuais. A menos das ferramentas que manipulam programação, todas as outras oferecem condições de desenvolvimento e adaptação de aplicações, por parte de professores e estudantes, apresentado maior ou menor simplicidade nesse processo. 14 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 9-25, maio/2013. KIRNER, Claudio. Desenvolvimento de Aplicações Educacionais Adaptáveis Online com Realidade Aumentada. 2.11. Em Relação às Plataformas de Execução das Aplicações e Ferramentas de Autoria Existem aplicações voltadas para desktops e notebooks e outras voltadas para tablets e celulares. As aplicações educacionais com realidade aumentada que são executadas em desktops e notebooks tendem a usar os sistemas operacionais dessas plataformas computacionais, sendo os mais comuns: Windows, Linux e MacOS. Nesses casos, encontram-se aplicações com execução local ou online. As aplicações executadas em tablets e celulares também precisam ser desenvolvidas para os sistemas operacionais das plataformas específicas, sendo os mais comuns: Android, IOS e Windows. Nesses casos, a maioria das aplicações é executada localmente, depois de ser instalada, a partir das lojas (application store) disponíveis. As aplicações criadas com a família de ferramentas SACRA, basAR e FLARAS são voltadas para desktops e notebooks. Assim, levando em conta os requisitos de aplicações educacionais com realidade aumentada e as várias maneiras delas serem vistas, seria desejável que essas aplicações tivessem as seguintes características: • Sejam voltadas para usuários consumidores e produtores de aplicações educacionais; • Tenham capacidade de adaptação; • Possuam interface de utilização visual e sonora amigável; • Apresentem alto grau de interação do usuário com a aplicação; • Permitam acesso local e online; • Sejam gratuitas; • Tenham código aberto; • Tenham interface de autoria visual; • Sejam baseadas no uso de poucos marcadores ou não usem marcadores; • Usem ferramentas, que facilitem a adaptação das aplicações; • Possam ser executadas em plataformas de computadores e/ou tablets; Encontrar uma aplicação e a ferramenta de autoria usada para produzí-la, que contemplem a maioria dessas características, não é fácil, mas a ferramenta FLARAS e suas aplicações estão bem próximas disso. O problema mais crítico da ferramenta FLARAS está em não produzir aplicações que possam ser executadas na maioria dos tablets e celulares (com sistemas Androide e IOS), uma vez que o FLARAS é baseado em FLASH . No entanto, já está sendo estudada uma forma de reescrever o código do FLARAS, de forma que suas aplicações sejam executadas em todos os tablets e celulares. Portanto, o software FLARAS tem boas condições de ser usado na criação de aplicações educacionais de realidade aumentada, que possam ser úteis a professores e estudantes, no processo de ensino e aprendizagem. Já foram desenvolvidas várias aplicações educacionais [Kirner et. al. 2012, Souza et. al. 2013], usando a ferramenta de autoria FLARAS, que podem ser vistas e exercitadas na Internet, a partir de seus links. 15 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 9-25, maio/2013. KIRNER, Claudio. Desenvolvimento de Aplicações Educacionais Adaptáveis Online com Realidade Aumentada. 3. Ferramenta FLARAS para Autoria de Aplicações de Realidade Aumentada 3.1. Visão Geral do Software FLARAS O software FLARAS (Flash Augmented Reality Authoring System) [Souza et. al. 2013] é uma ferramenta de autoria visual de aplicações interativas de realidade aumentada, desenvolvido por Raryel Costa Souza, Hipólito Douglas França Moreira e Claudio Kirner . O FLARAS foi desenvolvido com a biblioteca FlarToolKit [Saquosha 2008] e sua estrutura foi herdada da ferramenta SACRA [Kirner e Santin 2009], a qual foi construída com a biblioteca ARToolKit [Kato 1999]. As aplicações elaboradas com FLARAS podem ser executadas online, diretamente do navegador da Internet, bastando acionar um link para a aplicação, ou localmente, devendo ser precedida pelo download da aplicação para o computador do usuário. A principal característica do FLARAS é permitir o desenvolvimento rápido de aplicações simples ou sofisticadas, ricas em interação, por pessoas com poucos conhecimentos técnicos e sem necessidade de programação ou modelagem 3D. Com isto, professores e estudantes podem usar a ferramenta para desenvolver trabalhos inovadores úteis para ensino e aprendizagem. Os recursos usados no processo de autoria das aplicações educacionais de realidade aumentada, envolvendo textos, imagens, sons, narrações, vídeos e objetos 3D, podem ser obtidos em repositórios na Internet ou desenvolvidos pelo usuário. A aplicação, resultante do processo de autoria, pode ser salva pelo ambiente do FLARAS, que também pode gerar arquivos para disponibilização em servidores ou repositórios de arquivos na Internet, permitindo o seu uso online, sem necessidade de instalação. O FLARAS é um software livre de código aberto, disponível na Internet, em um site [Souza et. al. 2013] com vasto material de apoio, incluindo: versões da ferramenta para download; tutoriais em textos e em vídeos; perguntas frequentes; e-book; repositório de aplicações com várias aplicações online para uso imediato, com seus projetos para adaptação; além de informações sobre os desenvolvedores. Para usar o FLARAS, basta imprimir um único marcador, denominado Marcador de Referência [Souza e Kirner 2013], acionar a aplicação na Internet, mostrar o marcador para a webcam, fazendo aparecer o ambiente 3D da aplicação no monitor, e interagir com a aplicação, seguindo as instruções visuais e narradas. 3.2. Descrição do FLARAS O FLARAS pode ser visto sob dois pontos de vista: um do ponto de vista do usuário das aplicações e outro do ponto de vista do desenvolvedor das aplicações, uma vez que a janela de visualização é a mesma para o usuário e para o desenvolvedor. 16 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 9-25, maio/2013. KIRNER, Claudio. Desenvolvimento de Aplicações Educacionais Adaptáveis Online com Realidade Aumentada. 3.2.1. Estruturas das Aplicações Elaboradas com FLARAS As aplicações elaboradas com FLARAS utilizam o conceito de ambiente 3D composto por pontos dispostos no espaço, cada um mostrando uma cena, conforme a Fig. 1a. a)Estrutura física b)Estrutura lógica Figura 1. Estrutura das aplicações elaboradas com FLARAS Para dar maior potencial de aplicação, cada ponto pode conter uma ou mais cenas, selecionáveis pelo usuário, em tempo de execução, conforme a Fig. 1b. Cada cena pode ser formada por imagens, vídeos ou objetos 3D e pode ser habilitada ou desabilitada pelo usuário, durante o uso da aplicação. Para contornar o problema da modelagem 3D, o FLARAS permite a utilização da maioria dos milhares de objetos prontos do Armazém 3D do Trimble/Google [Timble/Google 2013], no formato Collada (*.dae) ou KMZ. 3.2.2. Interface das Aplicações Quando o usuário aciona a aplicação educacional de realidade aumentada. Ele recebe uma interface composta por uma área de visualização retangular e uma barra de funções localizada na sua parte inferior, conforme a Fig. 2. Figura 2. Interface da aplicação de realidade aumentada com FLARAS 17 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 9-25, maio/2013. KIRNER, Claudio. Desenvolvimento de Aplicações Educacionais Adaptáveis Online com Realidade Aumentada. Inicialmente, a aplicação deve ser autorizada (Fig. 2a). Em seguida, o marcador de referência deve ser mostrado para a webcam (Fig. 2b), fazendo aparecer o ambiente 3D da aplicação (Fig. 2c). Para usar a aplicação, algumas funções da barra de funções deverão ser acionadas com o mouse, que é o elemento de interação principal do usuário com a aplicação. Também há possibilidade de uso do marcador de interação, com a ajuda do mouse alterando sua função. 3.2.3. Interface da Ferramenta FLARAS A interface da ferramenta FLARAS, usada na fase de desenvolvimento das aplicações, possui quatro áreas bem distintas, conforma a Fig. 3. Figura 3. Áreas da interface da ferramenta FLARAS A área maior serve para visualização da aplicação, enquanto ela estiver em desenvolvimento. A área da parte superior direita serve para mostrar o grafo de cena da aplicação, onde podem ser vistos: a estrutura de pontos, as cenas e os conteúdos. A área da parte inferior direita serve para mostrar os parâmetros de cada elemento do grafo de cena e outros detalhes. A barra inferior da interface mostra as funções, que o mouse ou marcador de interação podem assumir, e outras funções especiais da ferramenta. Além disso, há um menu, na parte superior da área de visualização, cujas opções permitem salvar o projeto, publicar a aplicação, ajustar a webcam, etc. 18 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 9-25, maio/2013. KIRNER, Claudio. Desenvolvimento de Aplicações Educacionais Adaptáveis Online com Realidade Aumentada. 3.2.4. Funções da Ferramenta FLARAS As funções da ferramenta FLARAS são mostradas tanto para o usuário consumidor quanto para o desenvolvedor da aplicação, através de ícones, na barra inferior de funções e na área inferior direita, onde aparecem os parâmetros e outras funções. A barra inferior de funções (Fig. 3) apresenta as funcionalidades, que o mouse ou marcador de interação podem assumir, incluindo: ativação individual e coletiva de pontos, navegação nas cenas, movimentação das cenas no ambiente. Além disso, há também: espelhamento de webcam, ativação de persistência do marcador, visibilidade de pontos de atração, etc. As funções disponíveis na área de parâmetros incluem: criação, apagamento e posicionamento de pontos e cenas, ajuste de escala, inserção de objetos (imagens, objetos 3D e vídeos), inserção de sons e animações, além de inserção de pontos de atração, conforme a Fig. 4. Figura 4. Funções da área de parâmetros do FLARAS Além disso, há funções de produtividade, que permitem mudar a ordem das cenas, duplicar cenas, etc., que facilitam e aceleram o processo de desenvolvimento das aplicações. 4. Exemplo de um Jogo Educacional Elaborado com FLARAS Existem várias iniciativas de desenvolvimento de aplicações educacionais com realidade aumentada [Ucelli 2005, Jochim 2010, Hamilton 2013], mas a maioria delas envolve especialistas, fazendo dos professores e estudantes meros consumidores das aplicações. Outras iniciativas [Kirner 2011, Reis e Kirner 2011, Cerqueira e Kirner 2012, Kirner et. al. 2012] procuraram separar o conteúdo da estrutura de aplicações educacionais com realidade aumentada, permitindo autoria e adaptação, sem a necessidade de programação. Assim, em função das duas principais tendências tecnológicas, na área de educação, envolvendo realidade aumentada e jogos, conforme foi discutido, no início deste artigo, será apresentada uma 19 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 9-25, maio/2013. KIRNER, Claudio. Desenvolvimento de Aplicações Educacionais Adaptáveis Online com Realidade Aumentada. aplicação educacional online com realidade aumentada, abordando o jogo de geometria – sólidos geométricos gerados por revolução de figuras planas (GeomAR-Revolução)[Kirner 2013a, Kirner 2013b]. Essa aplicação apresenta um alto grau de interatividade, aspectos lúdicos, exigência de habilidades e conhecimentos, desafios para os estudantes e outras propriedades de jogos, constituindo assim um jogo educacional online com realidade aumentada. 4.1. Descrição do Jogo O jogo GeomAR-Revolução consiste em descobrir figuras planas, que geram os sólidos geométricos apresentados, movimentando-as para perto de seus respectivos sólidos, usando o mouse ou o marcador de interação. O objetivo é usar o conhecimento do usuário sobre geometria, estimulando-o a experimentar o jogo e estudar o assunto para vencer os desafios apresentados no espaço lúdico interativo, promovendo a aprendizagem, com a manipulação de elementos exploratórios 3D, exercícios e diversão. Espera-se que o jogo utilize e melhore os conhecimentos dos estudantes sobre o tema, além de utilizar também a coordenação motora da movimentação dos elementos, aumentando a motivação. Os sólidos abordados são: esfera, gerada por revolução de círculo; cilindro, gerado por revolução de retângulo; cone, gerado por revolução de triângulo; e toróide, gerado por revolução de círculo deslocado do eixo de rotação, que fazem parte do ambiente do jogo (Fig. 5). Figura 5. Ambiente do jogo GeomAR-Revolução A área central da aplicação permite explorar os sólidos geométricos e o processo de geração baseado nas revoluções das figuras planas. A área de figuras, mais abaixo, permite explorar as figuras, identificando aquelas que serão associadas com os sólidos correspondentes. A fase de aprendizagem consiste em explorar todo o ambiente, analisando os sólidos, as figuras e o processo de geração de sólidos por revolução de figuras planares. 20 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 9-25, maio/2013. KIRNER, Claudio. Desenvolvimento de Aplicações Educacionais Adaptáveis Online com Realidade Aumentada. A fase de fixação de aprendizagem, baseada em exercícios, constitui-se no próprio jogo, em que o usuário, usando seus conhecimentos, procurará vencer os desafios. Em caso de dificuldade, ele poderá passar para a fase de aprendizagem e depois voltar para a etapa do jogo. O primeiro desafio é identificar um sólido geométrico e descobrir a figura que o gera, através de revolução. Depois disso, o usuário deverá comutar a função do mouse para movimentação de objeto, levando a figura identificada, para perto do sólido correspondentes, que fará sua atração. Se a associação de sólido com figura estiver correta, a figura será atraída para perto do sólido e será emitido um feedback sonoro, caso contrário, a figura será repelida para sua posição original, emitindo outro tipo de feedback sonoro. Quando o usuário conseguir encaixar a figura nas proximidades do objeto correspondente, ele ganhará pontos, senão ele perderá pontos. Vencerá o usuário que completar a associação dos quatro sólidos com suas figuras, em menor tempo e com mais pontos. Poderá acontecer que trajetórias indevidas, na movimentação das figuras, levem a repulsões acidentais, fazendo o usuário perder pontos. Assim, a coordenação motora do usuário também poderá influenciar o resultado. O jogo está disponível para ser usado online [Kirner 2013a, Kirner 2013b], bastando que o usuário tenha o marcador de referência do FLARAS para mostrá-lo à webcam. Se a velocidade da Internet for muito baixa, a aplicação poderá ser baixada para uso local, sem necessidade de instalação, executando-se o arquivo “index-local-running.html”. 4.2. Ambiente do Jogo O jogo tem quatro pontos ao redor do marcador, que mostram os sólidos geométricos e suas animações de revolução, conforme a Fig. 5. Ao lado de cada sólido geométrico, existe uma barra que atrai a figura correspondente e repele as restantes. Na parte de baixo, existem quatro botões coloridos, com figuras empilhadas, que vão sendo mostradas, conforme o usuário vai nelas clicando com o mouse ou tocando com o marcador de interação. Mais abaixo dos quatro botões, existe um rótulo, com outros empilhados, cuja navegação seqüencial vai explicando o jogo, passo a passo para iniciantes. A ativação do rótulo é opcional, podendo ser ignorada por usuários que já conheçam o jogo. No meio do marcador, existe outro rótulo que, quando clicado ou tocado, explica o conceito de revolução e mostra a licença “Creative Commons” da aplicação. 4.3. Exercitando o Jogo O jogo concede autonomia ao usuário para estabelecer sua própria abordagem vencer os desafios. É possível resolvê-lo, de forma separada ou de forma conjunta, ou seja, identificando-se uma figura e encaixando-a no sólido correspondente, repetindo o processo até acabar, ou identificando-se primeiramente todas as figuras, para depois fazer todos os encaixes. 21 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 9-25, maio/2013. KIRNER, Claudio. Desenvolvimento de Aplicações Educacionais Adaptáveis Online com Realidade Aumentada. A abordagem explicada, em seguida, é a individual. Primeiramente, ativa-se o jogo, acionando-se o seu link e autorizando o uso da webcam, fazendo aparecer a interface da aplicação, no monitor. Em seguida, usando a barra inferior de funções, espelha-se a webcam e dá-se persistência ao marcador. Coloca-se o marcador em frente à webcam, fazendo aparecer o ambiente do jogo. O marcador pode ser retirado, mantendo o ambiente do jogo visível. Nesse ponto, o jogo poderá ser iniciado, passando pelas seguintes etapas: Escolhe-se o sólido geométrico “esfera” e clica-se nos botões inferiores até selecionar-se o círculo. Muda-se a função do mouse para “transporte”, clicando-se no ícone da cruz azul, na barra inferior de funções, e em seguida, clica-se na figura selecionada, arrastando-a para as proximidades do sólido escolhido, esperando que ela seja atraída. Muda-se a função do mouse para “navegação nas cenas”, clicando-se no ícone da seta verde apontando para a direita, e em seguida escolhe-se outro sólido. Clica-se nos botões ou nas figuras, até achar a figura correspondente. Repete-se o item b, até completar-se todos os sólidos. No final, clica-se no ícone circular azul, na barra inferior de funções, para reposicionar todas as figuras nas suas posições originais. Para os botões voltarem a aparecer, muda-se a função do mouse para “navegação nas cenas” e clica-se sucessivamente nas figuras, até aparecerem os botões. O jogo estará na sua situação inicial para ser usado por outro estudante. É possível deixar a situação inicial diferente, mostrando as figuras embaralhadas. A qualquer momento, o jogador poderá entrar com o marcador de referência, em frente à webcam, e movimentá-lo através de aproximação, afastamento e rotação, de forma a inspecionar os elementos do jogo e conseguir melhor posicionamento para realizar suas interações, conforme a Fig. 6. Figura 6. Reposicionamento do jogo usando o marcador de referência Uma demonstração do jogo pode ser vista em vídeo [Kirner 2013b] e a execução online da aplicação pode acionada por um link [Kirner 2013a]. Além disso, o projeto do jogo está disponível para download, permitindo a execução local, caso a Internet não tenha bom desempenho. 22 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 9-25, maio/2013. KIRNER, Claudio. Desenvolvimento de Aplicações Educacionais Adaptáveis Online com Realidade Aumentada. 4.4. Adaptação do Jogo O projeto do jogo também permite que os usuários possam estudá-lo e modificá-lo, gerando aplicações derivadas. É possível trocar cada som e narração, com um clique do mouse, desde que os novos arquivos já estejam preparados no computador do usuário. É possível também trocar as imagens, objetos 3D e vídeos, além de alterar as animações elaboradas com o FLARAS. Assim, depois de fazer várias alterações no projeto, cria-se um novo projeto derivado do original, que deve ser disponibilizado, de acordo com a licença original da aplicação “Creative Commons”. Essa facilidade de alteração permite que professores e estudantes usem a estrutura do jogo, alterem o conteúdo, mudando ou não o tema, criando novos jogos mais apropriados para as suas necessidades educacionais. Com um pouco mais de prática, os usuários poderão também alterar a estrutura do jogo. Essas características facilitam a criação de novas aplicações, ajudando a disseminar a produção e o uso de jogos educacionais com realidade aumentada. 5. Conclusões Este artigo discutiu o uso da realidade aumentada em aplicações educacionais, levando em conta as peculiaridades da realidade aumentada e os requisitos das aplicações educacionais. Nesse contexto, foi identificada uma forte tendência do uso da realidade aumentada e de jogos na educação, fazendo com que jogos educacionais com realidade aumentada apresentem uma inserção significativa nos processos de ensino e aprendizagem, nos próximos anos. A ferramenta de autoria de aplicações de realidade aumentada FLARAS, por ser apropriada para elaboração de jogos educacionais com realidade aumentada, foi apresentada, discutida e utilizada na criação do jogo educacional com realidade aumentada sobre geometria - GeomAR-Revolução, cujo funcionamento e desenvolvimento foram detalhados neste artigo. O jogo apresenta elementos 3D, interação tangível, visualização flexível, desafios bem definidos, aspectos lúdicos, exigência de conhecimentos de geometria, espaços de aprendizagem, flexibilidade de execução de ações, instruções narradas e visuais integradas, capacidade de execução online e localmente, etc. Essas características fazem com que o jogo seja apropriado para uso em ensino e aprendizagem, uma vez que motiva os estudantes a aprenderem e auxilia o professor. Além disso, a ferramenta FLARAS possibilita desenvolvimento rápido de aplicações de realidade aumentada, usando recursos disponíveis na Internet ou criados pelos próprios usuários. Outra característica importante é a alta capacidade de adaptação das aplicações desenvolvidas com FLARAS, permitindo a criação de aplicações derivadas, mais apropriadas às necessidades de professores e estudantes. Vários jogos educacionais com realidade aumentada, baseados no FLARAS, estão sendo desenvolvidos, abrangendo: quebra-cabeças, jogos de palavras, jogos de associação, jogos espaciais, etc. com temas em diversas áreas do conhecimento como: Física, Química, Biologia, Matemática, Línguas, etc. Esses jogos estão em fase de avaliação, cujos resultados servirão para sua melhoria. 23 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 9-25, maio/2013. KIRNER, Claudio. Desenvolvimento de Aplicações Educacionais Adaptáveis Online com Realidade Aumentada. Espera-se que a facilidade de produção e de adaptação desses jogos, aliada a sua inerente capacidade de motivação nos professores e estudantes, possa dar uma contribuição efetiva à Educação, melhorando sua qualidade e resultando em maior satisfação nas atividades de ensino e aprendizagem. Agradecimentos O autor agradece ao CNPQ pelo financiamento ao Projeto “AIPRA - Ambiente na Internet para Professores desenvolverem Aplicações Educacionais com Realidade Aumentada” (Processo CNPq 559912/2010-2), que viabilizou o desenvolvimento deste trabalho. Referências CERQUEIRA, C. S. e Kirner, C. (2011) “basAR: Ferramenta de Autoria de Realidade Aumentada com Comportamento”, In VIII Workshop de Realidade Virtual e Aumentada, Uberaba, SBC, v. 1, p. 1-6. CERQUEIRA, C.; KIRNER, C. (2012) “Developing Educational Applications with a Non-Programming Augmented Reality Authoring Tool”, In Proceedings of World Conference on Educational Multimedia, Hypermedia and Telecommunications 2012, Chesapeake, VA: AACE, p. 2816-2825, , http://www.editlib. org/p/41166. HAMILTON, K. E. (2013) “Augmented reality in education”, http://wik.ed.uiuc.edu/articles/a/u/g/ Augmented_Reality_in_Education_51fa.html JOCHIM, S. (2010) “Augmented Reality in Modern Education”, http://augmentedrealitydevelopmentlab. com/wp-content/uploads/2010/08/ARDLArticle8.5-11Small.pdf. JOHNSON, L.; ADAMS, S.; CUMMINS, M. (2012) “NMC Horizon Report: 2012 K-12 Edition”, Austin, Texas, The New Media Consortium, http://www.nmc.org/pdf/2012-horizon-report-K12.pdf. JOHNSON, L.; SMITH, R.; WILLIS, H.; LEVINE, A.; HAYWOOD, K. (2011) “The 2011 Horizon Report”, Austin, Texas, The New Media Consortium, http://net.educause.edu/ir/library/pdf/HR2011.pdf. KATO, H. ; BILLINGHURST, M. (1999) “Marker Tracking and HMD Calibration for a Video-based Augmented Reality”, In Conferencing System IWAR’99, The 2nd Int. Workshop on Augmented Reality, San Francisco, USA, p. 85-94. KIRNER, C. (2011) “Prototipagem Rápida de Aplicações Interativas de Realidade Aumentada”, In Siscoutto, R.A. e Brega, J.R.F . ed. Tendências e Técnicas em Realidade Virtual e Aumentada, SBC, p. 29-54. KIRNER, C. (2013a) “Projeto AIPRA – Ambiente na Internet para os Professores Desenvolverem Aplicações Educacionais com Realidade Aumentada”, http://www.ckirner.com/aipra. KIRNER, C. (2013b) “GeomAR-Revolução – Jogo Educacional de Geometria s envolvendo Geração de Sólidos por Revolução de Figuras Planas”, http://www.youtube.com/watch?v=JZsEHL32QNA. 24 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 9-25, maio/2013. KIRNER, Claudio. Desenvolvimento de Aplicações Educacionais Adaptáveis Online com Realidade Aumentada. KIRNER, C.; CERQUEIRA, C.; KIRNER, T.G. (2012) “Using Augmented Reality in Education and Cognitive Rehabilitation”, In Eichenberg, C. ed, Virtual Reality in Psychological, Medical and Pedagogical Applications, Intech, p. 247-270, http://www.intechopen.com. KIRNER, C.; KIRNER, T. G. (2011) “Development of an Educational Spatial Game using an Augmented Reality Authoring Tool”, International Journal of Computer Information Systems and Industrial Management Applications. N.3, Vienna: MIR Labs, p. 602-611. KIRNER, C.; KIRNER, T. G.; REZENDE JUNIOR, M. F.; SOUZA. R. C. (2012) “Realidade Aumentada Online na Educação Aberta”, In Okada, A. ed, Open Educational Resources and Social Networks: CoLearning and Professional Development, 1st ed. Scholio Educational Research & Publishing, p.1-19, http://oer.kmi.open.ac.uk. KIRNER, C.; SANTIN, R. (2009) “Interaction, Collaboration and Authoring in Augmented Reality Environments”. Proceedings of XI Symposium on Virtual and Augmented Reality. Porto Alegre, SBC, p. 210-220. METAIO (2013) “Augmented Reality SDK for App Development” http://www.metaio.com/products/sdk. NMC (2012) “NMC Horizon Project Short List: 2013 Higher Education Edition”, Austin, Texas, The New Media Consortium, http://www.nmc.org/pdf/2013-horizon-higher-ed-shortlist.pdf. NMC (2013) “NMC Horizon Reports”, Austin, Texas, The New Media Consortium, http://www.nmc.org/ horizon-project/horizon-reports. OKADA, A. ed. (2012) Open Educational Resources and Social Networks: Co-Learning and Professional Development, 1st ed. Scholio Educational Research & Publishing. http://oer.kmi.open.ac.uk. REIS, F. M. V.; KIRNER, T. G. (2011) “Desenvolvimento de um livro com realidade aumentada para o ensino de geometria”, Anais do VIII Workshop de Realidade Virtual e Aumentada - WRVA 2011, Uberaba, MG, p. 1-6. SAQUOSHA (2008) “FlarToolKit”, http://saqoo.sh/a/flartoolkit/start-up-guide. SOUZA, R .C.; KIRNER, C. (2013) “Marcador de Referência do FLARAS”, http://ckirner.com/FLARAS2/ wp-content/uploads/2012/09/ref-marker.pdf. SOUZA, R. C.; MOREIRA, H. D. F.; KIRNER, C. (2013) “FLARAS - Flash Augmented Reality Authoring System”, http://ckirner.com/FLARAS2. Trimble/Google (2013) “Trimble/Google Armazém 3D”, http://sketchup.google.com/3dwarehouse. UCELLI, G.; CONTI, G.; AMICIS, R. D.; SERVIDIO, R. (2005) “Learning using augmented reality technology: multiple means of interaction for teaching children the theory of colours”, Lecture Notes in Computer Science, 2005, vol. 3814/2005, p. 193-202. 25 26 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 27-44, maio/2013. SILVA, Luciano. Visualização e Interação em Arquitetura via RV e RA. Visualização e Interação em Arquitetura via RV e RA Luciano Silva Abstract Both physical and virtual architectural designs are suitable environments for applying VR and AR techniques. Collaborative design, design visualization, virtual tours, virtual environments evaluation and decoration are some possible examples on using of these techniques. Within this context, this chapter introduces the use of VR and AR to various demands in architecture and additionally features an integrated result in the TICHIS project, aimed at RV-based architectural designs for social concerned housing. Resumo Projetos arquitetônicos físicos e virtuais são ambientes adequados para uso de técnicas de RV e RA. Projeto colaborativo, visualização de projetos, tours virtuais, avaliação de ambientes e decoração virtual são alguns exemplos possíveis de utilização destas técnicas. Dentro deste contexto, este capítulo apresenta o uso de RV e RA para diversas demandas em arquitetura e, adicionalmente, apresenta um resultado integrado no projeto TICHIS, direcionado a projetos arquitetônicos baseados em RV para habitações de interesse social. 1. Introdução A área de Arquitetura, como qualquer outra área de projeto que explora produção de ambientes físicos como a Engenharia Civil, oferece grandes desafios como projeto colaborativo, visualização, produção de protótipos e manutenção, que podem ser abordados de forma bastante adequada por técnicas de RV e RA. Os processos disponibilizados por RV e RA permitem visualizações com alto grau de aderência aos modelos físicos reais, além de um grande suporte à colaboração na definição e discussão de projetos, integração com ambientes de fabricação digital, interação com usuários para visualização de projetos e alta portabilidade entre diversas plataformas de acesso como Web, computadores e notebooks, tablets e celulares, facilitando a mobilidade no acesso aos projetos. 26 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 26-42, maio/2013. SILVA, Luciano. Visualização e Interação em Arquitetura via RV e RA. Dentro deste contexto, este capítulo apresenta os principais problemas em Arquitetura que podem ser abordados por processos de RV e RA. Para cada um deles, são apresentadas alternativas e possibilidades de uso destes processos. Além disto, é apresentado um caso real - Projeto TICHIS - , onde técnicas de RV e RA têm sido utilizadas com sucesso no projeto e construção de habitações de interesse social (HIS). O texto está organizado da seguinte forma: • a Seção 1.2 apresenta os principais problemas em projeto, produção e manutenção em Arquitetura; • a Seção 1.3 apresenta alternativas de RV e RA para o problema de projeto; • a Seção 1.4 apresenta alternativas de RV e RA para o problema de fabricação digital; • a Seção 1.5 apresenta alternativas de RV e RA para o problema de manutenção e reparo; • a Seção 1.6 apresenta o projeto TICHIS e os seus resultados; • a Seção 1.7 apresenta os comentários finais deste capítulo e • finalmente, a Seção 1.8 apresenta um conjunto de referências bibliográficas aos interessados em iniciar desenvolvimentos nesta importante área de pesquisa. 2. Problemas de Projeto, Produção e Manutenção em Arquitetura Um problema central em Arquitetura refere-se à lacuna entre a representação do espaço arquitetônico e o entendimento real de como o espaço se distribui em uma edificação, segundo Zevi (1994), dado que plantas, fachadas e elevações de um edifício correspondem a projeções abstratas, utilizadas muitas vezes somente para se medir as distâncias entre os diversos elementos que permitam a execução da obra. Isto leva a uma distância cognitiva entre o objeto real e sua representação em um planta, conforme mostra a Figura 1: Figura 1: Um objeto arquitetônico e sua representação por planta. Fonte: www.totalcad.com.br 27 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 26-42, maio/2013. SILVA, Luciano. Visualização e Interação em Arquitetura via RV e RA. É comum, devido a processos de projeto em Arquitetura, as plantas ficarem limitadas a projeções bidimensionais, que aumentam ainda mais as distâncias cognitivas para geração “mental” de um modelo tridimensional do objeto a ser construído. Assim, novas técnicas de projeto que permitam aos arquitetos explorar consistentemente seus projetos diretamente no ambiente 3D é de grande interesse em Arquitetura. Sem o uso de um ambiente computacional adequado, a Arquitetura muitas vezes recorreu ao uso de maquetes físicas (Ching, 2007), conforme mostra a Figura 2: Figura 2: Produção de maquetes físicas a partir de plantas arquitetônicas. Fonte: www.totalcad.com.br Mesmo que as maquetes consigam transpor a limitação da representação bidimensional das plantas, elas exibem alguns complicadores no seu uso extensivo: custo, velocidade de produção e alteração, mobilidade. Uma vez que o projeto estrutural de ambiente arquitetônico esteja definido, quer seja por uma planta ou por uma maquete, surge outro problema interessante: a decoração interior (Tangaz, 2006). A Figura 3 exibe dois exemplos de projeto de decoração de interiores: 28 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 26-42, maio/2013. SILVA, Luciano. Visualização e Interação em Arquitetura via RV e RA. Figura 3: Representações arquitetônicas para decoração de interiores. Fonte: www.totalcad.com.br Novamente, aqui se apresentam as dificuldades de se imaginar como será o ambiente real a ser produzido por esta decoração e, caso o cliente necessite realizar alterações, novas plantas (ou maquetes) deverão ser produzidas. Muitas vezes, após o projeto, são construídos modelos em escala através de técnicas de prototipação, conforme mostra a Figura 4: Figura 4: Protótipo em escala produzido por máquina de corte computadorizada. Fonte: tatapress.blogspot.com.br/p/fabricacao-digital.html 29 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 26-42, maio/2013. SILVA, Luciano. Visualização e Interação em Arquitetura via RV e RA. Neste exemplo, foi aplicada a técnica de fabricação digital (Dunn, 2012), que permite que dados de uma planta arquitetônica possa ser passada diretamente a sistemas de CAM (Computer Aided Manufacturing) para produção dos modelos em escala, objetivando-se uma visualização mais realista do projeto ou mesmo para testes estruturais reais. Aqui, o problema é como passar de forma transparente do ambiente de projeto para o de prototipação. Finalmente, outro problema bastante comum em Arquitetura refere-se à manutenção e reforma de ambientes já construídos (Maciha, 2005), conforme mostra a Figura 5: Figura 5: Processo de reforma em Arquitetura. Fonte: blog-br.com/multpredial#.UU-fzByTjSg Na área de manutenção, existem inúmeros problemas como, por exemplo: • como prever os impactos da manutenção e gerar cenários possíveis de avaliação destes impactos ? • como disponibilizar um ambiente de visualização aos usuários de tal forma que possibilidades de alteração de projeto possam ser discutidas ? • como integrar o processo de reforma com sistemas de predição de custos e acompanhamento da obra ? Especialmente para os dois primeiros problemas, existem várias alternativas tanto em RV quanto em RA para abordá-los. 30 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 26-42, maio/2013. SILVA, Luciano. Visualização e Interação em Arquitetura via RV e RA. 3. Aplicações de RV e RA em Projeto Arquitetônico A fase de projeto arquitetônico evoluiu muito nos últimos anos com o uso das maquetes virtuais (Kolarevic, 2005), que traz projetistas e clientes para um ambiente comum de projeto e discussão de alternativas e alterações. A Figura 6 mostra um exemplo de maquete virtual para arquitetura: Figura 6: Maquete virtual produzida no ambiente Sketchup. Fonte: blog.3dm.com.br/tapa-maquete-eletronica-realista-para-sketchup-e-revit/ Existem diversos ambientes e softwares que podem produzir maquetes virtuais como, por exemplo, o Google Sketchup (www.sketchup.com) e o Revit (www.autodesk.com/revitarchitecture). O Google Sketchup, em particular, permite que maquetes virtuais sejam posicionadas sobre ambientes reais no Google Maps, conforme mostrado na Figura 7: Figura 7: Maquetes virtuais posicionadas sobre um suporte geográfico (Google Maps). Fonte: maps.google.com 31 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 26-42, maio/2013. SILVA, Luciano. Visualização e Interação em Arquitetura via RV e RA. Na linha específica de RV, maquetes arquitetônicas podem ser visualizadas em displays que permitem experimentar a sensação de tamanho natural dentro de cavernas digitais, assim como interagir com os elementos do cenário (Figura 8): Figura 8: Visualização de maquetes virtuais em cavernas digitais. Fonte: www.iff.fraunhofer.de Na linha de RA, é possível se utilizar marcadores específicos em plantas bidimensionais, que podem ser substituídos por maquetes virtuais, conforme mostra a Figura 9: Figura 9: Substituição de marcadores de RA por maquetes em plantas arquitetônicas. Fonte: www.db-rep.net 32 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 26-42, maio/2013. SILVA, Luciano. Visualização e Interação em Arquitetura via RV e RA. 4. Aplicações de RV e RA em Fabricação Digital Assim como o projeto arquitetônico, a fabricação de modelos em escala reduzida ou natural já utiliza recursos digitais de fabricação direta (Agkathidis, 2011). A partir de maquetes virtuais, impressoras 3D produzem o modelo na escala desejada, conforme mostra a Figura 10: Fonte: www.futureconverged.com Fonte: cloudtimes.org Figura 10: Modelo digital impresso digitalmente e impressora 3D baseada em resina. Grande parte dos softwares para impressoras 3D e sistemas de fabricação digital 3D já possuem ambientes de RV integrados para visualização, conforme ilustra a Figura 11: Figura 11: Ambiente baseado em RV para impressão 3D. Fonte: www.virtualrobotix.com 33 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 26-42, maio/2013. SILVA, Luciano. Visualização e Interação em Arquitetura via RV e RA. Uma vez que o modelo arquitetônico esteja impresso, sistemas de RA podem expandir a visualização do modelo acrescentando novos detalhes que seriam difíceis de serem impressos como, por exemplo, a vegetação mostrada na Figura 12: Figura 12: Expansão da visualização de modelo 3D impresso via RA móvel. Fonte: www.dezeen.com Sistemas de RA também disponibilizam a facilidade de discussão de objetos diretamente da sala de impressão, através de marcadores que podem ser colocados diretamente nas mãos dos operadores das impressoras 3D, conforme mostra a Figura 13: Figura 13: Apresentação, via RA, de objeto arquitetônico a ser impresso. Fonte: 3dprintineducation.wordpress.com 34 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 26-42, maio/2013. SILVA, Luciano. Visualização e Interação em Arquitetura via RV e RA. 5 Aplicações de RV e RA em Manutenção Arquitetônica Na linha de manutenção e reparos em Arquitetura, há um grande nicho de aplicações tanto para sistemas de RV quanto RA. Porém, ambos os sistemas dependem que haja uma versão digital do ambiente a ser vistoriado e reparado. Neste sentido, para um ambiente devidamente sensorizado, um sistema de RV permite a um arquiteto vistoriar e decidir por reparos diretamente no modelo virtual, através de um tour virtual ilustrado na Figura 14: Figura 14: Tour virtual de um arquiteto para fins de inspeção e decisão de reparos. Fonte: www.sciencedirect.com/science/article/pii/S0965997812001299 Em RA móvel (Madden, 2011), por exemplo, a visita técnica para manutenção e reparo não necessita mais que o arquiteto leve consigo uma planta. Utilizando um dispositivo como um celular ou um tablet, a imagem real pode ser fundida com elementos técnicos de número de equipamentos e seus status de funcionamento, como ilustra a Figura 15, onde os dados de um sistema de proteção a incêndios são exibidos ao arquiteto na tela de um celular: 35 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 26-42, maio/2013. SILVA, Luciano. Visualização e Interação em Arquitetura via RV e RA. Figura 15: Sistema de RA para manutenção arquitetônica. Fonte: www.igd.fraunhofer.de Em um processo de registro mais complicado, é possível via RA se sobrepor todos os detalhes de uma planta arquitetônica sobre o ambiente que está sendo vistoriado, conforme ilustra a Figura 16: Figura 16: Registro de plantas arquitetônicas diretamente sobre cenas reais. Fonte: www.eonreality.com Um dos complicadores atuais neste registro ainda é a dependência de equipamentos desconfortáveis como óculos misturadores, em processos longos de vistoria e reparo. Porém, com tecnologias que estão surgindo no mercado como o Google Glass (Figura 17), existe uma tendência que estas soluções sejam cada vez mais comuns. 36 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 26-42, maio/2013. SILVA, Luciano. Visualização e Interação em Arquitetura via RV e RA. Figura 17: Google Glass como elemento mínimo para mistura de imagens em RA. Fonte: www.google.com/glass 6 Projeto TICHIS O Projeto TICHIS (Tecnologias de Informação e Comunicação para Habitações de Interesse Social) é um grande projeto financiado pela FINEP e que congrega diversas universidades no país: USP, Mackenzie, URGS, UFPR, UNICAMP e UFPR. O objetivo principal deste projeto é explorar as diversas tecnologias da informações para projeto e produção de habitações de interesse social como, por exemplo, as casas desenvolvidas por projetos governamentais na área de habitação. A Meta 53 deste projeto, de responsabilidade do autor deste capítulo, tem como objetivo desenvolver uma metodologia para uso de ambientes baseados em Realidade Virtual e Aumentada em projetos colaborativos de habitações de interesse social. A partir desta metodologia, será produzido um sistema colaborativo onde diversos usuários (arquitetos, engenheiros e moradores) possam discutir suas idéias dentro um ambiente imersivo comum, conforme mostrado na Figura 18: Figura 18: Três usuários [engenheiros, arquitetos e moradores] com um objeto comum (habitação) em discussão. 37 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 26-42, maio/2013. SILVA, Luciano. Visualização e Interação em Arquitetura via RV e RA. Moradores podem, por exemplo, visitar virtualmente a habitação antes dela ser construída. Arquitetos e engenheiros podem discutir detalhes de projeto dentro de um ambiente comum. A metodologia para consecução desta meta foi formada pelos seguintes passos: 1. Levantamento do estado-da-arte em interfaces para sistemas colaborativos em arquitetura 2. Levantamento do estado-da-arte em visualização de projetos em arquitetura, com ênfase em BIM (Building Information Modeling) 3. Definição do projeto de interface do sistema colaborativo para o projeto TICHIS 4. Definição de contextos de navegação dentro do sistema colaborativo 5. Implementação do projeto de interface e contexto de navegação 6. Testes com usuários. Após análise das diversas alternativas existentes na literatura técnica, optou-se pelo uso de uma interface bastante limpa, formada por um cubo de imersão (CAVE), um sistema de tracking (Microsoft Kinect) e um óculos 3D (ativo ou passivo) para aumentar a imersão, conforme mostra a Figura 19: Figura 19: Componentes da interface de imersão do TICHIS (CAVE, óculos e Kinect). Para os processos de visualização, foi escolhida a ferramenta Quest3D (www.quest3d.com), que permite uma integração muito simples com diversos dispositivos de Realidade Virtual e Aumentada. Dentro desta ferramenta, modelos arquitetônicos BIM são convertidos para o formato do Quest3D, como mostrado na Figura 20: 38 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 26-42, maio/2013. SILVA, Luciano. Visualização e Interação em Arquitetura via RV e RA. Figura 20: Modelo BIM carregado na ferramenta Quest3D. Além das funcionalidades de interação da ferramenta Quest3D, ela permite trabalhar de maneira bastante simplificada com projeções em diversos projetores acoplados, inclusive com separação automática de imagens entre os projetores. Cada etapa de controle do sistema de sistema de visualização do TICHIS é efetuada em um nós especifico do grafo de cena definido no Quest3D, conforme mostrado na Figura 21: Figura 21: Nós do grafo de cena do Quest3D. 39 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 26-42, maio/2013. SILVA, Luciano. Visualização e Interação em Arquitetura via RV e RA. Além disto, foi implementada a integração entre o Kinect e o Quest3D para navegação básica dentro das cenas, permitindo o uso de até 03 (três) Kinects simultâneos, o que pode rastrear até 12 (doze) usuários, conforme mostra a Figura 22: Figura 22: Mapas de profundidade de três Kinect, com sete usuários identificados. Pela estrutura atual do sistema, é possível a inclusão mais Kinects. Porém, a queda de desempenho devido às velocidades de comunicação USB (que liga o Kinect aos computadores) não recomenda um aumento destes equipamentos. Além disto, pelo tamanho da CAVE (3 m x 3m x 3m), mais do que doze pessoas poderia comprometer a mobilidade dentro do cubo de interação. Na linha de otimização das operações gráficas, foram estudadas e estendidas diversas técnicas para CUDA, a linguagem de programação das placas gráficas do projeto. Além disto, foram estudadas técnicas baseadas em nuvens de pontos (Point Based Graphics) para acelerar os processos de renderização e de Física. Este trabalho também se concentrou no projeto de modelos de contexto de navegação para os diversos usuários do sistema. Estes modelos são baseados em Redes de Petri, que permitem definir lugares e regras de transição entre estes lugares, conforme mostra a Figura 23: Figura 23: Rede de Petri, com indicação de lugares (P1…P4) e transições (T1 e T2). 40 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 26-42, maio/2013. SILVA, Luciano. Visualização e Interação em Arquitetura via RV e RA. As Redes de Petri foram aplicadas da seguinte maneira nos modelos de arquitetura: partes da construção são os lugares e, a passagem entre os lugares, como transições, conforme mostrado na Figura 24: Figura 24: Lugares e transições em uma construção. Os contextos de navegação (elementos que poderão ser exibidos a cada usuário) são definidos dentro de zonas. Cada zona é associada a um lugar na Rede de Petri. Assim, cada modelo que for carregado no Quest3D precisa ser zoneado e todas as informações que podem ser visualizadas devem estar associadas a sua respectiva zona. A Figura 25 mostra uma construção e seu zoneamento: Figura 25: Um exemplo de construção e suas zonas(2 – verde e vermelha). 41 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 26-42, maio/2013. SILVA, Luciano. Visualização e Interação em Arquitetura via RV e RA. O sistema já foi testado com exibição de informações fictícias (não-reais) apenas para fins de verificação da implementação. Quando o modelo real do projeto TICHIS for definido, testes mais efetivos deverão ser realizados. 7 Considerações Finais A área de Arquitetura oferece problemas e demandas que são muito aderentes aos desafios procurados no projeto e desenvolvimento de sistemas de RV e RA. Assim, trata-se de uma área com enorme potencial para pesquisa e desenvolvimento de produtos, tanto na linha teórica quanto prática. Assim, o autor espera que esta pequena introdução ao tema tenha mostrado os principais problemas da área, discutido algumas alternativas para abordar estes problemas e, principalmente, que ela possa despertar o interesse de alunos e pesquisadores para estes problemas. 8 Referências AGKATHIDIS, A.(2011) “Digital Manufacturing: In Design and Architecture”. New York: BIS Publishers. CHING, F.D.K. (2007) “Architecture: Form, Space and Order”. New York: John Wiley & Sons. CRAIG, A.B. (2009) “Developing Virtual Reality Applications: Foundations on Effective Design”. New York: Morgan Kaufmann. DUNN, N. (2012) “Digital Fabrication in Architecture”. New York: Laurence King Publishers. KOLAREVIC, B. (2005) “Architecture in the Digital Age: Design and Manufacturing”. New York: Taylor & Francis. MACIHA, J.C. (2005) “Preventive Maintenance for Multi-Family Housing”. New York: RSMeans. MADDEN, L. (2011) “Professional Augmented Reality Browsers for Smartphones”. New York: Wrox. TANGAZ, T. (2006) “Interior Design Course: Principles, Practices and Techniques for the Aspiring Designer”. New York: Barron. ZEVI, B. (1994) “Saber ver a Arquitetura”. São Paulo: Martins Fontes. 42 43 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 43-59, maio/2013. RODELLO, Ildeberto A., et al. Realidade Virtual e Aumentada Aplicada na Área de Negócios: casos na área de Marketing e de Projeto e Desenvolvimento de Produtos. Realidade Virtual e Aumentada Aplicada na Área de Negócios: casos na área de Marketing e de Projeto e Desenvolvimento de Produtos Ildeberto A. Rodello Marize Minakawa Thais F. da Paz José R. F. Brega Abstract It is increasingly the use of Virtual and Augmented Reality by Organizations. Nowadays, it is possible to highlight a set of initiatives based on Virtual and Augmented Reality already used by Organizations, with diverse objectives, as: prototyping and product’s presentation, reducing time and costs of development, better understand and improve the relationship with customers, branding valorization, among others. In this context, this Chapter aims at presenting examples of Virtual and Augmented Reality used by Organizations in Marketing and products project and development areas. Resumo Cada vez mais as Organizações estão utilizando a tecnologia de Realidade Virtual e Aumentada nas suas ações. Atualmente é possível elencar uma série de iniciativas com Realidade Virtual e Aumentada que já estão em produção nas Organizações, com diversos objetivos, tais como: facilidades para prototipagem e apresentação de produtos, diminuição no tempo de desenvolvimento e nos custos envolvidos, melhor relacionamento com clientes, valorização de marca, dentre outros. Nesse contexto, este Capítulo tem como objetivo apresentar exemplos de ações reais que as Organizações estão utilizando nas áreas de Marketing e de projeto e desenvolvimento de produtos. 1. Contextualização São vários os objetivos que levam as Organizações a utilizarem a Tecnologia de Informação e Comunicação (TIC) em suas atividades. Laudon e Laudon (2010) enumeram i) proporcionar excelência operacional; ii) apoiar a criação de novos produtos, serviços e modelos de negócio; iii) estreitar o relacionamento com clientes e fornecedores; iv) melhorar a tomada de decisão; v) obter vantagem competitiva e, em alguns casos vi) sobreviver. 43 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 43-59, maio/2013. RODELLO, Ildeberto A., et al. Realidade Virtual e Aumentada Aplicada na Área de Negócios: casos na área de Marketing e de Projeto e Desenvolvimento de Produtos. Com o notável barateamento e popularização dos dispositivos de TIC (computadores e periféricos) e a consequente facilidade de acesso aos recursos proporcionados (Sistemas de Informação e aplicativos), simplesmente ter o uso por questões operacionais ou mesmo gerenciais/táticas, pode não proporcionar efetivamente para as Organizações um diferencial competitivo. Dessa forma, buscar a inovação em termos do uso da TIC e seus recursos passou a ser primordial em alguns segmentos. Não obstante a utilização mais notável da Realidade Virtual e Aumentada (RVA) em diversas áreas do conhecimento tais como Saúde, Engenharia e Educação, entre outros, com mais diversas finalidades, a área de Negócios também direciona atenções para sua aplicação principalmente na tentativa de agregar valor a seus produtos e buscar um diferencial competitivo nas suas ações estratégicas, ou seja, em potencializar os objetivos mencionados anteriormente. Quando se menciona a área de Negócios, entende-se aquela que envolve principalmente Empresas e suas ações para alcançar determinadas metas estratégicas e competitivas. Observa-se que a RVA tem ganhado espaço em diversas vertentes organizacionais, tais como: peça em ações de Marketing, instrumento de apoio no projeto e desenvolvimento de produtos, fonte de aproximação com potenciais clientes, treinamento, dentre outros. Nesse contexto, o principal objetivo desse Capítulo é apresentar e discutir como a RVA tem sido aplicada em ações de Marketing e no projeto e desenvolvimento de produtos, procurando-se discutir e estabelecer vantagens e desvantagens nos cenários apresentados. Procurou-se mesclar tanto casos utilizados no Brasil quanto no exterior, não objetivando uma discussão exaustiva do assunto, mas sim, instigar o leitor em elaborar soluções derivadas e que possam resultar em trabalhos futuros. Destaca-se que há outras formas de utilização da RVA para outros escopos dentro de uma Organização. No entanto, por conveniência de estudo, este Capítulo tem foco tão somente nas duas áreas organizacionais supracitadas. Para a exposição do assunto, a seção 1.2 apresenta um cenário de evolução do conceito de RV, com o aparecimento do termo RM e suas derivações. Na seção 1.3 é apresentado o conceito de empresa. O escopo do Marketing, envolvendo definição e sua inserção dentro de uma organização, é apresentado na seção 1.4, bem como as vantagens e desvantagens da utilização da RVA no Marketing. A seção 1.5 apresenta alguns exemplos de uso da RVA em Marketing. Os conceitos relacionados ao processo e desenvolvimento de produtos são descritos na seção 1.6 e, em seguida, (seção 1.7) são apresentados alguns exemplos de uso da RVA em dois setores específicos: automobilístico e aeronáutica. Todo esse contexto embasa as considerações finais na seção 1.8. 2. A Evolução do Conceito “Realidade Virtual” Concomitantemente ao processo evolutivo dos equipamentos e dispositivos de RV, o termo também “evoluiu”. Historicamente atribui-se o termo “Realidade Virtual” a Jaron Lanier, cientista da computação, artista visual e compositor, que no final da década de 80 sugeriu a junção de dois conceitos antagônicos para a criação dessa emergente área de pesquisas que busca unir o real com o virtual. A RV pode ser interpretada como a interface mais natural, poderosa e avançada de interação entre homem-máquina, que permite interação, navegação e imersão em um ambiente sintético tridimensio- 44 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 43-59, maio/2013. RODELLO, Ildeberto A., et al. Realidade Virtual e Aumentada Aplicada na Área de Negócios: casos na área de Marketing e de Projeto e Desenvolvimento de Produtos. nal de forma natural e intuitiva, em tempo real, utilizando canais multisensoriais tais como a visão, a audição, o tato e o olfato (Burdea e Coiffet, 1994). (Pinho; Kirner, 1997) (Tori e Kirner, 2006). Desde então, vários pesquisadores tentam caracterizar diferenciações entre a proporção de real e virtual presentes em um determinado ambiente, além de cunhar termos para tanto. Uma dessas caracterizações refere-se ao continuum de virtualidade proposto por Milgram et al. (1994). Pela Figura 1 é possível observar que nas extremidades são caracterizados os ambientes reais e virtuais. Quando há predominância do virtual sobre o real, denomina-se Virtualidade Aumentada (VA) e, ao contrário, Realidade Aumentada (RA). Ao conjunto, tanto VA quanto RA, caracteriza-se por RM. Realidade Misturada Ambiente Real Realidade Aumentada Virtualidade Aumentada Ambiente Virtual Figura 1. Continuum de Virtualidade. Adaptado de Milgran et al. (1994) Por ambiente virtual entende-se aquele ambiente totalmente gerado por computador, podendo ou não representar um ambiente já existente. Por ambiente real considera-se aquele ambiente palpável, que existe na realidade. 3. O Conceito de Empresa De acordo com Bateman e Snell (1998), uma empresa é “um sistema administrado projetado e operado para atingir determinado conjunto de objetivos”. Tal sistema é um conjunto de partes (Figura 2) que processam insumos em saídas. Uma Empresa com fins lucrativos tem os objetivos de (Bateman; Snell, 1998): i) realizar lucro para seus donos; ii) fornecer bens e serviços aos clientes; iii) prover renda para seus funcionários; e iv) aumentar o nível de satisfação de cada um dos seus envolvidos. Para atingir esses objetivos, uma Organização divide, executa e coordena as atividades que são estruturadas de diversas formas. Uma das formas de se estruturar prevê a divisão da Organização em departamentos com funções específicas (vendas, produção, marketing, recursos humanos, etc.), com organização hierárquica e funções definidas. 45 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 43-59, maio/2013. RODELLO, Ildeberto A., et al. Realidade Virtual e Aumentada Aplicada na Área de Negócios: casos na área de Marketing e de Projeto e Desenvolvimento de Produtos. AMBIENTE EXTERNO Insumos (Recursos) Humanos Financeiros Físicos Informação Organização Resultados Processo de Transformação Bens Serviços Figura 2. Partes de um Sistema Organizacional. Adaptado de Bateman e Snell (1997) Potencialmente, a tecnologia de RVA pode ser aplicada em cada uma dessas áreas, evidentemente com objetivos diferentes. Na área de recursos humanos, por exemplo, por ser utilizada em treinamentos. Ou ainda para simular processos de negócios (Diniz et al.; 2004). No contexto desse Capítulo, abordar-se-á a RVA nas áreas de Marketing e projeto e desenvolvimento de produtos. 4. O Escopo do Marketing Segundo Kotler e Keller (2006), em uma definição ampla, o Marketing “envolve a identificação e a satisfação das necessidades humanas e sociais”. Essa definição tem duas perspectivas: social e gerencial. Na perspectiva social, o Marketing visa entender as necessidades dos clientes e oferecer bens e serviços que os atendam plenamente. Na ótica gerencial, por sua vez, ele é entendido como a “arte de vender produtos”, ou seja, como uma organização pode vender mais bens ou serviços e, consequentemente, obter mais lucro. Por organização, entende-se: “(...) é uma coletividade com uma fronteira relativamente identificável, uma ordem normativa (regras), níveis de autoridade (hierarquia), sistemas de comunicação e sistemas de coordenação dos membros (procedimentos); essa coletividade existe em uma base relativamente contínua, está inserida em um ambiente e toma parte de atividades que normalmente se encontram relacionadas a um conjunto de metas; as atividades acarretam conseqüências para os membros da organização, para a própria organização e para a sociedade” (Hall, 1984). 46 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 43-59, maio/2013. RODELLO, Ildeberto A., et al. Realidade Virtual e Aumentada Aplicada na Área de Negócios: casos na área de Marketing e de Projeto e Desenvolvimento de Produtos. Nessa definição destaca-se a palavra coletividade, que apresenta uma Organização como um conjunto de indivíduos, seguindo regras e uma hierarquia. A forma de organização mais comum dessa coletividade é a funcional, onde se agrupa por áreas de especialização em áreas funcionais distintas, ou seja, são agrupados por departamentos num primeiro nível: Marketing, Produção, Informática, Financeiro, etc. Assim, é possível situar o Marketing nesse contexto da coletividade organizacional e estabelecer seus relacionamentos com os demais departamentos. Uma ação de Marketing não implica somente na atuação do departamento isoladamente, mas também de outros departamentos como corresponsáveis. Para a American Marketing Association (apud Kotler e Keller, 2006), “o Marketing é uma função organizacional e um conjunto de processos que envolvem a criação, a comunicação e a entrega de valor para os clientes, bem como a administração do relacionamento com eles, de modo que beneficie a organização e seu público interessado.” Nesse cenário, a RVA pode atuar como uma peça de uma ação de Marketing com potencial para auxiliar a criação, a comunicação e a entrega de valor para os clientes. Há algumas vantagens e desvantagens relacionadas ao seu uso que são destacadas adiante. 4.1. Vantagens da RVA em Marketing O uso da RV dentro do escopo do Marketing apresenta algumas vantagens. Apesar de ter 10 anos, aquelas apresentadas por Ryan (2001) ainda tem pertinência no cenário atual, a saber. A RV apresenta a capacidade de dar ao usuário a verdadeira experiência de propriedade do produto, sem a necessidade de envio de amostras. Isso acontece quando, por exemplo, o usuário pode interagir com a modelagem de um produto, observando detalhes externos e de funcionamento. Isso permite ao cliente conhecer melhor as características de um produto antes de comprá-lo. Para a Empresa, a expectativa é a diminuição de custos com a produção e envio de protótipos ou amostras. Outra vantagem é a habilidade para demonstrar os produtos em tempo real, utilizando os parâmetros definidos pelo usuário. Pessoas tem diferentes perspectivas sobre um determinado produto. Permitir que ela possa simular a utilização para a finalidade desejada é importante para que o usuário decida-se. Além disso, Explicar como equipamentos industriais ou produtos complexos operam pode ser complicado. A RV é uma excelente ferramenta para comunicar as operações e as capacidades de um produto ou máquina A RV é, por definição, multissensorial. Assim, a capacidade para envolver o usuário emocionalmente com o produto (por meio de imersão sensorial.) produz um importante diferencial. Dessa forma, é aconselhável uma apresentação rica em termos de interação. Para a criação de novos produtos, a RV caracteriza-se pela capacidade e facilidade para implementação de protótipos e realização de testes, gerando economias de custo e tempo, além de melhorar a tomada de decisão. Uma fabricante de aviões pode, pode exemplo, criar vários protótipos de um determinado avião e realizar simulações para eliminar o máximo possível de erros antes da produção de protótipo físico. Pela característica da imersão, a RV permite uma associação mais estreita entre os meios e as mensagens, uma vez que os usuários entram no canal de mídia e se tornam uma parte dela. Além disso, há um grande aumento no potencial de mercado uma vez que a sua experiência com o produto pode 47 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 43-59, maio/2013. RODELLO, Ildeberto A., et al. Realidade Virtual e Aumentada Aplicada na Área de Negócios: casos na área de Marketing e de Projeto e Desenvolvimento de Produtos. ser compartilhado por qualquer pessoa no mundo que tem o hardware necessário / software. Nesse contexto a internet tem papel fundamental. Por fim, apresenta a possibilidade de se usar todos os quatro elementos do paradigma de novas comunicações (entreter, informar, persuadir e interagir). 4.2. Desvantagens da RVA em Marketing Ainda segundo Ryan (2001), não é somente de vantagens que há no uso da RV. Dentre as desvantagens é possível observar que: Não é apropriado para determinados produtos. RV funciona melhor com os produtos que requerem uma grande interação do usuário. Produtos que dependem do tato e do olfato apresentam grandes dificuldades para as soluções em RV. Mesmo com a diminuição de preço de equipamentos, a RV ainda será uma ferramenta de Marketing cara. Necessita ainda que o usuário, em alguns casos, possua um dispositivo para interagir ou visualizar. Além disso, o processo de criação da RV é, e será, um processo complexo, que depende de recursos humanos, software e hardware especializados. Por fim, para algumas soluções há certo inconveniente em ter que fazer o download e instalação do aplicativo. A velocidade da conexão e os requisitos necessários para instalação podem ser fatores complicadores. 5. Exemplos de Utilização da RVA em Ações de Marketing Nessa seção são apresentados alguns exemplos de utilização de RVA, mais especificamente RA, com os mais diversos objetivos do ponto de vista do Marketing. O objetivo não é esgotar todos os casos, mas apresentar uma visão geral dos que serão principais para os autores. 5.1. Demonstrações de Produtos Para produtos como roupas e acessórios, um dos principais obstáculos para a efetivação de compras principalmente na Internet é o fato do cliente ter receio se o produto servirá ou lhe agradará. Nesse contexto, a Ray-Ban lançou em 2009 um site denominado Ray-Ban Virtual Mirror (http://www. ray-ban.com/USA/) onde, por meio de recursos de RA sem marcadores (markless), é possível experimentar virtualmente diversos modelos de óculos de sol. A Figura 3(a) exibe um screenshot da execução do aplicativo. Os pontos fortes da solução apontam para a utilização de que não requer nenhum marcador especial, para a possibilidade do usuário provar qualquer par de óculos de sol de uma coleção atual, ou seja, elimina a possibilidade de que o produto desejado esteja fora de estoque e para o grande potencial de interatividade proporcionado. 48 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 43-59, maio/2013. RODELLO, Ildeberto A., et al. Realidade Virtual e Aumentada Aplicada na Área de Negócios: casos na área de Marketing e de Projeto e Desenvolvimento de Produtos. (a) (b) Figura 3. Ray-Ban Virtual Mirror e Vitrine Virtual Tissot Fontes: (a) Oliveira (2012) e (b) Divulgação Tissot Os pontos fracos que podem ser apontados remetem para a necessidade de se fazer download do aplicativo, o que pode demandar certo tempo dependendo do tamanho do arquivo e da conexão, requer sistema operacional Windows e computador atualizado. Com a utilização de marcadores, diversas peças de Marketing para demonstração de produtos tem sido elaboradas. Por exemplo, a Tissot, fabricante de relógios, criou em Londres uma vitrine virtual (Figura 3 (b)). São distribuídos marcadores em formato de relógio que são colocados no pulso. A imagem é gerada em um monitor sensível ao toque, que permite ainda mudar estilo, cor e tamanho da peça, além de exibir algumas funcionalidades reais tais como horário e cronometro. É possível também acessar o aplicativo via internet (http://www.tissot.ch/reality/). É disponibilizado um arquivo com o relógio marcador para ser impresso e posteriormente recortado. A intenção dessa ação da Tissot é tentar quebrar a imagem inacessível que algumas pessoas têm de seus produtos e aproximá-los. Assim como a solução da Ray Ban, o acesso via internet requer o download e instalação do aplicativo. Apesar de alguns inconvenientes de download (o arquivo da Tissot tem 82 Mbytes) e instalação que possam acontecer, as soluções são relativamente baratas e tem bom alcance, uma vez que é grande o número de pessoas que acessam internet e tem uma webcam instalada. Para provar roupas a empresa Zugara (http://www.zugara.com) criou um provador virtual baseado em marcadores e captura de movimentos, denominado Webcam Social Shopper (Figura 5), já utilizado por diversas lojas, como a Love Rococo®, do Reino Unido. A experiência ocorre da seguinte maneira. O cliente o acessa, escolhe o produto que deseja e é direcionado para a página do produto. Nela, estão disponíveis todas as informações sobre o produto e há opções para a escolha de tamanhos e cores, além de um botão rotulado: “Tem uma webcam? Veja como fica!”. Essa interface leva o cliente (usuário) ao uso da ferramenta. Clicando no referido botão, o aplicativo se inicia automaticamente. A partir daí o cliente se posiciona em frente a webcam como mos- 49 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 43-59, maio/2013. RODELLO, Ildeberto A., et al. Realidade Virtual e Aumentada Aplicada na Área de Negócios: casos na área de Marketing e de Projeto e Desenvolvimento de Produtos. tra a Figura 5, e faz toda a interação com as mãos, que envolve ajustes e escolha de cor, direcionando-as aos botões presentes na interface. Figura 5. Provador de Roupas Virtual Fonte: Oliveira (2012) Sem dúvidas, o mais explorado potencial da RA está na demonstração de produtos. Seja na aproximação de clientes, ou para aumentar a taxa de conversão em sites de comércio eletrônico, há diversos aplicativos de várias e grandes Empresas. 5.2. Jogos e Outros A RA também pode ser utilizada para tentar provocar aumento na venda de produtos. Campanhas como da Nestlé, Doritos e de Nesquik o mais rápido possível e trabalhar o sistema virtual de transporte Lego demonstram isso. A Nestlé encomendou a Zugara um jogo de RA, denominado Nesquik Factory, onde o usuário é instruído a encher as garrafas do produto. Para acessar o jogo, é necessário ter uma embalagem de Nesquik. O jogo está baseado na captura de movimentos com realidade aumentada. A solução desenvolvida pela Zugara também é aplicada em outros jogos. Dessa forma, o usuário não precisa de nenhum marcador ou dispositivo especial. A interação é feita com as mãos. Ainda relacionado a jogos, a fabricante brasileira de cadernos e agendas Foroni (www.foroni.com. br), desenvolveu uma linha de cadernos com marcadores de RA, onde é possível simular uma volta de carro, no computador, usando o caderno como volante. A Pepsico (http://www.pepsico.com.br/), fabricante do salgadinho Doritos, também lançou uma campanha utilizando RA. No verso de cada embalagem do sabor Sweet Chili há um símbolo de RA, que 50 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 43-59, maio/2013. RODELLO, Ildeberto A., et al. Realidade Virtual e Aumentada Aplicada na Área de Negócios: casos na área de Marketing e de Projeto e Desenvolvimento de Produtos. ao ser ativado no site da marca libera um monstrinho em 3D chamado Doritos Lover. Os personagens podem fazer parte do perfil do usuário no Orkut. Foram criadas mais de 200 mil combinações dos monstrinhos. Por fim, a USPS (United States Postal Services) disponibiliza um aplicativo de RA denominado Virtual Box Simulator (https://www.prioritymail.com/simulator.asp) que permite ao usuário dimensionar e escolher a caixa apropriada para sua encomenda (Figura 6). Figura 6. Screenshot Virtual Box Simulator Fonte: Divulgação USPS (2011) 6. O Escopo do Processo de Desenvolvimento de Produtos A disponibilização de um produto que atenda as necessidades de seus clientes é o objetivo principal de uma organização. Além disso, que o produto satisfaça as necessidades de um maior número de clientes quanto for possível. Nesse contexto, o processo de desenvolvimento de produtos tem um papel importante. Segundo Thalen e van der Voort (2012), uso da RVA no processo de desenvolvimento de produtos tem início na década de 90, como o uso de CAVE e capacetes tão somente para a visualização tridimensional dos produtos. Com a redução do preço dos dispositivos, a utilização da RVA passou a ter também finalidade de simulação, treinamento, prototipação e avaliação. Ainda de acordo com Thalen e van der Voort (2012), a RVA tem sido usada para permitir que produtos ou ambientes ainda não existentes possam ser experimentados de uma forma natural e realista. Isto é vantajoso quando a situação real é muito perigosa, quando um ambiente tem de ser controlado, ou quando a prototipagem física é muito caro ou simplesmente não é possível ainda. 51 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 43-59, maio/2013. RODELLO, Ildeberto A., et al. Realidade Virtual e Aumentada Aplicada na Área de Negócios: casos na área de Marketing e de Projeto e Desenvolvimento de Produtos. Uma crítica feita por Thalen e van der Voort (2012), é que a maioria destas aplicações visa apoiar a colaboração somente entre designers, em vez de, por exemplo, entre designers e usuários finais, o que poderia representar maior valor ao cliente. 7. Exemplos de Utilização da RVA em Projeto e Desenvolvimento de Produtos Nessa seção são apresentados alguns exemplos de utilização de RVA, focalizando casos de uso na indústria automobilística e na aeronáutica para projeto e desenvolvimento de produtos. Estas indústrias foram as precursoras no uso da RVA nesta área, por isso, apesar de existirem outras vertentes, serão abordados como exemplos. Outra vez, o objetivo não é esgotar todos os casos, mas apresentar uma visão geral dos que serão principais para os autores. 7.1. RVA na Indústria Automobilística Os centros de RVA na indústria automobilística possibilitam, dentre outros, a visualização de modelos de carros que ainda não possuem protótipos físicos. Além disso, permitem que uma pessoa seja capaz de sentir-se imersa em um ambiente que simula um carro real, considerando seu espaço interno e também o externo. Do ponto de vista de negócios, testes como estes são válidos para redução do tempo de elaboração do automóvel, para minimizar os erros de produção e para diminuição dos custos, uma vez que ajudam a atingir um nível mais elevado de eficiência. No que se refere à redução do tempo de elaboração do carro, com um centro de RVA, não há necessidade da criação de protótipos físicos fiéis ao tamanho, para posterior análise e muito prováveis alterações de sua configuração, tudo pode ser visto e analisado em 3D com dispositivos especiais como óculos, sensores, luvas, capacetes, entre outros. Sobre minimizar os erros de produção é possível constatar o setor que mais necessita desse artifício continua sendo o de veículos, apesar de haver uma diminuição do número de recalls no Brasil no ano de 2012 em relação a 2011 (Martins, 2013), dados estes que possibilitam a reflexão sobre o modo como a RVA poderia intervir no sentido de preparar melhor todas as equipes de desenvolvimento dos automóveis, o que acarretaria em uma diminuição destes números. E também é importante ressaltar a redução dos custos já que se diminui a necessidade de construção de protótipos físicos, exceto aqueles necessários para crash test, previstos por lei. Além disso, a tecnologia de RVA pode ser utilizada para treinamento de mecânicos para atividades de manutenção e associada a ações de marketing, como por exemplo, os simuladores de direção que possibilitam test drive ou ensinam, por meio de um jogo, a manter uma boa relação entre quilometragem rodada e combustível consumido (Godirro, 2013). 52 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 43-59, maio/2013. RODELLO, Ildeberto A., et al. Realidade Virtual e Aumentada Aplicada na Área de Negócios: casos na área de Marketing e de Projeto e Desenvolvimento de Produtos. Figura 8. Centro de Realidade Virtual Volkswagen Fonte: Divulgação Absolut Technologies Em 2008 o grupo Volkswagen investiu cerca de 4,2 milhões de reais em um centro de RVA, atualmente situado na montadora de São Bernardo do Campo. Projetado e implantado pela Absolut Technologies (http://www.abs-tech.com/), o centro é constituído por um estúdio virtual com conexão em tempo real com as outras unidades Volkswagen ao redor do mundo, o que acelera ainda mais o processo de desenvolvimento de um automóvel; é também constituído por uma tela chamada Powerwall, de aproximadamente cinco metros de comprimento e dois de altura, que possibilita aos engenheiros a visualização do projeto de automóvel em 3D (Figura 8). A tecnologia Virttex (Virtual Test Track Experiment) é empregada em uma máquina construída para fábrica de automóveis Ford. Trata-se de um domo suficientemente grande para que caiba um carro dentro, e que possui um complexo sistema hidráulico acoplado que simula os movimentos que o carro faz quando está em movimento (Figura 9). Este domo é utilizado para projetar imagens de alta resolução (45 megapixels) em 360 graus, e com um banco de imagens, parecer um cenário real externo ao carro, obedecendo a comandos como aceleração, frenagem e direção. Seu custo varia em torno US$ 7 milhões, valor aproximadamente vinte e três vezes mais alto em relação ao único aparelho similar existente nos Estados Unidos (Godirro, 2013). O aparelho tem como finalidade ajudar a descobrir potenciais pontos fracos da segurança do automóvel e para isso permite a realização de vários testes que simulam a realidade do motorista, com situações de distração, sonolência, motoristas com idade avançada e até mesmo inexperientes. Tais testes tem a finalidade de analisar o tempo de reação dos condutores em geral, para que consigam desenvolver algum tipo de dispositivo que seja capaz de alertar o motorista do mais discreto possível, para obterem os resultados do tempo de reação e as atitudes do motorista, são utilizadas câmeras e sensores. 53 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 43-59, maio/2013. RODELLO, Ildeberto A., et al. Realidade Virtual e Aumentada Aplicada na Área de Negócios: casos na área de Marketing e de Projeto e Desenvolvimento de Produtos. Figura 9. Virttex Ford Fonte: Divulgação Ford Uma das tecnologias desenvolvidas pro meio do Virttex é, por exemplo, uma que mede a variação de movimento do eixo do carro, com objetivo de ver ser ele não está “costurando” na pista, atitude característica do condutor que está prestes a cochilar; outra tecnologia seria uma que acompanha o movimento da retina do motorista, o que possibilita cálculos sobre o tempo de reação do mesmo (Godirro, 2013). Analisando sob o ponto de vista do Marketing da empresa, é possível perceber que a tecnologia trabalhar a favor da construção de uma imagem positiva da marca, já que carros seguros são bem vistos no mercado, o que potencializa o crescimento das vendas; mas mais do que isso, trabalha a imagem da Ford como empresa modelo em segurança. Do ponto de vista tecnológico, o Virttex demonstra uma grande desvantagem, já que os carros que entram no domo são reais, o que obriga a empresa a continuar desenvolvendo seus protótipos antes de analisar a sua segurança, ou existe ainda a opção de utilizar modelos antigos no teste do Virttex, porém ainda não é o ideal. Uma vantagem é que mesmo existindo essa impossibilidade de o carro ser projetado ao todo, há a possibilidade de trocar de carro, possibilitando o desenvolvimento de vários modelos, assim como foi feito com os novos modelos EcoSport, Ranger e Fusion. A empresa Fiat, visando investir em inovação a fim de melhorar os custos, o tempo de produção e a qualidade dos projetos, que antes dependiam de protótipos para que fossem analisados, investiu em 2003 R$400 milhões na criação do polo de desenvolvimento de produtos Giovanni Agnelli que reúne diversas áreas como engenharia de projeto e engenharia experimental. O local é considerado o mais completo centro de desenvolvimento da empresa fora da Itália, com laboratórios e recursos de última geração, capazes de simulações e testes dinâmicos em escala real. Com o objetivo de aperfeiçoar a estrutura do polo, foi inaugurada, em março de 2009, uma moderna sala de Realidade Virtual, denominada Fiat Latin America Style Center, (Figura 10) que além 54 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 43-59, maio/2013. RODELLO, Ildeberto A., et al. Realidade Virtual e Aumentada Aplicada na Área de Negócios: casos na área de Marketing e de Projeto e Desenvolvimento de Produtos. de ajudar na melhoria do processo de design dos modelos de carros da empresa, também serve para conectar as diversas áreas do centro de desenvolvimento. Também projetada e implementada pela empresa Absolut Technologies, a sala possui uma tela com resolução (4.096 x 2.160 pixels) que permite a visualização dos carros em tamanho real. É possível que também se tenha a perfeita visão de detalhes que passa desde a textura dos tecidos, até o brilho da pintura do carro. O Fiat Latin America Style Center comporta até 36 pessoas e também possui uma mesa com microfones e câmeras para videoconferências e iluminação 100% automática, para que diferentes cenários possam ser criados. Figura 10. Fiat Latin America Center Fonte: Divulgação Absolut Technologies Por meio da RVA, problemas podem ser diagnosticados antes de o modelo entrar em produção, e assim melhorar de maneira significativa a qualidade do produto. Na tentativa de aproximar designers e usuários, a Fiat realizou a campanha Concept Car (http:// www.fiatmio.cc/), onde era o possível o usuário interagir na concepção do projeto e desenvolvimento de um veículo. A partir das intenções colhidas dos usuários, em uma das fases foi gerado um modelo com Realidade Virtual. (Fiat; 2010) 7.2. RVA na Indústria Aeronáutica O centro de Realidade Virtual da Embraer (Empresa Brasileira de Aeronáutica) entrou em operação em fevereiro do ano 2000 e teve um investimento de US$ 2 milhões e 600 mil, sendo na época, o maior e o mais desenvolvido da América Latina. Com os objetivos de sobrevivência perante a concorrência e ganhar o mercado internacional, projetistas, técnicos, engenheiros e funcionários têm à sua disposição, um moderno centro de tecnologia que tornou possível a redução do prazo e dos custos de desenvolvimento do projeto de uma aeronave. 55 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 43-59, maio/2013. RODELLO, Ildeberto A., et al. Realidade Virtual e Aumentada Aplicada na Área de Negócios: casos na área de Marketing e de Projeto e Desenvolvimento de Produtos. Esse sistema possibilita não somente a visão da imagem do projeto do avião em 3D, mas também permite a imersão total, onde é possível a interação das pessoas com o mesmo, como se estivessem em um ambiente real. Utilizando de dispositivos multissensoriais é possível conhecer literalmente o interior da aeronave, possibilitando aos engenheiros e operários a checagem da colocação de peças, espaço de trabalho no avião, e várias outras ações que só seriam possíveis de se realizar através de protótipos (Figura 11). Na imersão total, tudo o que o usuário faz, é repetido por um avatar (duplo virtual) em tempo real. Para que isso aconteça, é necessário a utilização de capacete, óculos, luvas e um macacão especiais que possuem sensores para a captação de qualquer movimento feito pelo operador, seis câmeras são responsáveis por essa captação. O capacete serve para colocar o usuário dentro da realidade virtual criada no computador fazendo com que ele perca o contato com o ambiente exterior. (Esteves, 2000). Figura 11. Centro de Realidade Virtual - Embraer Fonte: Divulgação Embraer Com a implantação do CRV o tempo para que um projeto ficasse pronto, caiu quase pela metade e os níveis de risco também diminuíram, pois, proporcionou um melhor treinamento ao pessoal da montagem, e aos pilotos, que antes dependiam de um protótipo de madeira para testar o acesso aos comandos. Além disso, a tecnologia também pode ser usada no marketing e vendas, porque com ela, o cliente tem como “entrar e explorar virtualmente” a aeronave mesmo que esta ainda esteja em processo de montagem, podendo até personalizar seu avião. 56 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 43-59, maio/2013. RODELLO, Ildeberto A., et al. Realidade Virtual e Aumentada Aplicada na Área de Negócios: casos na área de Marketing e de Projeto e Desenvolvimento de Produtos. 8. Considerações Finais Este Capítulo abordou o uso da RVA em ações de Marketing e também no projeto e desenvolvimento de produtos. Dentro de uma organização, o Marketing tem um importante papel e a utilização da RVA como uma peça associada a uma determinada ação de Marketing pode contribuir de forma auxiliar tanto na criação, quanto na comunicação e também como uma forma de agregar valor ao cliente. Com a mesma importância, o projeto e desenvolvimento de produtos é fundamental para que a Organização possa disponibilizar a seus clientes, produtos que realmente satisfaçam suas necessidades e lhes agregue valor. A intenção desse trabalho não foi esgotar o assunto ou mesmo explorar todas as possibilidades de uso da RVA dentro do escopo abordado. Foi estabelecer perspectivas reais de utilização para que discussões possam ser iniciadas e novas ações possam ser derivadas dos casos apresentados. É interessante destacar que a RA tem se apresentado como preferência de uso nas ações de marketing. O que se observar é da menor demanda em termos de requisitos de equipamentos para a utilização da RA face a RV. Com uma câmera e acesso a internet, cada vez mais comuns para as pessoas atualmente, é possível criar uma peça com RA. O público atingido é obviamente maior quando se compara a RV que necessita de equipamentos especiais (óculos estereoscópicos e computador com placa gráfica, por exemplo). A facilidade de interação proporcionada pela RA, que não requer nenhum dispositivo especial, bem como algumas vezes utiliza o próprio corpo, é também um dos pontos fortes. Com a RV o uso de dispositivos se faz necessário em diversas vezes. O que se observa é uma tendência de uso cada vez maior da RA como peça das ações de Marketing. No que se refere ao uso da RVA no projeto e desenvolvimento de produtos, percebe-se pelos casos apresentados que a redução do tempo de projeto, a diminuição de custos e a melhoria da qualidade são objetivos principais em um ambiente extremamente concorrido, como por exemplo, da indústria automobilística. Em termos de negócio, o investimento em RVA pode trazer retornos tangíveis (custos) e intangíveis (relacionamento com clientes, imagem de marca). Como a finalidade é diferente, o projeto e desenvolvimento de produtos requer maiores investimentos por parte das Organizações, com a necessidade de uma infraestrutura de RVA mais personalizada as necessidades e objetivos de cada uma. Por fim, percebe-se o uso cada vez mais frequente de tecnologia de RVA em diversos setores da sociedade. Isso é muito benéfico para a Comunidade de RVA que pode cada vez mais buscar recursos para aplicação de suas pesquisas e desenvolvimento de seus produtos. Por outro lado, as Organizações têm ao seu alcance uma tecnologia atual, com potencial de retenção de atenção muito grande e com capacidade de agregar valor as suas atividades. 57 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 43-59, maio/2013. RODELLO, Ildeberto A., et al. Realidade Virtual e Aumentada Aplicada na Área de Negócios: casos na área de Marketing e de Projeto e Desenvolvimento de Produtos. Referências BATEMAN, T. S.; SNELL, S. A. (1998). “Administração: construindo vantagem competitiva”. Editora Atlas. ISBN 85-224-1923-X. BURDEA, G.; COIFFET, P. (1994). “Virtual Reality Technology”. John Wiley & Sons, New York, N.Y. DASSAULT SYSTÈMES (2011). Disponível em <http://minimoys.3ds.com/press/3DVIA-Nestle.html>. Acesso Abril 2011. DINIZ, A. G.; SANTOS, F. C.; COSTA, R. M. E. M. (2004). “Um Ambiente Virtual para a Simulação de Processos de Negócios”. Memórias del IX Taller Internacional de Software Educativo. Santiago: Universidad de Chile, 2004. p. 13-18. ESTEVES, B. (2000). “Imersão Total: Realidade Virtual – Embraer.” Revista Superinteressante. Disponível em <http://super.abril.com.br/tecnologia/imersao-total-441357.shtml>. Acesso em março de 2013. FIAT. (2010). “Making Of Projeto Fiat Mio - Episódio 8 -- Realidade Virtual.” Disponível em <http://www. youtube.com/watch?v=JjL_88POD-0>. Acesso em março 2013. GODIRRO, A. (2013). “Cobertura do NAIAS 2013 (Salão do Automóvel de Detroit). Disponível em < http://www.clubedohardware.com.br/artigos/Cobertura-do-NAIAS-2013-Salao-do-Automovel-deDetroit/2764/1>. Acesso em março de 2013. HALL, R. (1984). “Organizações: estruturas e processos”. 3 ed. Rio de Janeiro: Prentice Hall do Brasil. Kotler, P. e Keller, K. L. (2006) “Administração de Marketing”, 12 ed., Pearson Prentice Hall. LAUDON, K. C; LAUDON, J. P.; (2010). “Sistemas de Informação Gerenciais.” Prentice Hall. 9a. Edição. Pearson. ISBN: 978857605923-3. MARTINS, D. (2013). “Setor de veículos lidero número de recalls em 2012.” Jornal Valor Econômico, Brasília, 21 Jan. 2013. Disponível em: <http://www.valor.com.br/empresas/2978282/setor-de-veiculoslidera-numero-de-recalls-em-2012>. Acesso em: 17 Mar. 2013. MILGRAN, P.; TAKEMURA, H.; UTSUMI A.; KISHINO, F; (1994) “Augmented Reality: A Class of Displays on the Reality-Virtuality Continuum”, Telemanipulator and Telepresence Technologies, Vol. 2351, p. 282-292. OLIVEIRA. T. S. S. (2012). “Uma avaliação do uso Realidade Aumentada em websites de Comércio Eletrônico sob o ponto de vista do usuário”. Monografia de Conclusão de Curso. FEARP-USP. PINHO, M.S.; KIRNER, C., (1997) “Uma Introdução à Realidade Virtual.” In: X Simpósio Brasileiro de Computação Gráfica e Processamento de Imagens, SIBGRAPI’97: Minicurso. RAY BAN (2011). “The Ray Ban Virtual Mirror”. Disponível em < http://www.ray-ban.com/usa/science/ virtual-mirror>. Acesso em março 2011. 58 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 43-59, maio/2013. RODELLO, Ildeberto A., et al. Realidade Virtual e Aumentada Aplicada na Área de Negócios: casos na área de Marketing e de Projeto e Desenvolvimento de Produtos. REALIDADE AUMENTADA. Jornal da Globo. Rio de Janeiro, Globo, 11 de junho de 2009. Programa de TV. REVISTA EXAME. (2010). “Itaú Seguros veicula campanha em 3D”. Disponível em <http://exame.abril. com.br/Marketing/noticias/itau-seguros-aposta-3d-549914>. Acesso em março 2011. RYAN, C. (2001). “Virtual Reality In Marketing”. Disponível em: http://www.allbusiness.com/technology/ internet-technology/788154-1.html. Acesso em março de 2011. THALEN, J.; VAN DER VOORT, M. (2012). ”The Virtual Printshop: A case study on using Virtual Reality in early stages of user-centered product design.” SBC Journal on 3D Interactive Systems, volume 3, number 3. TORI, R.; KIRNER, C. (2006). “Fundamentos de Realidade Virtual.” In: VIII Simpósio de Realidade Virtual, Livro do Pré-Simpósio: Fundamentos e Tecnologia de Realidade Virtual e Aumentada, ISBN 857669068-3. USPS (2011). “Virtual Box Simulator”. Disponível em <https://www.prioritymail.com/simulator.asp>. Acesso em Abril 2011. ZHAO, Q. (2009). “A Survey on Virtual Reality”. Science in China Series F: Information Sciences. Science China Press, co-published with Springer. V52(3). pp. 348-400. ZUGARA (2011). “Augmented Reality Software.” Disponível em < http://www.zugara.com/augmentedreality/software>. Acesso em março de 2011. 59 60 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 60-74, maio/2013. SANTOS JÚNIOR, Gesmar de Paula, et al. Realidade Aumentada Móvel Realidade Aumentada Móvel Gesmar de Paula Santos Júnior Luciene Chagas de Oliveira Alexandre Cardoso Edgard Lamounier Júnior Marcos Wagner de Souza Ribeiro Thamer Horbylon Nascimento Abstract This chapter presents a theoretical approach to the Mobile Augmented Reality (AR Mobile) and some possibilities of using mobile AR through example applications. Furthermore, important concepts, justifications, challenges and key technologies for use in mobile AR are discussed by the authors. Resumo Este capítulo apresenta uma abordagem teórica sobre a Realidade Aumentada Móvel (RA Móvel) e algumas possibilidades de utilizando da RA Móvel, através de exemplos de aplicações. Além disso, conceitos importantes, justificativas, desafios e as principais tecnologias para uso de RA Móvel são discutidos pelos autores. 1. Introdução A Realidade Aumentada (RA) tornou-se um tema popular no campo da pesquisa acadêmica, porque permite ao usuário uma visão de objetos virtuais sobrepostos ou compostos com o mundo real (CHAN & TAN, 2010). Os ambientes do mundo real de sistemas de RA são obviamente limitados pelas leis da Física, que, necessariamente, impõe certas restrições à nossa capacidade de interagir com os mesmos. Ferramentas de Realidade Aumentada são projetadas para facilitar tais interações, mediadas por dispositivos móveis, tais como tablets e smartphones. A Realidade Aumentada Móvel (RA Móvel) é uma das áreas de pesquisa que mais crescem na RA, parcialmente devido ao surgimento de telefones inteligentes que proporcionam uma plataforma poderosa e onipresente para apoiar a RA Móvel (AZUMA et al., 2011). Neste contexto, esta capítulo objetiva alguns desafios da construção de soluções aplicações para dispositivos móveis com o uso de Realidade Aumentada (RA). 60 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 60-74, maio/2013. SANTOS JÚNIOR, Gesmar de Paula, et al. Realidade Aumentada Móvel Para atingir este objetivo, especificamente seguiu-se o roteiro: apresentam-se as principais referências a Realidade Aumentada Móvel e uma análise avaliação das tecnologias existentes Realidade Aumentada móvel é realizada. A seguir, demonstra-se a aplicabilidade da RA móvel, com uso de exemplos de aplicação, distinguindo elementos relevantes do processo de desenvolvimento e, por fim, distinguem-se os mecanismos para aprimorar a aplicação, com uso dos diferentes recursos disponíveis nos dispositivos móveis, tais como acelerômetros, bússolas etc. 2. Justificativas para o Uso da Realidade Aumentada Móvel O mercado de celulares está crescendo cada vez mais e estudos mostram que hoje em dia mais de 3 bilhões de pessoas possuem um aparelho celular, e isso corresponde a mais ou menos metade da população mundial (LECHETA, 2010). Os usuários estão procurando celulares e smartphones que possuem diversos recursos, tais como câmeras, bluetooth, jogos, ótima interface visual, GPS, acesso a internet e e-mails, entre outras aplicações. Sendo assim, a mobilidade está cada vez mais conhecida e utilizada, na qual surge a necessidade de mais aplicações que executem em celulares e smartphones e sincronizem informações das organizações. Os dispositivos móveis podem ser ferramentas auxiliares à criação de experiências de aprendizagem e, associados a RA, tornarem-se estratégias de desenvolvimento em outras áreas, tais como jogos e visualização da informação. Os principais benefícios do uso de dispositivos móveis para a RA incluem: a portabilidade, a mobilidade: estar disponível a qualquer hora e em qualquer lugar, acesso, de forma flexível, a diversos recursos e em tempo real, economia de tempo, rapidez da comunicação, capacitação e envolvimento dos alunos e o fato da aprendizagem móvel (mobile learning) ser abrangente e dinâmica (WOODILL, 2010). De acordo com um relatório da ONU, seis em cada dez pessoas no mundo têm assinatura de telefonia móvel, o que significa que os celulares representam a comunicação tecnológica escolhida nos últimos anos, especialmente nos países mais pobres (WOODILL, 2010). Alguns fatores de mercado contribuem para efetivação de aplicativos e softwares com a RA, como a diminuição do custo dos equipamentos que possui tecnologias adequadas para o desenvolvimento e utilização desses aplicativos, se tornam cada vez mais acessíveis nas diversas classes sociais. A amplitude em que a RA vem atuando se tornar imprescindível e coerente para várias soluções contribuindo para o desenvolvimento social e tecnológico. No desenvolvimento de aplicações utilizando a Realidade Aumentada Móvel (RAM) para acessar ou armazenar informações devem ser considerados os componentes propostos na Figura 1. Dispositivos, tais como smartphones e tablets, são executados em uma infra-estrutura de rede e rodam em plataformas, por exemplo, no Android ou no iOS. Nas plataformas são instaladas as ferramentas, as tecnologias e as bibliotecas que permitem que as aplicações acessem as fontes de informações (CARDOSO et al, 2012). 61 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 60-74, maio/2013. SANTOS JÚNIOR, Gesmar de Paula, et al. Realidade Aumentada Móvel Figura. 1. Componentes para Aplicações da Realidade Aumentada Móvel (CARDOSO et al, 2012) O conteúdo inclui informações de contexto que são aplicações em diversas áreas, tais como Educação, Medicina, Jogos, Engenharia, entre outros, e os conceitos são as técnicas e formas que são usadas para acessá-los, tais como a Realidade Aumentada e a Visualização de Informação. 2. Desafios da Realidade Aumentada Móvel Alguns desafios que devem ser considerados para a RAM são: o tamanho da tela, o consumo de energia, precisão de localização, câmera de qualidade, processamento e memória, registro, segurança, tempo real, a dependência, o desempenho, cobertura, grande quantidade de dados, dinamicidade, interação, conteúdo. Estes desafios são mostrados na Figura 2, que classifica cinco categorias: hardware, aplicação, rede, meio ambiente e utilizador. 62 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 60-74, maio/2013. SANTOS JÚNIOR, Gesmar de Paula, et al. Realidade Aumentada Móvel Figura. 2. Desafios da Realidade Aumentada Móvel Primeiramente, no desenvolvimento de uma aplicação móvel é necessário identificar quais são os recursos de hardware disponíveis em todos os dispositivos que se deseja atingir com a aplicação, como câmera e teclado, que estão presentes na maioria dos dispositivos existentes atualmente. No entanto, para os outros tipos de sensores, não se pode garantir que todos devem funcionar ou existir em todo dispositivo móvel. Devido a isso, é importante identificar o modelo de resposta dos sensores desenvolvidos e como eles serão utilizados no software, viabilizando o uso da aplicação mesmo com recursos limitados. Caso uma aplicação utilize um sensor que se encontra na maioria dos dispositivos, como bússola, giroscópio e GPS, existem algumas particularidades, por exemplo, a precisão do GPS não é alta em ambientes indoor e alguns possuem câmera de baixa qualidade. Deve-se tratar e apresentar a aplicação também nesses dispositivos de baixa performance, mesmo que seja de forma degradada ou apresentando uma precisão inferior, evitando que o usuário execute a aplicação sem travamento ou que a aplicação fique aguardando a resposta a esses sensores. A tela também pode dificultar o uso da aplicação, para evitar complicações, deve-se trabalhar com layouts dinâmicos, diminuindo ícones, ocultando menus, trabalhando com diferentes configurações de tela, mantendo a aplicação funcionando em telas de menor tamanho e resolução. 63 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 60-74, maio/2013. SANTOS JÚNIOR, Gesmar de Paula, et al. Realidade Aumentada Móvel Para dispositivos móveis, o hardware nem sempre apresenta alta duração de bateria, grande capacidade de processamento e memória, o que pode causar baixo desempenho, limitando as funcionalidades e, em segundo momento, a utilização adequado de um dispositivo móvel . Outro desafio se refere ao registro da aplicação, ou seja, se haverá controle de usuário, trazendo maior segurança com a devida autenticação da aplicação, quando disponível uma conexão de rede local ou Internet. Essas necessidades devem ser avaliadas, de acordo com a disponibilidade da infraestrutura de servidores, arquitetura de hardware e software. Um grande desafio é a questão de rede relacionado a velocidade de tráfego, área de cobertura das empresas de telefonia e o quanto uma dada aplicação é dependente dessa rede. Para RA indoor, esse problema pode ser minimizado, utilizando-se uma rede wireless. Porém, para ambientes outdoor tem-se uma dependência das redes de telefonia. O quarto desafio refere-se ao ambiente, que, atualmente, possui uma grande quantidade de dados. Quesitos como a dinamicidade e flexibilidade de atualização, além do provimento de dados, em tempo real, tornam-se demandas de solução, nem sempre trivialmente solucionadas. O quinto desafio apresentado na Figura 2 refere-se ao usuário em si. O perfil do usuário pode exigir a disponibilização de elementos de auxílio (help), além da necessidade de aprendizado das diferentes formas de interação com a solução de RA no dispositivo e a busca de novas informações. Outro quesito relevante refere-se à poluição visual que pode acontecer, por sobreposição de grande conjunto de informações visuais, por exemplo, sobre um elemento (ou posição) da cena real. Todas essas questões acarretam em tempo e custo no projeto de desenvolvimento e devem ser analisadas e inseridas no projeto em fase de planejamento do software. 3. Exemplos do Uso da RA Móvel A quantidade de pesquisas e experiências de utilização da RA com dispositivos móveis ainda é recente, mas tende a crescer, em função dos avanços da tecnologia e dos benefícios que essa tecnologia oferece. 3.1 Geolocalização em RA Atualmente, a maioria dos aplicativos móveis para RA são desenvolvidos em uma única plataforma ou são criadas versões para cada plataforma. O framework PhoneGap (2013), apresentado neste trabalho, proporciona a criação de aplicações móveis multiplataforma, tais como, o Windows Phone, o Android e o iOS. O trabalho de Santos (2012) utiliza a localização geográfica como elemento de RA, o aplicativo será executado em espaço aberto, ao ar livre. O objetivo da aplicação é apresentar a geolocalização dentro de uma área determinada. Esta aplicação utiliza a tecnologia Realidade Aumentada acrescentando ao mundo real, visualizado através da câmera do dispositivo, a informação virtual através de uma seta indicando a direção para localizar o destino em relação ao ponto onde o usuário está. 64 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 60-74, maio/2013. SANTOS JÚNIOR, Gesmar de Paula, et al. Realidade Aumentada Móvel Na tela inicial da aplicação são apresentados os botões para ativar o GPS e a bússola, ativá-los, será exibida uma tela de visualização da seta direcional. O usuário deverá, então utilizar a seta para se guiar em direção ao ponto de destino. De acordo com a movimentação do usuário a direção e a distância é alterada em relação ao destino, conforme Figura 3. Figura. 3. Tela inicial da aplicação, mostrando os botões de ativar o GPS e Bússola, Informações de distância , do GPS e seta apontando para destino atualizadas em tempo real 3.2 Navegação Indoor Os dispositivos móveis são ferramentas que auxiliam na criação de experiências de aprendizagem e associados a RA tornam-se uma poderosa ferramenta para desenvolvimento de aplicações em diversas áreas, tais como educação e jogos. Os benefícios técnicos para a Realidade Aumentada Móvel (RA Móvel) estão se tornando robusto o suficiente para permitir o desenvolvimento de serviços RA Móvel que são verdadeiramente valiosos para os consumidores. Para garantir a aceitação e sucesso de futuros serviços da RA Móvel, seu desenvolvimento deve basear-se em saber sobre as expectativas do usuário final em potencial e necessidades. O trabalho de Olsson (2012) conduz entrevistas semi-estruturadas em centros comerciais, que podem ser considerados como um contexto fértil para serviços da RA Móvel para provocar novos conheci- 65 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 60-74, maio/2013. SANTOS JÚNIOR, Gesmar de Paula, et al. Realidade Aumentada Móvel mentos sobre as características da experiência do usuário e os requisitos do usuário relacionados ao RA Móvel. Outros trabalhos de Oliveira (2012), ilustrados nas Figuras 4 e 5, apresentam exemplos de aplicações para localização em ambientes internos com o uso da RA Móvel, onde o primeiro mostra a localização de um produto por meio de setas e apresenta informações detalhadas dos produtos de um supermercado, e o segundo apresenta o desenvolvimento de uma aplicação genérica e configurável para um ambiente interno que mostra a localização de um objeto ou um lugar por meio de setas e apresenta informações dos objetos e lugares que estão armazenadas nas nuvens. Figura. 4. Aplicação da RA Móvel para Visualização de Informações Localização de Produtos em um Estabelecimento Comercial 66 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 60-74, maio/2013. SANTOS JÚNIOR, Gesmar de Paula, et al. Realidade Aumentada Móvel Figura. 5. Aplicação Genérica da RA Móvel para Localização de Objetos em Ambientes Internos 3.3 Reconhecimento de Toques e Gestos O trabalho de Braga (2012) aborda as práticas atuais de mobile-learning e apresenta uma estratégia de desenvolvimento de aplicações educacionais, com uso de dispositivos móveis associados a Ambientes Virtuais e Realidade Aumentada. São adaptadas técnicas de reconhecimento de padrões de gestos e toques, gerando ambientes de Realidade Aumentada como suporte ao ensino. Como prova de conceito, implementou-se o aplicativo mostrado na Figura 6, que permite a concepção de experiências de Física (Mecânica Clássica) através do dispositivo móvel. Figura. 6. Aplicativo de concepção de experiências de Física através do dispositivo móvel 67 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 60-74, maio/2013. SANTOS JÚNIOR, Gesmar de Paula, et al. Realidade Aumentada Móvel Como mencionado anteriormente, existem desafios para desenvolvimento de uma aplicação de RA móvel referentes a eficácia do reconhecimento de padrões gestuais, que não envolve apenas a boa aquisição das coordenadas de cada trecho do caminho percorrido, mas também dos seguintes parâmetros de tempo de aquisição, número de pontos coletados e tipo de resposta esperada. Para a coleta dos dados de forma correta referente aos gestos, foi levado em consideração as características físicas do dispositivo móvel, como o tamanho, resolução da tela e o tipo de display adotado (resistivo ou capacitivo). Com a finalidade de garantir a coerência dos resultados, foi criado um dicionário de gestos utilizando a mesma metodologia de captura de dados para comparação. Figura. 6. Telas do Imagine 3D A fim de manter o procedimento o mais intuitivo possível, optou-se por criar um ambiente de desenho comum, como os editores conhecidos, de tal forma que, usando toques com um dedo, o usuário cria suas formas simulando o uso de um lápis sobre o papel. 68 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 60-74, maio/2013. SANTOS JÚNIOR, Gesmar de Paula, et al. Realidade Aumentada Móvel 3.4 Detecção de Marcadores Naturais para RA Móvel Um problema já conhecido é referente a detecção de marcadores naturais, que são imagens do mundo real. Silva (2012) utiliza Redes Neurais Artificiais para registro e reconhecimento desses marcadores para aplicações da RA. Além disso, foi desenvolvida uma aplicação de estudo de caso utilizando RA móvel para demonstrar a utilização de um algoritmo de redes neurais para detecção de marcadores naturais, considerando também a oclusão parcial e a presença de ruídos nos marcadores. Foram realizados diversos testes com marcadores naturais apresentando alguns tipos de ruídos e oclusão parcial dos marcadores, conforme mostra a Figura 8. Figura. 8. Reconhecimento de Marcadores Naturais para RA Móvel 69 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 60-74, maio/2013. SANTOS JÚNIOR, Gesmar de Paula, et al. Realidade Aumentada Móvel 4. Tecnologias Existentes Esta seção apresenta os trabalhos relacionados aos softwares de Realidade Aumentada em dispositivos móveis, com o objetivo de analisar suas potencialidades, aplicações e contribuições. Atualmente há uma infinidade de aplicações e trabalhos científicos relacionados com interações metodologias para ambientes de Realidade Aumentada (ZHOU, DUH and BILLINGHURST, 2008). Essas tecnologias permitem o desenvolvimento rápido de uma vasta gama de aplicações de Realidade Aumentada Móvel. Os critérios levados em consideração para análise estão relacionados à usabilidade do mesmo, à tecnologia utilizada para implementação, às tecnologias de suporte necessárias e bibliotecas utilizadas. Foram definidos como critérios: • Tecnologia aplicada? • Ambiente de execução? • Tecnologia de suporte utilizada? • Distribuída ou autônoma? O projeto AndAR - Android Augmented Reality (2011) consiste em uma biblioteca de software escrito em Java que implementa Realidade Aumentada com o ARToolkit para a plataforma Android. Este projeto usa marcadores de RA para projetar objetos virtuais na imagem capturada do mundo real. Uma tecnologia que suporta a portabilidade do ARToolKit para o Adobe Flash®, trazendo assim Realidade Aumentada para navegadores e dispositivos com suporte a Flash®. Esta tecnologia é conhecida como FLARToolKit, onde todos os princípios de funcionamento do ARToolKit foram preservados. Outra biblioteca que usa marcadores de Realidade Aumentada é NyARTollkit, também desenvolvido utilizando a linguagem de programação Java, mas também com versões em C # e Android. É uma versão estendida do código ARToolKit a visão que adiciona recursos, mas quebra a compatibilidade devido a uma nova classe baseada em API. NyARToolkitCS fundamenta-se no ARToolKit, tendo sido construído na linguagem C#. É derivado do Nyartoolkit para Java. NyARToolkitCS é de uso livre para aplicações não comerciais, necessita do .Net Framework instalado onde o aplicativo de RA for executado. Caso seja em computadores, Net Framework 2.0 e .NET Compact Framework 3.5 para o uso de dispositivos móveis. O QCAR SDK (2013), que possui comercialmente o nome de Vuforia, é um framework de RA Android, iOS e Unity 3D desenvolvido pela empresa americana de telecomunicações Qualcomm, representa uma solução avançada e com ótimos recursos para o desenvolvimento de aplicações destinadas a Realidade Aumentada para dispositivos móveis. O QCAR não se limita a reconhecer marcadores bidimensionais, ele implementa uma classe mais geral (chamada Trackable) de elementos identificáveis e rastreáveis na imagem obtida pela câmera do dispositivo, permitindo o reconhecimento de multimarcadores e detecção de objetos tridimensionais. Além disso, também permite o uso de recursos de computação em nuvem. Outro framework que merece atenção é o ElipseAR, que diferente dos marcadores ARToolKit padrão, permite grande vantagem no rastreamento e reconhecimento de imagens coloridas. Alguns destes frameworks, foram inicialmente concebido para ambientes desktop, como o ARToolKit, mas já possuem implementações para plataformas móveis, mas há opções que auxiliam o desen70 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 60-74, maio/2013. SANTOS JÚNIOR, Gesmar de Paula, et al. Realidade Aumentada Móvel volvimento de aplicações de RA em dispositivos móveis, com recursos dos smartphones: informações de geolocalização, modelos tridimensionais, com imagens sobrepostas ou animações para a visão da câmera, permitindo ao usuário perceber uma experiência nova e revolucionária da RA em substituição dos marcadores tradicionais usados nas implementações usuais, normalmente para desktops. Para a produção de sistemas de RA Móvel é possível utilizar também frameworks mais voltados para o desenvolvimento tradicional, iremos utilizar para os exemplos deste capítulo o PhoneGap, uma robusta biblioteca multi-plataforma que facilita o processo de desenvolvimento entre os vários dispositivos. A Tabela 1.1 contém um comparativo entre as diferentes tecnologias mencionadas anteriormente: Tabela 1.1. Tabela de comparação de algumas das tecnologias de Realidade Aumentada. Tecnologia Ambiente de execução Tecnologia de suporte ARToolKit AndAR NyARToolkit NyARToolkitCS ElipseAR FlarToolKit Vufória PhoneGap Symbian OS Android Java Windows iOS, Android Flash iOS, Android e Unity 3D Multiplataforma OpenGL Java OpenGL DirectX Java ActioScript OpenGL HTML5, Javascript e CSS Outras ferramentas existentes são Unifeye Design (Unifeye, 2011) , D’Fusion SDK (DFUSION,2011) , ARToolKit NFT (ARTOOLWORKS,2011) , IN2AR (IN2AR, 2011) e FLARE*NFT (FLARE*NFT,2011). 5. Outros dispositivos de Hardware O acesso a sensores dentro dos dispositivos móveis através das aplicações estão disponíveis em várias plataformas e construídas sobre padrões específicos para cada sistema operacional, podendo também, em sua maioria, serem acessados por navegadores, com isso o aplicativo pode ter uma maior riqueza de sensores e de detalhes. Através de frameworks, como por exemplo o PhoneGap (2013), uma aplicação pode ser portável para diferentes plataformas de dispositivos com o mínimo de alterações, ele possui uma API em JavaScript, que permite o acesso a sensores de diferentes dispositivos através de um código único e ele se encarrega de entender qual plataforma está sendo utilizada. Este framework está disponível para as seguintes plataformas: iOS, Android, Blackberry, Windows Phone, Palm WebOS, Bada e Symbian. Essa e outras plataformas e APIs foram criadas para acessar as funcionalidades que são comuns em diferentes smartphones. Algumas destas funcionalidades incluem eventos, armazenamento, mídia e sensores. A Figura 9 mostra eventos, funções e sensores que estão disponíveis nos dispositivos móveis. 71 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 60-74, maio/2013. SANTOS JÚNIOR, Gesmar de Paula, et al. Realidade Aumentada Móvel Figura. 9. Eventos, funções e sensores disponíveis nos dispositivos móveis Para aprimorar a aplicação de RA Móvel, aumentar a precisão e também trazer mais informações ao usuário, podem ser utilizados outros sensores do dispositivo móvel, como giroscópio, acelerômetro e sensor de luminosidade, a necessidade e o uso desses recursos depende da necessidade do ambiente de Realidade Aumentada. 6. Considerações Finais Conclui-se que a Realidade Aumentada Móvel está cada vez mais presente na vida das pessoas e é uma tecnologia capaz de contribuir no desenvolvimento de diversas aplicações em várias áreas, tais como, navegação indoor, geolocalização, jogos, aprendizagem móvel, Educação, Medicina, entre outros. Pesquisadores estão trabalhando para criar aplicações de Realidade Aumentada Móvel de fácil utilização, com suporte a toque e gestos, com precisão. A qualidade de dispositivos móveis evolui rapidamente associada à redução de tamanho e peso dos mesmos. Assim, como as novas tecnologias móveis estão cada vez mais inseridas no mercado, o uso de RA Móvel não será, no futuro, uma exceção. 72 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 60-74, maio/2013. SANTOS JÚNIOR, Gesmar de Paula, et al. Realidade Aumentada Móvel Referências ARToolWorks. Artoolkit NFT. Disponível em:<http://www.artoolworks.com/ products/stand-alone/ artoolkit-nft>. Acesso em: 07 de agosto de 2011. AZUMA, R.; BILLINGHURST M.; KLINKER. G. (2011). “Editorial: Special Section on Mobile Augmented Reality”, in Computer Graphics. pp. vii-viii. BRAGA, P. H. C.; CARDOSO, A.; LAMOUNIER JR., E. A. “Desenvolvimento de Gestos Personalizados para Criação e Navegação em Ambientes de Realidade Virtual e Aumentada associada a Dispositivos Móveis.” XIV Simpósio de Realidade Virtual e Aumentada, 2012. CARDOSO, A.; JR. LAMOUNIER, E. A.; KIRNER C.; OLIVEIRA C. L.; LOPES A. R.; MARQUES L. “Visão Geral de um Framework para Realidade Aumentada em Diferentes Níveis de Abstração”. IX Workshop de Realidade Virtual e Aumentada, 2012 CHANG W.; TAN Q., 2010. “Augmented reality system design and scenario study for location-based adaptive mobile learning,” in 2010. IEEE 13th International Conference on Computational Science and Engineering (CSE). ACM Press, 20–27. DFusion. D’Fusion Studio. Disponível em:< http://www.t-immersion.com/products/dfusion-adobe-flash/ dfusion-sdk-adobe-flash>. Acesso em: 09 de agosto de 2011. FLARE*NFT. Augmented Reality for Flash. Disponível em: http://www.imagination.at/en/?Products: Augmented_Reality_for_Flash:flare%2Anft). Acesso em: agosto de 2011. IN2AR. Augmented Reality Engine For Adobe Flash™ Player. Disponível em:<http://www.in2ar.com/>. Acesso em: agosto de 2011. LECHETA, R. R.; Google Android, 2nd ed., Novatec, Ed., 2010. [Online]. Available: http://www. livroandroid.com.br/ MEIGUINS, B. S.; DO CARMO, R. M. C. L.; GONÇALVES, A. S.; PINHEIRO, S. C. V.; GARCIA, M. B.; GODINHO, P. I. A. 2006. "Multidimensional information visualization using augmented reality" in VRCIA '06 Proceedings of the 2006 ACM international conference on Virtual reality continuum and its applications. ACM, New York, NY, 391-394. DOI= http://doi.acm.org/10.1145/1128923.1128996. OLIVEIRA L. C., CARDOSO A., JR. LAMOUNIER, E. A. 2012. “Information Visualization in Mobile Augmented Reality for Locating Objects in Indoor Environments”. In SVR ’12 Proceedings of the 2012. XIV Symposium on Virtual Reality. OLIVEIRA L. C, CARDOSO A. JR. LAMOUNIER, E. A. 2012. “Aplicação Genérica da Realidade Aumentada Móvel para Localização e Visualização de Informações de Objetos e Lugares em Ambientes Internos”. 73 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 60-74, maio/2013. SANTOS JÚNIOR, Gesmar de Paula, et al. Realidade Aumentada Móvel OLSSON T., LAGERSTAM E., TUULA K. AND MATTILA K. V. V. 2012. “Expected user experience of mobile augmented reality services: a user study in the context of shopping centres”. In Personal and Ubiquitous Computing. 2012. DOI: http://dx.doi.org/10.1007/s00779-011-0494-x. PHONEGAP. “About the project”. Mar 2013. [Online]. Disponível em: http://phonegap.com/about/. PROJECT G., “Andar - android augmented reality”, Ago 2011. [Online]. Disponível em: http://code.google. com/p/andar/. QCAR SDK. “Qualcomm Vuforia, Site Oficial QCAR/Vuforia SDK”, Disponível em: https://developer. vuforia.com/resources/dev-guide/getting-started-overview . Acesso em Abr 2013. SANTOS G. P. JR., OLIVEIRA L. C, CARDOSO A. JR. LAMOUNIER, E. A. “Aplicação Multiplataforma da Realidade Aumentada Móvel para Geolocalização utilizando o PhoneGap”. IX Workshop de Realidade Virtual e Aumentada, 2012 SILVA A. C., SOUSA L. C. O, OLIVEIRA L. C, CARDOSO A. JR. LAMOUNIER, E. A. “Detecção de Marcadores Naturais para Realidade Aumentada Móvel utilizando Redes Neurais Artificiais”. IX Workshop de Realidade Virtual e Aumentada, 2012. UNIFEYE. Disponível em: <http://docs.metaio.com/bin/view/Main/ UnifeyeDesignSysCompTracking#Pl anarMarkerlessTracking>. Acesso em: agosto de 2011. WOODILL G., “The Mobile Learning Edge: Tools and Technologies for Developing Your Teams”, 1st ed., McGraw-Hill, Ed., 2010. [Online]. Available: http://www.mobilelearningedge.com. ZHOU F., DUH H. B. L.; BILLINGHURST, M. “Trends in augmented reality tracking, interaction and display: A review of ten years of ISMAR,” in ISMAR ’08: Proceedings of the 7th IEEE/ACM International Symposium on Mixed and Augmented Reality. Washington, DC, USA: IEEE Computer Society, 2008, pp. 193–202. 74 75 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 75-88, maio/2013. KAWAMOTO, André Luiz Satoshi; SILVA, Flávio Soares Correa da. Utilização de Dispositivos de Interfaces Naturais de Usuário em Aplicações de Realidade Aumentada. Utilização de Dispositivos de Interfaces Naturais de Usuário em Aplicações de Realidade Aumentada André Luiz Satoshi Kawamoto Flávio Soares Correa da Silva Abstract Interfaces Naturais de Usuário (NUI) são uma evolução nas interfaces, capazes de reduzir o tempo de aprendizado e melhorar a usabilidade dos sistemas. Esse novo paradigma é suportado pela evolução tecnológica, que introduziu dispositivos de hardware e software mais poderosos, responsáveis por dar vazão a funcionalidades como reconhecimento de gestos, comandos de voz, rastreamento de esqueletos, entre outras coisas. Desde seu lançamento, o Microsoft Kinect tem despertado o interesse de diversos pesquisadores, graças ao seu baixo custo e facilidade no desenvolvimento de aplicações. O presente trabalho apresenta uma descrição de NUI, o dispositivo Kinect e sua aplicação na implementação de Sistemas de Realidade Aumentada (RA), tanto como principal dispositivo de interação como em outras atividades da área de RA. Resumo Natural User Interfaces of (NUI) are an evolution in interfaces, capable of reducing the learning curve and improving the usability of systems. This new paradigm is supported by technological developments, which introduced more powerful hardware devices and software, responsible for enabling features as gesture recognition, voice commands, tracking skeletons, among other things. Since its release, the Microsoft Kinect has attracted the interest of several researchers due to its low cost and ease in the development of applications. This paper presents a description of NUI, the Kinect device and its application in the development of Augmented Reality (AR) Systems, as primary hardware interaction device as in other activities in the RA area. 1. Introdução O termo Interfaces Naturais de Usuário (do inglês NUI - Natural User Interfaces) designa interfaces entre humanos e computadores as quais utilizam dispositivos não convencionais e que são baseadas 75 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 75-88, maio/2013. KAWAMOTO, André Luiz Satoshi; SILVA, Flávio Soares Correa da. Utilização de Dispositivos de Interfaces Naturais de Usuário em Aplicações de Realidade Aumentada. em elementos naturais. A palavra “natural”, nesse caso, é usada em oposição à maioria das interfaces de computador, que utilizam dispositivos cuja operação precisa ser aprendida. Nesse tipo de interface, pode-se afirmar que a interação se dá baseada em conhecimentos prévios do usuário, e dessa forma, é fácil de aprender e de tornar-se experiente [Blake, 2013]. NUIs podem ser encontradas em vários sistemas e aplicações do nosso cotidiano: telas sensíveis ao toque em computadores e smartphones; aplicações que aceitam comandos de voz; comandos gestuais para controlar televisores e jogos; sistemas BCI (Brain-Computer Interface – Interface Cérebro-Computador), onde comandos cerebrais desencadeiam a execução de tarefas. Realidade Aumentada (RA) é uma variação de Realidade Virtual que permite ao usuário perceber o mundo ao mesmo tempo em que objetos são inseridos de forma a compor com o mundo real. Assim, a Realidade Aumentada suplementa a realidade, em vez de substitui-la completamente [Azuma, 1997]. Essa tecnologia é extensivamente empregada em diversas aplicações que variam desde ensino, treinamento, simulações, entretenimento, dispositivos de navegação até visualização de dados e apoio a tarefas complexas, como cirurgias, montagem e manutenção de máquinas. O presente trabalho apresenta uma visão geral sobre NUI, histórico e definições básicas até diretrizes para a concepção desse tipo de interface, e sua aplicação na área de RA - especificamente nas implementações que utilizam o dispositivo Microsoft Kinect. Uma descrição desse dispositivo, suas características técnicas e de programação é apresentada, bem como o estado-da-arte em sistemas que utilizam Kinect, com os resultados e projeções de aplicações futuras. 2. Interfaces Naturais de Usuário Historicamente, a interface entre homem e computador apresenta uma evolução, na qual podem ser destacados três paradigmas (Figura 1.1) Interfaces de Linha de Comando (CLI - Command Line Interface), Interfaces Gráficas (GUI - Graphical User Interface) e, mais recentemente, Interfaces Naturais(NUI). Figura 1.1: Evolução de Interfaces. Fonte: http://en.wikipedia.org/wiki/Natural_user_interface/ Em uma interface de linha de comando, sucessivas linhas de texto (linhas de comando) são enviadas pelo usuário para o sistema. Essa interface é encontrada em sistemas operacionais mais antigos, como o MS-DOS, versões iniciais do Unix, entre outros. Geralmente, sua implementação consiste de 76 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 75-88, maio/2013. KAWAMOTO, André Luiz Satoshi; SILVA, Flávio Soares Correa da. Utilização de Dispositivos de Interfaces Naturais de Usuário em Aplicações de Realidade Aumentada. um prompt capaz de aceitar os comandos de texto e convertê-los para funções do sistema. Esse é o tipo de interface frequentemente preferido por usuários avançados, já que fornece uma maneira concisa e poderosa de controlar um sistema. As interfaces gráficas são atualmente as mais comuns, sobretudo aquelas baseadas no paradigma WIMP (Window, Icon, Menu, Pointer – Janela, Ícone, Menu, Ponteiro). Nesse paradigma, o mouse ou algum dispositivo similar - é usado para manipular elementos na tela (janelas, botões e menus) e, assim, realizar tarefas. Do ponto de vista da usabilidade, esse tipo de interface traz benefícios como a facilidade de se lembrar de ações e de se construir modelos que se mantêm coerentes para diversas tarefas similares. Nesse paradigma, existe feedback visual imediato para indicar os efeitos de uma determinada ação, por exemplo, ao apagar um arquivo, seu ícone imediatamente é removido da tela. A maior vantagem de interfaces gráficas é que elas tornam a operação do computador mais intuitiva e fácil de aprender. Nos últimos anos, a evolução tecnológica permitiu a criação de uma gama de dispositivos, os quais permitiram o surgimento de uma nova modalidade de interface, disponível em aplicações como telas sensíveis ao toque, reconhecimento de comandos de voz, reconhecimento de gestos, entre outras coisas. Esse novo paradigma é conhecido como Interfaces Naturais de Usuário (NUI). NUIs podem ser definidas como “interfaces projetadas para reusar habilidades existentes para a interação direta com o conteúdo” [Blake, 2013]. Essa definição evidencia três importantes conceitos a respeito de NUI. Primeiro, NUIs são projetadas, ou seja, requerem que sejam premeditadas e que sejam feitos esforços prévios para sua concepção. É preciso assegurar que as interações em uma NUI sejam apropriadas tanto para o usuário quanto para o conteúdo e o contexto. Não basta agrupar diversos conceitos a esmo. É preciso ter ciência do papel que os projetistas precisam executar ao criar interações naturais e assegurar que à fase de projeto seja dada a mesma prioridade atribuída à fase de desenvolvimento [Blake, 2013]. Segundo, NUIs reutilizam habilidades existentes. Os usuários são peritos em diversas habilidades que foram adquiridas pelo simples fato de serem humanos. Durante vários anos, os usuários têm praticado a comunicação, verbal ou não verbal, além de interações com o ambiente. O poder computacional e tecnologia evoluíram ao ponto em que é possível tirar vantagem dessas habilidades. NUIs fazem isso ao permitir que usuários interajam com computadores por meio de ações intuitivas como tocar, gesticular e falar, e apresentam interfaces as quais os usuários conseguem compreender primeiramente com metáforas extraídas de experiências do mundo real [Blake, 2013]. Finalmente, NUIs têm interação direta com o conteúdo, ou seja, o foco da interação está no conteúdo e na interação direta com ele. Isso não significa que a interface não possa ter controles, como botões ou caixas de seleção, se necessário. Significa apenas que esses controles deveriam ser considerados secundários, comparados ao conteúdo, e que a direta manipulação do conteúdo deveria ser o método de interação primário [Blake, 2013]. 77 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 75-88, maio/2013. KAWAMOTO, André Luiz Satoshi; SILVA, Flávio Soares Correa da. Utilização de Dispositivos de Interfaces Naturais de Usuário em Aplicações de Realidade Aumentada. 3. Diretrizes para a Construção de Interações Naturais Em [Blake, 2013], quatro diretrizes são apresentadas para se projetar interações naturais, independente do tipo de interação: Experiência Instantânea (Instant Expertise), Carga Cognitiva (Cognitive Load), Aprendizagem Progressiva (Progressive Learning) e Interação Direta (Direct Interaction). A Experiência Instantânea pressupõe que as interações projetadas devem reutilizar habilidades existentes. Fazendo isso, aproveitamos o investimento prévio feito pelos usuários em suas competências e criamos peritos instantaneamente. Tanto no mundo real quanto na criação de interfaces, o mais difícil ao utilizar uma habilidade é o processo de aprendizado. Uma vez que essa habilidade é aprendida, torna-se bem mais fácil exercitá-la. Os usuários possuem diversas habilidades antes mesmo de usar qualquer aplicação, muitas das quais têm sido exercitadas desde a infância. Interações que reutilizam habilidades existentes permitem que os usuários tornem-se práticos rapidamente e com pouco esforço. Há duas maneiras de criar peritos instantâneos: aproveitar habilidades específicas do domínio (como o uso de ferramentas e dispositivos comuns a uma determinada atividade); e aproveitar habilidades comuns a todos os humanos. A Carga Cognitiva implica em projetar interfaces nas quais a maioria das interações usam habilidades inatas e simples. Isso traz consigo dois benefícios: a maior parte da interface será fácil de usar e a interface será rápida para se aprender, mesmo que algumas das habilidades sejam completamente novas. Se a interface usa habilidades baseadas em interações naturais com o mundo real, a frequência de interações será muito mais alta. Realmente existe uma relação de custo-benefício entre Experiência Instantânea e Carga Cognitiva. Essas diretrizes podem conflitar quando usuários já são dotados de uma habilidade útil como, por exemplo, o uso do mouse. O foco, nesses casos, deve recair em minimizar a carga cognitiva para a maior parte das interações, reutilizando habilidades simples existentes. No caso do mouse, embora seja possível assumir que os usuários já tenham experiência prévia, uma interface de toque é preferível, uma vez que o uso do mouse exige mais aprendizado do que usar os dedos. A Aprendizagem Progressiva prevê uma curva de aprendizado suave a partir de tarefas básicas até as tarefas avançadas. Interfaces Naturais devem permitir que seus usuários aprendam e evoluam progressivamente, partindo de novatos até o nível de peritos. Ao mesmo tempo, as interfaces não podem dificultar que usuários experientes consigam realizar tarefas avançadas da melhor maneira. Essa diretriz implica em permitir o uso da aplicação ao mesmo tempo em que tarefas mais complexas são aprendidas. A Interação Direta, por sua vez, estabelece que as interações devem se relacionar diretamente com o conteúdo; ocorrer em frequência alta e ser apropriadas ao contexto. Uma vez que nossas interações com o mundo real apresentam essa característica, a adoção de interações diretas resulta em interfaces mais fluidas e naturais, e permitem acesso a muitas funcionalidades sem sobrecarregar o usuário apresentando-as todas ao mesmo tempo. Em suma, essas quatro diretrizes versam sobre as habilidades, tarefas e interações em Interfaces Naturais. Enquanto a Experiência Instantânea e Carga Cognitiva fornecem orientações para definir tarefas individuais, a Aprendizagem Progressiva discute a sequência de tarefas em uma aplicação e, finalmente, a Interação Direta está relacionada à qualidade da interação entre usuário e conteúdo da aplicação. 78 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 75-88, maio/2013. KAWAMOTO, André Luiz Satoshi; SILVA, Flávio Soares Correa da. Utilização de Dispositivos de Interfaces Naturais de Usuário em Aplicações de Realidade Aumentada. 4. O Microsoft Kinect O Sensor Kinect é um dispositivo originalmente criado para prover Interfaces Naturais ao console de jogos XBox 360. O uso desse dispositivo permite ao usuário controlar jogos por meio de gestos e comandos de voz. O hardware do Kinect é dotado de câmera RGB, sensor de profundidade, microfones, motor de inclinação e um acelerômetro de três eixos (Figura 1.2). Figura 1.2: Sensor Kinect e seus Componentes Adaptado de: http://msdn.microsoft.com/en-us/library/hh855348.aspx/ O sensor de profundidade do Kinect consiste de uma fonte de luz infravermelha e de um laser que projeta um padrão de pontos, os quais são lidos por um sensor CMOS monocromático. O sensor detecta segmentos refletidos do padrão de pontos e converte suas intensidades para distâncias. A resolução da profundidade (ao longo do eixo z) é de cerca de um centímetro, enquanto a resolução espacial (ao longo dos eixos x e y) é dada em milímetros. Cada quadro gerado pelo sensor de profundidade tem resolução VGA (640 x 480 pixels), contendo valores de profundidade de 11 bits, que fornecem 2048 níveisde sensibilidade. O fluxo de saída tem taxa de quadros de 30 Hz [Jana, 2012]. O fluxo de vídeo RGB utiliza resolução VGA a uma taxa de quadros de 30 Hz. O vetor de áudio consiste de quatro microfones, com cada canal processando áudio de 16 bits a uma taxa de amostragem de 16 KHz. O hardware inclui supressão de ruídos do ambiente. O Kinect consome 12 watts, mais do que os 2.5 watts fornecidos por uma porta USB padrão. Isso significa que é necessário conectar o dispositivo tanto na porta USB do PC quanto a uma fonte de energia separada para que o dispositivo funcione apropriadamente. A Microsoft sugere que seja liberada uma área de cerca de 1,8 metros entre o sensor e o usuário. 5. Programação para o Microsoft Kinect Tão logo ocorreu seu lançamento, diversos desenvolvedores se dispuseram a prover código capaz de permitir que o Kinect fosse utilizado em outras plataformas (Windows, Linux, Mac), entre esses, podemos destacar o OpenKinect, OpenNI, e finalmente, o Microsoft Kinect SDK [OpenKinect,2013] [OpenNI, 2013] [Jana, 2012]. 79 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 75-88, maio/2013. KAWAMOTO, André Luiz Satoshi; SILVA, Flávio Soares Correa da. Utilização de Dispositivos de Interfaces Naturais de Usuário em Aplicações de Realidade Aumentada. OpenKinect é um projeto de código livre responsável pelo libfreenect. O libfreenect permite acesso ao dispositivo Kinect, com suporte a acessar imagens RGB, imagens de profundidade, motores, acelerômetro. Embora escrito em C, essa biblioteca provê acesso para várias linguagens como Python, ActionScript, C++, C\# e Java. A biblioteca é usada como base para alguns projetos, como ofxKinect e RGBDemo, existem exemplos que usam libfreenect como backend para PCL [Cruz et al., 2012]. Open Natural Interaction, ou OpenNI, é uma organização sem fins lucrativos responsável, entre outras coisas, pela manutenção de um framework de desenvolvimento para o Kinect de código aberto [OpenNI, 2013] que suporta diversas linguagens de programação e arquiteturas de hardware. OpenNI é composta de dois conjuntos de APIs, uma implementada pelos dispositivos, e outra implementada por componentes do middleware. Essa arquitetura permite que aplicações sejam escritas para sem que haja a preocupação de qual sensor será utilizado. Assim, aplicações podem ser desenvolvidas para diversos fabricantes. OpenNI é usada em diversos projetos, como OpenCV, Unity3D, TUIO, PCL, openFrameworks, entre outros [Cruz et al., 2012]. Microsoft Kinect SDK for Windows é a API da Microsoft para desenvolvimento de aplicações para sistemas operacionais Windows, que suporta o desenvolvimento de aplicações escritas nas linguagens C\#, C++ e Visual Basic. Várias funcionalidades são implementadas como, por exemplo, o reconhecimento de posição sentado ou em pé, o reconhecimento e rastreamento facial, o reconhecimento de comandos de voz, entre outras coisas. A arquitetura do Kinect SDK é apresentada na Figura 1.3. Figura 1. 3: Arquitetura do MS Kinect SDK Fonte: http://msdn.microsoft.com/en-us/library/hh855348.aspx/ Na camada 1, encontram-se os componentes de hardware instalados no dispositivo Kinect; a camada 2 é formada pelos drivers do dispositivo, além dos componentes de software capazes de prover acesso e configuração ao fluxo de áudio e vídeo. As camadas 3, 4 e 5 consistem, basicamente, das APIs de NUI, Áudio e DMO (DirectX Media Object) – que dá suporte aos microfones do dispositivo; na ca80 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 75-88, maio/2013. KAWAMOTO, André Luiz Satoshi; SILVA, Flávio Soares Correa da. Utilização de Dispositivos de Interfaces Naturais de Usuário em Aplicações de Realidade Aumentada. mada superior, encontra-se o conjunto de aplicações que utilizam o Kinect e podem ser desenvolvidos, utilizando essas APIs. Os drivers do Kinect que constituem o Micrsoft SDK suportam [Jana, 2012]: • O conjunto de microfones do dispositivo na forma de um dispositivo de áudio que pode ser acessado por meio das APIs de áudio padrão do Windows; • Controles para fluxo de áudio e vídeo, tanto para o fluxo de imagens RGB, imagens de profundidade e reconhecimento de esqueleto; • Funções que dão apoio ao acesso simultâneo de mais de um dispositivo Kinect. 6. Aplicações do Kinect em Realidade Aumentada Devido ao seu baixo custo, e a facilidade de desenvolver aplicações, o uso do Kinect tem sido explorado em diversas aplicações, que variam desde seu objetivo primário (entretenimento), passando por jogos sérios (serious games) para reabilitação e monitoramento de pacientes [Patsadu et al., 2012] [Martins et al.,2011] [Martin et.al, 2012] [Yeh et al., 2012] [Kondori et al., 2011] [Lange et al., 2011], ensino de linguagem de sinais [Zafrulla et al., 2011], criação de modelos tridimensionais utilizando dados do sensor de profundidade [Tong et al., 2012], além da criação de interfaces gestuais associadas a Interfaces de voz [Lai et al., 2012], entre outras coisas. Na área de RA, o uso do Kinect tem sido explorado desde a criação de modelos tridimensionais, até a manipulação de objetos virtuais sem o uso de marcadores e visualização. Inicialmente, em [Livingston et al., 2012] uma série de testes é conduzida, a fim de investigar a adequação do Kinect em aplicações nas quais Ambientes Virtuais são controlados por avatares. Foram determinados parâmetros adequados de ruído, precisão, resolução e latência do software durante o acompanhamento de esqueletos, bem como definidas as distâncias mínima e máxima, dentro das quais o usuário deve se posicionar a fim de satisfazer esses parâmetros. Esse estudo tece algumas considerações a respeito do melhor posicionamento do dispositivo: aproximá-lo reduz o ruído, por outro lado, afastá-lo reduz a latência. Considera ainda questões de iluminação do ambiente – a luz fluorescente muito intensa pode aumentar o ruído. Os resultados desse experimento demonstram que o uso do Kinect é bastante adequado para capturar comandos gestuais nessa classe de aplicação, ou seja, aplicações que utilizam uma única tela de projeção. O ruído não impediu o reconhecimento de gestos, e a taxa de erros, embora maior que a de dispositivos comerciais específicos para esse fim, não foi considerada problema. A latência, bem maior que a de dispositivos comerciais de rastreamento, foi considerada sua maior desvantagem. Na geração de modelos tridimensionais, o Kinect Fusion [Izadi et al., 2011] é um sistema que utiliza dados de profundidade obtidos em tempo real da câmera do Kinect e cria modelos 3D de alta qualidade, geometricamente precisos. Esse sistema possibilita que um usuário, movimentando-se em um espaço fechado ao mesmo tempo em que segura uma câmera, possa varrer e criar um modelo 3D do ambiente inteiro e seu conteúdo. Os autores alegam que qualquer movimento permite que novos pontos de vista da cena sejam criados e, assim, refinamentos e detalhes são adicionados. A aplicação sucessiva de várias varreduras aplicadas ao mesmo objeto resulta em um modelo 3D preciso. 81 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 75-88, maio/2013. KAWAMOTO, André Luiz Satoshi; SILVA, Flávio Soares Correa da. Utilização de Dispositivos de Interfaces Naturais de Usuário em Aplicações de Realidade Aumentada. Figura 1. 6: Detalhamento de modelos 3D - Kinect Fusion [Izadi et al., 2011] Ainda tratando de criação de modelos 3D, em [Kahn, 2011] é discutida a distância existente entre o processo de se modelar objetos para RA e seu uso efetivo. A consequência disso é que os modelos, criados nas etapas de preparação offline, são difíceis de detectar mudanças e adaptarem-se a elas. O trabalho apresenta um framework para detecção de alterações 3D e ajuste de modelos que combina técnicas de RA com a geração de imagens de profundidade em tempo real para aproximar a modelagem 3D da Realidade Aumentada. Esse método detecta as diferenças entre uma cena e o modelo 3D da cena e usa as diferenças geométricas para atualizar o modelo em tempo real. A precisão da detecção geométrica depende da precisão das medidas de profundidade, bem como da precisão dos parâmetros intrínsecos e extrínsecos. Para avaliar a influência desses parâmetros, vários experimentos foram feitos com dados simulados. Além disso, a avaliação mostra a aplicabilidade de RA e modelagem 3D baseadas em imagens de profundidade para rastreamento de câmera baseados em modelos. No que diz respeito a interação em aplicações de RA, em [Santos et al., 2011] é apresentado um sistema que permite ao usuário interagir com menus e manipular objetos (inserir, selecionar, mover, rotacionar e escalonar) sem o uso de marcadores. Nesse sistema, o uso de mãos e gestos é considerado uma interface cognitivamente vantajosa em relação ao tradicional uso de marcadores. Ainda no que diz respeito à interação em sistemas de RA, em [Ionescu et al., 2010] é apresentado um novo modelo para mapeamento de profundidade em tempo real, que usa uma câmera 3D para controlar aplicações de computador, variando desde jogos até ambientes multimídia colaborativos. Esse modelo usa dados de profundidade obtidos da câmera 3D para analisar e reconstruir, em tempo real, partes do corpo e movimentos do usuário. Os movimentos são pré-determinados, e podem disparar, por exemplo, ações em jogos, veículos não tripulados, controle de produtos eletrônicos, entre outras coisas. Para demonstrar esse modelo, a câmera 3D é usada para interface em uma aplicação de realidade aumentada. Um exemplo de aplicação do Kinect, juntamente com Realidade Aumentada na visualização e no estudo de interações sociais é dado em [Leroy et al., 2011]. Esse trabalho investiga o conceito de espaços interpessoais (distâncias estabelecidas inconscientemente entre as pessoas). Segundo os autores, a medida da distância entre os espaços interpessoais pode indicar o grau de intimidade das pessoas. 82 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 75-88, maio/2013. KAWAMOTO, André Luiz Satoshi; SILVA, Flávio Soares Correa da. Utilização de Dispositivos de Interfaces Naturais de Usuário em Aplicações de Realidade Aumentada. Para suportar essa ideia, uma aplicação de RA foi criada, capaz de modelar os espaços sociais em torno dos usuários em uma cena. Essa aplicação utiliza a câmera do Kinect para capturar as imagens e para determinar a posição das pessoas na cena 3D. Figura 1. 4: Interface da Aplicação Personal Space [Leroy et al., 2011] Um serious game para reabilitação do movimento de mãos e braços em vítimas de acidentes vasculares cerebrais é apresentado em [Mousavi Hondori et al., 2013]. Trata-se de um sistema que combina sensores de inércia com o Kinect, e que rastreia a mão do usuário e cria uma interface que envolve os movimentos do pulso, cotovelo e ombros. Mede-se a amplitude, velocidade e suavidade dos movimentos, além de tirar fotos e envia-las, via e-mail, para clínicas, visando avaliação posterior. O projeto Augmented Mirror [Vera et al., 2011] propõe uma aplicação de RA que integra imagens de vídeo, um avatar (controlado em tempo real pelo usuário) e objetos virtuais introduzidos na cena. A aplicação utiliza, dois Kinects para a captura de movimentos, mapa de profundidade e captura de imagens por meio da câmera, um giroscópio para detectar movimentos da cabeça e algoritmos de controle para gerenciar a representação de emoções do avatar. No ensino de Anatomia, um sistema que utiliza um “espelho de RA” é apresentado em [Blum et al., 2012]. Nesse sistema, a câmera de profundidade é utilizada para rastrear a postura do usuário que se coloca em frente a uma tela. É gerada, então uma visualização de uma tomografia computadorizada sobre o usuário, criando a ilusão de que é possível observar o interior de seu corpo, como mostra a Figura 1.5. 83 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 75-88, maio/2013. KAWAMOTO, André Luiz Satoshi; SILVA, Flávio Soares Correa da. Utilização de Dispositivos de Interfaces Naturais de Usuário em Aplicações de Realidade Aumentada. Figura 1.5: Mirracle - Realidade Aumentada no Ensino de Anatomia [Blum et al., 2012] Gestos são usados para selecionar diferentes camadas da tomografia e um conjunto de dados fotográfico pode ser escolhido para visualização. Esse sistema é capaz, ainda, de exibir modelos 3D de órgãos internos, informações textuais e imagens a respeito de anatomia. A interação com esse sistema dispensa marcadores e utiliza dados de profundidade, aumentando ou diminuindo a visibilidade das mãos baseada na sua distância em relação a um plano de interação virtual. Segundo os autores, isso auxilia o usuário a perceber as relações espaciais entre seu corpo e o plano de interação virtual. Em [Tang et al., 2011], é apresentada uma técnica de visualização 3D que combina a detecção de informação de superfícies com a renderização e projeção com perspectiva corrigida. A cena virtual é alterada e renderizada com informações de superfície detectadas, e então mapeadas e projetadas sobre as superfícies corespondentes dos objetos. Comparada com realidade aumentada convencional, que requer dispositivos de exibição adicionais, essa abordagem utiliza melhor informações estruturais dos objetos e permite referências diretas a partir de objetos físicos usados para projeções, permitindo assim experiências de RA melhores, e potencial para interação mais intuitiva. Um método para detecção de objetos em tempo real, capaz de reconhecer objetos tridimensionais, independente de alterações em sua textura ou condição de iluminação, é apresentado em [Lee et al., 2011]. Esse método calcula um conjunto de modelos de referência de um objeto a partir de imagens RGB e de profundidade, que descrevem tanto a textura quanto a geometria do objeto, e os unifica a fim de uma detecção robusta. O sistema é capaz de atingir detecção em tempo real, consumindo cerca de 33 milissegundos para detectar objetos e estimar sua posição (Figura 1.6). Esse método é proposto 84 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 75-88, maio/2013. KAWAMOTO, André Luiz Satoshi; SILVA, Flávio Soares Correa da. Utilização de Dispositivos de Interfaces Naturais de Usuário em Aplicações de Realidade Aumentada. para aplicações de Realidade Aumentada “markerless”, usando objetos tridimensionais reais, além dos marcadores planos convencionais. Figura 1.7: Uso de RA aplicado ao reconhecimento de Objetos 3D [Lee et al., 2011] A grande vantagem desses sistemas, ao adotar o dispositivo Kinect recai, sobretudo no seu baixo custo, que faz com que a relação custo/benefício seja vantajosa. Além desses, diversos outros sistemas, que utilizam dispositivos de NUI, têm sido propostos e desenvolvidos. Esses sistemas aproveitam as facilidades que esses dispositivos introduzem e propiciam o surgimento de novos tipos de interação com o usuário para sistemas de RA. 7. Considerações Finais NUIs representam uma evolução das interfaces de usuário capaz de introduzir um salto na qualidade dos sistemas, sobretudo no que diz respeito à usabilidade. Entre as vantagens introduzidas pelas NUIs, o aproveitamento de habilidades intrínsecas, dispensando treinamento e aprendizado de novos dispositivos. 85 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 75-88, maio/2013. KAWAMOTO, André Luiz Satoshi; SILVA, Flávio Soares Correa da. Utilização de Dispositivos de Interfaces Naturais de Usuário em Aplicações de Realidade Aumentada. Os avanços tecnológicos têm permitido o desenvolvimento de novos dispositivos de hardware e software, capazes de suportar funcionalidades de reconhecimento de comandos voz, de gestos, de posturas, monitoramento de faces, entre outras coisas. Dentre os dispositivos que surgiram para prover a criação de NUI, o Microsoft Kinect permite a implementação de aplicações para várias plataformas de software, utilizando várias linguagens de programação. Diversas aplicações aproveitam as facilidades introduzidas pelo Kinect em diversas áreas de aplicação da Realidade Virtual e Aumentada e criam sistemas que dispensam o uso de marcadores e fornecem visualização de dados, monitoramento, tutoria e treinamento de usuários. Outros sistemas, ainda, estendem o uso primário do Kinect para NUI e aproveitam seus recursos na implementação de novas funcionalidades, como a modelagem de objetos tridimensionais. No que diz respeito à convergência de RA e NUI, podemos concluir que há grande possibilidade de surgimento de uma nova gama de aplicações, limitadas apenas pela imaginação e pela capacidade inventiva dos pesquisadores da área. As diversas possibilidades de pesquisa e desenvolvimento existentes incluem sistemas para monitoramento de pessoas, vigilância, reabilitação, entretenimento, sistemas médicos, sistemas educacionais para treinamento, ensino, capacitação e simulações interativas, além da visualização de dados e controle de dispositivos. Referências AZUMA, R. T. (1997). “A survey of augmented reality”. Presence: Teleope- rators and Virtual Environments, Vol. 6, num. 4:355–385. BLAKE, J. (2013). “Natural User Interfaces in .Net. Manning Pubs Co Series”. Manning Publications Company. BLUM, T.; KLEEBERGER, V.; BICHLMEIER, C.; NAVAB, N. (2012). “mir- racle: An Augmented Reality Magic Mirror System for Anatomy Education”. In IEEE Virtual Reality 2012 (VR), Orange County, USA. CRUZ, L.; LUCIO, D.; VELHO, L. 2012. “Kinect and rgbd images: Challenges and applications”. In Graphics, Patterns and Images Tutorials (SIBGRAPI- T), 2012 25th SIBGRAPI Conference on, pages 36–49. HONDORI, H.; KHADEMI, M.; LOPES, C. 2012. “Monitoring intake gestures using sensor fusion (microsoft kinect and inertial sensors) for smart home tele-rehab setting”. In 2012 IEEE EMBS HIC. IONESCU, D.; IONESCU, B.; ISLAM, S.; GADEA, C.; MCQUIGGAN, E. SEPT.. “Using depth measuring cameras for a new human computer interaction in augmented virtual reality environments”. In Virtual Environments Human-Computer Interfaces and Measurement Systems (VECIMS), 2010 IEEE International Conference on, pages 114–119. 86 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 75-88, maio/2013. KAWAMOTO, André Luiz Satoshi; SILVA, Flávio Soares Correa da. Utilização de Dispositivos de Interfaces Naturais de Usuário em Aplicações de Realidade Aumentada. IZADI, S.; KIM, D.; HILLIGES, O.; MOLYNEAUX, D.; NEWCOMBE, R.; KOHLI, P.; SHOTTON, J.; HODGES, S.; FREEMAN, D.; DAVISON, A.; FITZGIBBON, A. 2011. “KinectFusion: real-time 3d reconstruction and interaction using a moving depth camera”. In Proceedings of the 24th annual ACM symposium on User interface software and technology, UIST ’11, pages 559–568, New York, NY, USA. ACM. JANA, A. (2012). “Kinect for Windows SDK Programming Guide”. Community experience distilled. Packt Pub. ISBN: 9781849692397. KAHN, S. (2011). “Reducing the gap between augmented reality and 3D modeling with real-time depth imaging”. Virtual Reality, pages 1–13. KONDORI, F.; YOUSEFI, S.; LI, H.; SONNING, S.;SONNING, S. (2011). “3d head pose estimation using the kinect”. In Wireless Communications and Signal Processing (WCSP), 2011 International Conference on, pages 1 –4. LAI, K.; KONRAD, J.; ISHWAR, P. (2012). “A gesture-driven computer interface using kinect”. In Image Analysis and Interpretation (SSIAI), 2012 IEEE Southwest Symposium on, pages 185 –188. LANGE, B.; CHANG, C.Y.; SUMA, E.; NEWMAN, B.; RIZZO, A.; BOLAS, M. 2011. “Development and evaluation of low cost game-based balance rehabili- tation tool using the microsoft kinect sensor”. In Engineering in Medicine and Biology Society,EMBC, 2011 Annual International Conference of the IEEE, pages 1831 –1834. LEE, W.; PARK, N.; WOO, W. 2011. “Depth-assisted real-time 3d object detection for augmented reality”. In The 21st International Conference on Artificial Reality and Telexistence. The Virtual Reality Society of Japan. LEROY, J.; MANCAS, M.; GOSSELIN, B. 2011. “Personal space augmented reality tool”. In First joint WIC/IEEE SP Symposium on Information Theory and Signal Processing in the Benelux. LIVINGSTON, M.; SEBASTIAN, J.; AI, Z.; DECKER, J. (2012). “Performance measurements for the microsoft kinect skeleton”. In Virtual Reality Workshops (VR), 2012 IEEE, pages 119 –120. MARTIN, C.; BURKERT, D.; CHOI, K.; WIECZOREK, N.; MCGREGOR, P.; HERRMANN, R.; BELING, P. 2012. “A real-time ergonomic monitoring system using the microsoft kinect”. In Systems and Information Design Symposium (SIEDS), 2012 IEEE, pages 50 –55. MARTINS, T.; CARVALHO, V.; SOARES, F.; MOREIRA, M. 2011. “Serious game as a tool to intellectual disabilities therapy: Total challenge”. In Serious Games and Applications for Health (SeGAH), 2011 IEEE 1st International Conference on, pages 1 –7. MOUSAVI HONDORI, H.; KHADEMI, M.; DODAKIAN, L.; CRAMER, S. C.; LOPES, C. V. 2013). “A spatial augmented reality rehab system for post-stroke hand rehabilitation”. Stud Health Technol Inform, 184:279–85. OpenNI, 2013 http://www.openni.org/. Acesso em 23/03/2013. 87 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 75-88, maio/2013. KAWAMOTO, André Luiz Satoshi; SILVA, Flávio Soares Correa da. Utilização de Dispositivos de Interfaces Naturais de Usuário em Aplicações de Realidade Aumentada. OpenKinect, 2013 http://openkinect.org/. Acesso em 23/03/2013. PATSADU, O.; NUKOOLKIT, C.; WATANAPA, B. 2012. “Human gesture recognition using kinect camera”. In Computer Science and Software Engineering (JCSSE), 2012 International Joint Conference on, pages 28 –32. SANTOS, E.; LAMOUNIER, E.; CARDOSO, A. (2011). “Interaction in augmented reality environments using kinect”. In Virtual Reality (SVR), 2011 XIII Symposium on, pages 112 –121. TANG, Y.; LAM, B.; STAVNESS, I.; FELS, S. 2011. “Kinect-based augmented reality projection with perspective correction”. In ACM SIGGRAPH 2011 Posters, SIGGRAPH ’11, pages 79:1–79:1, New York, NY, USA. ACM. TONG, J.; ZHOU, J.; LIU, L.; PAN, Z.; YAN, H. 2012). “Scanning 3d full human bodies using kinects”. Visualization and Computer Graphics, IEEE Tran- sactions on, 18(4):643 –650. VERA, L.; GIMENO, J.; COMA, I.; FERNÁNDEZ, M. (2011). “Augmented mirror: Interactive augmented reality system based on kinect”. In CAMPOS, P.; GRAHAM, N.; JORGE, J.; NUNES, N.; PALANQUE, P.; WINCKLER, M., editors, Human-Computer Interaction – INTERACT 2011, volume 6949 of Lecture Notes in Computer Science, pages 483–486. Springer Berlin Heidelberg. YEH, S.C.; HWANG, W.Y.; HUANG, T.C.; LIU, W.K.; CHEN, Y.T.; HUNG, Y.P. (2012). “A study for the application of body sensing in assisted reha- bilitation training”. In Computer, Consumer and Control (IS3C), 2012 International Symposium on, pages 922 –925. ZAFRULLA, Z.; BRASHEAR, H.; STARNER, T.; HAMILTON, H.; PRESTI, P. (2011). “American sign language recognition with the kinect”. In Proceedings of the 13th international conference on multimodal interfaces, ICMI ’11, pages 279–286, New York, NY, USA. ACM. 88 89 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 89-103, maio/2013. DIAS, Diego Roberto Colombo, et al. Desenvolvimento de Aplicações com Interface Natural de Usuário e Dispositivos PrimeSense como Meio de Interação para Ambientes Virtuais. Desenvolvimento de Aplicações com Interface Natural de Usuário e Dispositivos PrimeSense como Meio de Interação para Ambientes Virtuais Diego Roberto Colombo Dias Gustavo Jordan Castro Brasil Bruno Barberi Gnecco Mário Popolin Neto Isabele Andreoli Agostinho Richard Valdívia José Remo Ferreira Brega Luis Carlos Trevelin Abstract Natural User Interfaces (NUI) have been used as a form of interaction between user and machines. They are invisible, since they do not required that users wear any kind of devices. Applications that have NUIs tend to be easy to learn and have intuitive interaction. Virtual and augmented reality applications can be improved by this kind of interface, since it can track the user's body and immerse it more faithfully in the virtual world. The use of devices such as PrimeSnse to track bodies for NUI interfaces is already quite common and there are many libraries and SDKs available. This pre symposium intends to present the possible methods to develop NUI applications with device such as Microsoft Kinect, Asys Xtion and others to interact in virtual environments. Example applications are provided. Resumo A Interface Natural de Usuário (NUI) tem sido utilizada como forma de interação entre o usuário e máquina, sendo essa invisível, por não ter a necessidade de que o usuário utilize nenhum tipo de dispositivo agregado ao corpo. Aplicações que possuam caracterísiticas de NUI tendem a ser de fácil aprendizado e possuir interação intuitiva. Aplicações de Realidade Virtual e Aumentada podem ser beneficiadas por este tipo de interface, se utilizada como forma de rastreamento corporal. O uso de dispositivos PrimeSense como meio de rastreamento corporal para aplicações NUI já é bastante difundido, possuindo várias bibliotecas e SDKs disponíveis. Este pré simpósio visa apresentar as possíveis soluções para o desenvolvimento de aplicações de NUI que utilizem o dispositivo Microsoft Kinect, Asus Xtion entre outros, para a interação em ambientes virtuais. Aplicações exemplos são apresentadas. 89 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 89-103, maio/2013. DIAS, Diego Roberto Colombo, et al. Desenvolvimento de Aplicações com Interface Natural de Usuário e Dispositivos PrimeSense como Meio de Interação para Ambientes Virtuais. 1. Introdução Muitos estudos tem sido realizados na área de Interface Natural de Usuário em função da existência de diversos trabalhos na área da computação que consideram essa abordagem de interface uma solução viável atualmente, tanto economicamente quanto a sua viabilidade técnica. Dessa forma, algumas empresas tem se empenhado em desenvolver as inovações para atender essa demanda. Segundo Gnecco et. al (2012), um grande passo foi realizado com o desenvolvimento da tecnologia de câmera Z-Buffer, ou seja, cameras capazes de obter informações de distância baseadas em um conjunto de pontos emitidos por feixe de luz IR (infra-vermelho) e tratados na reconstrução 3D utilizando luz estruturada. Ainda conforme Gnecco et. al (2012), câmeras com características de RGB+Z permitiram que ferramentas computacionais com o conceito de visão computacional de baixo custo fossem desenvolvidas e levadas ao público consumidor. Assim, surgiram várias iniciativas, primeiro da comunidade do software livre, e depois das corporações privadas, em prover o instrumental necessário para que desenvolvedores pudessem tirar proveito dessa tecnologia, provendo soluções imediatas para problemas das mais diversas áreas do conhecimento. Tópicos da área de interesse da Interface Homem Computador (IHC) tem tirado proveito dessa forma de comunicação com dispositivos eletrônicos, criando normas de interação, e dessa forma, facilitando a vida do usuário. Estudos na área de comunicação por meio de gestos tem sido de grande relevância para a comunidade científica. Bhuiyan (2009) cita que humanos se comunicam por meio de gestos, e dessa forma é possível construir um vocabulário que seja interpretável pela máquina, a fim de tirar proveito dela em diversas tarefas cotidianas. As áreas de aplicação são inúmeras, e muitas ainda irão surgir, frente a facilidade que essas inovações tecnologicas vem proporcionando. Com a visão computacional, juntamente com o rastreamento corporal, pode-se obter bons resultados em áreas relacionadas ao entretenimento, a reabilitação cognitiva e motora, inteligência artificial, comandos a distância para a área da robótica, educação a distância, etc. Este capítulo apresenta as bibliotecas disponíveis para o desenvolvimento de aplicações para dispositivos PrimeSense. Uma breve descrição de cada biblioteca é apresentada, contudo, são apresentadas apenas aplicações desenvolvidas com a OpenNI, por ser uma das mais utilizadas no meio acadêmico, e prover suporte para todos os dispositivos PrimeSense. O capítulo está organizado da seguinte forma. A seção 2 apresenta a definição e uso de Interface Natural de Usuário. A seção 3 apresenta os dispositivos PrimeSense. A seção 4 apresenta as bibliotecas de desenvolvimento. A seção 5 apresenta as aplicações práticas, sendo essas desenvolvidas em três diferentes linguagens: C/C++, Java e Processing. Finalmente a seção 6, que apresenta as conclusões e perspectivas futuras para a tecnologia. 2. Interface Natural de Usuário A Interface Natural de Usuário e/ou Natural User Interface (NUI) é a interface comum usada por designers e desenvolvedores de interfaces de computador para se referir à interação com o computador de um modo efetivamente invisível, ou tornando-se invisível com sucessivas interações aprendidas. 90 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 89-103, maio/2013. DIAS, Diego Roberto Colombo, et al. Desenvolvimento de Aplicações com Interface Natural de Usuário e Dispositivos PrimeSense como Meio de Interação para Ambientes Virtuais. Segundo Wigdor (2011), NUI não é uma interface natural, mas sim uma interface que permite seu usuário agir e sentir como se fosse natural, interpreta-se melhor mudando a forma de dizer "interface natural", não é uma interface natural de usuário, mas sim uma interface de usuário natural. A maioria das interfaces de computadores utiliza se de dispositivos de controle artificial, cujo o aprendizado dos comandos é realizado por meio de botões, tais como teclado alfanúmerico ou controle de vídeo-game, cuja a curva de aprendizagem pode ser alta. Uma interface NUI exige apenas que o usuário seja capaz de interagir com o ambiente por meio de interações previamente já conhecidas pelos mesmos, como, por exemplo, gestos e voz. Esse tipo de interface também exige aprendizagem, porém é facilitada, pois não exige que o usuário seja apresentado a um novo dispositivo. Assim, a comunicação por meio de gestos é algo inerente ao ser humano. Segundo Weiyuan (2010), a NUI possuí as seguintes características: • Design centrado no usuário: provê as necessidades de mudança da interface para diferentes usuários; • Multi-canal: visa capturar vários canais de entrada do usuário para a realização da interação com o computador. São considerados canais de entrada do usuário: mãos, boca, olhos, cabeça, pés e o corpo como um todo; • Inexato: as ações e pensamentos dos usuários não são precisos, de modo que, o computador deve entender a requisição das pessoas; • Largura de banda alta: devido à grande quantidade de dados gerados pelos dipositivos de interface utilizados, a NUI deve prover suporte a alta taxa de dados; • Interação baseada por voz: considerada o meio mais conveniente, eficiente e natural de compartilhamento de informações. Em interfaces NUI possui duas abordagens: reconhecimento vocal e tecnologia de compreensão; • Interação baseada por imagens: os humanos utilizam como principal sentido a visão. Para interfaces NUI, as imagens podem ser abordadas em 3 diferentes níveis: processamento de imagens, reconhecimento de imagens e percepção de imagens; e • Interação baseada no comportamento: responsável por reconhecer a linguagem corporal do usuário, isto é, movimentos que expressem algum significado. Dispositivos comuns para NUI incluem: • Sensores 3D - Para utilização de interação baseada por imagens a partir da captura 3D; • Câmeras RGB - Para utilização de interação baseada por imagens a captura de imagem real para ser utilizada em ambientes virtuais como realidade aumentada e processamento de pixels para detecção de imagens coloridas em processamento de imagem em geral; e • Microfones - Para utilização de interação baseada por voz. No projeto das aplicações com NUI é preciso levar em consideração algumas particularidades de interfaces. Segundo Gnecco (2012), a precisão dos gestos baseados no rastreamento de câmeras não é tão alta quanto a de um mouse, por exemplo. 91 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 89-103, maio/2013. DIAS, Diego Roberto Colombo, et al. Desenvolvimento de Aplicações com Interface Natural de Usuário e Dispositivos PrimeSense como Meio de Interação para Ambientes Virtuais. 3. Dispositivos PrimeSense Os dispositivos Microsoft Kinect e Asus XTion utilizam a tecnologia criada pela PrimeSense (2013). O CMOS SoC PS1080, codinome Carmine, que é implementado no Kinect, é capaz de capturar os dados do sensor infravermelho, fornecendo dados de profundidade em tempo real. O sensor PS1080 possui duas versões: Carmine 1.08 e a Carmine 1.09. A diferença entre as versões está na distância necessária para que o dispositivo realize o rastreamento, sendo 0.8m-3.5m no Carmine 1.08, e 0.,5-1.4m no Carmine 1.09. A Figura 1 apresenta a arquitetura do chip PrimeSense. Figura 1 – Sensor PS1080 PrimeSense [PrimeSense, 2013] O Kinect não é o único dispositivo que usa a tecnologia dos sensores PrimeSense, outras fabricantes também tem desenvolvidos dispositivos semelhantes, como o ASUS Xtion Pro LIVE. Na Figura 1 pode-se notar a existência de componentes opcionais e obrigatórios. Os componentes principais do sensor são o gerador de luz infravermelha, a câmera de profundidade, a memória flash e a interface USB 2.0. Dentre os componentes opcionais, tem-se a câmera RGB e os componentes referentes a microfone e speakers. 92 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 89-103, maio/2013. DIAS, Diego Roberto Colombo, et al. Desenvolvimento de Aplicações com Interface Natural de Usuário e Dispositivos PrimeSense como Meio de Interação para Ambientes Virtuais. A próxima geração de sensores de aquisição de profundidade foi criada a partir do sensor PS1200, codinome Capri, no qual foram otimizados os algoritmos de rastreamento. Esse novo sensor permitirá uma performance superior em relação a resolução, redução de distância do sensor ao usuário e redução de custos. 3.1. Microsoft Kinect O dispositivo Microsoft Kinect para Xbox360, originalmente destinado a ser um dispositivo de detecção de movimentos para o console Xbox 360, permite ao usuário controlar jogos por meio de gestos, fala e comandos. Os principais componentes de hardware são uma câmera RGB, sensor de profundidade, vetor de microfones, um motor de inclinação, e um acelerômetro de três eixos. A Microsoft lançou um Kinect específico para PC, pois os destinados a XBOX 360 não possuem licença para serem utilizados em PCs. A versão para PC, por sua vez, possui um kit de desenvolvimento básico incluso, capaz de suportar gestos e voz em aplicações desenvolvidas para o sistema operacional Windows. O Kinect é baseado em um projeto do sensor PrimeSensor, desenvolvido pela PrimeSense. A captura de profundidade consiste em uma fonte de luz infravermelha (IR) que projeta um padrão de pontos, que são lidos por uma câmera IR monocromática. A câmera IR captura partes refletidas do padrão de pontos e converte suas intensidades em distâncias. Nos modelos atuais cada quadro gerado pelo sensor de profundidade possuí resolução VGA (640 × 480 pixels), com uma taxa de atualização de 30 Hz. O uso de uma resolução maior, de até UXGA (1600 x 1200 pixels) é possível por meio de interpolação. A matriz de áudio é composta por quatro microfones, com cada canal de processamento de áudio de 16 bits, a uma taxa de amostragem de 16 kHz. O hardware inclui a supressão de ruído ambiente. O Kinect utiliza 12 watts de energia de alimentação externa e mais de 2,5 watts fornecidos por uma porta USB padrão. 3.2. Asus Xtion O Xtion PRO LIVE provê soluções para desenvolvedores que desejam utilizar tecnologia de sensor de movimento em aplicações industriais ou de pesquisa. O Kit vendido pela Asus permite ao desenvolvedor criar aplicações diversas. O Xtion PRO LIVE utiliza sensores infravermelhos, tecnologia de detecção de profundidade, uma câmera RGB e microfones, para capturar vídeo e imagem em tempo real, tornando o rastreamento mais preciso. O dispositivo permite o rastreamento de mãos sem nenhum atraso, tornando a mão do usuário em um controle. Ele permite 8 posições pré definidas para a execução de movimentos de push, click, wave entre outros, o que permite que aplicações de controle para interfaces gráficas sejam desenvolvidas facilmente. As aplicações de RV podem utilizar essas poses pré definidas para efetuar a interação de ambientes com foco em visualização, ao invés dos controles convencionais, como teclado e mouse. O rastreamento corporal permite que o usuário utilize todo o seu corpo como meio de interação a aplicações, sendo ideal para jogos. Como o Kinect, ele também é compatível com soluções baseadas em soluções de software OpenNI/NITE. O Xtion PRO LIVE tem suporte ao motor gráfico Unity3D, o que permite ao desenvolvedor criar aplicações de forma rápida, mas com a qualidade de um motor gráfico. 93 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 89-103, maio/2013. DIAS, Diego Roberto Colombo, et al. Desenvolvimento de Aplicações com Interface Natural de Usuário e Dispositivos PrimeSense como Meio de Interação para Ambientes Virtuais. 4. Ferramentas de Desenvolvimento As soluções de desenvolvimento para dispositivos PrimeSense possuem características que tendem a facilitar o seu uso. Contudo, existem soluções open source e comerciais, uma característica que deve ser levada em conta no momento inicial de desenvolvimento de um aplicativo. Esta seção apresenta as três ferramentas de desenvolvimento mais conhecidas, apresentando as suas principais características. 4.1. OpenKinect A OpenKinect (2013) é uma comunidade aberta, com pessoas interessadas em utilizar o dispositivo Kinect em computadores pessoais ou outros dispositivos. O foco da comunidade é o desenvolvimento da biblioteca libfreenect distribuído sob a GNU General Public License (GPL v2.0) . A libfreenect compõe classes de desenvolvimento para acesso ao hardware do dispositivo e suas funcionalidades em geral, sendo a primeira biblioteca a prover a possibilidade de desenvolvimento de aplicações utilizando o Kinect como interface para a interação. Sua API é compatível com os sistemas operacionais Windows, GNU/Linux e OS X, possuindo bindings e extensões para C, C++, .NET (C#/VB.NET) e Java. A libfreenect permite que as câmeras infravermelho e RGB sejam utilizadas pelas aplicações desenvolvidas, contudo, os dados devem ser tratados por outras ferramentas. O tratamento dos dados pode ser realizado em conjunto com bibliotecas de visão computacional, como a OpenCV (Open Source Computer Vision Library), que possuí módulos para reconhecimento de objetos, e/ou a ARToolKit, que possui métodos de detecção de tags em imagens implementados em sistemas de realidade aumentada. A libfreenect funciona apenas com o Kinect, não provendo suporte a outros dipositivos que utilizam a tecnologia de sensores PrimeSense. Com o crescimento do interesse pelo uso do Kinect, a comunidade da linguagem Processing, criada por Casey Reas e Ben Fry, ambos do Massachusetts Institute of Technology (MIT), desenvolveu ports da libfreenect para que o programador possa usufruir de uma sintaxe Java Like, permitindo usar as pontencialidades do Kinect juntamente com as facilidades oferecidas pela linguagem Java, a qual é orientada a objetos, tornando invisível ao usuário as dificuldades técnicas do gerenciamento de memória e do uso de ponteiros. 4.2. OpenNI 2.0 A OpenNI (2013) é uma organização sem fins lucrativos, formada pela própria indústria de fabricantes para certificar e promover a compatibilidade e interoperabilidade de equipamentos de interação natural. Por padrão, ela não possibilita o uso do Kinect, o que é possível por meio do Avin2 Sensor. O Open Natural Interaction (OpenNI) é um framework que fornece uma API para o desenvolvimento de aplicações que fazem uso de interação natural. Esta API abrange a comunicação com dispositivos de baixo nível (por exemplo, sensores de visão e áudio), bem como soluções de alto nível (por exemplo, o acompanhamento visual utilizando visão computacional). O framework está escrito e dis- 94 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 89-103, maio/2013. DIAS, Diego Roberto Colombo, et al. Desenvolvimento de Aplicações com Interface Natural de Usuário e Dispositivos PrimeSense como Meio de Interação para Ambientes Virtuais. tribuído sob a GNU Lesser General Public License (LGPL), sendo o código fonte livremente distribuído e disponível ao público em geral. Em resumo, existem diversos componentes modulares (chamados generators), responsáveis por diferentes tarefas de deteção e rastreamento. Os componentes são chamados de nó de produção, sendo classificados em dois tipos: nó de dispositivo e nó de middleware. Os nós de produção de dispositivo são classificados em cinco tipos: dispositivo, gerador de profundidade, gerador de imagem, gerador de infravermelho e gerador de aúdio. Os nós de middleware são classificados em quatro tipos: detecção das mãos, detecção e alerta de gestos, análise de cena e análise do corpo. Estes componentes podem ser utilizados separados ou em conjuntos. 4.3. NITE 2 O NITE (2013) é um middleware usado pelo framework OpenNI, desenvolvido pela PrimeSense. Apesar de ter seu código fechado, é gratuito para o uso, podendo ser usado no desenvolvimento de aplicações comerciais. Ele é responsável por identificar os usuários e rastrear seus movimentos. Os movimentos rastreados podem ser transformados em gestos, os quais são detectados a partir da sessão em que o gesto é aguardado e identificado. O middleware prove dois tipos de rastreamento, um para mãos, capaz de detectar gestos de push, wave, circle etc; e outro para o corpo, que permite rastrear o corpo todo, fornecendo informações sobre as principais juntas corporais. 4.4. Microsoft Kinect SDK v1.7 O Microsoft SDK (2013) é um conjunto de componentes de desenvolvimento de aplicações que utilizam o Kinect como meio de interação. É destinado aos sistemas operacionais Windows 7, Windows Embedded Standard 7 e Windows 8 Developer. O SDK fornece suporte para os componentes de hardware do dispositivo Kinect (câmera RGB, câmera e projetor de infravermelho, vetor de microfones, motor de inclinação e o acelerômetro de três eixos). É um SDK proprietário, sendo a distribuição de licença, para o uso comercial, vinculada ao dispositivo Microsoft Kinect para Windows, estabelecendose a diferença em relação ao Microsoft Kinect para Xbox 360. Segundo o fabricante, o dispositivo para Windows possui interface USB melhorada, entre outras otimizações. O suporte para desenvolvimento de aplicações do SDK nas linguagens .NET como, C++, C# ou Visual Basic, é realizado por meio do módulo Skeletal Tracker (captura do esqueleto do usuário) e de reconhecimento de voz para utilização em comandos. 5. Aplicações Exemplo Esta seção apresenta os exemplos práticos de ambientes virtuais sendo controlados por dispositivos PrimeSense. Os exemplos foram desenvolvidos utilizando três linguagens: C/C++, Java e Processing. O exemplo Hand Tracker foi desenvolvido em C/C++, sendo utilizado na interação de um ambiente do tipo CAVE, o Mini CAVE, provendo ações de translação, rotação e zoom realizadas pelas 95 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 89-103, maio/2013. DIAS, Diego Roberto Colombo, et al. Desenvolvimento de Aplicações com Interface Natural de Usuário e Dispositivos PrimeSense como Meio de Interação para Ambientes Virtuais. mãos do usuário. O Skeleton Tracker foi desenvolvido em Java, sendo utilizado na interação de um avatar dentro de um ambiente virtual. O Processing é apresentado como uma terceira solução de desenvolvimento, destacando-se pela facilidade na criação das aplicações. O código completo da aplicação está disponível para download em : http://laviic.dc.ufscar.br/pre_svr2013.zip 5.1. Rastreamento de mãos O Hand Tracker é uma aplicação exemplo da NITE a qual possibilita a utilização de gestos gerados pelas mãos do usuário para manipular aplicações computacionais. Nesta seção, uma versão extendida do Hand Tracker é apresentada, sendo utilizada como forma de interação em um Mini CAVE [Dias, 2012], sendo assim uma interface de entrada para vários ambientes virtuais. A aplicação consiste em mapear os gestos rastreados para entradas convencionais de teclado e mouse por meio do driver uinput. O uinput é um módulo do kernel Linux que permite lidar com o subsistema de entrada de teclado e mouse. Ele pode ser usado para criar e manipular os dispositivos de entrada a partir de uma aplicação, criando um dispositivo de caracteres em /dev/input. A Figura 2 apresenta o uso do Kinect no Mini CAVE do LaVIIC (Laboratório de Visualização Imersiva, Interativa e Colaborativa). Figura 2 – Rastreamento de mãos como meio de interação no Mini CAVE do LaVIIC Primeiramente, deve-se realizar os includes. O principal include é o XnVSessionManager, responsável por gerenciar a sessão do dispositivo. Os includes XnVWaveDetector, XnVPushDetector e o XnVCircleDetector, são responsáveis por reconhecer os gestos realizados com as mãos. O include uinput é responsável pelo driver capaz de mapear os gestos reconhecidos pelo dispositivo para entradas de teclado e mouse. 96 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 89-103, maio/2013. DIAS, Diego Roberto Colombo, et al. Desenvolvimento de Aplicações com Interface Natural de Usuário e Dispositivos PrimeSense como Meio de Interação para Ambientes Virtuais. // Cabeçalhos da NITE e UINPUT #include <XnVSessionManager.h> #include "XnVMultiProcessFlowClient.h" #include <XnVWaveDetector.h> #include <XnVPushDetector.h> #include <XnVCircleDetector.h> #include <linux/uinput.h> Para utilizar as funcionalidades da OpenNI, deve-se primeiro criar um objeto de contexto e inicializá-lo. Antes disso, o aplicativo não pode obter nenhum dado da OpenNI. A classe de contexto fornece várias funções de inicialização, por exemplo, xn ::Context::Init() e xn::Context::InitFromXmlFile(). Uma vez que se tem um objeto Context inicializado é possível criar nós de produção. Sempre que um objeto de xn::ProductionNode é criado, este deve ser associado a um objeto de contexto. No trecho de código abaixo, o contexto é carregado a partir de um arquivo XML. O Gerador de Sessão está relacionado ao início do processo de rastreamento. Neste exemplo, o rastreamento se inicia depois do movimento de “Click” e “RaiseHand”, por meio do comando context.StartGeneratingAll(). { …. xn::Context context; XnVSessionGenerator* pSessionGenerator; // Create context XnStatus rc = context.InitFromXmlFile(SAMPLE_XML_FILE); // Create the Session Manager pSessionGenerator = new XnVSessionManager(); rc = ((XnVSessionManager*)pSessionGenerator)->Initialize(&context, "Click", "RaiseHand"); // Inicialização realizada. Gerando entrada. context.StartGeneratingAll(); } O trecho de código abaixo apresenta os comandos básicos utilizados para interagir com o ambiente virtual proposto (loader do Mini CAVE). São comandos de teclado e mouse. Os comandos relacionados ao teclado e mouse são: movimentos do ponteiro do mouse (X e Y), botão do centro, botão direto e botão esquerdo. As teclas W e S do teclado foram utilizadas para efetuar zoom in e zoom out. int setup_uinput_device() { // Botões do mouse ioctl(uinp_fd, UI_SET_RELBIT, REL_X); ioctl(uinp_fd, UI_SET_RELBIT, REL_Y); ioctl(uinp_fd, UI_SET_KEYBIT, BTN_LEFT); ioctl(uinp_fd, UI_SET_KEYBIT, BTN_MIDDLE); ioctl(uinp_fd, UI_SET_KEYBIT, BTN_RIGHT); 97 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 89-103, maio/2013. DIAS, Diego Roberto Colombo, et al. Desenvolvimento de Aplicações com Interface Natural de Usuário e Dispositivos PrimeSense como Meio de Interação para Ambientes Virtuais. // Teclas do teclado ioctl(uinp_fd, UI_SET_KEYBIT, KEY_W); ioctl(uinp_fd, UI_SET_KEYBIT, KEY_S); return 1; } O trecho de código abaixo apresenta o modo como as coordenadas X e Y do Kinect são mapeadas para as coordenadas do mouse. O Callback efetua a chamada do método move_cursor() sempre que for detectado um movimento de mão pelo dispositivo PrimeSense. Os dados obtidos a partir do dispositivo são normalizados para uma precisão compatível com a do mouse. // Cursor do Mouse void move_cursor(int x, int y ) { memset(&event, 0, sizeof(event)); gettimeofday(&event.time, NULL); event.type = EV_REL; event.code = REL_X; event.value = x; write(uinp_fd, &event, sizeof(event)); event.type = EV_REL; event.code = REL_Y; event.value = y; write(uinp_fd, &event, sizeof(event)); event.type = EV_SYN; event.code = SYN_REPORT; event.value = 0; write(uinp_fd, &event, sizeof(event)); } // Callback void XN_CALLBACK_TYPE OnPointUpdate(const XnVHandPointContext* pContext, void* cxt) { move_cursor((int)(pContext->ptPosition.X/40),(int) -(pContext->ptPosition.Y/40)); … } A OpenNI também possui um wrapper para a linguagem Processing (2013). Max Rheiner implementou a Simple-OpenNI (2013), um wrapper que combina algumas funcionalidades da OpenNI e a NITE para a linguagem Processing. Do mesmo modo que o exemplo em C/C++, o primeiro passo importante para esse experimento é habilitar a camera RGB e o mapa de profundidade a partir da instância do objeto Simple-OpenNI. O código da aplicação Processing está diponível no pacote de código disponibilizado em: http://laviic.dc.ufscar.br/pre_svr2013.zip. 98 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 89-103, maio/2013. DIAS, Diego Roberto Colombo, et al. Desenvolvimento de Aplicações com Interface Natural de Usuário e Dispositivos PrimeSense como Meio de Interação para Ambientes Virtuais. 5.2. Rastreamento de esqueleto O Skeleton Tracker é uma aplicação exemplo presente no pacote da NITE, a qual utiliza o fluxo para habilitar o gerador de usuários (UserGenerator). Existem callbacks que realizam a detecção dos usuários. Nas primeiras versões da OpenNI/NITE, para que o usuário fosse detectado, era necessário que o mesmo estivesse na posição psi. Isso não é mais necessário. O rastreamento retorna a posição e orientação de uma série de juntas ao longo do corpo, permitindo que avatares possam ser animados. Os pontos rastreados são: cabeça, pescoço, tronco, cintura, ombros, cotovelos, pulso, mãos, ponta das mãos, quadril, joelhos, tornozelos e pés. Este exemplo foi desenvolvido utilizando-se a linguagem Java, sendo uma possível solução de desenvolvimento, visto que a OpenNI possui bindings para a linguagem Java. Para que o esqueleto do usuário seja rastreado, é necessário a criação de alguns objetos Java. O UserGenerator é o gerador de usuário. O SkeletonCapability é responsável por atribuir as capacidades do objeto UserGenerator. O PoseDetectionCapability é responsável por identificar as juntas do esqueleto rastreado. O objeto skels é criado a partir da classe SkelsManager, responsável pelas caracterísitcas do esqueleto do usuário. private UserGenerator userGen; private Context context; private SkeletonCapability skelCap; private PoseDetectionCapability poseDetectionCap; private SkelsManager skels; Os objetos OpenNI devem ser inicializados. O trecho de código abaixo apresenta a inicilização dos objetos. O objeto context é inicializado e utilizado pelo objeto userGen (Gerador de Usuário). O objeto skels realiza a integração entre o esqueleto rastreado e o avatar que será renderizado pelo Java3D. private void configOpenNI() { try { context = new Context(); context.setGlobalMirror(true); userGen = UserGenerator.create(context); skels = new SkelsManager(userGen, sceneBG); context.startGeneratingAll(); System.out.println("Inicializado..."); } catch (Exception e) { System.out.println(e); System.exit(1); } } 99 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 89-103, maio/2013. DIAS, Diego Roberto Colombo, et al. Desenvolvimento de Aplicações com Interface Natural de Usuário e Dispositivos PrimeSense como Meio de Interação para Ambientes Virtuais. O Skeleton Tracker possibilita o rastreamento de vários usuário simultaneamente. Para cada usuário detectado, um novo ID é gerado. A verificação skelCap.isSkeletonCalibrating(userID) garante que não ocorram falhas durante a execução do sistema. // Para cada usuário detectado public void update() { try { int[] userIDs = userGen.getUsers(); // Vários usuários detectados for (int i = 0; i < userIDs.length; i++) { int userID = userIDs[i]; if (skelCap.isSkeletonCalibrating(userID)) continue; if (skelCap.isSkeletonTracking(userID)) userSkels3D.get(userID).update(); } } catch (StatusException e) { System.out.println(e); } } A classe principal do sistema, a TrackerPanel3D, implementa Runnable, sendo assim executada por uma thread. Portanto, o método run() recebe as atualizações referentes ao rastreamento e atualiza o estado do esqueleto renderizado durante toda a execução da aplicação. O código abaixo apresenta um trecho do método run(). { isRunning = true; while (isRunning) { try { context.waitAnyUpdateAll(); } catch(StatusException e) { System.out.println(e); System.exit(1); } skels.update(); // get the skeletons manager to carry out the updates } A Figura 3 apresenta o Skeleton Tracker sendo utilizado para controlar um avatar dentro de um ambiente virtual Java3D. 100 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 89-103, maio/2013. DIAS, Diego Roberto Colombo, et al. Desenvolvimento de Aplicações com Interface Natural de Usuário e Dispositivos PrimeSense como Meio de Interação para Ambientes Virtuais. Figure 3 – Skeleton Tracker contrlando um avatar em um ambiente virtual Java3D. A Simple-OpenNI também permite desenvolver aplicações com rastreamento corporal. O método setup() é responsável por inicializar os objetos necessários para que o rastreamento possa ser realizado. SimpleOpenNI kinect; void setup() { kinect = new SimpleOpenNI(this); kinect.enableDepth(); kinect.enableUser(SimpleOpenNI.SKEL_PROFILE_ALL); size(640, 480); fill(255, 0, 0); } O método draw() é um loop infinito da aplicação Processing. O Simple-OpenNI ainda não detecta automaticamente o usuário, sendo necessário que o usuário esteja na posição psy (PSY Pose). Uma vez detectada a posição psy, o método getUsers(IntVector) irá retornar a lista de usuários encontrados na cena. Para este exemplo, a aplicação renderiza somente um usuário, como pode ser visto no trecho int userId = userList.get(0). 101 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 89-103, maio/2013. DIAS, Diego Roberto Colombo, et al. Desenvolvimento de Aplicações com Interface Natural de Usuário e Dispositivos PrimeSense como Meio de Interação para Ambientes Virtuais. void draw() { kinect.update(); image(kinect.depthImage(), 0, 0); IntVector userList = new IntVector(); kinect.getUsers(userList); if (userList.size() > 0) { int userId = userList.get(0); if ( kinect.isTrackingSkeleton(userId)) { drawSkeleton(userId); } } } 6. Conclusões O desenvolvimento de aplicações que utilizam como base de comunicação os gestos, ou em termos de Interface Homem Máquina, a comunicação por meio de NUI, são hoje uma realidade. Vários estudos apontam essa tecnologia como uma ferramenta de alta aceitação nas próximas décadas. Este capítulo apresentou três possíveis bibliotecas de desenvolvimento de aplicações que necessitem utilizar NUI por meio de dispositivos PrimeSense: a libfreenect, a OpenNI e a Microsoft Kinect SDK v1.7. Foram apresentados exemplos utilizando a OpenNI, por se tratar de uma biblioteca que provê meios de rastreamento de mãos e corpo de um modo facilitado (nativamente e NITE), e suporte aos dispositivos PrimeSense (A libfreenect e a Microsoft SDK proveem suporte apenas ao Kinect). Exemplos em três linguagens diferentes foram apresentados, C/C++, Java e Processing, demonstrando assim, o quão flexível pode ser o desenvolvimento de aplicações que realizem interação em ambientes virtuais utilizando os dipositivos PrimeSense. O Rastreador de Mão (Hand Tracker) integrado com o Mini CAVE possibilita a interação de diversos ambientes virtuais utilizando somente as mãos, bastando apenas que as teclas de interação do ambientes sejam mapeadas pelo uinput. O Rastreador de Esqueleto possibilita que o usuário possa caminhar dentro de um ambiente virtual renderizado em Java3D, podendo ser aplicado a qualquer avatar que utilize o mesmo esquema de juntas descritos no exemplo. Utilizando Simple-OpenNI, pode-se obter resultados análogos aos alcançados nativamente com a OpenNI com a simplicidade do Java. Contudo, a Simple-OpenNI não provê todas as funções da OpenNI 2.0. Como tendência futura, tem-se também a interação em ambientes virtuais por meio de estímulos cerebrais. A Neurociência tem realizado pesquisas relacionadas a BCI (Brain Computer Interface), sendo considerada um canal não muscular de comunicação com o computador. 102 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 89-103, maio/2013. DIAS, Diego Roberto Colombo, et al. Desenvolvimento de Aplicações com Interface Natural de Usuário e Dispositivos PrimeSense como Meio de Interação para Ambientes Virtuais. 7. Referências BHUIYAN, M.; PICKING, R. “Gesture-controlled user interfaces, what have we done and what’s next?”, In: Proceedings of the Fifth Collaborative Research Symposium on Security, E-Learning, Internet and Networking (SEIN 2009), Darmstadt, Germany, 26-27, 2009. CHERNSHENG LIN A; ET.AL. “Development of a body motion interactive system with a weight voting mechanism and computervision technology”. Elsevier, 2011. DIAS, D. R. C. ; BREGA, J. R. F. ; TREVELIN, L. C. ; POPOLIN NETO, M. ; GNECCO, B. B. ; GUIMARÃES, M.P. “Design and Evaluation of an Advanced Virtual Reality System for Visualization of Dentistry Structures”. In: 18th International Conference on Virtual Systems and Multimedia, 2012, Milan. VSMM 2012, 2012. v. 1. p. 1-1. GHIROTTI S. E.; MORIMOTO C. H. “Um sistema de interação baseado em gestos manuais tridimensionais para ambientes virtuais”. Departamento de Ciência da Computação, IME/USP. GNECCO, B. B.; DIAS, D. R. C.; BRASIL, G.J.C.; GUIMARÃES, M. P. “Desenvolvimento de Interfaces Naturais de Interação usando o Hardware Kinect”. Tendências e Técnicas em Realidade Virtual e Aumentada, v. 2, p. 37-62, 2012. Microsoft SDK. Kinect for Windows | Voice. Movement & Gesture Recognition. Disponível em: http:// www.microsoft.com/en-us/kinectforwindows/. Acessado em: março de 2013. NITE. Middleware PrimeSense. Disponível em: http://www.primesense.com/solutions/nite-middleware/. Acessado em: março de 2013. OpenKinect. libfreenect – Github. Disponível em: https://github.com/OpenKinect/libfreenect. Acessado em: março de 2013. OpenNI. The standard framework for 3D sensing. Disponível em: http://www.openni.org/. Acessado em: março de 2013. PrimeSense. Sensors PrimeSense. Disponível em: http://www.primesense.com/. Acessado em: março de 2013. Processing. Getting Started with Kinect and Processing - Disponível em: http://www.shiffman.net/p5/ kinect/. Acessado em: março de 2013. Simple-OpenNI. OpenNI library for Processing. Disponível em: http://www.openni.org/files/ simpleopenni/#.UVCS1KD2a0w. Acessado em: março de 2013. WEIYUAN, L. “Natural user interface - next mainstream product user interface” Computer-Aided Industrial Design & Conceptual Design (CAIDCD), 2010 IEEE 11th International Conference on , vol.1, no., pp.203-205, 17-19 Nov. 2010. WIGDOR, D.; WIXON, D. “Brave NUI World: Designing Natural User Interfaces for Touch and Gesture” (1st ed.). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2011. 103 104 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 104-120, maio/2013. GNECCO, Bruno Barberi, et al. Estratégias mistas de mecanismos para imersão em modelos de interação em ambientes virtuais de treinamento. Estratégias mistas de mecanismos para imersão em modelos de interação em ambientes virtuais de treinamento Bruno Barberi Gnecco Rodrigo de Godoy Domingues Gustavo Jordan Castro Brasil Diego Roberto Colombo Dias Luis Carlos Trevelin Abstract Virtual environments for training are common in high value industries, such as in flight simulators, where the cost of equipment and/or the human risks are high. They are being increasily more used and one of its type, serious games, has established itself in the market. We still have a lot to improve in how we interact physically with the software. In high cost systems it is possible to reproduce the entire physical interface of the equipment, and use visual, aural and haptic feedback. The simplest systems use only mouse and keyboard, with which the user can train the concept of the task at hand, but not the physical aspect, which is a completely differect kind of learning, mapped to other areas of the brain. In this text we show how interaction and immersion in serious games can be accomplished to enhance the user experience and engage the physical aspect of training. Resumo Ambientes virtuais de treinamento são comuns em indústrias de alto valor agregado, como simuladores de vôos, onde o custo de um equipamento e/ou o risco humano são altos. Estão sendo cada vez mais usados e sua vertente de serious games tem se estabelecido. No entanto o modelo de interação é ainda um componente a ser trabalhado. Em sistemas de maior custo é possível reproduzir a interface física do equipamento real, e usar retorno visual, audível e háptico. Sistemas básicos se reduzem a mouse e teclado, o que auxilia o treinamento mental mas não permite treinar as tarefas físicas, que envolvem uma forma de aprendizado cerebral distinta. Neste texto mostramos possibilidades de mecanismos de interação com maior imersão, que permitem envolvimento físico. 104 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 104-120, maio/2013. GNECCO, Bruno Barberi, et al. Estratégias mistas de mecanismos para imersão em modelos de interação em ambientes virtuais de treinamento. 1. Introdução Ambientes virtuais de treinamento utilizando abordagem de serious games estão sendo utilizados cada vez mais para formação, treinamento e educação cientifica sobre situações do mundo real. A fim de reproduzir um modelo de interação e imersão eficiente sobre uma abordagem com nível de realismo em ambientes virtuais e sistemas de interação, é fundamental desenvolver aplicações semelhantes ao mundo real. O nível de realismo pode influenciar a uma reação e estratégia esperada diferente no mundo virtual. Os mecanismos de interação, como uma interface física de um equipamento real, são elementos fundamentais para a percepção e ações de estímulos sensoriais como audição, olfato e tato. A modelagem virtual e seus aspectos realistas na simulação da cena, personagens e objetos se tornam afetivos para a cognição do usuário com o ambiente. Atributos da cena como espaço-tempo, interação e comportamento fazem com que a experiência do usuário se torne mais real. Este capítulo visa demonstrar as atuais abordagens de uso dos serious games em ambientes virtuais e suas possibilidades de mecanismos de interação com maior nível de imersão, permitindo também o envolvimento físico. 2. Ambientes Virtuais e Sistema de Interação Ambientes virtuais de treinamento são comuns em indústrias de alto valor agregado, como simuladores de vôos, onde o custo de um equipamento e/ou o risco humano são altos. A segurança proporcionada por tais ambientes também é um chamativo para esse tipo de treinamento, pois se o aluno efetuar algum erro, este não causará nenhum dano real ao equipamento ou a si mesmo. Os ambientes virtuais de treinamento podem ser utilizados para, praticamente, todos os tipos de áreas de aplicação com níveis de complexidade diversos. A característica básica em um ambiente virtual de treinamento é a interação. O ambiente deve prover alto nível de interação, fornecendo feedback ao usuário e o aprendizado que ele proporciona. O usuário deve ser capaz de realizar o treinamento quantas vezes for necessário, de modo que o sistema apresente a ele seus resultados, identificando os erros e indicando a ação correta para um treinamento eficiente. Morton Heilig, na década de 1950, fez uma das primeiras tentativas a fornecer ao usuário um ambiente virtual multissensorial [Rheingold, 1992]. O ambiente, chamado Sensorama, era um dispositivo mecânico que apresentava imagens estereoscópicas 3D, movimentação de inclinação do usuário, reprodução de áudio em estéreo, vento, som e aromas. Ambientes virtuais por muitas décadas foram restritos a estímulos visuais, táteis e auditivos. No entanto, a utilização de aromas para o estimulo do olfato tem sido alvo de pesquisas para ambientes de treinamento no manuseio de matérias perigosas, treinamento de bombeiros, diagnóstico médico, entretenimento e a visualização de processos científicos como reações químicas. Umas das primeiras aplicações para treinamento auxiliadas pelo uso de ambientes virtuais foram as cabines virtuais para pilotos. Desde o surgimento da primeira aeronave, surgiu a necessidade de se treinar os pilotos sem que esses fossem expostos a riscos. Os primeiros simuladores de vôo eram compostos por cabines com controles mecânicos acionados por ar comprimido. No entanto, somente a sensação de estar dentro de uma aeronave não é suficiente, sendo necessário conhecimentos prévios 105 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 104-120, maio/2013. GNECCO, Bruno Barberi, et al. Estratégias mistas de mecanismos para imersão em modelos de interação em ambientes virtuais de treinamento. de todos os comandos, painéis e procedimentos corretos para cada aeronave. A geração de situações extremas adversas devem ser treinadas, sendo característica de um bom sistema de treinamento de vôo. A área médica também tem sido beneficiada por ambientes virtuais de treinamento, pois neste tipo de treinamento não somente os usuários correm riscos, mas também os pacientes. Hoje em dia, os futuros médicos são treinados utilizando-se cobaias ou por meio da observação de outros médicos. Chagas et. al. (2012) propuseram um ambiente virtual de treinamento de operadores de sondas de perfuração terrestre. Ainda Chagas et. al. (2012) demonstra que um treinamento contínuo para os trabalhadores é altamente recomendado, assim, no ambiente proposto, os operadores são expostos a várias circunstâncias nas quais eles podem exercitar seu conhecimento sobre o seu trabalho e aprender com situações adversas. 3. Serious Games O termo game ou jogo pode ser definido de várias formas. Comumente o termo é utilizado para definir uma competição física ou mental, que utiliza um conjunto de regras artificiais com objetivo a ser alcançado e, na maioria das vezes para diversão dos participantes. Os video-games podem ser caracterizados por aplicações baseadas em computação gráfica, no entanto, focando o entretenimento [Machado et. al, 2009]. Os video-games são desenvolvidos para várias plataformas, tais como computadores, consoles e atualmente smartphones. As plataformas têm suas diferenças e características, como capacidade de processamento, interface visual e, do utilizador. Os serious games praticados em ambientes virtuais e sistemas de interação podem ser caracterizados como uma sub-categoria de simulation video-games, geralmente projetados para simular aspectos da realidade ou ficção; entretanto serious games são desenvolvidos para abordar aspectos de treinamento e não apenas o entretenimento. Contudo, não existe uma definição precisa para o termo serious games [Machado et. al , 2009]. Segundo Zyda (2005), os serious games visam simular as situações práticas cotidianas, objetivando proporcionar o treinamento de profissionais, situações extremas em treinamentos na educação, formação empresarial, saúde, politicas públicas, e os objetivos de comunicação estratégica. Assim, os serious games utilizam as abordagens da indústrias de jogos para tornar as simulações mais atraentes aos usuários [Blackman, 2005]. Segundo Machado et. al. (2009), os primeiros serious games surgiram na década de 80, impulsionados pelos simuladores desenvolvidos pelos Estados Unidos para a área militar. Eles também afirmam que a integração entre os serious games e a Realidade Virtual e Aumentada encontra-se na proposta de novas aplicações e formas de exploração dos recursos computacionais. Como mencionado, os serious games são aplicados em simulações de situações críticas que envolvam riscos, tomada de decisões ou desenvolver habilidades específicas. Serious games tem sido aplicado na saúde para buscar e modificar o comportamento com cuidados da saúde [Thompson, 2010] e também na utilização da prevenção de doenças e no alcance de hábitos saudáveis [Baranowski, 2008]. Segundo Tolentino (2011) os serious games aplicados na área da saúde, se obtém representações sobre o confronto entre a saúde e a doença podendo trazer as pessoas em riscos uma mensagem positiva de otimismo e perseverança ao usuário. Alguns exemplos de serious games são apresentados a seguir. 106 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 104-120, maio/2013. GNECCO, Bruno Barberi, et al. Estratégias mistas de mecanismos para imersão em modelos de interação em ambientes virtuais de treinamento. O ViMeTGame é uma ferramenta proposta para o treinamento de biópsias mamárias utilizando dispositivos hápticos em ambientes virtuais [Torres et. al, 2012]. A Figura 1 apresenta o ambiente de execução e a execução do serious games ViMeTGame. Figura 1 – ViMeTGame [Torres et. al, 2012] Aplicações para o treinamento de condução de veículos também são utilizadas. O 3D Driving Academy recria áreas de Paris, Londres e Berlim, aplicando as diferentes leis de trânsitos para cada local, sendo capaz de emitir o resultado de avaliação do usuário, apresentando as possíveis violações de leis de trânsito que ele tenha cometido [3D-fahrschule, 2013] a figura 2 apresenta o simulador veicular. Figura 2 - 3D-Fahrschule - Simulador de condução veicular [3D-fahrschule, 2013] 107 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 104-120, maio/2013. GNECCO, Bruno Barberi, et al. Estratégias mistas de mecanismos para imersão em modelos de interação em ambientes virtuais de treinamento. O SGIL Virtual Aircraft Handler é um simulador para o treinamento de pessoas para o manuseio de aeronaves. Ele pode criar uma experiência de treinamento realista e intensa, por meio de tecnologias de visualização e interação. O principal benefício do SGIL VIrtual Aircraft Handler é possibilitar, de forma eficiente e segura, o treinamento de uma tarefa difícil de ser realizada em um local real, isto é, um aeroporto [Holodeck, 2013]. A Figura 3 apresenta um exemplo do uso do simulador. Figura 3 - SGIL Virtual Aircraft Handler [Holodeck, 2013] 4. Realismo Os ambientes virtuais que proporcionam a mesma resposta de percepção como se estivessem realmente presentes na cena real Chalmers et. al (2007) define como there-reality. Na construção de um ambiente virtual de simulação, as características e aspectos mais relevantes a serem ensinados devem estar presentes no mesmo. Assim o realismo em serious games tem um papel importante na experiência dos usuários, pois a exposição em ambientes virtuais inadequados influencia nas estratégias das ações futuras [Mania et. al, 2003]. Efeitos visuais, sonoros e de interfaces de retorno háptico são bastante utilizados em serious games, mas nem sempre estes estímulos são baseados em algoritmos para reprodução da física adequada. Segundo Chalmers et .al (2009) o LoR (Levels of Realism) deve ser definido para se alcançar o melhor mapeamento de uma experiência no ambiente virtual ao mesmo nível de um ambiente real. Yu et. al (2012), classifica dois tipos de realismo visual que podem ser aplicados em ambiente virtuais: o realismo geométrico e o realismo de iluminação. Rossou (2004) propôs uma abordagem baseada na utilização de imagens 3D, com intuito de criar modelos realistas aplicando as fotografias sobre modelos aramados. A Figura 4 um exemplo de aplicação de imagens 3D. A comunidade da CryEngine propôs um concurso Crysis versus Realidade. [Bayer 108 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 104-120, maio/2013. GNECCO, Bruno Barberi, et al. Estratégias mistas de mecanismos para imersão em modelos de interação em ambientes virtuais de treinamento. 2008] faz sua reprodução a partir da CryEngine na figura 5 apresenta os screenshots demonstrando a capacidade realista de iluminação e sombra da game engine. Figura 4 - Aplicação de fotografias sobre modelos virtuais aramados [Roussou, 2004] Figura 5 - Fotografia Real (esquerda) Computação Gráfica gerado por CryEngine2 (direita) [Bayer, 2008] 5. Modelagem virtual de atributos físicos de cenas reais O impacto da percepção dos estímulos sensoriais dos ambientes virtuais são evidenciados anteriormente, sendo assim a modelagem de todos os atributos físicos reais para reprodução destes estímulos devem ser considerados. 109 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 104-120, maio/2013. GNECCO, Bruno Barberi, et al. Estratégias mistas de mecanismos para imersão em modelos de interação em ambientes virtuais de treinamento. 5.1. Game Engines No desenvolvimento de jogos, o desenvolvedor deve se preocupar com características como arte, áudio e jogabilidade. O processo de desenvolvimento de jogos possui 3 estágios: pré produção, produção e pós produção. A pré produção está relacionada a ideia e conceitos que o jogo abordará. A produção está relacionada ao design, programação, produção de arte, áudio e teste. A pós produção é fase de manutenção e atualização do jogo. É na fase de produção que a base tecnológica para jogos modernos geralmente é fornecida por uma game engine, o qual auxilia o desenvolvedor no processo de desenvolvimento de jogos, provendo um grupo de ferramentas visuais e componentes reutilizáveis. A indústria de jogos demonstra que se utilizam de games engines no processo de desenvolvimento de seus games [Deloura, 2009]. Um game engine é subdividido em subsistemas: renderer, detecção de colisão, entrada e saída, som e música, comunicação de rede, gerenciador de dados, inteligência artificial, física e interface gráfica. O desenvolvimento de jogos, o desenvolvedor deve se preocupar com características como arte, áudio e jogabilidade. O processo de desenvolvimento de jogos possui 3 estágios: pré produção, produção e pós produção. A pré produção está relacionada a idéia e conceitos que o jogo abordará. A produção está relacionada ao design, programação, produção de arte, áudio e teste. A pós produção é fase de manutenção e atualização do jogo. É na fase de produção que a base tecnológica para jogos modernos geralmente é fornecida por uma game engine, o qual auxilia o desenvolvedor no processo de desenvolvimento de jogos, provendo um grupo de ferramentas visuais e componentes reutilizáveis. A indústria de jogos demonstra que se utilizam de games engines no processo de desenvolvimento de seus games [Deloura, 2009]. A Tabela 1 apresenta alguns games engines e suas compatibilidades. Tabela 1 - Compatibilidade dos Game Engines Engine Windows GNU/Linux Android iOS Xbox 360 PlayStation CryEngine3 √ x x x √ √ RAGE Engine √ x x x √ √ Anvil Engine √ x x √ √ Unreal Engine 3 √ x x √ √ √ Blender Game Engine √ √ x x X x Unity3D √ √ √ √ √ √ O CryEngine 3 é um game engine criado pela empresa Crytec. Ele é multiplataforma, sendo compatível com PC, XBOX 360 e PS3. Na plataforma PC, o CryEngine 3 é compatível com DirectX 9, 10 e 11, sendo um engine com tecnologias gráficas avançadas, física e animação. Dentre as melhorias gráficas, tem-se o sistema de iluminação e sombra, onde o CryEngine 3 proporciona um realismo nunca provido por outros engines. 110 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 104-120, maio/2013. GNECCO, Bruno Barberi, et al. Estratégias mistas de mecanismos para imersão em modelos de interação em ambientes virtuais de treinamento. RAGE, ou Rockstar Advanced Game Engine, foi uma colaboração conjunta entre RAGE Technology Group e Rockstar. RAGE combina uma estrutura de processamento, motor de física, áudio, bibliotecas de rede, motor de animação e linguagem de script. Algumas dessas características vêm de outras fontes, como o motor Euphoria (animação) e motor de física Bullet, partes do qual foram integrados ao RAGE. O Anvil Engine é um game engine multiplataforma desenvolvido pela Ubisoft em 2007. A modelagem do ambiente pode ser feita no 3ds Max e a dos personagens no ZBrush. O Anvil Engine foi utilizado por alguns jogos na franquia Assassin’s Creed. O Unreal Engine 3 foi desenvolvido pela Epic Games em 2005, sendo usado pela primeira vez no game Gears of War, jogo exclusivo do XBOX 360. Ele possui suporte ao PlayStation 3 e XBOX 360. Houve adição de novas tecnologias no game engine devido as parcerias feitas pela Epic, por exemplo, o recurso PhysX da NVidia. O Unity3D Engine é um game engine desenvolvido pela Unity Technologies, sendo a última versão lançada em dezembro de 2012. É um engine multiplataforma, sendo compatível até mesmo com dispositivos móveis e ambientes web. O Unity Engine foi escrito em C/ C++, suportando o desenvolvimento de jogos em outras linguagens, tais como o C# e Javascript. A Corollarium Tecnologia (2013) está desenvolvendo o Virtuactor, um game engine baseado no Unity3D. Ele permite criar aplicações com interação realizada por Wii Remote e Kinect. É um sistema dinâmico e desacoplado de regras, de modo a facilitar a arquitetura e desenvolvimento de sistemas de RV com modelagem comportamental para produção de serious games. 6. Visão geral da interação multi modal e Imersão 6.1. Imersão Os ambientes virtuais devem ser imersivos e engajadores. Segundo Kirner et. al (2004), a imersão está relacionada à sensação de estar dentro do ambiente virtual. O uso de dispositivos específicos para alcançar a imersão é necessário, tais como HMDs e CAVEs. Segundo Childs (2010), alguns dos usuários de sistemas de Realidade Virtual nunca tiveram uma experiência imersiva completa, outros tiveram imersão parcial, e alguns poucos tiveram uma imersão total. Ele afirma que apenas utilizar um ambiente virtual não faz com que o usuário tenha uma experiência imersiva. Childs afirma que 4 fatores são importantes para que um usuário usufrua de imersão em um ambiente virtual: (i) A disposição do usuário com relação a imersão; (ii) O uso de avatares; (iii) A interação com outros usuários no mesmo ambiente virtual; (iv) e As características técnicas do ambiente virtual, isto é, o quão próximo do real ele é. 6.2. Mecanismos de interação Em um ambiente virtual a interação é uma característica importante para uma experiência de RV com qualidade. Assim, é de extrema importância a satisfação do usuário com relação a interação, 111 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 104-120, maio/2013. GNECCO, Bruno Barberi, et al. Estratégias mistas de mecanismos para imersão em modelos de interação em ambientes virtuais de treinamento. com o intuito de aumentar o seu engajamento no ambiente. Diferentes aplicações requerem tecnologias distintas, que vão desde rastreamento corporal por meio de dispositivos de Interface Natural de Usuário até mesmo a controles convencionais acionados por meio de botões. Ao escolher um meio de interação, deve-se focar nos seguintes aspectos: possibilidade de replicar os movimentos e ações reais do usuário, permitindo que ocorra um treinamento do corpo todo e; foco nas ações em si, e não nos dispositivos utilizados. O usuário deve poder executar as ações do serious game sem precisar perder a atenção ao jogo em si, portanto elas devem ser simples e naturais comparadas ao ambiente real. Esta seção apresenta alguma tecnologias e inovações existentes capazes de prover diferentes formas de interação em ambientes virtuais para serious games. A Figura 6 apresenta um exemplo de criação de um serious game. Figura 6 - Virtuactor, criação e visualização do serious game [Corollarium, 2013] 6.2.1. Rastreamento por câmeras Dispositivos de rastreamentos por câmera, tem sido uma das atuais abordagens para interação pela indústria de games e de abordagens estudas pela linha de Natural User Interfaces [Gnecco et. al, 2012]. Um exemplo proeminente é o dispositivo Microsoft Kinect lançado como sensor de movimento para o console Xbox 360, jogos onde o usuário se utiliza de gestos, fala e comandos para interagir com game por sua vez o dispositivo tem sido explorado e aplicado em outras áreas como interface humano computador, o estudo de caso, do jogo de quebra cabeças o KiPuzzle [Guimarães et. al, 2011] na figura 7, que utiliza como interface o dispositivo Kinect, demonstra que o nível de dificuldade aprendizado diminui utilizando gestos no qual pode ser aplicado aos serious games. 112 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 104-120, maio/2013. GNECCO, Bruno Barberi, et al. Estratégias mistas de mecanismos para imersão em modelos de interação em ambientes virtuais de treinamento. Figura 7 - Jogo de quebra-cabeça KiPuzzle [Guimarães et. al, 2011] O dispositivo Microsoft Kinect possuí dentre seus componentes uma câmera RGB, sensor de profundidade, vetor de microfones, um motor de inclinação, sensor de voz, e, um acelerômetro de três eixos e conexão USB 2.0. A Microsoft lançou um Kinect específico para PC, pois os destinados a XBOX 360 não possuem licença para serem utilizados em PCs. A versão para PC, por sua vez, possui um kit desenvolvimento básico incluso, capaz de suportar gestos e voz em aplicações desenvolvidas para o sistema operacional Windows. O dispositivo Microsoft Kinect é baseado em um projeto do sensor PrimeSensor desenvolvido pela PrimeSense. A PrimeSense detentora da tecnologia PrimeSense Light Coding™ Technology [PrimeSense, 2013] implementa em seus chips a tecnologia de captura de profundidade, cor, e áudio. A captura de profundidade é baseada na reconstrução 3D por luz estruturada: consiste em uma fonte de luz infravermelha (IR) que projeta um padrão de pontos, que são lidos por uma câmera IR monocromática. A câmera IR captura partes refletidas do padrão de pontos e converte suas intensidades em distâncias. A empresa ASUS também possui seu sensores a classe Xtion [AsusXtion, 2013] baseado na tecnologia da PrimeSense Light Coding™ Technology. Atualmente sensores são fabricados também pela PrimeSense dentre eles são o Carmine que possuí duas versões 1.08 e 1.09 a diferença entre as versões está no range das câmeras infra-vermelho, sendo 0.8m-3.5m no Carmine 1.08, e 0.,5-1.4m no Carmine 1.09 e o CAPRI 1.25 sensor baseado para dispositivos como smartphones, tablets e sistemas embarcados. O LEAP Motion Controller [LEAP, 2013] é um dispositivo de interação por meio de gestos, sua principal características é ser focado em uso em desktops para o uso das mãos ou canetas em uma área de oito metros cúbicos, ele possui três LEDs e duas câmeras infravermelho que são capazes de detectar movimento em um centésimo de milímetro. Sua conexão de dados é feita por USB 2.0. A tecnologia de profundidade se baseia também na reconstrução 3D por luz estruturada igualmente ao Microsoft Kinect. A Figura 9 apresenta o dispositivo Leap Motion Controller. 113 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 104-120, maio/2013. GNECCO, Bruno Barberi, et al. Estratégias mistas de mecanismos para imersão em modelos de interação em ambientes virtuais de treinamento. Figura 9 - Leap Motion Controller Sony PlayStation Move [Move, 2013] é composto pela PlayStation Eye uma câmera RGB comum e um vetor de microfones semelhante ao dispositivo Microsoft Kinect e o PlayStation Move's motion controller dispositivo que possuí um acelerômetro e um giroscópio de três eixos e conexão Bluetooth 2.0. O PlayStation Move, possuí uma diferença ao Wii Remote, pode localizar o controlador de movimento no espaço 3D. A câmera PlayStation Eye reconhece a posição X e Y, bem como o tamanho relativo da esfera brilhante no controlador de movimento para identificar a localização do controlador referente a distância entre o dispositivo e o usuário. 6.2.2. Joysticks O uso, de Joysticks, pode trazer uma interface mais próxima do treinamento e que promovem a utilização de botões para simulação artificial dos comandos, assim, o nível de aprendizado da reprodução dos comandos aumenta e, deve se focar nos resultados do usuário com a interface. Um exemplo é um manche avião muitas empresas de dispositivos de entrada para games tendem a aproximar o modelo de seus joysticks o mais próximo do real. A utilização de controles e joysticks pela indústria de games para reprodução de interface de armas e volantes para direção tem se destacado um exemplo proeminente é o Wii Remote [WiiRemote, 2013] um controle desenvolvido pela Nintendo para o console Wii. Segundo a Nintendo, o controle foi uma revolução na forma de jogar, pois, diferente de controles convencionais, ele capta os movimentos do usuário por meio de acelerômetros e sensor infra vermelho. O Wii Remote possui uma extensão para o Nunchuk, sendo esse um controle analógico que se encaixa anatomicamente na mão do usuário. O Wii Remote e o Nunchuk podem ser utilizados simultaneamente. Aplicações e ambientes de realidade virtual tem se utilizado o Wii Remote. Dias et al (2012), utiliza o Wii Remote como meio de interação em um ambiente de ensino de odontologia. A Figura 10 apresenta o ambiente de ensino. Por possuir uma interface de conexão bluetooth, pode ser facilmente conectado a um computador. As possibilidades de desenvolvimento são diversas, possuindo bindings em C/C++, Java e Python. 114 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 104-120, maio/2013. GNECCO, Bruno Barberi, et al. Estratégias mistas de mecanismos para imersão em modelos de interação em ambientes virtuais de treinamento. Figura 10 - O uso do dispositivo Wii Remote na miniCAVE do grupo LaVIIC [LaVIIC, 2013] 6.2.3. Luvas As luvas são capazes de prover o rastreamento de movimentos intuitivos de toque, apontamento e manipulação de objetos em um ambiente virtual. Alguns modelos de luvas permitem ao usuário a sensação de feedback, isto é, toda interação que o usuário realizar em um ambiente virtual pode gerar alguma sensação de retorno ao mesmo. São três os possíveis feedback: tátil, força ou térmico. O feedback tátil possibilita ao usuário sentir a determinada textura do objeto que está sendo manipulado. O feedback de força oferece resistência a manipulação do usuário, por exemplo, quando o usuário efetua o movimento de pegar uma caixa, a luva deve prover alguma resistência, de modo que o usuário realmente tenha a sensação de estar segurando algo. O feedback térmico permite que o usuário tenha sensações referentes a temperatura do objeto que está sendo manipulado. Existem diversas luvas de dados no mercado, porém, uma das mais utilizadas é a 5DT Data Glove [Glove]. Esta luva é capaz de capturar movimentos das mãos do usuário para serem utilizados em animações ou ambientes virtuais. Sua interface de comunicação é USB, tendo a possibilidade de ser conectada por uma interface sem fio comercializada separadamente. A 5DT é comercializada em dois modelos, o que difere os modelos é a quantidade de sensores, o que tem influência diretamente na precisão de detecção dos movimentos. As luvas de dados são utilizadas em ambientes que necessitam de rastreamento precisos das mãos. Marca et. al (2011) desenvolveu um sistema de treinamento de LIBRAS (Língua Brasileira de Sinais), o qual utiliza luvas de dados para obter o rastreamento dos dedos do usuário; o movimento dos braços são rastreados por meio de Wii Remotes acoplados nos braços do usuário. A Figura 11 apresenta o Sistema de Treinamento de LIBRAS. 115 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 104-120, maio/2013. GNECCO, Bruno Barberi, et al. Estratégias mistas de mecanismos para imersão em modelos de interação em ambientes virtuais de treinamento. Figura 11 - Sistema de Treinamento de LIBRAS [Marca et. al, 2011] 6.2.4. Aromas Aromas, podem potencializar as ações e experiências do jogo, trazendo odores naturais do ambiente. Segundo Washburn (2004) o olfato pode desempenhar um papel crucial em ambientes virtuais de treinamentos, um exemplo é no treinamento de bombeiros. Ainda Washburn (2004) cita que os atuais ambientes virtuais possuem sistemas avançados de saída de áudio e vídeo para imersão visual, mas para o aroma é muito limitado e/ou ausente. A reprodução de um aroma pode desencadear excitação, medo e muitas outras emoções. Adicionando estas reproduções aos serious games se visa criar uma experiência de treinamento mais realista. O dispositivo ScentWave cria experiências de aromas e pode ser utilizado em ambientes virtuais, possuí tecnologia de ar seco sem a utilização de aerossóis ou óleo, sua duração e intensidade podem ser configuradas. Ele possuí um detector de movimento de até 8 metros distância. Cada ScentWave é carregado com um cartucho de perfume que é incorporado com uma fragrância. Estes cartuchos podem ser facilmente substituídos, permitindo que você altere aromas para coordenar com novos ambientes. A empresa AromaJet criou um protótipo sistema de geração de aroma o Pinoke. Eles demonstraram que a tecnologia pode ser um dispositivo para o usuário de games. Utilizando uma linguagem de programação para gerar eventos para emissão do gerador de aromas. Pesquisadores da University of Southern California’s ICT em colaboração com a empresa AnthroTronix Inc, tem realizado pesquisas de sensores para ambientes imersivos, e desenvolveram um projeto de um dispositivo de estimulação olfativa. O dispositivo chamado ICT Scent Collar o colar tem intensidade ajustável para o controle da quantidade e a duração do aroma liberado sua interface de comunicação é via Bluetooth. 116 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 104-120, maio/2013. GNECCO, Bruno Barberi, et al. Estratégias mistas de mecanismos para imersão em modelos de interação em ambientes virtuais de treinamento. 7. Análise e feedback aos usuários Além da segurança e menor custo, outra grande vantagem de usar serious games ao invés de equipamentos reais é a possibilidade de monitorar detalhadamente o desempenho do usuário. Isso permite rever as sessões de treinamento, identificar problemas e treinar os aspectos mais deficitários do usuário. Para isso é importante ter um sistema de relatórios, visualização de resultados e até mesmo poder assistir novamente as sessões dos usuários, para verificar falhas e poder aprender com elas. Um serious game que não tenha estas informações cumpre mal seu propósito, pois não permite quantificar qual o conhecimento do usuário, qual sua taxa de aprendizado, quais seus erros mais comuns. Não permite também verificar que as pessoas estão acessando o sistema e usando-o. Dentre os relatórios desejados temos relatórios gerais do sistema, como relatórios de acesso, assim como relatórios de desempenho dos usuários, e relatórios comparativos entre usuários. Alguns dados importantes para estes relatórios: • Quantidade de acessos, por usuário e global do sistema. É importante para verificar se o sistema está sendo usado por todos na taxa esperada. • Tempo de uso do sistema por cada usuário: pode ser medido por simulação, verificando o tempo médio dela, e agregado por mês, notando quantas horas de treinamento cada usuário recebe. • Roteiros treinados: serious games podem apresentar vários roteiros ou cenários diferentes, cada um explorando um determinado aspecto ou problema. É preciso verificar quais Permite também quantificar quais os roteiros mais usados e menos usados. • Execução do roteiro: data do teste, usuário e roteiro utilizado são informações básicas. É preciso também anotar coisas como etapas corretas, etapas esquecidas, etapas feitas fora de ordem, etapas feitas incorretamente. Baseado no tempo esperado, pode-se quantificar a eficiência da operação, com um gráfico do tempo gasto nas diferentes etapas do processo. • Relatórios agregados: em empresas grandes com diversos usuários é importante gerar relatórios agregados, que mostrem resultados por área geográfica, por roteiro, por tipo de equipamento simulador, etc. Isso permite identificar onde estão os principais problemas correntes para concentrar as simulações nele. • Cruzar informação de treino com informações reais: se determinado equipamento possui uma taxa maior de erros no seu uso real, deve-se aumentar o treinamento dele. É importante poder cruzar os dados reais com os virtuais para identificar estas necessidades. • Relatórios históricos: permitem acompanhar a melhora de desempenho dos usuários ao longo do tempo, demonstrando a eficácia do treinamento ou verificando que certos problemas persistem e precisam ser lidados. 8. Conclusão Serious games estão cada vez mais populares. Com as atuais possibilidades de imersão e interação, eles permitem um maior engajamento do usuário e uma simulação mais realista e condizente. Este capítulo apresentou possíveis formas de interação a serious games visando melhorias com relação à imersão dos usuários nessas aplicações. 117 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 104-120, maio/2013. GNECCO, Bruno Barberi, et al. Estratégias mistas de mecanismos para imersão em modelos de interação em ambientes virtuais de treinamento. Foram apresentadas diferentes tecnologias, desde dispositivos que fazem o uso de Interface Natural de Usuário, até mesmo joysticks, que fazem uso de botões artificiais. Existe diferença com relação ao custo desses dispositivos. Alguns, tais como as luvas de dados, são mais caros que os outros, por exemplo, o Wii Remote. Contudo, deve-se definir qual o tipo de interação necessária a aplicação que será desenvolvida, para que o dispositivo correto possa ser escolhido. Existe também a possibilidade de combinar diferentes dispositivos, por exemplo, pode-se efetuar o rastreamento do esqueleto do usuário com um Kinect, e, ao mesmo tempo, obter dados referentes aos dedos do usuário utilizando uma luva de dados. Aplicações, tal como o treinamento de linguagem de sinais, necessitam desse tipo de combinação de rastreamento, visto que dispositivos por rastreamento de rastreamento de câmeras como o Kinect não são capazes de rastrear, com precisão, os dedos. Como foi afirmado, o usuário deve efetuar o treinamento quantas vezes for necessário, mas com um acompanhamento efetivo de seu aproveitamento. Isso permite verificar as falhas e problemas e corrigi-los rapidamente. Com relação aos efeitos visuais, os game engines têm se destacado. O uso de tal tecnologia garante desempenho, qualidade gráfica e alta produtividade. Como apresentado na seção 5, existem alguns game engines que possuem compatibilidade com várias plataformas. Assim, o desenvolvimento de serious games criados a partir da combinação de game engines e a interação por meio de dispositivos como os que foram apresentados, permite a criação de aplicações de simulação e treinamento cada vez mais realistas, e explorando a cognição dos usuários. Referências RHEINGOLD, H. (1992). “Virtual Reality”, Simon & Schuster, New York, N.Y. CHAGAS, J.F.S.; NETO, F.M.M.; BONATES, M.F.; BRASIL, I.S.; LIMA, R.M. (2012) “Um Jogo para Treinamento de Operadores de Sondas de Perfuração Terrestre”, Ano 28, Vol 1, 2012. MACHADO, L.S.; MORAES, R.M.; MARQUES, F.L.S.N. (2009). “Serious Games para Saúde e Treinamento Imersivo”, In: Fátima L. S. Nunes; Liliane S. Machado; Márcio S. Pinho; Cláudio Kirner. (Org.). Abordagens Práticas de Realidade Virtual e Aumentada. Porto Alegre: SBC, 2009, v. , p. 31-60. ZYDA, M. (2005) "From visual simulation to virtual reality to games," In: Computer , vol.38, no.9, pp.25,32, Sept. 2005 BLACKMAN, S. (2005). “Serious games...and less!” In: SIGGRAPH Comput. Graph. 39, 1 (February 2005), 12-16. THOMPSON, D; BARANOWSKI, T; BUDAY, R; BARANOWSKI, J.; JAGO, R.; GRIFFITH, M. J. (2010) ”Serious Video Games for Health: How Behavioral Science Guided the Development of a Serious Video Game” In: Simulation & Gaming, vol. 41, no. 4, pp. 587–606, 2010. BARANOWSKI,T.; BUDAY, R.; THOMPSON, D. I; BARANOWSKI, J. (2008) “Playing for Real Video Games and Stories for Health-Related Behavior Change” Am J Prev Med, vol. 34, no.1, pp. 74–82, 2008. 118 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 104-120, maio/2013. GNECCO, Bruno Barberi, et al. Estratégias mistas de mecanismos para imersão em modelos de interação em ambientes virtuais de treinamento. TOLENTINO, G.P.; BATTAGLINI, C.; PEREIRA, A.C.V.; DE OLIVERIA, R.J.; DE PAULA, M.G.M. (2011) "Usability of Serious Games for Health," Games and Virtual Worlds for Serious Applications (VS-GAMES), 2011 Third International Conference on , vol., no., pp.172,175, 4-6 May 2011 TORRES, R.S. ; BISCARO, H. H. ; ARAUJO, L. V. ; NUNES, F. L. S. (2012) “ViMeTGame: A serious game for virtual medical training of breast biopsy”. SBC Journal on 3D Interactive Systems, v. 3, p. 12-19, 2012. 3D-fahrschule. “3D Driving Academy”. Disponível em: http://www.3d-simulator.de/. Acesso em: março de 2013. HOLODECK. “Holodeck Technology” (2013) Disponível em: http://www.seriousgamesinternational.com/ products/-Holodeck.aspx. Acesso em: março de 2013. CHALMERS, A.; DEBATTISTA,K.; MASTOROPOULOU,G.; DOS SANTOS, L. (2007) “There-Reality: Selective Rendering in High Fidelity Virtual Environments” In: The International Journal of Virtual Reality, vol. 6, no. 1, pp. 1–10, 2007. MANIA, K; TROSCIANKO, T; HAWKES,R; CHALMERS, A. (2003). “Fidelity metrics for virtual environment simulations based on spatial memory awareness states”. Presence: Teleoper. Virtual Environ. 12, 3 (June 2003), 296-310 CHALMERS, A.; DEBATTISTA, K. (2009) "Level of Realism for Serious Games," Games and Virtual Worlds for Serious Applications, 2009. VS-GAMES '09. Conference in , vol., no., pp.225,232, 23-24 March 2009 YU, I; MORTENSEN, J.; KHANNA, P.; SPANLANG, B.; SLATER, M. (2012) "Visual Realism Enhances Realistic Response in an Immersive Virtual Environment - Part 2," In: Computer Graphics and Applications, IEEE , vol.32, no.6, pp.36,45, Nov.-Dec. 2012 ROUSSOU, M.; DRETTAKIS, G.; TSINGOS, N.; RECHE, A.; GALLO, E. (2004) "A user-centered approach on combining realism and interactivity in virtual environments," Virtual Reality, 2004. Proceedings. IEEE, vol., no., pp.251,252, 27-31 March 2004 BAYER, T. “Screenshot contest: Crysis versus Reality” (2013). Disponível em: http://www. pcgameshardware.com/aid,645624/Screenshot-contest-Crysis-versus-Reality/Imagegallery/&article_ id=645624. Acesso em: março de 2013. DELOURA, M. "The engine survey: Technology results" - GamaSutra Experts Blogs (2009) Disponível em: http://www.gamasutra.com/blogs/MarkDeLoura/20090316/903/The_Engine_Survey_Technology_ Results.php, 2009. Acesso em: março de 2013 KIRNER, C.; ROMERO, C. 2004 “Realidade Virtual: Conceitos e Tendencias”. 1 ed. São Paulo: Editora Mania de Livro, 2004, v. 1, p. 43-59. Corollarium. “Corollarium Techonologies” (2013). Disponível em: http://corollarium.com/. Acessado em: março de 2013. 119 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 104-120, maio/2013. GNECCO, Bruno Barberi, et al. Estratégias mistas de mecanismos para imersão em modelos de interação em ambientes virtuais de treinamento. CHILDS, M. (2010) “Learners’ Experience of Presence in Virtual Worlds”, PhD Thesis, University of Warwick, Coventry, UK. 2010. GNECCO, B. B. ; DIAS, D. R. C. ; BRASIL, G. J. C. ; GUIMARÃES, M. P. (2012) “Desenvolvimento de Interface Naturais de Interação usando o hardware Kinect” In: XIV Simpósio de Realidade Virtual e Aumentada - Tendências e Técnicas em Realidade Virtual e Aumentada, v. 2, p. 1-264, 2012 GUIMARÃES, M. P. ; BRASIL, G. J. C. ; SALVADOR, V. F. M. ; TREVELIN, L. C. (2011) “Um Modelo de Processo de Desenvolvimento de Interfaces de Gesto: Definição e um Estudo de Caso”. In: XXXVII Conferencia Latinoamericana de Informática (XXXVII CLEI), 2011, Quito. PrimeSense. “Technology - PrimeSense” (2013). Disponível em: http://www.primesense.com/solutions/ technology/. Acesso em: março de 2013 AsusXtion. “ASUS - Xtion” (2013). Disponível em: http://www.asus.com/Multimedia/Xtion/. Acesso em: março de 2013 LEAP. “Leap Motion” (2013). Disponível em: https://www.leapmotion.com/product. Acesso em: março de 2013 Move. “Sony PlayStation® Move” (2013). Disponível em: http://us.playstation.com/ps3/playstation-move/. Acesso em: março de 2013 WiiRemote. “Wii Remote” (2013). Disponível em: http://www.nintendo.co.jp/event/e3_2006/wii/ controller.html. Acesso em: março de 2013 DIAS, D. R. C. ; BREGA, J. R. F. ; TREVELIN, L. C. ; POPOLIN, M.N ; GNECCO, B. B. ; GUIMARÃES, M. P. (2012) “Design and Evaluation of an Advanced Virtual Reality System for Visualization of Dentistry Structures”. (2012) In: 18th International Conference on Virtual Systems and Multimedia, 2012, Milan. VSMM 2012, 2012. v. 1. p. 1-1. LaVIIC. “LaVIIC · Laboratório de Visualização, Imersiva, Interativa e Colaborativa” (2013). Disponível em: http://laviic.dc.ufscar.br . Acesso em: março de 2013 Glove. “5DT DAta Glove Ultra Series” (2013). Disponível em: www.5DT.com. Acesso em: março de 2013. MARCA, A. F. L. ; BREGA, J. R. F ; DIAS, D. R. C. (2011) “Rastreamento Corporal através de Dispositivos não Convencionais”. In: WRVA 2011, 2011, Uberlândia - MG. Anais do WRVA 2011, 2011. v. 1. WASHBURN, D.A.; JONES, L.M. (2004) "Could olfactory displays improve data visualization?" In: Computing in Science & Engineering , vol.6, no.6, pp.80,83, Nov.-Dec. 2004 120 121 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 121-137, maio/2013. CORRÊA, Cléber Gimenez, et al. Avatares baseados em vídeo e suas aplicações em sistemas virtuais imersivos. Avatares baseados em vídeo e suas aplicações em sistemas virtuais imersivos Cléber Gimenez Corrêa Silvio Ricardo Rodrigues Sanches Daniel de Andrade Lemeszenski Daniel Makoto Tokunaga Romero Tori Abstract The use of avatars generated from video, or simply video-avatars, has as goal to provide for users of Augmented Reality systems, more realistic experiences. Applications that use this type of avatar have been explored by scientific community and, recently, systems based in this type of technology started being found in the market. In this context, the goal of the present chapter consists in the presenation of the process of video-avatars generation, as well as the applications in the academic and commercial domains . Resumo A utilização de avatares gerados a partir de vídeo, ou simplesmente vídeo-avatares, tem como objetivo proporcionar aos usuários de sistemas de Realidade Aumentada, experiências mais realistas. Aplicações que utilizam esse tipo de avatar há algum tempo têm sido exploradas pela comunidade científica e, recentemente, sistemas que se baseiam nesse tipo de tecnologia começaram a ser encontrados também no mercado. Inserido nesse contexto, o objetivo do presente capítulo consiste na apresentação do processo de geração de vídeo-avatares, bem como suas aplicações nos âmbitos acadêmico e comercial. 1. Introdução Originalmente, na mitologia hindu, o termo avatar fazia referência à forma de manifestação corporal de um ser sobre-humano [Sheth 2002]. No contexto dos ambientes virtuais, o termo foi empregado pela primeira vez no sistema multiusuário Habitat [Morningstar e Farmer 1991], em que figuras animadas em tempo real, controladas por usuários, podiam praticar várias ações dentro de um ambiente [Sanches et al. 2009]. A popularização do termo, no entanto, aconteceu apenas na década de 1990 com a publicação do livro de ficção científica “Snow Crash” [Allbeck e Badler 1992]. Muitas das características descritas na 121 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 121-137, maio/2013. CORRÊA, Cléber Gimenez, et al. Avatares baseados em vídeo e suas aplicações em sistemas virtuais imersivos. obra como pertencentes aos personagens denominados avatares eram semelhantes às dos humanos virtuais, criados para os sistemas de Realidade Virtual da época. Com o objetivo de tornar os avatares mais realistas, os modelos bidimensionais, como os do Habitat, foram sendo substituídos por representações tridimensionais com níveis elevados de detalhes [Takashima et al. 2008]. Apesar da relativa sofisticação desses modelos, existem algumas características humanas difíceis de serem reproduzidas com fidelidade [Ogi et al. 2001]. A exatidão de movimentos, como a naturalidade de gestos, expressões faciais e emoções são exemplos dessas características [Corrêa et al. 2011]. Segundo Ogi et al. (2001), um vídeo-avatar consiste em uma imagem tridimensional sintetizada por computador, gerada a partir de vídeo capturado em tempo real. Outras definições, no entanto, o definem como uma representação virtual – não necessariamente tridimensional – baseada na imagem de um usuário humano, obtida por meio de um dispositivo de aquisição de vídeo e atualizada em tempo real [Nakamura 2008]. A utilização de imagens de vídeo, ainda que sejam bidimensionais, pode proporcionar maior realismo ao ambiente 3D, desde que o avatar se mostre integrado ao ambiente [Hauber et al. 2005]. Várias são as técnicas empregadas na geração de avatares, que podem ser construídos na forma plana [Corrêa et al. 2011], semi-plana [Corrêa et al. 2011, Tokunaga et al. 2009] ou tridimensional [Shin et al. 2010, Kanade e Narayanan 2007, Goldlucke e Magnor 2003, Prince et al. 2002, Tamagawa et al. 2001]. Inserido nesse contexto, os objetivos do presente capítulo são: i) descrever aplicações computacionais, desenvolvidas nos âmbitos acadêmico e comercial, que empregam a abordagem de vídeo-avatar e ii) apresentar, de forma simplificada, o processo de geração de vídeo-avatares. Para que favoreça seu entendimento, este capítulo está organizado da seguinte forma: a seção 1.2 descreve o processo geral de geração de avatares baseados em vídeo; as seções 1.3 e 1.4 apresentam aplicações que empregam a abordagem de vídeo-avatar nos âmbitos comercial e acadêmico, respectivamente; e, finalmente, na seção 1.5, são expostas as conclusões. 2. Processo geral de geração do vídeo-avatar De uma forma geral, o processo de geração de um avatar baseado em vídeo pode ser descrito em etapas. São elas: aquisição ou captura de informações do mundo real, no qual está inserido o usuário; segmentação, em que se remove o fundo do ambiente real para isolar a região que contém o usuário; e síntese, que trata da composição da representação o usuário. As subseções 1.2.1, 1.2.2 e 1.2.3 detalham as etapas mencionadas, identificando equipamentos e técnicas normalmente empregadas, bem como suas vantagens e desvantagens. 2.1. Aquisição de informações do ambiente real A aquisição é a etapa que envolve, além da captura de vídeo do usuário no ambiente real, informações adicionais, como a profundidade de cada pixel das imagens que compõem o vídeo e o áudio. Apesar da importância do áudio, no presente capítulo, somente as informações relacionadas a imagens 122 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 121-137, maio/2013. CORRÊA, Cléber Gimenez, et al. Avatares baseados em vídeo e suas aplicações em sistemas virtuais imersivos. e profundidade serão enfatizadas. As informações adicionais normalmente referem-se a profundidade dos pixels das imagens, sendo que o conjunto das profundidades forma o denominado mapa de profundidade. Deve-se ressaltar que uma aquisição de vídeo de qualidade é de grande importância, visto que uma captura adequada elimina ou minimiza a necessidade de algoritmos complexos, como os de processamento de imagens, geralmente empregados para correção de erros provenientes da aquisição [Magnor et al. 2005]. Um aspecto relevante na aquisição de informações é a natureza dos equipamentos adotados na captura, o que determina o tipo de infraestrutura do sistema. Há infraestruturas de baixo custo, caracterizadas pela utilização de câmeras monoculares (consideradas dispositivos convencionais) [Corrêa et al. 2011, Shin et al. 2010, Hämäläinen et al. 2005, Kauff e Schreer 2002], como webcams, por exemplo. Entretanto, como diversas técnicas utilizadas na etapa de síntese de geração de vídeo-avatares requerem informações adicionais, infraestruturas mais elaboradas se fazem necessárias. Tais infraestruturas podem ser compostas por múltiplas câmeras ou equipamentos especiais. Exemplos de infraestruturas de captura são: duas câmeras calibradas, para uma captura binocular [Kanade e Narayanan 2007, Ogi et al. 2001]; mais de duas câmeras, para a captura do usuário de diferentes ângulos [Shin et al. 2010, Kanade e Narayanan 2007, Kim et al. 2007, Lee et al. 2004, Goldlucke e Magnor 2003, Koyama et al. 2003, Gross et al. 2002, Tamagawa et al. 2001, Ogi et al. 2001] e, dispositivos com sensores específicos ou equipamentos especiais [Jones et al. 2009, Tokunaga et al. 2009a, Tokunaga et al. 2009b, Rhee et al. 2007, Lee et al. 2005]. As duas primeiras formas podem necessitar de calibração dos equipamentos, uma tarefa considerada trabalhosa para que técnicas como a triangulação [Ohta e Kanade 1985] possam ser aplicadas para criar o mapa de profundidade. Quando se utiliza equipamentos baseados em sensores ativos, a sincronização do sensor com a imagem também se faz necessária. Sensores ativos emitem sinais do tipo TOF (Time of Flight) [Rhee et al. 2007], permitindo a utilização de técnicas como luz estruturada [Jones et al. 2009] para determinar o mapa de profundidade. Os sinais atingem o usuário refletindo para o equipamento uma parede de luz que permite o carregamento de uma impressão do usuário [Iddan e Yahav 2001]. Uma das técnicas de captura de profundidade se baseia em luz estruturada. Essa abordagem consiste no uso de uma fonte emissora de um padrão de luz pré-definido sobre o objeto de interesse para em seguida capturar imagens do objeto iluminado por esse padrão [Will e Pennington 1971]. Dessa forma, o mapa de profundidade é calculado por meio da correspondência entre o padrão original e o padrão projetado sobre o modelo. 123 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 121-137, maio/2013. CORRÊA, Cléber Gimenez, et al. Avatares baseados em vídeo e suas aplicações em sistemas virtuais imersivos. Figura 1.1. Arranjo de equipamentos na técnica de luz estruturada convencional. Esse padrão é gerado por um equipamento emissor de luz, por exemplo, um projetor convencional, conforme apresentado na Figura 1.1, ou um LED especializado como é feito no caso do Kinect. Cada padrão é constituído por uma sequência de códigos, dessa forma, cada ponto da superfície do objeto recebe um código que o identifica dentro do padrão. Assim, é obtido um mapeamento direto entre os códigos e as coordenadas (x,y) correspondentes de cada ponto do objeto. Outras formas de aquisição envolvem a utilização de múltiplos equipamentos especiais [Lemeszenski e Nakamura 2011]. 2.2. Segmentação A etapa de segmentação consiste na tarefa de extrair, a cada quadro do vídeo, a imagem do elemento de interesse – nesse caso, uma pessoa – do seu contexto original para que esse elemento possa ser utilizado na geração do avatar [Sanches et al. 2012]. Uma característica comum a maioria dos sistemas que constroem avatares é que a segmentação é executada em ambientes controlados, onde a cena pode ser manipulada para que uma cor constante seja exibida como fundo [Tokunaga et al. 2009, Lee et al. 2004, Tamagawa et al. 2001], reproduzindo a técnica do chroma-key [Gibbs et al. 1998]. Na Figura 1.2 são apresentados o usuário no ambiente real e o avatar após a etapa de segmentação, inserido no ambiente virtual. Desse modo, o elemento de interesse pode ser isolado de forma precisa. Uma técnica também utilizada na segmentação de vídeo para geração de avatares é a subtração de fundo [Piccardi 2004], que consiste, basicamente, na comparação do quadro atual com um modelo do fundo da cena. Em aplicações que utilizam equipamentos especializados [Kanade e Narayanam 2007, Tamagawa et al. 2001], que geram mapas de profundidades, tal informação pode ser utilizada para auxiliar a segmentação. 124 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 121-137, maio/2013. CORRÊA, Cléber Gimenez, et al. Avatares baseados em vídeo e suas aplicações em sistemas virtuais imersivos. Figura 1.2. Segmentação do avatar [Sanches et al. 2009]. 2.3. Síntese A etapa de síntese pode ser dividida em geração do modelo geométrico a partir das informações adquiridas, como por exemplo, o mapa de profundidade; e renderização deste modelo. 2.3.1. Modelagem Existem diversos aspectos referentes a representação geométrica de um avatar. O principal está relacionado à forma geométrica, envolvendo modelos planares, 2,5D ou 3D. Na abordagem mais simples, o avatar é representado por um plano no qual é projetada a imagem 2D do usuário. O modelo 2,5D é caracterizado pela representação parcial do usuário, como uma imagem e mapa de profundidade obtidos de determinado ângulo do usuário. Na abordagem completa, é gerado um modelo 3D do usuário, por meio de um estúdio composto por várias câmeras posicionadas ao seu redor. Uma técnica utilizada para evitar que o usuário perceba que a representação do avatar é um único plano é o switching planes [Insley et al. 1997]. Nessa abordagem o apresentador é filmado por diversas câmeras posicionadas em ângulos distintos, dessa forma, um usuário ao se mover pelo ambiente virtual visualizará o vídeo capturado pela câmera com ponto de vista mais próximo do seu ângulo. Outra técnica de modelagem, considerada uma das técnicas mais utilizadas em sistemas imersivos, é a técnica de visual hull [Prince et al. 2002, Kanade e Narayanan 2007, Lee et al. 2005]. Essa técnica baseia-se na reconstrução por shapes from silhoutte, inicialmente proposta por Laurentini (1994), permitindo a representação tridimensional do usuário por meio de silhuetas capturada em diversos ângulos. 2.3.2. Renderização Na renderização de vídeo-avatares diversas técnicas podem ser adotadas, sendo o desempenho considerado como um fator importante. Para esse tipo de aplicação é necessário que o processamento seja em tempo real. 125 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 121-137, maio/2013. CORRÊA, Cléber Gimenez, et al. Avatares baseados em vídeo e suas aplicações em sistemas virtuais imersivos. Um termo normalmente utilizado no contexto de renderização de objetos é a chamada nuvem de pontos, que consiste em dados que representam voxels ou mapa de profundidade de um conjunto denso de pontos espaciais amostrados de um determinado objeto de interesse. Uma forma performática de visualizar nuvens de pontos que contenham informação referente a cor de cada vértice é a renderização de pontos desconectados (Figura 1.3.), sem utilizar malha de polígonos. Essa técnica consiste na varredura da matriz de pontos por linha e coluna e desenhar um ponto para cada vértice com a informação RGB (Red, Green, Blue) correspondente. Figura 1.3. Renderização de uma nuvem de pontos sem mesh em (a) e imagem ampliada em (b). Outra abordagem aplicável em tempo real é a técnica de microfacet billboarding [Yamazaki et al. 2002]. Nessa técnica são renderizadas micro-facetas planas que são posicionadas paralelamente ao plano onde se encontra a câmera, causando uma redução de frestas entre os pontos renderizados. Partindo para a utilização de malhas de polígonos, que exige um maior esforço computacional do que as técnicas de renderização de pontos desconectados, são encontrados diversos algoritmos de renderização de superfície que tem uma nuvem de pontos como entrada e uma malha poligonal como saída. As técnicas de tecelagem com malha de triângulos são as mais utilizadas, pois a maior parte das GPUs (Graphics Processor Unit) e APIs (Application Programming Interface) são customizadas para manipular triângulos [Moller et al. 2008]. Como implementações dessa classe de técnicas destacam-se os algoritmos de cubos marchantes [Lorensen e Cline 1987], de ball-pivoting [Bernardini et al. 1999] e de Poisson [Kazhdan et al. 2006]. O algoritmo de cubos marchantes divide a nuvem de pontos em camadas (linhas) e para cada duas camadas adjacentes obtém oito vértices, quatro de cada camada, que constituirão um cubo lógico. O algoritmo encontra qual o padrão de triângulos será renderizado por meio da análise de como a superfície intersecta o cubo, comparando os valores de cada vértice do cubo com um conjunto de padrões de triângulos pré-estabelecidos para construção da malha. O algoritmo de ball-pivoting é iniciado em um vértice raiz p e gera um triângulo somente se a esfera com raio R toca exclusivamente três pontos. Então essa esfera se move em relação a uma aresta 126 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 121-137, maio/2013. CORRÊA, Cléber Gimenez, et al. Avatares baseados em vídeo e suas aplicações em sistemas virtuais imersivos. em busca de outro ponto para gerar outro triângulo vizinho e a tecelagem prossegue até que todas as arestas formadas sejam visitadas. O algoritmo de Poisson para renderização de superfícies é uma técnica de malha poligonal com grande resistência a ruídos em nuvens de pontos. Primeiramente, cada ponto é classificado por meio de uma função que indica se o ponto pertence à área interna do modelo (atribuindo o valor 1) ou à área externa (valor 0). Com isso, é reconstruído o modelo geométrico pelo cálculo da iso-superfície. 3. Exemplos de aplicações comerciais No mercado, existem empresas que oferecem sistemas (hardware e software) para geração de vídeo-avatares, atuando em áreas como esportes, industrial e teleconferência imersiva. Na presente seção, produtos deste tipo oferecidos por duas empresas, 4D View Solutions e a DVE (Digital Video Enterprises), serão descritos. A empresa 4D View Solutions oferece sistemas para captura de informações, com softwares para calibração e sincronização de imagens obtidas a partir de múltiplos equipamentos, podendo ser utilizados em aplicações das áreas industrial (Figura 1.4) e esportiva (Figura 1.5). Figura 1.4. Aplicação de captura na indústria automotiva [4D View Solutions 2013]. • • • Os principais sistemas são [4D View Solutions 2013]: 2DX Multi-Camera, que permite a sincronização de até 80 câmeras, podendo ser calibrado manualmente ou por meio de um plug-in para calibração, além de possibilitar a integração de dispositivos do tipo TOF; 4DV Capture, que propicia a captura de cenas de modo offline, utilizando o sistema 2DX Multi-Camera na captura e permitindo a geração de dados de malha e textura do objeto de interesse; 127 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 121-137, maio/2013. CORRÊA, Cléber Gimenez, et al. Avatares baseados em vídeo e suas aplicações em sistemas virtuais imersivos. • 4DV Interactive, que permite a captura em tempo real, utilizando como suporte o sistema 2DX Multi-Camera e gerando dados de malha e textura do objeto de interesse. Figura 1.5. Aplicação na análise de movimentos de atletas [4D View Solutions 2013]. Os sistemas utilizam algoritmos de subtração de fundo em ambientes controlados para segmentação, provavelmente a técnica de visual hull na modelgem e a combinação de diversos equipamentos para aquisição. Os equipamentos fornecidos incluem câmeras e sensores do tipo TOF. Na Figura 1.6 são apresentados o sensor TOF DP-01 e a câmera de captura série DX-20, fornecidos pela empresa 4D View Solutions. Os sistemas da 4D View Solutions atuam na análise de movimentos de atletas praticando golfe, futebol e voleibol, e na indústria, em testes de protótipos de carros. Figura 1.6. Equipamentos utilizados nos sistemas da empresa 4D View Solutions (a) Sensor TOF e (b) Câmera. 128 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 121-137, maio/2013. CORRÊA, Cléber Gimenez, et al. Avatares baseados em vídeo e suas aplicações em sistemas virtuais imersivos. A DVE oferece sistemas de conferência imersiva para salas de reuniões e palestras. Oferece diversos sistemas ou produtos [DVE 2013], como: • Huddle Room 70, que permite apresentar um grupo de participantes em tamanho real, geralmente uma parte do corpo, em um outro ambiente; • Telepresence Stage, que permite apresentar pessoas de corpo inteiro caminhando por um palco; • Immersive Podium, que permite apresentar o participante em uma bancada, sendo que este pode interagir com objetos 3D em um cenário de palestra, provavelmente por meio de gestos e utilizando óculos ativos para visualização 3D. Um dos equipamentos de telepresença para Realidade Aumentada, que compõe o produto Huddle Room 70, consiste em uma tela transparente, cujo tamanho pode variar de 65 a 70 polegadas, com câmera embutida, a qual pode ser instalada em mesas de reuniões. Em determinados produtos, para a segmentação é empregada a técnica de chroma-key, por isso, a empresa recomenda alterações no ambiente real, como a cor das paredes dos escritórios ou salas de reuniões. No entanto, produtos como o Huddle Room 70, não requerem modificações no ambiente real. 4. Exemplos de aplicações acadêmicas Esta seção apresenta trabalhos recentes encontrados no meio científico e que apresentam contribuições para sistemas vídeo-avatar. 4.1 AVMix O sistema AVMix é uma aplicação de vídeo-avatar com interação 3D por meio da captura de imagens do usuário por câmeras de vídeo convencionais [Nakamura 2008]. O sistema proposto foi dimensionado para ser executado em equipamentos domésticos, como computadores pessoais e webcams, sem a necessidade de hardware especial de alto custo e alta complexidade de configuração. 4.2 AVTC No sistema de teleconferência imersiva AVTC (Augmented Virtuality Tele-Conferencing) o apresentador é filmado por duas câmeras que geram um par estereoscópico de imagens [Siscoutto e Tori 2004]. Essa digitalização é realizada em um estúdio com fundo azul devido o uso da técnica de chroma-key para remoção do fundo. Por meio do módulo de integração é possível inserir o vídeo estereoscópico no ambiente virtual 3D. Além disso, neste trabalho é apresentado um modelo de locomoção do apresentador definindo uma forma de comando do usuário em relação ao mundo virtual e uma proposta de sistema distribuído com um estúdio local e as salas remotas. 129 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 121-137, maio/2013. CORRÊA, Cléber Gimenez, et al. Avatares baseados em vídeo e suas aplicações em sistemas virtuais imersivos. 4.3 Blue-C No trabalho desenvolvido por Gross et al. (2003) foi criado um ambiente de imersão do usuário constituído por três telas de projeção ativas e um sistema de captura de vídeo 3D. É utilizada a técnica de visual hull para obtenção do modelo geométrico do usuário e splatting para renderização desse modelo. Para obtenção das imagens do apresentador é utilizado um conjunto de quinze câmeras. Algumas filmam diretamente o alvo e outras estão posicionadas atrás das telas de projeção ativas, sendo que as imagens são obtidas no momento em que as telas ficam translúcidas. Além disso, é aplicado um filtro de correção de cores nas imagens capturadas devido a variação do espectro de cor de cada uma das câmeras [Reinhard et al. 2001]. 4.4 Coliseum Coliseum é um sistema de teleimersão desenvolvido nos laboratórios da Hewlett-Packard para realização de vídeoconferências com múltiplos participantes em tempo real [Baker et al. 2005]. Para cada participante, uma representação geométrica é gerada e inserida em um ambiente virtual. Novas perspectivas de cada usuário podem ser geradas por meio de um método baseado em visual hull, que utiliza cinco câmeras conectadas ao computador de cada participante. Na Figura 1.7 é apresentado o sistema Coliseum. Figura 1.7. Utilização do sistema Coliseum. 130 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 121-137, maio/2013. CORRÊA, Cléber Gimenez, et al. Avatares baseados em vídeo e suas aplicações em sistemas virtuais imersivos. 4.5. 3D Vídeo Avatar O sistema 3D Video Avatar é uma aplicação de teleimersão na qual o usuário é inserido em um estúdio cercado por telas de projeção [Lee et al. 2005]. O processo responsável pela modelagem do avatar tridimensional no ambiente virtual utiliza a técnica de visual hull. O servidor responsável pela execução do processo recebe os fluxos de vídeo de múltiplas câmeras e utiliza a GPU para realizar o processamento do algoritmo de modelagem pela técnica de visual hull em tempo real. Além disso, é utilizado um método de segmentação com câmera infravermelha para remoção do fundo e uma técnica de iluminação ativa na qual apenas o corpo do participante é iluminado, no intuito de obter a textura sem abrir mão do ambiente imersivo de CAVE (Cave Automatic Virtual Environment). 4.6. Kinect 3D Video Capture O sistema de captura de vídeo 3D utiliza o fluxo de dados de profundidade e o de textura gerados pelo Kinect para produzir um vídeo 2,5D em tempo real da cena que está sendo filmada [Kreylos 2011]. Além do modo de execução com apenas um Kinect, esse sistema suporta múltiplos Kinects. Para gerar o vídeo 3D, os seguintes passos são necessários: Alinhamento da textura com mapa de profundidade. Como a câmera de profundidade e a câmera RGB do Kinect estão a alguns centímetros uma da outra, por meio da calibração com marcador fiducial móvel é calculada a função de transformação para projetar a textura no mapa de profundidade. Nesta primeira calibragem, o marcador é identificado manualmente pelo usuário no mapa de profundidade e na imagem colorida (Figura 1.8); No caso da utilização de múltiplos Kinects, é utilizado um marcador fiducial (tabuleiro de xadrez) fixo que é capturado por cada Kinect em seu ponto de vista. Em seguida, é calculada uma função de transformação para cada Kinect, convertendo o sistema local de coordenadas para um sistema global de coordenadas. Figura 1.8. Processo de calibração da textura RGB com o mapa de profundidade. 131 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 121-137, maio/2013. CORRÊA, Cléber Gimenez, et al. Avatares baseados em vídeo e suas aplicações em sistemas virtuais imersivos. 5. Conclusão A utilização de vídeo-avatares além das fronteiras acadêmicas vem aumentando, demonstrando sua importância em diversas áreas do conhecimento, como por exemplo, as áreas industrial e esportiva. O presente capítulo procurou apresentar sistemas ou aplicações desta natureza, nos âmbitos acadêmico e comercial, bem como as principais etapas na geração de avatares baseados em vídeo. Os avatares baseados em vídeo objetivam proporcionar uma representação fidedigna do usuário, incluindo expressões faciais e naturalidade de gestos, elevando o nível de realismo de ambiente de Realidade Aumentada. No entanto, o nível de realismo depende da qualidade dos avatares, que depende das técnicas adotadas nas etapas de geração. Para finalizar, foram realizadas comparações entre as principais aplicações apresentadas. Nas tabelas 1.1 e 1.2 é possível observar as comparações de aplicações acadêmicas e comerciais, respectivamente, as quais foram baseadas nos seguintes parâmetros: técnica de modelagem, infraestrutura de aquisição, geração em tempo real, calibração e tipo de modelo geométrico gerado. Tabela 1.1. Comparação de aplicações acadêmicas. Aplicação AVTC Blue-C Coliseum Técnica Depth maps from stereo vision Switching planes Visual hull Visual hull 3D Video Avatar Visual hull Kinect 3D Video Capture Luz estruturada AVMix Infraestrutura Tempo real Calibração Modelo 2 câmeras Sim Manual 2,5D 2 câmeras 15 câmeras 5 câmeras Câmeras RGB e infravermelho Sim Sim Sim Manual Manual Manual 2D 3D 2,5D Sim Manual 3D Sim Manual 2,5D 1 ou mais Kinects Tabela 1.2. Comparação de aplicações comerciais. Aplicação Técnica 4DV Capture Visual hull 4D Ineractive Visual hull Série DVE - Infraestrutura Até 80 câmeras e sensor TOF Até 80 câmeras e sensor TOF ras 1 câmera Tempo real Não Sim Sim Calibração Manual ou plug-in de calibração Manual ou plug-in de calibração - Modelo 3D 3D 2D De acordo com a tabela 1.1, observa-se que a calibração é uma das principais dificuldades, entretanto, a execução ocorre em tempo real, um parâmetro considerado relevante em ambientes de Realidade Aumentada. 132 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 121-137, maio/2013. CORRÊA, Cléber Gimenez, et al. Avatares baseados em vídeo e suas aplicações em sistemas virtuais imersivos. Além disso, é possível de se notar que para obter um modelo 3D do usuário, como é o caso do Blue-C e 3D Video Avatar, é necessário o uso de uma infraestrutura composta por um grande número de câmeras, o que exige um sistema distribuído para processar os fluxos de vídeos obtidos. Dependendo da aplicação, limitando o ponto de vista da audiência, como é o caso do AVMix e Kinect 3D Video Capture, podem ser utilizadas técnicas que geram um modelo 2,5D sem prejuízo da percepção de profundidade do avatar. Outro item que reduz a complexidade da calibração desse setup é a utilização de sensores de profundidade especializados, como é o caso do Kinect. Ao invés do uso de técnicas de geração de mapa profundidade por meio de visão estereoscópica, essa etapa é executada diretamente no hardware embarcado. A série DVE envolve os sistemas Huddle Room 70, Telepresence Stage e Immersive Podium, descritos na seção 1.3. A 4D View Solutions não menciona o número mínimo de câmeras e uma das aplicações da empresa não trabalha em tempo real. A remoção de fundo estático e chroma-key são as técnicas de segmentação geralmente adotadas nas aplicações comerciais. Há diversas semelhanças entre aplicações acadêmicas e comerciais, como: a técnica de visual hull é amplamente utilizada na modelagem; é comum a adoção de múltiplas câmeras e sensores TOF para geração de avatares 3D; a remoção de fundo estático e chroma-key são técnicas de segmentação empregadas em diversos sistemas na etapa de aquisição; e a calibração representa um desafio, embora recursos para resolver o problema têm sido desenvolvidos, como o plug-in de calibração fornecido pela 4D View Solutions. 6. Agradecimentos Os autores agradecem a CAPES (Coordenação de Aperfeiçoamento de Pessoal de Nível Superior), pelas bolsas de estudos de Silvio R. R. Sanches, Daniel Makoto Tokunaga e Cléber Gimenez Corrêa; ao INCT-MACC (Instituto Nacional de Ciência e Tecnologia – Medicina Assistida por Computação Científica), Edital nº 15/2008, e a FAPESP (Fundação de Amparo à Pesquisa do Estado de São Paulo), Processo nº 2005/60618-1, pelo apoio financeiro. Referências 4D View Solutions. (2013) Disponível em: http://www.4dviews.com/. Acesso em: 10 mar. 2013. ALLBECK, J.; BADLER, N. (1992) “Avatars à la Snow Crash”. In: CA 1998 - Proceedings of the Computer Animation, Filadélfia, PA, USA, IEEE Computer Society, p. 19. BAKER, H. H.; BHATTI, N.; TANGUAY, D.; SOBEL, I.; GELB, D.; GOSS, M. E. (2003) “Computation and performance issues in coliseum: an immersive videoconferencing system”, In: MULTIMEDIA 2003 Proceedings of the eleventh ACM International Conference on Multimedia, Berkeley, CA, USA, ACM, p. 470–479. 133 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 121-137, maio/2013. CORRÊA, Cléber Gimenez, et al. Avatares baseados em vídeo e suas aplicações em sistemas virtuais imersivos. BURRUS, N. Nicolas Burrus Homepage - Kinect RGBDemo v0.6.1. (2011) Disponível em: http://nicolas. burrus.name/index.php/Research/KinectRgbDemoV6. Acesso em: 20 nov. 2011. BERNARDINI, F.; MITTLEMAN, J.; RUSHMEIER, H.; SILVA, C.; TAUBIN, G. (1999) “The ball-pivoting algorithm for surface reconstruction”, IEEE Transactions on Visualization and Computer Graphics, v. 5, n. 4, p. 349-359. BESL, P.; MCKAY, N. (1992) “A method for registration of 3-D shapes”, IEEE Transactions on Pattern Analysis and Machine Intelligence, v. 14, n. 2, p. 239-256. CORRÊA, C. G.; TOKUNAGA, D. M.; SANCHES, S. R. R.; NAKAMURA, R.; TORI, R. (2011) “Immersive teleconferencing system based on video-avatar for distance learning”, In: SVR 2011 - XIII Symposium on Virtual and Augmented Reality, Uberlândia, MG, Brasil, Sociedade Brasileira de Computação, p. 197–206. DVE – Digital Video Enterprises. (2013) Disponível em: http://www.dvetelepresence.com/. Acesso em: 10 mar. 2013. GIBBS, S.; ARAPIS, C.; BREITENEDER, C.; LALIOTI, V MOSTAFAWY, S.; SPEIER, J. (1998) “Virtual studios: an overview”, IEEE Multimedia, vol. 5, p. 18–35. GOLDLUCKE, B.; MAGNOR, M. (2003) “Real-time microfacet billboarding for free-viewpoint video rendering”, In: ICIP 2003: Proceedings of the International Conference on Image Processing, vol. 3, n. 3, Barcelona, Catalunha, Espanha, p. 713–716. GROSS, M.; WÜRMLIN, S.; NAEF, M.; LAMBORAY, E.; SPAGNO, C.; KUNZ, A.; KOLLERMEIER, E.; SVOBODA, T.; VAN GOOL, L.; LANG, S.; STREHLKE, K.; MOERE, A. V.; STAADT, O. (2003) “Blue-C: a spatially immersive display and 3D video portal for telepresence.”, In: Proceedings of the ACM SIGGRAPH - International Conference and Exhibition on Computer Graphics and Interactive Techniques, San Diego, CA, USA, ACM, p. 819–827. HÄMÄLÄINEN, P.; ILMONEN, T.; HÖYSNIEMI, J.; LINDHOLM, M.; NYKÄNEN, A. (2005) “Martial arts in artificial reality”, In: CHI 2005 - Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, Portland, Oregon, USA, ACM, p. 781–790. HAUBER, J.; REGENBRECHT, H.; HILLS, A.; COCKBURN, A.; BILLINGHURST, M. (2005) “Social presence in two – and three-dimensional videoconferencing”, In: Proceedings of the 8th Annual International Workshop on Presence, London, UK, Computer Science and Software Engineering, p. 189– 198. IDDAN, G. J.; YAHAV, G. (2001) “Three-dimensional imaging in the studio and elsewhere”, In: Corner, B. D., Nurre, J. H., e Pargas, R. P., editors, Proceedings of SPIE Society of Photo-Optical Instrumentation Engineers, vol. 4298, Bellingham, Washington, USA, p. 48–55. INSLEY, J.; SANDIN, D.; DEFANTI, T. (1997) “Using video to create avatars in virtual reality”, In: Visual Proceedings of the SIGGRAPH International Conference and Exhibition on Computer Graphics and Interactive Techniques, Los Angeles, CA, USA, p. 128. 134 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 121-137, maio/2013. CORRÊA, Cléber Gimenez, et al. Avatares baseados em vídeo e suas aplicações em sistemas virtuais imersivos. JONES, A.; LANG, M.; FYFFE, G.; YU, X.; BUSCH, J.; MCDOWALL, I.; BOLAS, M.; DEBEVEC, P. (2009) “Achieving eye contact in a one-to-many 3D video teleconferencing system”, ACM Transactions on Graphics, vol. 28, n. 3, p. 64:1–64:8. KANADE, T.; NARAYANAN, P. J. (2007) “Virtualized reality: Perspectives on 4D digitization of dynamic events”, IEEE Computer Graphics and Applications, vol. 27, n. 3, p. 32–40. KAUFF, P.; SCHREER, O. (2002) “An immersive 3d videoconferencing system using shared virtual team user environments”, In: CVE 2002 - Proceedings of the 4th International Conference on Collaborative Virtual Environments, Bonn, Alemanha, ACM, p. 105–112. KAZHDAN, M.; BOLITHO, M.; HOPPE, H. (2006) “Poisson surface reconstruction”, In: Proceedings of the fourth Eurographics symposium on Geometry processing, Aire-la-Ville, Suíça, Eurographics Association, p. 61-70. KIM, H.; SAKAMOTO, R.; KITAHARA, I.; TORIYAMA, T.; KOGURE, K. (2007) “Reliability-based 3D reconstruction in real environment”, In: MULTIMEDIA 2007 - Proceedings of the 15th International Conference on Multimedia, Augsburg, Alemanha, ACM, p. 257–260. KOYAMA, T.; KITAHARA, I.; OHTA, Y. (2003) “Live mixed-reality 3D video in soccer stadium”, In: ISMAR 2003 - Proceedings of the 2nd IEEE/ACM International Symposium on Mixed and Augmented Reality, Tóquio, Japão, IEEE Computer Society, p. 178. KREYLOS, O. Oliver Kreylos' Research and Development Homepage - Kinect Hacking. (2011) Disponível em: http://idav.ucdavis.edu/~okreylos/ResDev/Kinect/index.html. Acesso em: 15 mai. 2011. LAURENTINI, A. (1994) “The visual hull concept for silhouette-based image understanding”, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 16, n. 2, p. 150–162. LEE, S.Y.; KIM, I.J.; AHN, S. C.; KO, H.; LIM, M.T.; KIM, H.G. (2004) “Real time 3D avatar for interactive mixed reality”, In: VRCAI 2004 - Proceedings of the ACM SIGGRAPH International Conference on Virtual Reality Continuum and its Applications in Industry, Nanyang, Cingapura, ACM, p. 75–80. LEE, S.Y.; KIM, I.J.; AHN, S. C.; LIM, M.T.; KIM, H.G. (2005) “Toward immersive telecommunication: 3D video avatar with physical interaction”, In: ICAT 2005: Proceedings of the International Conference on Augmented Teleexistence, Christchurch, Nova Zelândia, ACM, p. 56–61. LEMESZENSKI, D.; NAKAMURA, R. (2011) “Multiple 3D data acquisition system setup based on structured ligth technique for immersive videoconferencing applications”, In: Anais do 8th Workshop de Realidade Virtual e Aumentada, Uberaba, MG, Brasil. LORENSEN, W. E.; CLINE, H. E. (1987) “Marching cubes: A high resolution 3D surface construction algorithm”, In: SIGGRAPH 1987 - International Conference and Exhibition on Computer Graphics and Interactive Techniques: Computer Graphics, ACM, vol. 21, n. 4, p. 163-169. MAGNOR, M. A. Video-Based Rendering. AK Peters Limited: Wellesley, MA, USA, 2005. 135 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 121-137, maio/2013. CORRÊA, Cléber Gimenez, et al. Avatares baseados em vídeo e suas aplicações em sistemas virtuais imersivos. MOLLER, T.; HAINES, E.; HOFFMAN, N. Real-time rendering. AK Peters Limited: Wellesley, MA, USA, p. 446, 2008. MORNINGSTAR, C.; FARMER, F. R. (1991) “The lessons of lucasfilm’s habitat”, Cyberspace, Cambridge, MA, USA, MIT Press, p. 273–302. NAKAMURA, R. (2008) “Vídeo-Avatar com detecção de colisão para realidade aumentada e jogos”, Tese de Doutorado, Escola Politécnica da Universidade de São Paulo. OGI, T.; YAMADA, T.; TAMAGAWA, K.; KANO, M.; HIROSE, M. (2001) “Immersive telecommunication using stereo video avatar”, In: VR 2001 - Proceedings of the Virtual Reality Conference, Yokohama, Japão, IEEE Computer Society, p. 45-51. OHTA, Y.; KANADE, T. (1985) “Stereo by intra- and inter-scanline search using dynamic programming”, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 7, p. 139–154. PICCARDI, M. (2004) “Background subtraction techniques: a review”, In: IEEE International Conference on Systems, Man and Cybernetics, vol. 4, p. 3099–3104. PRINCE, S.; CHEOK, A.; FARBIZ, F.; WILLIAMSON, T.; JOHNSON, N.; BILLINGHURST, M.; KATO, H. (2002) “3D Live: real time captured content for mixed reality” In: ISMAR 2002 - Proceedings of the International Symposium on Mixed and Augmented Reality, Darmstadt, Alemanha, p. 7–13. REINHARD, E.; ADHIKHMIN, M.; GOOCH, B.; SHIRLEY, P. 2001) “Color transfer between images”, IEEE Computer Graphics and Applications, v. 21, n. 5, p. 34 -41. RHEE, S.M.; ZIEGLER, R.; PARK, J.; NAEF, M.; GROSS, M.; KIM, M.H. (2007) “Low-cost telepresence for collaborative virtual environments”, IEEE Transactions on Visualization and Computer Graphics, vol. 13, p. 156 –166. SANCHES, S. R. R.; TOKUNAGA, D. M.; CORRÊA, C. G.; BERNARDES, J. L.; TORI R. (2012) Sistemas Imersivos que Utilizam Avatares baseados em Vídeo: visão geral e implementação de um sistema simplificado. Tendências e Técnicas em Realidade Virtual e Aumentada, vol. 2, p. 93-123. SANCHES, S. R. R.; SEMENTILLE, A. C.; TORI, R. (2009) “Método Para Segmentação de Vídeo em Tempo-Real para Aplicações em Teleimersão”, In: SVR 2009 – Proceedings of the XI Symposium on Virtual and Augmented Reality, Porto Alegre, RS, Brasil, Sociedade Brasileira de Computação, p. 175-184. SHETH, N. (2002) “Hindu avatara and christian incarnation: A comparison”, Philosophy East and West, vol. 52, p. 98–125. SHIN, T.; KASUYA, N.; KITAHARA, I.; KAMEDA, Y.; OHTA, Y. (2010) “A comparison between two 3D free-viewpoint generation methods: Player-billboard and 3D reconstruction”, In: Proceedings of the 3DTV - Conference: The True Vision - Capture, Transmission and Display of 3D Video, p. 1–4. 136 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 121-137, maio/2013. CORRÊA, Cléber Gimenez, et al. Avatares baseados em vídeo e suas aplicações em sistemas virtuais imersivos. SISCOUTTO, R.; TORI, R. (2004) “Augmented virtuality teleconferencing”, In: SVR 2004: Proceedings of the VII Symposium on Virtual Reality, São Paulo, SP, Brasil, Sociedade Brasileira da Computação, p. 124–136. TAKASHIMA, K.; OMORI, Y.; YOSHIMOTO, Y.; ITOH, Y.; KITAMURA, Y.; KISHINO, F. (2008) “Effects of avatar’s blinking animation on person impressions”, In: GI 2008 - Proceedings of graphics interface, Toronto, Ontario, Canadá, Canadian Information Processing Society, p. 169–176. TAMAGAWA, K.; YAMADA, T.; OGI, T.; HIROSE, M. (2001) “Developing a 2.5-D video avatar”, IEEE Signal Processing Magazine, vol. 18, n. 3, p. 35–42. TOKUNAGA, D. M.; NAKAMURA, R.; TORI, R. (2009a) “Nonphotorealistic 3D video-avatar”, In: SIGGRAPH 2009- International Conference and Exhibition on Computer Graphics and Interactive Techniques: Posters, New Orleans, LA, USA, ACM, p. 101:1–101:1. TOKUNAGA, D. M.; SANCHES, S. R. R.; TRIAS, L. P.; NAKAMURA, R.; BERNARDES, J. L.; TORI, R. (2009b) “Video-based microfacet-billboard avatar for educational immersive teleconference systems”, In: SVR 2009 - Proceedings of XI Symposium on Virtual and Augmented Reality, Porto Alegre, RS, Brasil, Sociedade Brasileira da Computação, p. 199–209. WILL, P.; PENNINGTON, K. (1971) “Grid coding: A preprocessing technique for robot and machine vision”, Artificial Intelligence, v. 2, n. 3-4, p. 319-329. YAMAZAKI, S.; SAGAWA, R.; KAWASAKI, H.; IKEUCHI, K.; SAKAUCHI, M. (2002) “Microfacet billboarding”, In: EGRW ’02: Proceedings of the 13th Eurographics workshop on Rendering, Aire-la-Ville, Switzerland, Eurographics Association, p. 169–180. 137 138 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 138-156, maio/2013. MARTINS, Valéria Farinazzo; CORRÊA, Ana Grasielle Dionísio; GUIMARÃES, Marcelo de Paiva. Avaliação de Usabilidade para Aplicações de Realidade Aumentada. Avaliação de Usabilidade para Aplicações de Realidade Aumentada Valéria Farinazzo Martins Ana Grasielle Dionísio Corrêa Marcelo de Paiva Guimarães Abstract The augmented reality applications differ from conventional in many ways such as add virtual objects in real scenes and, commonly, use markers for interaction. The unconventional way of interaction of these applications become the evaluation of usability essential. This chapter presents the evaluation of usability of augmented reality applications based on the interpretation of ISO 9241-11 (1998), heuristics of Nielsen (1994) and usability metrics of Martins et. al (2012). We took into account two modalities of evaluation: Usability Inspection, conducted by experts; and Usability Test, performed by final users. It also presented the evaluation of two case studies form the marketing area. Resumo As aplicações de Realidade Aumentada diferenciam-se das convencionais em diversos aspectos como, por exemplo, adicionam objetos virtuais em cenas reais e, comumente, utilizam marcadores para interação. Assim, tendo uma forma de interação não convencional, a necessidade de se avaliar a usabilidade dessas aplicações é evidente. Este capítulo apresenta a avaliação de usabilidade de aplicações de Realidade Aumentada realizada através de medidas vindas de interpretações da ISO 9241-11 (1998), das heurísticas de Nielsen (1994) e também de pesquisas dos autores (Martins et al, 2012). A avaliação levou em consideração duas modalidades: inspeção de usabilidade, realizada por especialistas e testes de usabilidade, com usuários finais. Através de estudos de caso – duas aplicações na área de Marketing- são validadas estas duas modalidades de avaliação. 1. Introdução As aplicações de RA têm sido desenvolvidas, em muitos casos, sem seguir uma metodologia ou seguindo uma metodologia tradicional de desenvolvimento de software, que não levam em considera138 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 138-156, maio/2013. MARTINS, Valéria Farinazzo; CORRÊA, Ana Grasielle Dionísio; GUIMARÃES, Marcelo de Paiva. Avaliação de Usabilidade para Aplicações de Realidade Aumentada. ção as peculiaridades desta classe de aplicações. Sendo RA considerada uma tecnologia recente e que permite uma interação não-convencional, torna-se essencial a análise de sua qualidade, principalmente referente à usabilidade de suas aplicações. É válido ressaltar que, embora essa qualidade possa ser responsável pelo sucesso ou pelo fracasso das aplicações, pouco se conhece a respeito da opinião dos usuários, suas satisfação e frustrações no uso destas aplicações. Dessa forma, surge a necessidade de se definir regras que ajudem no desenvolvimento e na avaliação destas aplicações, mensurando o quanto elas são “utilizáveis” e “amigáveis”. Metodologias tradicionais para avaliar a usabilidade podem ser utilizadas, porém não conseguem alcançar questões bastante específicas de RA para medir novos conceitos, como marcadores e objetos virtuais, apresentados concomitantemente com o mundo real nestas aplicações. Não foram encontrados, na literatura, muitos trabalhos sobre avaliação de usabilidade de RA: Kostaras e Xenos (2009) descrevem, de maneira genérica, quais são as diretrizes a serem abordadas para esta classe de aplicação. Eles citam os pontos fortes e fracos de se realizar avaliações de interfaces por meio de entrevistas, questionários, inspeções ou testes de usabilidade. No entanto, não produzem métricas para isso. Também Zainuddin, Zaman e Ahmad (2011) ao realizarem a avaliação de um ambiente com RA, não descrevem quais as métricas utilizadas para mensurar os resultados. Uma pesquisa recente realizada por Martins et al (2012) aponta a criação de métricas de usabilidade para sistemas de RA, baseadas em reinterpretações das heurísticas de Nielsen (1994). Sendo assim, torna-se necessário estudar, de maneira mais profunda, como metrificar a usabilidade de aplicações em RA, de modo a apoiar os desenvolvedores em seu processo de desenvolvimento. Este estudo considera tanto avaliação de usabilidade para usuários finais (testes de usabilidade), quanto inspeção de usabilidade (baseado em especialistas). A fim de validar as métricas estabelecidas neste capítulo, foram escolhidas e avaliadas duas aplicações voltadas para o mercado publicitário e de moda. A primeira, que é da área automobilística, visa apresentar um modelo de carro para homens e utiliza marcadores. A segunda é voltada para a venda de acessórios para mulheres e não utiliza marcadores (markless). Este capítulo está organizado como se segue. A seção 1.2 discorre sobre Avaliação de Usabilidade, abordando seus conceitos, vantagens e tipos. Já a seção 1.3 traz a avaliação de usabilidade especificamente para aplicações de RA. Na seção 1.4 são abordados os dois estudos de caso, que coloca em prática a avaliação de usabilidade dividida em testes de usabilidade – envolvendo usuários finais – e inspeção de usabilidade. Finalmente, na seção 1.5 são realizadas as conclusões deste trabalho. 2. Avaliação de Usabilidade O termo usabilidade possui várias definições, incluindo a estabelecida pela ISO 9241-11 (1998): usabilidade é a capacidade que um sistema interativo oferece a seu usuário, em um determinado contexto de operação, para a realização de tarefas, de maneira eficaz (que é a precisão e a completude com que usuários conseguem atingir seus objetivos); eficiente (que é a relação entre a precisão e a completude com que usuários atingem certos objetivos e os recursos gastos para atingi-los); e satisfatória (que é o conforto e as atitudes positivas dos usuários concernentes ao uso do sistema). 139 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 138-156, maio/2013. MARTINS, Valéria Farinazzo; CORRÊA, Ana Grasielle Dionísio; GUIMARÃES, Marcelo de Paiva. Avaliação de Usabilidade para Aplicações de Realidade Aumentada. Já para Lauesen (2005), Avouris (2001), Sommerville (2011) e Nielsen (1993), a usabilidade é mais abrangente e consiste de fatores tais como: • Funcionalidade: o quanto o sistema oferece suporte às tarefas reais dos usuários; • Fácil de aprender: quão fácil é o aprendizado sobre o sistema para vários grupos de usuários; • Fácil de memorizar: esforço cognitivo do usuário necessário para lembrar como interagir com a interface do sistema interativo; • Eficaz: capacidade de o usuário interagir com o sistema para alcançar seu objetivo; • Eficiente: recursos (tempo, mão de obra e materiais envolvidos) necessários para que o usuário interaja com o sistema e alcance seu objetivo; • Seguro: se refere ao grau de proteção de um sistema contra condições desfavoráveis ou perigosas; • Satisfação subjetiva: o quanto o usuário está satisfeito com aquele determinado sistema. Expressa o efeito do uso do sistema sobre as emoções e os sentimentos dos usuários; • Compreensão: quão fácil é entender o que o sistema executa. Este fator é particularmente importante para situações não usuais que podem ocorrer quando há falhas ou erros no sistema; • Adequação a padrões específicos: o quanto o sistema consegue estar de acordo com um padrão de projeto de interfaces; e • Adaptação ao nível de experiência dos usuários: o quanto o sistema é adaptativo às necessidades de usuários com níveis diferentes de conhecimento sobre o sistema, que podem variar entre iniciante, intermediário e avançado. A fase de avaliação de um sistema deve ocorrer durante todo o processo de desenvolvimento, utilizando seus resultados como melhorias a serem aplicadas gradativamente na interface - Rocha e Baranauskas (2003). Assim, a avaliação de usabilidade é cada vez mais usada no desenvolvimento de software. Atualmente, existem vários métodos de avaliação de usabilidade que, em geral, variam quanto à etapa do desenvolvimento em que são aplicados, à maneira de coletar dados e às características destes, além do tipo de análise realizada com base nos dados obtidos. Dentre os métodos de avaliação de usabilidade, é possível citar: inspeção de usabilidade, realizada por especialistas e testes de usabilidade, com usuários finais. Estes dois métodos serão descritos a seguir – Preece, Rogers e Sharp (2007). 2.1. Testes de Usabilidade O teste com usuários é um método fundamental de usabilidade. Embora seja considerado um método bastante caro e demorado, alguns autores afirmam que eles têm acelerado muitos projetos e levado a uma significativa redução em seus custos – Gold e Lewis (1985) e Rubin e Chisnell (2008). Os testes de usabilidade podem ajudar no desenvolvimento do sistema ou podem visar à avaliação da qualidade global da interface. Geralmente um teste de usabilidade é um processo composto por quatro passos: 1. Preparação: todos os elementos envolvidos (equipamentos de hardware e software, questionários e roteiros de testes) são adequados; 140 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 138-156, maio/2013. MARTINS, Valéria Farinazzo; CORRÊA, Ana Grasielle Dionísio; GUIMARÃES, Marcelo de Paiva. Avaliação de Usabilidade para Aplicações de Realidade Aumentada. 2. 3. 4. Introdução: a situação de teste é apresentada para os usuários; Teste: o avaliador auxilia o teste de cada usuário, que é feito de forma isolada; Sessão final: depois da realização dos testes (tarefa), cada participante é convidado a fazer comentários ou sugestões gerais por meio de entrevistas ou questionários. As informações coletadas dos usuários possibilitam a identificação de pontos fortes e fracos das aplicações. As técnicas para tal coleta são as seguintes: • Questionários: permite coletar dados sobre o perfil dos usuários (pré-teste) e suas opiniões e emoções a respeito da interface (pós-teste). É um método relativamente barato de avaliar uma interface. As questões devem ser tão precisas quanto possível, a fim de se conseguir respostas claras. Por exemplo, questões do tipo “por favor, comente sobre a usabilidade desta interface” devem ser evitadas. Visando maior precisão nas respostas dos usuários, sugere-se padronizar as respostas: as questões podem ser elaboradas com base em perguntas fechadas com respostas variando de acordo com alguma escala de mensuração, tal como a apresentada por Likert (1932). • Observação de usuário: obtém as informações através da observação dos usuários utilizando o sistema. Esse método busca pontos como as facilidades no uso e os erros cometidos. Isto pode ser complementado com sessões de “pensando em voz alta”, nas quais os usuários falam sobre as ações realizadas, decisões tomadas, opiniões e sentimentos enquanto interagem com o produto ou protótipo; • Vídeo Snapshots do sistema: consiste em gravar todas as ações do usuário em arquivos de vídeo (captura as telas e os áudios) para posterior análise. Equipamentos de vídeo, de custo relativamente baixo, permitem registrar a observação direta de sessões do usuário para posterior análise. Contudo, a análise completa de vídeo pode se tornar dispendiosa economicamente, caso haja necessidade de equipamentos específicos com muitas câmeras focadas no usuário e na tela. Entretanto, a gravação de operações de um usuário selecionado pode ser útil para detectar problemas; • Coleta automática: inclusão, no software, de coleta automática de informações, tais como tempo e número de cliques que o usuário realizou para finalizar uma tarefa, pode fornecer dados sobre as maiores facilidades e erros encontrados pelos usuários. Assim, por exemplo, o tempo que o usuário demorou em selecionar uma opção pode ser um indicativo de que ele se sente perdido em relação à escolha ou não a consegue encontrá-la facilmente. Nenhuma destas técnicas de coletas é completamente segura e são, provavelmente, insuficientes para detectar todos os problemas de interface do usuário. Entretanto, elas podem ser usadas por um grupo de voluntários, antes que o sistema seja liberado, sem um grande gasto de recursos. A maioria dos grandes problemas de projeto de interface do usuário pode, então, ser descoberta e corrigida. 141 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 138-156, maio/2013. MARTINS, Valéria Farinazzo; CORRÊA, Ana Grasielle Dionísio; GUIMARÃES, Marcelo de Paiva. Avaliação de Usabilidade para Aplicações de Realidade Aumentada. 2.2. Inspeção de Usabilidade O método de Inspeção de Usabilidade é realizado por especialistas e consiste em examinar, segundo critérios estabelecidos, a interface de um sistema buscando verificar se a mesma atende aos requisitos de usabilidade. Além de encontrar os problemas, é necessário quantificar sua severidade: problemas mais graves devem ser tratados com maior prioridade que problemas menos importantes – Nielsen (1993). Então, os problemas podem ser classificados da seguinte forma: 0 - não é necessariamente um erro de usabilidade; 1 - Problema estético: não é necessário ser corrigido ao menos que haja tempo disponível; 2 - Baixa prioridade: problema menor de usabilidade; 3 - Alta prioridade: problema maior de usabilidade; 4 – Catástrofe: deve ser corrigido imediatamente. A maioria dos métodos de inspeção tem um efeito significativo na interface final somente se for usado durante o ciclo de vida do desenvolvimento, o que, efetivamente, não ocorre na maioria dos casos, seja porque são caros, difíceis ou demorados - Rocha e Baranauskas (2003). Pesquisando este problema, Nielsen (1993) propôs o que ele chama de Engenharia Econômica de Usabilidade. A avaliação heurística é o principal método desta proposta e envolve um pequeno conjunto de avaliadores examinando a interface e julgando suas características, em face de reconhecidos princípios de usabilidade, definidos por uma heurística. Segundo Nielsen (1993), são necessários 3 a 5 avaliadores para realizar a inspeção, que é feita, primeiramente, de maneira individual. Cada avaliador percorre a interface diversas vezes, inspecionando os diferentes componentes de diálogo e, ao verificar problemas, estes são relacionados às heurísticas violadas – Nielsen (1994). Tipicamente, uma sessão de avaliação dura cerca de 2 horas, mas, dependendo do tamanho ou complexidade da interface, é recomendável dividi-la em várias sessões abordando cenários específicos. Ao final da avaliação, todos os resultados são consolidados em uma única lista. As heurísticas de Nielsen são compostas por 10 princípios fundamentais de usabilidade – Nielsen (1994) - e versam desde critérios como consistência e padrões até documentação. Elas são bastante gerais e foram originalmente criadas para sistemas Web. Por isso, em alguns casos, é necessário adaptá-las ao tipo de sistema que se venha a avaliar. Por exemplo, Salvador, Oliveira Neto e Guimarães (2009) as adaptaram para a avaliação de interfaces baseadas em voz e Sutcliffe e Gault (2004) para avaliar sistemas de Realidade Virtual. A fim de facilitar e orientar o trabalho de inspeção, pode-se utilizar checklists que focalizam aspectos importantes da interface que deveriam ser analisados mais profundamente. Esta é uma técnica relativamente barata e que pode ser adaptada às diversas situações de avaliações, bastando, para isso, que se selecionem regras ergonômicas adequadas. Estas regras são construídas a partir da experiência de usuário, durante anos, no desenvolvimento de vários projetos na área ou ainda entendidas como regras de “bom senso” – Orth (2005). De maneira geral, a aplicação das técnicas de inspeção de usabilidade realizada por especialistas é uma alternativa menos dispendiosa, do ponto de vista de custo e de tempo, em relação aos testes de usabilidade. Porém, não substituem a avaliação do usuário, devendo, preferencialmente, serem aplicadas antes da avaliação com o usuário final, a fim de que problemas identificados possam ser solucionados antes da liberação do produto ao público em geral. 142 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 138-156, maio/2013. MARTINS, Valéria Farinazzo; CORRÊA, Ana Grasielle Dionísio; GUIMARÃES, Marcelo de Paiva. Avaliação de Usabilidade para Aplicações de Realidade Aumentada. 3. Avaliação de Usabilidade para Aplicações de Realidade Aumentada Para criar medidas de usabilidade para avaliação de sistemas de RA, foi reinterpretado o conjunto de heurísticas propostas por Nielsen (1994) e acrescentadas outras diretrizes, propostas pelos autores, que são específicas para aplicações de RA. A reinterpretação foi fundamental para criar um checklist para a Inspeção de Usabilidade, assim como a criação de um questionário para os testes de usabilidade. As heurísticas de Nielsen são bastante populares para medir usabilidade por causa de sua capacidade de serem aplicadas facilmente, sua simplicidade e baixo custo, porém requerem especialistas em usabilidade bastante treinados. A reinterpretação dessas heurísticas no contexto de RA é a seguinte: 1. Visibilidade do status do sistema: o sistema deve informar ao usuário sobre as ações que estão ocorrendo na aplicação. Para isso, o desempenho do sistema deve ser rápido o suficiente, o que exige, por exemplo, um sistema eficiente de tracking e de carregamento de objetos virtuais na cena; 2. Compatibilidade do sistema com o mundo real: o projeto do sistema deve seguir convenções do mundo real, fazendo com que a informação apareça numa ordem natural e lógica. Os usuários devem interagir com o conteúdo virtual como no mundo real, sendo que a escala do objeto e animação devem ser coerentes com a cena; 3. Controle do usuário e liberdade: tem como objetivo avaliar o quanto a aplicação permite que o usuário esteja livre para executar ações e como o usuário pode desfazer ações realizadas por engano. Quando o usuário apresenta, por exemplo, um marcador errado para a câmera, o sistema deve suportar a substituição deste marcador facilmente ou, se possível, alertá-lo sobre o erro; 4. Consistência e padrões: avalia convenções de layout e utilização de padrões. Está também ligado às boas metáforas visuais, visto que o usuário, quando visualiza um objeto virtual, deve reconhecer aquele objeto como parte do seu mundo. Então, pode-se, por exemplo, associar cada marcador a uma ação específica ou a um objeto virtual para evitar erros; 5. Prevenção de erros: a aplicação deve estar projetada para evitar erros e para prevenir a ocorrência de eventos indesejados. Se isso ocorrer, é fundamental a disponibilização de mensagens de fácil entendimento como, por exemplo, “o carregamento de objetos 3D não estar funcionando adequadamente”; 6. Reconhecimento ao invés de relembrança: verifica se o usuário consegue executar a aplicação de modo intuitivo. Boas metáforas em RA podem ajudar o usuário a reconhecer funcionalidades, já que o usuário interage com um ambiente real mesclado com objetos virtuais. Funcionalidades de marcação e posicionamento na cena devem ser memorizadas com facilidade; 7. Flexibilidade e eficiência de uso: avalia o quanto o usuário pode manipular a aplicação, quantas personalizações e interações podem ser amplamente desenvolvidas de modo aberto e flexível. Deve permitir: a) Uma aplicação com alto desempenho e que eleve o interesse do usuário, mesmo após já ter utilizado a mesma em momentos diferentes; b) Uma estabilidade na detecção dos marcadores e na adição dos objetos virtuais correspondentes na cena; não havendo perda de detecção; c) Processo de adição do objeto virtual na cena também deve ser suficientemente rápido - objetos virtuais tridimensionais não devem ter alta quantidade de 143 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 138-156, maio/2013. MARTINS, Valéria Farinazzo; CORRÊA, Ana Grasielle Dionísio; GUIMARÃES, Marcelo de Paiva. Avaliação de Usabilidade para Aplicações de Realidade Aumentada. polígonos, pois afetará o tempo de leitura e apresentação, e, consequentemente a interação da aplicação; 8. Estética e design minimalista: o sistema não deve fornecer informação irrelevante no diálogo com o usuário. Informações irrelevantes concorrem com as relevantes e acabam por focar a atenção do usuário para pontos não importantes da aplicação. A sobreposição de objetos virtuais ao mundo real pode produzir no usuário uma sobrecarga de informação. Assim, a quantidade mínima de objetos virtuais deve ser agregada ao ambiente, ou seja, devem ser adicionados somente aqueles objetos que produzirão funcionalidades para a aplicação ou que sejam realmente importantes; 9. Ajudar os usuários a reconhecer, diagnosticar e corrigir erros: o sistema deve indicar precisamente o problema e construtivamente compor uma sugestão. Por exemplo, se um marcador não cadastrado é detectado, o sistema tem que proporcionar uma orientação para resolver o erro; 10. Ajuda e documentação: embora seja melhor um sistema que possa ser usado sem documentação, é necessário prover ajuda e documentação. Essas informações devem ser fáceis de serem encontradas, focadas na tarefa do usuário e não muito extensas. Devem, por exemplo, explicar o uso inicial da aplicação (e como cada marcador funciona). É interessante que sejam adicionados vídeos de utilização ou exemplos, para que o usuário consiga compreender como deve utilizar o sistema. Outras medidas foram adicionadas a fim de tratar de maneira mais direta questões relacionadas à eficácia, eficiência e satisfação, de acordo com a ISO 9241-11 – ISO(1998), visto que as heurísticas propostas inicialmente por Nielsen (1994) eram utilizadas para inspeções de usabilidade e não contemplam os usuários finais. Neste trabalho, elas serão utilizadas como base para a elaboração de checklists para a inspeção de usabilidade e para a geração dos questionários para os testes com usuários finais. Estas outras medidas incluem: 1. Precisão: quão preciso é o sistema durante as interações. Posição do conteúdo virtual da imagem, que é determinada pelo sistema de localização, deve estar justaposta à posição do objeto real e não deve oscilar; 2. Facilidade de uso: o quanto o usuário se sente confortável e seguro no uso da aplicação, mesmo na primeira vez que a utiliza; 3. Configuração do ambiente: aplicações RA exigem dispositivos especiais como sensores ou câmeras. Além disso, podem ser necessários os marcadores, tais como, marcadores fiduciais. A configuração do meio ambiente deve ser o mais simples possível; 4. Satisfação: mede o quanto a aplicação supera a expectativa do usuário. A interação é um aspecto fundamental nas aplicações RA, e então a aplicação deve alcançar atitudes positivas em relação ao seu usuário. 144 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 138-156, maio/2013. MARTINS, Valéria Farinazzo; CORRÊA, Ana Grasielle Dionísio; GUIMARÃES, Marcelo de Paiva. Avaliação de Usabilidade para Aplicações de Realidade Aumentada. 3.1. Testes de Usabilidade para Realidade Aumentada O objetivo deste teste é entender a opinião do usuário sobre o sistema, seja em questões gerais ou mais especificamente sobre o sistema de RA. Baseado em Martins et. al. (2012), nas reinterpretações de Nielsen (item 1.3) e na ISO 9241-11 – ISO (1998), são exemplos de questões a serem abordadas (Tabela 1): Tabela 1. Exemplo de Questionário Questão Heurística Entendi facilmente como utilizar a aplicação e o seu objetivo. Facilidade de uso Quando existiam mensagens na aplicação, sejam textuais ou em vídeo, a Prevenção de erros linguagem foi entendida facilmente. Em nenhum momento eu me senti perdido na aplicação, sem saber o que Controle do usuário e fazer. liberdade Visibilidade do status Ao mostrar o marcador, o objeto 3D é carregado rapidamente. do sistema Flexibilidade e O objeto da cena segue de forma correta à posição do marcador. Eficiência de Uso Os marcadores são detectados corretamente. Precisão Foi uma experiência bastante agradável utilizar a aplicação. Satisfação Eu utilizaria novamente a aplicação, se fosse possível. Satisfação Eu sempre executava as mesmas ações para acionar as mesmas Consistência e padrões funcionalidades A quantidade de objetos virtuais adicionados na cena é coerente com o Estética e design propósito da aplicação. minimalista O objeto virtual sempre estava posicionado adequadamente conforme a Precisão posição do marcador O sistema disponibilizou um material de documentação de uso. Ajuda e Documentação 3.2. Inspeção de Usabilidade para RA Para a inspeção de aplicações de RA, podem ser organizados checklists que facilitam o trabalho dos especialistas. Baseado em Martins et. al. (2012) e no exposto na seção 1.3, foram criados os checklists, classificado como satisfação (Tabela 2), eficácia (Tabela 3) e eficiência (Tabela 4). Seguir estes checklists atentamente é uma forma de avaliar as aplicações de RA baseado em um método de inspeção. Ele também ajuda o avaliador a não esquecer algumas heurísticas, e aumenta a objetividade da avaliação, confiabilidade e reprodutibilidade. 145 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 138-156, maio/2013. MARTINS, Valéria Farinazzo; CORRÊA, Ana Grasielle Dionísio; GUIMARÃES, Marcelo de Paiva. Avaliação de Usabilidade para Aplicações de Realidade Aumentada. Tabela 2. Checklist: Verificação da variável Satisfação Item A quantidade de mecanismos de interação é satisfatória?(marcador, teclado, mouse, joystick) Heurística Estética e design minimalista Estética e design minimalista É satisfatório o manual da aplicação? (vídeo, textos, áudio) Ajuda e documentação É satisfatória a quantidade de objetos virtuais na cena? É satisfatório o mecanismo de interação da aplicação? (por exemplo, com o tipo de marcador) A liberdade de movimentação durante a interação é satisfatória? (por exemplo, não é necessário olhar para a câmera constantemente) Satisfação Satisfação Tabela 3. Checklist: Verificação da variável Eficácia Item O usuário sabe o status da aplicação durante toda a interação? Se existe mais de um marcador em cena, é possível especificar um? Heurística Visibilidade do status do sistema Controle do usuário e liberdade É possível realizar as operações “redo” ou “undo” facilmente? (por Controle do usuário e exemplo, retornar para o status anterior da aplicação sem nenhum objeto liberdade virtual na cena) O objetivo da aplicação é alcançado? Satisfação 146 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 138-156, maio/2013. MARTINS, Valéria Farinazzo; CORRÊA, Ana Grasielle Dionísio; GUIMARÃES, Marcelo de Paiva. Avaliação de Usabilidade para Aplicações de Realidade Aumentada. Tabela 4. Checklist: Verificação da variável Eficiência Item Heurística Visibilidade do status É satisfatório o tempo de carregamento de objetos virtuais na cena? do sistema Os objetos virtuais são misturados com o mundo real corretamente? (por Compatibilidade com o exemplo: posição, textura, escala) mundo real Compatibilidade com o A animação dos objetos virtuais é coerente com o mundo real? mundo real As ações e feedback são padronizados? (por exemplo, uma borda é Consistência e padrões adicionada em todos os marcadores detectados) Existe prevenção de erros? (por exemplo, é apresentada para o usuário Prevenção de erros alguma mensagem quando um marcador não cadastrado é detectado) As funcionalidades da aplicação são lembradas facilmente? (por exemplo, Reconhecimento ao é fácil lembrar a função de cada marcador) invés de lembrança Flexibilidade e Como é a curva de aprendizagem dos usuários iniciantes? eficiência de uso Usuários experientes podem utilizar a aplicação de maneira otimizada? Flexibilidade e (por exemplo, eles não assistem os vídeos introdutórios) eficiência de uso Flexibilidade e É fácil posicionar o marcador para a câmera/sensor? (orientação/posição) eficiência de uso Ajuda os usuários A aplicação auxilia o usuário durante a interação? (por exemplo, instruir a reconhecer, a mostrar um marcador) diagnosticar e corrigir erros A aplicação exige algum pré-requisito?(câmera, marcador, dispositivo Configuração do móvel, GPS, posição do usuário, luz, impressão de marcador, calibragem) ambiente O sistema de tracker é estável? Precisão A aplicação continua funcionando de forma correta quanto vários Precisão marcadores estão visíveis na cena? 4. Estudo de Caso de Avaliação de RA Duas aplicações de RA na área de Marketing e Moda foram selecionadas para validação das métricas. O primeiro estudo de caso é uma aplicação da área automotiva e visa promover um carro. Nela o usuário utiliza um marcador fiducial para interagir com o veículo (Figura 1). Depois de inicializada, o usuário é instruído a apresentar o marcador para a câmera, que é a imagem de um volante, então o veículo virtual é sobreposto. O carro gira conforme a posição do volante, assim o usuário pode visualizar o veículo por diversos ângulos. Clicando sobre o carro o usuário liga as luzes do carro e pode agendar um test drive. 147 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 138-156, maio/2013. MARTINS, Valéria Farinazzo; CORRÊA, Ana Grasielle Dionísio; GUIMARÃES, Marcelo de Paiva. Avaliação de Usabilidade para Aplicações de Realidade Aumentada. Figura 1. Aplicação automotiva A outra aplicação escolhida foi desenvolvida para a área de Moda (de venda de acessórios) e não utiliza marcadores (markeless). O usuário pode provar virtualmente pulseiras, brincos e colares. Para isso, a aplicação realiza o tracker de partes do corpo do usuário (face, pescoço e braços). A Figura 2 mostra imagens dessa aplicação com objetos sobrepostos. Brinco virtual (b) Bracelete virtual Figura 2. Aplicação da área de venda de acessórios 4.1. Testes de Usabilidade Foi aplicado o teste de usabilidade para um conjunto de 32 pessoas, sendo 20 do sexo masculino para a primeira aplicação e 12 do sexo feminino para a segunda aplicação, com perfil variado de conhecimento, embora todas estas pessoas sejam de uma universidade (secretárias, professores da área 148 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 138-156, maio/2013. MARTINS, Valéria Farinazzo; CORRÊA, Ana Grasielle Dionísio; GUIMARÃES, Marcelo de Paiva. Avaliação de Usabilidade para Aplicações de Realidade Aumentada. de Computação, professores fora da área de Computação, alunos). A faixa etária deste público-alvo variou de 16-48 anos. Primeiramente, estas pessoas tiveram uma introdução ao tema – conceitos de RA, maneira de interagir – por cerca de 5 minutos e mais 2 minutos para responder ao pré-teste (questões relacionadas ao perfil). Depois, puderam experimentar a aplicação por 10 minutos cada. O pós-teste, com o questionário, apresentado na seção 1.3.1 durou 5 minutos, em média. As tarefas do usuário consistiram de: todos os usuários assistiram ao vídeo explicativo sobre uso da ferramenta. As tarefas do público masculino foram: manipular o volante (girar para a esquerda; girar para a direita; deixar parado) com a luz acesa e depois com a luz apagada. As tarefas do público feminino foram: testar o brinco (escolher três brincos na galeria), testar o colar (escolher três colares na galeria); testar a pulseira (escolher três pulseiras na galeria). Estas questões referentes à usabilidade do pós-teste possuem cinco alternativas possíveis, de acordo com a escala Likert de cinco pontos – Likert (1932), a fim de medir o nível de concordância à afirmação. A seguir, é possível verificar a opinião dos usuários a respeito das duas aplicações (Tabela 5 e Tabela 6). Tabela 5. Resultado da opinião dos usuários sobre o sistema automobilístico Questão Entendi facilmente como utilizar a aplicação e o seu o objetivo. As mensagens apresentadas (texto ou vídeo) foram entendidas facilmente. Em nenhum momento eu me senti perdido na aplicação, sem saber o que fazer. Ao mostrar o marcador, o objeto 3D é carregado rapidamente. O objeto da cena segue de forma correta a posição do marcador. Os marcadores são detectados corretamente. Foi uma experiência bastante agradável utilizar a aplicação. Eu utilizaria novamente a aplicação, se fosse possível. Eu sempre executava as mesmas ações para acionar as mesmas funcionalidades A quantidade de objetos virtuais adicionados na cena é coerente com o propósito da aplicação O objeto virtual sempre estava posicionado adequadamente conforme a posição do marcador O sistema disponibilizou um material de documentação de uso. 149 Média 4,7 4,15 3,95 3,65 2 4,2 4,5 4,5 3,9 4,7 4,1 4 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 138-156, maio/2013. MARTINS, Valéria Farinazzo; CORRÊA, Ana Grasielle Dionísio; GUIMARÃES, Marcelo de Paiva. Avaliação de Usabilidade para Aplicações de Realidade Aumentada. Tabela 6. Resultado da opinião dos usuários sobre a aplicação de acessórios Questão Entendi facilmente como utilizar a aplicação e o seu o objetivo. As mensagens apresentadas (texto ou vídeo) foram entendidas facilmente. Em nenhum momento eu me senti perdido na aplicação, sem saber o que fazer. Ao mostrar o marcador, o objeto 3D é carregado rapidamente. O objeto da cena segue de forma correta a posição do marcador. Os marcadores são detectados corretamente. Foi uma experiência bastante agradável utilizar a aplicação. Eu utilizaria novamente a aplicação, se fosse possível. Eu sempre executava as mesmas ações para acionar as mesmas funcionalidades A quantidade de objetos virtuais adicionados na cena é coerente com o propósito da aplicação O objeto virtual sempre estava posicionado adequadamente conforme a posição do marcador O sistema disponibilizou um material de documentação de uso. Média 4,83 4,25 3 3,67 2 3,33 4,17 4,08 2,75 4,41 2 4,5 Todas as questões tiveram o mesmo peso. A aplicação automobilística atingiu a média total de 4,02, o que se pode considerar um bom resultado. Os pontos de maior atenção foram os itens 4 e 5, que tratam do tempo para apresentação dos objetos e a perda do marcador durante a execução. A média geral da aplicação de acessórios (markless) foi de 3,58, que pode ser considerada satisfatória. Os principais pontos de atenção detectados foram principalmente nos itens 3, 5, 9 e 11, que tratam do status da aplicação; do sistema de tracking; da falta de padronização das interações e da falta de ajuste de escala e posicionamento dos objetos virtuais. 4.2. Inspeção de Usabilidade Para a inspeção realizada, foram utilizados 3 especialistas, autores deste capítulo. Estes especialistas são da área de Inteface Homem-Computador, com média de 3 anos de experiência em desenvolvimento e uso de aplicações de RA. Embora Nielsen (1993) pontue que sejam necessárias, em média, 2 horas para a realização da inspeção, as aplicações eram bastante simples e por isso os especialistas utilizaram, em média, apenas 30 minutos para relacionar os problemas encontrados em cada aplicação. Foram gerados três checklists que, posteriormente, foram concatenados de forma a resultar nos seguintes apontamentos (Tabela 7 a 9): 150 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 138-156, maio/2013. MARTINS, Valéria Farinazzo; CORRÊA, Ana Grasielle Dionísio; GUIMARÃES, Marcelo de Paiva. Avaliação de Usabilidade para Aplicações de Realidade Aumentada. Tabela 7. Verificação da variável Satisfação na aplicação automotiva Grau de severidade Comentários dos especialistas 0,0,0 Nenhum problema 4,4,4 A simplicidade da aplicação gera desinteresse dos usuários 0,0,0 Nenhum problema É satisfatório o mecanismo de interação da aplicação? (por exemplo, com o tipo de marcador) 2,3,1 O posicionamento do marcador com uma mão é a interação com o mouse com a outra é difícil A liberdade de movimentação durante a interação é satisfatória? (por exemplo, não é necessário olhar para a câmera constantemente) 2,1,2 A aplicação exige o posicionamento no campo de visão da câmera Checklist É satisfatória a quantidade de objetos virtuais na cena? A quantidade de mecanismos de interação é satisfatória? (marcador, teclado, mouse, joystick) É satisfatório o manual da aplicação? (vídeo, textos, áudio) Tabela 8. Verificação da variável Eficácia na aplicação automotiva Checklist Grau de severidade Comentários dos especialistas O usuário sabe o status da aplicação durante toda a interação? 0,0,0 Nenhum comentário Se existe mais de um marcador em cena, é possível especificar um? 0,0,0 Não aplicável É possível realizar as operações “redo” ou “undo” facilmente? (por exemplo, retornar para o status anterior da aplicação sem nenhum objeto virtual na cena) 0,0,0 É possível ligar e desligar as luzes do carro. 1,2,1 O objetivo da aplicação é atingido, porém, o objetivo é muito simples. A aplicação deveria permitir a customização do veículo, como, por exemplo, troca de cor do veículo e abertura de portas. O objetivo da aplicação é alcançado? 151 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 138-156, maio/2013. MARTINS, Valéria Farinazzo; CORRÊA, Ana Grasielle Dionísio; GUIMARÃES, Marcelo de Paiva. Avaliação de Usabilidade para Aplicações de Realidade Aumentada. Tabela 9. Verificação da variável Eficiência na aplicação automotiva Checklist Grau de severidade Comentários dos especialistas 0,0,1 Por volta de 5 segundos, o que é considerado alto 0,0,0 Nenhum problema 0,0,0 Nenhum problema 0,0,0 Nenhum problema 0,0,0 Não aconteceu nenhum erro 0,0,0 A interação é fácil. O usuário deve apenas girar o volante É satisfatório o tempo de carregamento de objetos virtuais na cena? Os objetos virtuais são misturados com o mundo real corretamente? (por exemplo: posição, textura, escala) A animação dos objetos virtuais é coerente com o mundo real? As ações e feedback são padronizados? (por exemplo, uma borda é adicionada em todos os marcadores detectados) Existe prevenção de erros? (por exemplo, é apresentada para o usuário alguma mensagem quando um marcador não cadastrado é detectado) As funcionalidades da aplicação são lembradas facilmente? (por exemplo, é fácil lembrar a função de cada marcador) Como é a curva de aprendizagem dos usuários iniciantes? 1,2,1 Usuários experientes podem utilizar a aplicação de maneira otimizada? (por exemplo, eles não assistem os vídeos introdutórios) 3,2,3 É fácil posicionar o marcador para a câmera/ sensor? (orientação/posição) 2,1,2 A aplicação auxilia o usuário durante a interação? (por exemplo, instruir a mostrar um marcador) A aplicação exige algum prérequisito?(câmera, marcador, diapositivo móvel, GPS, posição do usuário, luz, impressão de marcador, calibragem) O sistema de tracker é estável? A aplicação continua funcionando de forma correta quanto vários marcadores estão visíveis na cena? 0,1,0 152 A aplicação não é muito intuitiva, porém é apresentado um vido que demonstra como interagir. A aplicação é simples, então usuários novatos e experientes interagem da mesma maneira. O usuário precisa posicionar o marcador no campo de visão da câmera Estão disponíveis para o usuário um vídeo e um manual, que são bons. 1,1,2 É necessário imprimir o marcador 0,0,0 Nenhum comentário 0,0,0 Nenhum comentário Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 138-156, maio/2013. MARTINS, Valéria Farinazzo; CORRÊA, Ana Grasielle Dionísio; GUIMARÃES, Marcelo de Paiva. Avaliação de Usabilidade para Aplicações de Realidade Aumentada. A seguir são apresentados os resultados da inspeção de usabilidade para o segundo estudo de caso (Tabelas 10 a 12). Tabela 10. Verificação da variável Satisfação na aplicação de venda de acessórios Checklist Grau de severidade Comentários dos especialistas 0,0,0 Nenhum comentário 0,0,0 Nenhum comentário 0,0,0 Muito bom 0,0,0 Nenhum comentário 3,2,2 É desejável maior liberdade para se movimentar É satisfatória a quantidade de objetos virtuais na cena? A quantidade de mecanismos de interação é satisfatória? (marcador, teclado, mouse, joystick) É satisfatório o manual da aplicação? (vídeo, textos, áudio) É satisfatório o mecanismo de interação da aplicação? (por exemplo, com o tipo de marcador) A liberdade de movimentação durante a interação é satisfatória? (por exemplo, não é necessário olhar para a câmera constantemente) Tabela 11. Verificação da variável Eficácia na aplicação de venda de acessórios Checklist Grau de severidade Comentários dos especialistas O usuário sabe o status da aplicação durante toda a interação? 0,0,0 Nenhum comentário Se existe mais de um marcador em cena, é possível especificar um? 2,3,2 Se outro usuário aparecer na cena, o sistema se perde É possível realizar as operações “redo” ou “undo” facilmente? (por exemplo, retornar para o status anterior da aplicação sem nenhum objeto virtual na cena) 1,2,3 O usuário pode trocar o tipo de acessório a qualquer momento. O objetivo da aplicação é alcançado? 0,0,0 Sim, é possível experimentar os acessórios. 153 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 138-156, maio/2013. MARTINS, Valéria Farinazzo; CORRÊA, Ana Grasielle Dionísio; GUIMARÃES, Marcelo de Paiva. Avaliação de Usabilidade para Aplicações de Realidade Aumentada. Tabela 12. Verificação da variável Satisfação na aplicação de venda de acessórios Checklist Grau de severidade Comentários dos especialistas É satisfatório o tempo de carregamento de objetos virtuais na cena? 1,0,1 Menos do que um segundo Os objetos virtuais são misturados com o mundo real corretamente? (por exemplo: posição, textura, escala) 4,4,4 O sistema de posicionamento dos acessórios precisa ser aprimorado. Os braceletes se mantêm em posição fi xa quando o usuário se move. A animação dos objetos virtuais é coerente com o mundo real? 0,0,0 Nenhum comentário 1,3,1 A aplicação exige que o usuário não se mova após selecionar um acessório. É desejável uma maior liberdade de movimentação para o usuário. 0,0,0 Não ocorreram erros 0,0,0 A aplicação fornece instruções de interação durante a execução As ações e feedback são padronizados? (por exemplo, uma borda é adicionada em todos os marcadores detectados) Existe prevenção de erros? (por exemplo, é apresentada para o usuário alguma mensagem quando um marcador não cadastrado é detectado) As funcionalidades da aplicação são lembradas facilmente? (por exemplo, é fácil lembrar a função de cada marcador) Como é a curva de aprendizagem dos usuários iniciantes? Usuários experientes podem utilizar a aplicação de maneira otimizada? (por exemplo, eles não assistem os videos introdutórios) É fácil posicionar o marcador para a câmera/ sensor? (orientação/posição) A aplicação auxilia o usuário durante a interação? (por exemplo, instruir a mostrar um marcador) A aplicação exige algum pré-requisito? (câmera, marcador, dispositivo móvel, GPS, posição do usuário, luz, impressão de marcador, calibragem) 0,0,0 Fácil de aprender 0,0,0 Fácil de usar 1,0,0 É necessária uma câmera/webcam e o usuário em uma determinada posição. O sistema de tracker é estável? 4,4,4 O baixo desempenho afeta a interação. A aplicação continua funcionando de forma correta quanto vários marcadores estão visíveis na cena? 3,4,4 O sistema se perde quando um novo usuário aparece na cena. 2,1,3 1,2,1 154 O usuário deve ficar em ma posição fi xa para calibrar o sistema A aplicação disponibiliza um vídeo, um manual e a silhueta da facilitar o posicionamento do usuário. Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 138-156, maio/2013. MARTINS, Valéria Farinazzo; CORRÊA, Ana Grasielle Dionísio; GUIMARÃES, Marcelo de Paiva. Avaliação de Usabilidade para Aplicações de Realidade Aumentada. 5. Conclusões Este capítulo apresentou dois métodos para avaliação de usabilidade de aplicações de RA. Estes métodos foram aplicados a dois estudos de caso voltados à área de Marketing e Moda. Através dos testes de usabilidade, foi possível verificar que: • A principal desvantagem da aplicação da área automotiva é a falta de opções de interação, dada a simplicidade da aplicação. Porém, ela foi melhor avaliada pelos usuários; • A aplicação de acessórios não utiliza marcadores (markerless), exigindo que o usuário fique em uma posição pré-definida, o que gera desconforto aos usuários; • A posição e escala do conteúdo virtual adicionado à aplicação de acessórios não são exatos, o que causa frustração aos usuários. • A curva de aprendizagem de ambas as aplicações não é rápida. Porém, como a aplicação de acessórios não utiliza marcadores, torna-se mais intuitiva; • Os botões da interface da aplicação de acessórios não funcionam de forma apropriada. Além disso, a escala e o posicionamento dos objetos não são precisos; • As opções do menu da aplicação acessórios não funcionam adequadamente: ao clicar na seta “para baixo” ou “para cima” para navegar pelas opções, o menu inicia uma animação de deslizamento vertical dificultando o clique na opção desejada; • Foi observado que mulheres com cabelos soltos tiveram mais dificuldade de interagir com a aplicação de acessórios, mesmo àquelas que deixaram a orelha à vista. Atingiu-se um melhor resultado com o cabelo preso. • A inspeção de usabilidade (Eficiência, Eficácia e Satisfação) resultou que: • A aplicação da área automobilística demonstrou uma boa eficiência e eficácia. Porém, não obteve sucesso em relação à satisfação. O principal fator limitante foi a falta de opções de interações, como, por exemplo, a customização do carro e a movimentação do mesmo. Além disso, em todos os testes, a opção de interação com a luz acesa não fez com que o modelo 3D acendesse os faróis, levando os usuários à frustração em relação a este recurso; • A variável Satisfação obteve melhores resultados na aplicação de acessórios. Os aspectos medidos pelas outras variáveis devem ser aprimorados, principalmente o sistema de tracking, tanto durante a calibração quanto ao rastreamento. Devido a falhas de calibração, a escala dos objetos não estava correta em diversos usuários. Em mais de 80% dos casos o colar não ficou proporcional ao tamanho dos usuários. Além disso, não existe uma opção de nova calibração disponível. Com base no experimento realizado é possível concluir que o método de avaliação de usabilidade de sistemas de RA aqui proposto foi eficaz na detecção dos problemas de usabilidade. Além disso, o método mostrou-se relativamente fácil de aplicar e economicamente viável. 155 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 138-156, maio/2013. MARTINS, Valéria Farinazzo; CORRÊA, Ana Grasielle Dionísio; GUIMARÃES, Marcelo de Paiva. Avaliação de Usabilidade para Aplicações de Realidade Aumentada. Referências Avouris, N.M. (2001).“An introduction to software usability. Workshop on Software Usability”. In: Proceedings of the 8th Panhellenic Conference on Informatics. v. 2, p. 514-522. ISO 9241-11(1998).”Ergonomic requirements for office work with visual display terminals (VDTs) -- Part 11: Guidance on usability”. Kostaras, N.N. e Xenos, M. N. Xenos (2009). ”Assessing the usability of augmented reality system,” in 13th Panhellenic Conference on Informatics, Greece. Lauesen, S. (2005). “User Interface Design: A software engineering perspective”, Pearson Education, Great Britain, ISBN 0 321 18143 3, 2005. Likert, R. (1932) “A Technique for the measurement of attitudes”. Archives of Psychology, 140, 1-55. Martins, V. R. , Makihara, E.L., Soares, L.V. , Mattos, V.B. ; Guimarães, M. P. (2012).“Métricas de Usabilidade para Aplicações de Realidade Aumentada”. In: Conferencia Latinoamericana en Informática, Medellin. XXXVIII Conferencia Latinoamericana en Informática. Nielsen, J.(1993).”Usability Engineering”. Academic Press, Cambridge, MA. Nielsen, J. (1994). Heuristic Evaluation. In: J. Nielsen (ed.) Usability Inspection Methods. John Wiley, New York, 1994. Orth, A.I. (2005). “Interface Homem-Máquina”. Porto Alegre: AIO. Preece, J.; Rogers, Y.; Sharp, H. (2007). Interaction design: beyond human-computer interaction, Wiley, New York. Rocha, H. V.; Baranauskas, M. C. C. (2003). “Design e avaliação de interfaces humano-computador”, NIED, Instituto de Computação, Unicamp, Campinas. Rubin, J., Chisnell, D. (2008). “Handbook of usability testing: how to plan, design and conduct effective tests”. 2nd ed., New York: John Wiley & Sons. Salvador, V. F. M., Oliveira Neto, J. S., Guimarães, M. P. (2009) “Levantamento de heurísticas para avaliação de interfaces do usuário baseadas em voz”. In: Interaction South America, São Paulo, 2009. Sommerville.I.(2011). ”Engenharia de Software”, 9th ed., Addison Wesley, ISBN 978-85-7936-108. Sutcliffe, A.; Gault, B. (2004). “Heuristic evaluation of virtual reality applications”. In: Interacting with Computers 16, New York: Elsevier. Zainuddin, N.M.M.; Zaman, H.B.; Ahmad, A. (2011) “Heuristic Evaluation on Augmented Reality Courseware for the Deaf”. In 2011 International Conference on User Science and Engineering. 156 157 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality Ermano Ardiles Arruda Lucas Silva Figueiredo Veronica Teichrieb Abstract In this work the topic of interactive visualization is approached focusing on Natural Interaction and Depth Perception aspects. The technique called Fish Tank Virtual Reality (FTVR) is addressed with more details. This technique is tested in accordance to aspects such as physical and cognitive freedom of the user. Furthermore, its implementation is discussed and detailed to meet these aspects. Finally, the applicability of the technique of FTVR is studied and a number of applications are illustrated and discussed in order to understand the contributions they got by using FTVR, and in which direction these contributions are going, taking into account areas including Virtual Reality and Augmented Reality. Resumo Neste trabalho o tema de visualização interativa é abordado com foco nos aspectos de Interação Natural e Percepção de Profundidade. Em mais detalhes, a técnica Fish Tank Virtual Reality (FTVR) é abordada. A técnica é analisada segundo os aspectos primados como a liberdade física e cognitiva do usuário. Mais além, sua implementação é discutida e detalhada visando atender estes aspectos. Por fim, a aplicabilidade da técnica é estudada e uma série de aplicações do estado da arte são ilustradas e analisadas, com a finalidade de entender as contribuições que existem no uso do FTVR para visualizações interativas, em que direção estas contribuições caminham, levando em conta as áreas de Realidade Virtual e inclusive Realidade Aumentada. 1. Introdução É dito que, em certos níveis de expertise, as ferramentas que o homem usa passam a ser não apenas ferramentas, mas extensões de seu próprio corpo, e o seu uso passa a ser totalmente instintivo e natural. Tais ferramentas passam a integrar a realidade do homem de uma forma profunda e inseparável. 157 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. Em sua tentativa de aprimorar as ferramentas que utiliza, o homem está sempre criando, aprimorando e recriando novas. Os computadores são um dos principais instrumentos do homem moderno, e estão de tal modo entrelaçados com a vida de tantas pessoas, que é difícil imaginar um mundo sem computadores. Essas mesmas ferramentas são alvos de melhorias e aprimoramentos contínuos. E, se fosse possível criar um instrumento tão entrelaçado com a vida humana, e de sua realidade, que essa própria ferramenta se tornasse a realidade por si mesma, ou fosse capaz de criá-la? As pesquisas em Realidade Virtual (RV) se dedicam a explorar essa capacidade que o instrumento computador possibilita: criar ambientes, por vezes concretamente impossíveis, mas cuja simulação artificial é capaz de dar a impressão de realidade, ou possuir potencial de ser indissociável entre o que é real e o que não o é, ou até mesmo criar percepções que antes seriam impossíveis. Várias técnicas foram desenvolvidas nessa área, e o arcabouço teórico já existe, embora os desenvolvimentos práticos ainda se encontrem, naturalmente, muito distantes de tal objetivo ideal. Apesar disso, RV é um objeto de estudo interessante não apenas pelo seu ideal longínquo temporal e tecnologicamente, mas por sua intrínseca interdisciplinaridade e diversão propiciada [Brooks 1999]. Como um exemplo, a Figura 1 apresenta um simulador da ponte de comando de um navio construído em Warsash que representa um navio mercante genérico, apesar da vista do navio a partir da ponte poder ser customizada para representar um tipo de navio ou até um navio em particular. De forma similar, a aparência e os controles podem ser customizados até um pequeno nível, para simular diferentes configurações de ponte. Figura 1. Simulador da ponte de comando de um navio no Warsash Maritime Centre [Brooks 1999]. O presente trabalho irá apresentar um panorama básico sobre RV, e algumas de suas técnicas. Em especial será discutida com mais detalhes uma implementação simples e de baixo custo da técnica conhecida como Fish Tank Virtual Reality, a qual pode servir como uma boa introdução à RV e alguns de seus conceitos. 158 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. Na subseção 1.2, é explanada a visão geral sobre renderização interativa em ambientes de RV, debatendo a sua origem e significado científico. Também, são introduzidos alguns conceitos acerca da percepção da profundidade humana. Na subseção 1.3, este trabalho aborda de forma mais detalhada a implementação da técnica de Fish Tank Virtual Reality, seu arcabouço matemático e módulos adicionais utilizados, como o rastreamento de faces. Ao fim, a monografia é concluída com uma reflexão acerca das aplicações que se beneficiariam com o uso de tal técnica, e são esboçadas algumas perspectivas futuras sobre RV e Realidade Aumentada (RA) em relação à técnica estudada. 2. Visão Geral Realidade Virtual, ou simplesmente RV, pode ser definida de duas formas diferentes. A primeira se refere à utilização de computadores e interfaces humano-computador para simular um mundo tridimensional contendo objetos interativos, de tal forma que cria-se uma forte sensação de presença real no ambiente [Bryson 1996]. A segunda forma de definir RV adota uma perspectiva independente da existência de computadores, ou qualquer dispositivo computacional. Assim, ela é definida com base na noção de telepresença, isto é, o ato de experimentar estar em um ambiente por intermédio de algum meio de comunicação [Steuer 1992]. Dessa forma, RV é vista como sendo um ambiente real ou simulado no qual se experimenta a telepresença. Resumidamente, RV é a simulação da presença de uma pessoa em um ambiente, seja ele real ou imaginário. Pesquisadores em RV buscam novas formas de imersão, visando diminuir as fronteiras de interação entre homem e máquina. Assim, são levados em consideração todos os sentidos humanos no esforço de simular fielmente tal percepção, em especial, neste trabalho, a visão. 2.1. História A área de estudo em RV é multidisciplinar. Os principais primeiros estudos na área datam da década de 60, frutos do trabalho de Ivan Sutherland [Wayne 2003]. Em uma aula como convidado, intitulada The Ultimate Display [Sutherland 1965], ocorrida em 1965, Ivan Sutherland forneceu uma nova visão, a possibilidade de criação de um mundo completamente virtual, e uma expansão no modo como interagimos com os computadores e recebemos feedback dos mesmos. Em sua visão, o que chamamos de monitores, hoje em dia a principal interface de saída dos computadores, são completamente obsoletos. Isso se deve ao fato de que os monitores tradicionais se aproveitam apenas de uma dimensão de percepção, a informação estática bidimensional, i.e., imagens. Ele, portanto, sugere que os monitores deveriam ser melhorados de forma a fornecer uma experiência sensorial mais rica, incorporando outras fontes de estímulos para os sentidos humanos, como estímulos olfativos e táteis, por exemplo. Mais ainda, na concepção de Sutherland, os monitores deveriam ter o poder de recriar ambientes completos, explorando toda a nossa percepção sensorial ao ponto que tais ambientes parecessem completamente reais. Dessa forma, em suas próprias palavras, uma cadeira criada por esse monitor seria boa o bastante para se sentar, e uma bala disparada por uma arma seria letal. 159 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. Desde então, várias pesquisas se intensificaram rumo à criação de sistemas de RV que possibilitassem uma maior imersão de interação, tais como a Cave Automatic Virtual Environment (CAVE) [Cruz-Neira et al. 1993], Head-Mounted Displays (HMDs) [Sutherland 1968], Fish Tank e Whale Tank Virtual Reality Displays [Ware et al. 1993] [Maksakov 2009]. Apesar de possuírem diferenças entre si, esses sistemas adicionam uma camada sensorial comum, que é a percepção de profundidade no ambiente, através da renderização da cena de acordo com o ponto de vista do usuário. 2.2. Interação Natural O conceito de Interação Natural pode ser abordado e definido em relação às liberdades físicas e cognitivas que são apresentadas ao usuário durante a interação. Quão maiores sejam estas liberdades, mais natural será a experiência. Este conceito pode ser resumido pela quebra de paradigma na interação: o que antes era atribuído ao usuário como tarefa, entender a interface, estuda-la, treinar para usá-la, agora passa a ser tarefa do sistema. Ou seja, o sistema passa a ser responsável por entender o usuário e não mais o contrário, o que pode ser traduzido como liberdades físicas e cognitivas oferecidas ao usuário pelo sistema, deixando este se expressar como bem entender. Assim, a responsabilidade de interpretação das intenções do usuário passa a ser cada vez maior por parte do sistema [Valli 2005]. Liberdade Física A liberdade física trata o aspecto de expressão do usuário no mundo real. Seja através de gestos com a mão, com o corpo inteiro, através do toque, da fala ou qualquer outra forma de interação, o usuário precisa expressar suas intenções fisicamente. Essa expressão pode ser um movimento do corpo, um comando de voz, ou até um olhar direcionado. Independente de que interação será realizada, para que esta seja reconhecida pelo sistema se faz necessária uma interface que realize a captura e o reconhecimento da interação. É na definição desta interface que surgem as restrições físicas. Analisando mais especificamente as interações por gestos corporais, é comum fazer uso de dispositivos anexos ao corpo para assim medir a movimentação de cada parte deste, através de sensores como acelerômetros e giroscópios. Por exemplo, para entender o posicionamento relativo da mão, obter conhecimento da angulação das articulações de cada dedo, é comum usar luvas hápticas, equipadas com diversos sensores [Prachyabrued e Borst 2012]. Em geral, os dispositivos anexos carregam vantagens expressivas em relação à precisão e ao tempo de resposta. Por outro lado, eles restringem a liberdade física do usuário de forma que se tornam um empecilho para a interação. Este incômodo pode surgir tanto no momento inicial em que o usuário precisa vestir/anexar o dispositivo, quanto ao longo da interação, causando desconforto, restrições de movimento, cuidado excessivo com o equipamento e até acelerando o processo de fadiga a depender da estrutura e peso do dispositivo. Avançando no grau de liberdade física oferecida ao usuário, existem dispositivos que não requerem que o usuário os vista ou os anexe a alguma parte do corpo, pois apenas precisam ser segurados [Lee 2008]. Apesar de a priori a diferença ser pequena, o fato de o usuário poder pegar e largar o dispositivo rapidamente lhe oferece uma liberdade chave para o uso do sistema com pausas. De fato, 160 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. a sensação de que o sistema lhe prende durante o uso tende a ser bem menor se o usuário é capaz de largar o dispositivo, com pouco esforço e tempo, sempre que sentir a necessidade de uma pausa. Por fim, já é possível encontrar hoje na literatura e na indústria diversos métodos que são capazes de capturar os movimentos do usuário à distância sem a necessidade que este vista ou segure qualquer dispositivo. Usando câmeras e/ou sensores de profundidade é possível estimar, por exemplo, a pose da cabeça do usuário [Prachyabrued e Borst 2012], da sua mão [Stenger et al. 2003], ou do seu corpo como um todo [Chang e Lin 2010]. No entanto, é importante ressaltar que mesmo estes dispositivos apresentam restrições físicas que podem se tornar uma dificuldade para a interação. Por exemplo, o dispositivo Leap Motion [Leap 2013] se propõe a rastrear com precisão e alta taxa de visualização os dedos do usuário em um subespaço de Xm³ acima do sensor. Este subespaço é uma limitação física do sensor e por vezes pode ser insuficiente para a interação, requerendo que o usuário se adeque às restrições do sensor para interagir com o sistema. Além do mais, o fato desta restrição não estar demarcada explicitamente para o usuário pode levar o mesmo ao erro contínuo de experimentação das fronteiras de captura do sensor. Esse efeito pode ser observado em diversos jogos para o Xbox 360 que fazem uso do Kinect [Microsoft 2013] para rastrear o corpo do usuário. Nestes jogos existe um esforço para educar o usuário sobre o seu posicionamento na cena de forma que o sensor possa capturar seus movimentos corretamente. Todas estas restrições físicas vêm sendo abrandadas com a evolução dos dispositivos de captura e reconhecimento. É notável o surgimento e popularização de novas tecnologias que se propõem a rastrear o usuário sem que este precise de qualquer equipamento junto ao seu corpo, o que revela a tendência de dar possibilidade para que as novas aplicações ofereçam interações mais naturais. Este é um dos motivadores para revisitarmos técnicas de interação para visualização, como o Fish Tank VR, diante deste novo panorama tecnológico. Liberdade Cognitiva Ainda que o usuário se sinta livre para mover-se durante a interação com o sistema, o processo de entendimento de suas intenções pode não estar preparado para transformar as informações capturadas em comandos intuitivos. Isto pode acontecer por restrições do método de rastreamento e reconhecimento ou simplesmente por um design da interação inadequado. Um caso comum em jogos digitais do tipo plataforma é que usuários inexperientes tentam fazer o personagem se mover inclinando e/ou transladando o joystick para direita ou para a esquerda. Nestes jogos, em geral, o personagem reage somente a comandos enviados pelos botões do joystick e não à sua inclinação ou posicionamento. Assim, a reação intuitiva do usuário é descartada pelo sistema por limitações do mesmo, o que causa frustração por parte do usuário, dificultando a execução da tarefa. Apoiados nesta metáfora de interação, jogos como Flower e Mario Kart passam a usar os sensores inerciais dos joysticks para a navegação no jogo, sugerindo formas de interação mais intuitivas. Mais além, existem casos em que apesar de o usuário usar o corpo como ferramenta de interação, a mesma não ocorre de forma natural. Em [UM3DLab 2011] é demonstrado um método de navegação em ambientes virtuais apresentados em CAVEs. O Kinect é utilizado para rastrear o corpo do usuário e gestos são definidos para que o usuário possa fazer sua personificação (avatar) no ambiente 161 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. virtual seguir adiante, virar para esquerda, para direita, etc. No entanto, os gestos corporais podem ser atribuídos a funções de forma a confundir o usuário, dificultando a interação. Por exemplo, em [UM3DLab 2011] o gesto de levantar o braço direito foi atribuído ao ato de mover o avatar para frente. A priori este gesto é um gesto simples de ser executado e sua memorização também é simples, porém basta o fato de o usuário ter que memoriza-lo para ocupar parte de sua carga cognitiva [Valli 2005]. Assim, se mais gestos são adicionados e precisam ser memorizados, o usuário tem sua interatividade limitada, pois estará ocupando parte considerável de sua carga cognitiva no ato de traduzir intenções em comandos aceitos pelo sistema. Como lembrado em [Valli 2005] os seres humanos são capazes de tratar simultaneamente 5 a 9 elementos que ocupam sua carga cognitiva. Para uma interação natural, é essencial ocupar o mínimo possível desta carga, fazendo com que a interação seja intuitiva o suficiente para que o usuário não precise revisitar sua memória constantemente procurando formas específicas de interagir. Assim, o usuário pode usar a maior parte de sua carga na execução da tarefa em si, sendo habilitado a resolver problemas mais complexos, por exemplo. Sobre o uso de rastreamento de faces para visualizações interativas, é possível usar a informação rastreada de diversas formas. Especificamente a técnica Fish Tank VR apresenta uma metáfora poderosa de interação. Através do rastreamento do ponto de vista do usuário a técnica se propõe a transformar monitores (ou outros displays) em dispositivos dotados de profundidade. Neste caso, a tela passa a ser interpretada como uma janela para o mundo virtual, podendo ser aplicada a praticamente qualquer cenário de aplicação em 3D. A metáfora oferecida é intuitiva visto que interagimos de forma análoga com espaços reais em nosso cotidiano. Em adição, a popularização massiva das câmeras, hoje inclusive acopladas a laptops e smartphones, juntamente com a evolução dos algoritmos de rastreamento de face, que dispensam dispositivos anexos à cabeça, se tornam fatores motivadores para uma nova análise da evolução no uso desta metáfora. O cenário tecnológico caminha para interfaces mais naturais e o panorama atual levanta a possibilidade do uso massivo da técnica Fish Tank VR. 2.3. Sistemas Head Coupled Um sistema que se habilita a rastrear a posição e orientação da cabeça do usuário para corrigir a perspectiva da renderização é um sistema Head Coupled [Stevenson 2002]. Trata-se de um sistema que combina ou é acoplado à informação espacial da cabeça do usuário para realizar algum trabalho. Em vários ambientes de RV a implantação de um sistema head coupled é considerada pelo ganho na percepção de profundidade, assim aumentando a imersão do usuário durante sua experiência com o sistema. Isso é válido para sistemas implantados em CAVEs, renderizados em HMDs ou em displays mais simples como monitores e projeções em uma única parede através da técnica Fish Tank Virtual Reality Displays [Stevenson 2002]. Em 1968, Ivan Sutherland descreveu seu projeto de dispositivo de visualização chamado head-mounted three dimensional display [Sutherland 1968]. Hoje em dia, ele passou a ser largamente chamado apenas de Head Mounted Display (HMD). Como discutido previamente, nosso cérebro também percebe a profundidade na cena a partir de duas imagens diferentes obtidas a partir do ponto de vista de cada um de nossos olhos. Os HMDs possuem uma facilidade para este tipo de renderização visto que 162 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. já se encontram acoplados à cabeça do usuário, e a estereoscopia é conseguida simplesmente dedicando duas imagens diferentes no display, uma para cada olho. Além disso, de forma geral os HMDs consideram o motion parallax, pois sua importância nos critérios de sensação de profundidade e imersão não é suplantada pela estereoscopia. De fato, estudos demonstram que as duas variáveis são complementares para se conseguir uma visualização mais completa, no entanto, vale ressaltar que se tratados independentemente, considerando a atividade de estimar a profundidade da cena, o motion parallax pode ser considerado mais importante do que a estereoscopia [Sutherland 1968] [Ware et al. 1993]. Desta forma, um HMD consiste de um par de óculos com um monitor para cada olho e, além disso, um dispositivo que rastreie a posição espacial da cabeça do usuário, a fim de apresentar as imagens corretamente para cada retina do usuário de acordo com o ponto de vista do mesmo (orientação e posição da cabeça). O pipeline de execução do projeto proposto por Sutherland primeiro adquiria a posição da cabeça do usuário e depois passava essa informação para o sistema computacional responsável por calcular os próximos frames que seriam mostrados ao usuário através dos óculos. Assim, o usuário podia se mover e olhar para diferentes posições, vendo diferentes partes da cena virtual que foi desenhada à sua volta [Sutherland 1968]. Atualmente, existem versões muito mais modernas de HMDs, cada vez mais leves e arrojados, mas o princípio continua sendo o mesmo. Apresentar imagens ao usuário, de acordo com sua posição no espaço. A Figura 2 ilustra exemplos de HMDs, dando uma ideia da evolução deste tipo de tecnologia em respeito a características de ergonomia, como campo de visão, tempo de resposta, resolução das imagens, entre outros. Figura 2. Versões de HMDs: a) versão primordial construída por Sutherland [Sutherland 1968]; b) HMZ-T2 da Sony, propondo um HMD mais arrojado e a um preço comercial [Sony 2013]; c) Oculus Rift proposto pela Oculus VR, que visa proporcionar um maior campo de vista em relação a outros HMDs (à direita da parte c), além de atingir uma taxa de atualização maior [Oculus 2013]. 163 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. Uma CAVE se trata de uma instalação para sistemas de RV que utiliza projetores, projetando em várias paredes em volta do usuário, para assim adicionar imersão à experiência. As CAVEs podem ter um número variado de lados projetados, geralmente entre 3 (esquerdo, frente e direito) e 4 (o mesmo que uma CAVE de 3 lados com a adição da projeção no chão), podendo chegar em 6 lados (incluindo o teto e atrás). Nestas instalações, em geral o sistema de visualização interativa é resolvido pelo uso de óculos 3D acoplados com marcadores infravermelhos para o rastreamento da posição e orientação da cabeça. Assim, o rastreamento da cabeça é calibrado com todas as projeções, de forma que a estereoscopia e a renderização de acordo com o ponto de vista do usuário são comumente aplicados neste cenário [Halarnkar et al. 2012] [Cruz-Neira et al. 1993]. Um dos principais motivadores para o uso de CAVEs é a possibilidade de criar um ambiente propício para visualização científica [Cruz-Neira et al. 1993]. Os usuários podem caminhar pelo ambiente, geralmente em uma área que varia entre 4m² e 9m² e enxergar o universo virtual de uma série de ângulos diferentes visto que as projeções estão por todos os lados. A Figura 3 ilustra o conceito e um exemplo de aplicação em CAVEs. Na parte a) da figura podem ser observados os projetores, sendo alguns deles voltados para espelhos para economizar espaço na instalação, visto que a projeção precisa estar a uma distância mínima do projetor para ocupar o espaço alocado na parede destinada. Além disso, ainda na parte a) pode ser visto que o usuário está usando óculos justamente para fornecer os efeitos de estereoscopia e motion parallax. Figura 3. CAVE: a) conceito; b) exemplo de aplicação em que um usuário navega por um ambiente virtual obtendo uma visualização simulada de como seria realizar a mesma navegação no mundo real. Por sua vez, a técnica Fish Tank Virtual Reality (FTVR) se diferencia dos HMDs e CAVEs por se propor a aplicar o conceito de visualização head coupled para displays planares, sejam estes monitores, dispositivos portáteis (smartphones e tablets) ou até projeções em uma única parede ou tela. Por se propor a cenários mais comuns e de baixo custo, a técnica FTVR se destaca por sua vasta aplicabilidade. O cenário tecnológico é propício para o uso do FTVR. Como será discutido na sequência, atualmente existem algoritmos de rastreamento de face/cabeça que usam apenas informações de imagens coloridas 164 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. a um baixo custo de processamento. Por sua vez, as câmeras necessárias para este processamento são facilmente encontradas, acopladas em diversos dispositivos, como smartphones, tablets e laptops. Assim, considerando os casos em que não se aborda a estereoscopia, esta técnica apresenta um potencial de ser inserida em praticamente qualquer aplicação de RV, oferecendo um ganho na interatividade em relação à percepção de profundidade. Recapitulando, segundo o experimento descrito em [Ware et al. 1993], é averiguado que a adição de uma renderização head coupled reduz consideravelmente o erro na execução da tarefa de definir a profundidade de partes da cena. Mais além, também é averiguado que a adição da estereoscopia apresenta uma redução em relação ao mesmo erro. Além disso, o fato de não ser necessário o uso de nenhum equipamento extra (ex.: óculos) para a visualização com o efeito motion parallax é uma característica valiosa no contexto de liberdade física dentro do conceito de Interação Natural. Desta forma, motivados pelas vastas possibilidades de aplicabilidade do FTVR, e também por sua congruência em relação aos conceitos relacionados a uma interação mais natural (como liberdade física e uma metáfora sólida de visualização interativa), este trabalho visa estudar mais a fundo os aspectos da técnica. Em sequência, serão apresentadas suas principais características, bem como as opções de rastreamento para a captura da pose da face do usuário. 2.4. Percepção de Profundidade Os seres humanos estimam profundidade de objetos a partir de diversas variáveis. Existem variáveis psicológicas, fisiológicas, monoculares e binoculares [Mello 2013]. Existem ainda fatores empíricos associados [Purves et al. 2002]. Esses fatores contribuem para a percepção de profundidade humana. Tais fatores são considerados ao se criar ambientes imersivos de visualização [Bradski e Kaehler 2008], citados anteriormente. Entre as variáveis psicológicas, a perspectiva é a que merece atenção especial neste trabalho. Perspectiva é o nome dado ao efeito dos objetos aparentarem possuir tamanhos diferentes conforme se está próximo ou distante dos mesmos. Matematicamente, trata-se de um tipo de projeção sobre um plano, chamado plano da imagem. Uma das características da projeção em perspectiva é que quanto mais distante um ponto 3D estiver do centro de projeção, este ponto tenderá a ficar mais próximo do centro do plano da imagem. Isto significa que objetos tenderão a aparentar menores conforme estiverem mais distantes, e o contrário também é verdadeiro. Assim, a objetos maiores são atribuídos graus de profundidade mais próximos. Outras variáveis psicológicas como a oclusão e as sombras se tornam dicas importantes para o ser humano definir a profundidade de cada objeto na cena. Por exemplo, os objetos ocluídos na cena são definidos instintivamente como mais distantes daqueles que os ocluem. O mesmo acontece para o sombreamento na cena. A sombra de um objeto sobre outro indica que para aquele ponto de vista, o primeiro está mais a frente. Estas, dentre outras variáveis, são indicativos de profundidade que podem ser observados mesmo em uma cena estática, como em uma foto por exemplo. Ao mesmo tempo, estas variáveis são inerentes à criação de cenas virtuais, durante o processo de modelagem 3D dos objetos da cena e das fontes de luz. Quando a cena é renderizada estes efeitos são demonstrados automaticamente visto que, por exem165 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. plo, as projeções são em perspectiva, consideram a oclusão visual e também a iluminação. Assim, ao olhar para a cena o usuário é capaz de distinguir a profundidade de cada elemento nesta. No entanto, mesmo podendo definir a profundidade de cada elemento na cena, o usuário continua a ter a sensação de que observa um plano à sua frente (plano da imagem). Para quebrar esta sensação é preciso oferecer ao usuário formas de visualização que explorem suas capacidades fisiológicas além das psicológicas. As duas principais ferramentas para atingir esse objetivo são a estereoscopia e o motion parallax. A estereoscopia se enquadra dentro das variáveis fisiológicas binoculares. Seu efeito é produzido combinando duas imagens obtidas a partir de posições ligeiramente diferentes. Mais especificamente, são geradas duas projeções em perspectiva do ambiente virtual, uma para cada olho. Na sequência o cérebro humano, ao processar as imagens, é capaz de reconstruir tridimensionalmente o espaço observado, atribuindo valores de profundidade a cada ponto projetado sobre a retina. Esta técnica permite o usuário, por exemplo, distinguir a profundidade de dois objetos com a mesma aparência na imagem (plano projetado) que, no entanto, possuem tamanhos reais diferentes. Por sua vez, o motion parallax é uma variável fisiológica monocular. Este nome é dado ao fenômeno visual dos objetos mais distantes se moverem com velocidade relativa menor que os objetos que estão mais próximos da posição ocular de um observador em movimento. Assim, ao mover o ponto de vista (no caso a cabeça), o usuário consegue perceber a movimentação dos objetos observados e então correlaciona os dados capturados para definir a profundidade de cada parte da cena. Além de ser uma dica importante para a estimativa da profundidade na cena, o ato de mover a cabeça permite que o usuário enxergue partes não visíveis, dado um ponto de vista fixo. De fato, o ideal é combinar as duas variáveis, porém em casos em que cada uma é usada separadamente, já foi averiguado que o motion parallax produz melhores resultados em relação à experiência de visualização. Neste trabalho, iremos estudar mais profundamente a técnica Fish Tank VR, que tem por objetivo produzir o efeito de motion parallax em ambientes virtuais de forma calibrada com o mundo real. A técnica faz parecer que o conteúdo disponibilizado pelo display faz parte da realidade, reagindo visualmente da mesma forma que qualquer outro objeto real no campo de vista do usuário reagiria. 3. Fish Tank Virtual Reality A intensão da técnica de Fish Tank Virtual Reality (FTVR) é a de criar a ilusão de profundidade em um monitor de vídeo tradicional. A adição dessa camada de percepção 3D possibilita uma melhoria na execução de tarefas, principalmente aquelas que envolvem que o usuário indique uma posição tridimensional no espaço projetado em um monitor [Lee 2008]. 3.1. Rastreamento Primeiramente, para calcular o ponto de vista do usuário é preciso que o sistema tenha conhecimento da posição do sistema visual do usuário. Existem diversos métodos que podem cumprir tal tarefa. Alguns são mais intrusivos e podem vir a requerer um maior custo de aquisição, enquanto que outros 166 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. métodos apesar de serem menos intrusivos e mais baratos tendem a necessitar de um processamento mais refinado. Este cenário entre custo de aquisição, necessidade de dispositivos anexos e custo de processamento em geral, dificilmente apresenta uma solução completa. Mais a frente, apresentaremos métodos de rastreamento na direção de uma técnica que combine estas qualidades previamente citadas. Wiimote Primeiramente, existem vários métodos que utilizam dispositivos anexos à cabeça do usuário para rastreá-la em tempo real. Em geral, estas técnicas apresentam alta precisão de rastreamento além de um rápido tempo de resposta, porém requerem a confecção ou aquisição de dispositivos bem específicos os quais não são popularizados o suficiente para serem usados em larga escala. No entanto, recentemente, a técnica FTVR foi demonstrada por Lee [Lee 2008] utilizando o controle do console Nintendo Wii (chamado Wiimote) para detectar a posição dos olhos do usuário. Lee, em seu trabalhado de título “Hacking the Nintendo Wii remote” [Lee 2008], descreve sua abordagem para transformar o controle do Nintendo Wii em um rastreador, para encontrar a posição da cabeça do usuário e, com base nisso, criar um ambiente FTVR. Esta abordagem levanta uma vantagem em relação às anteriores relacionada aos equipamentos necessários para realizar o rastreamento. O Wiimote, por ser um dispositivo disponível em larga escala, é uma ferramenta acessível para desenvolvedores e usuários por todo o globo. Em relação ao funcionamento do rastreamento, este é possível dado que o controle do Nintendo Wii possui uma câmera capaz de detectar o espectro infravermelho da luz a uma alta taxa de atualização (por volta de 100 quadros por segundo). Lee então criou óculos adaptados com dois emissores de luz infravermelha e o utilizou para rastrear a cabeça do usuário. Por fim, o controle do console foi posicionado na frente da televisão, de forma a capturar a luz emitada pelos óculos. Por fim, um PC passa a ser responsável pelo processamento das imagens capturadas pelo Wiimote. Dada a distância entre os pontos na imagem, a posição 3D da cabeça do usuário é estimada. A Figura 4 ilustra os equipamentos utilizados para o rastreamento da cabeça do usuário. Figura 4. Dispositivos utilizados para rastrear o ponto de vista do usuário por Lee [Lee 2008]: a) versão do Wiimote disponível no mercado; b) Wiimote aberto com detalhe em sua câmera infravermelho; c) óculos com emissores infravermelhos nas laterais. No entanto, existem algumas considerações quanto a estas abordagens de rastreamento a partir de dispositivos anexos. A intrusão representada pela necessidade de se utilizar óculos especiais, ou outros equipamentos como uma combinação de sensores inerciais, pode dificultar a interação prolongada, 167 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. além de restringir o uso do sistema. Por exemplo, em ambientes abertos e não controlados, pode não ser inconveniente pedir para que os usuários experimentem o sistema com o mesmo óculos e que tenham o cuidado necessário com o equipamento. Além disso, mesmo considerando a abrangência dos equipamentos sugeridos por Lee, o uso de uma câmera comum é preferível. Em outras palavras, apesar do Wiimote ser disponível em larga escala, este não é um dispositivo periférico tão comum para os computadores quanto uma câmera. Por outro lado, é de fato possível utilizar uma câmera para rastrear a cabeça do usuário, e isso pode ser alcançado utilizando-se algoritmos de rastreamento como o TLD/ Predator [Kalal et al. 2010], descrito adiante. TLD/Predator O algoritmo de rastreamento de longo prazo, TLD (Tracking Learning Detection), permite que a partir de um exemplo inicial seja dado início a um processo de contínuo aprimoramento de um classificador binário dentro de uma sequencia de imagens [Kalal et al. 2010]. O processo de aprendizado é guiado por restrições estruturais, as quais o autor do algoritmo nomeia de P-N Learning Constraints. A partir do exemplo inicial, um rastreador de curto termo é utilizado para rastrear o objeto desejado ao mesmo tempo em que o detector tenta formular novas hipóteses de onde estaria o objeto, em um dado frame. A decisão se o rastreamento ou a melhor hipótese do detector deve prevalecer é feita pelo modelo online de decisão, criado até então para o objeto rastreado. Sempre que o tracker prevalece, é criado um novo conjunto de treinamento para o classificador, que é então aprimorado através das P-N Learning Constraints. Estas ditam que um exemplo dever ser positivo (P) se estiver com um grau de overlapping dentro de um certo limiar estipulado, ou negativo (N), caso contrário. Assim são criados novos exemplos de treinamento. E dessa forma, é possível demonstrar que existem situações em que o sistema decresce a sua taxa de erro com o passar o tempo, assim detectando cada vez com mais precisão e com maior chance de sucesso o objeto que se quer rastrear. De maneira geral, o pipeline de processamento pode ser representado pelo diagrama apresentado na Figura 5. 168 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. Figura 5. Modelo online do objeto rastreado, contento exemplos positivos e negativos. O TLD é conhecido também como Predator, dada a sua eficiência em rastrear o alvo que lhe foi atribuído. Em casos críticos, o TLD/Predator pode perder o alvo. Para esses casos, o algoritmo é então reinicializado com a ajuda de um segundo algoritmo de aprendizagem, chamado Adaboost, cuja implementação já existe na biblioteca OpenCV [Bradski e Kaehler 2008]. A partir deste rastreamento de faces é estimada a posição espacial da cabeça do usuário, utilizada para configurar o ambiente FTVR adequadamente, como será explicado em mais detalhes logo adiante. A grande vantagem de se utilizar o rastreamento de faces baseado em imagens de uma câmera tradicional é o baixo custo e o fato de não haver a necessidade de configurar ambientes complexos ou artesanais para o cálculo da posição da cabeça do usuário, como é o caso da utilização do Wii remote. Por fim, o rastreamento dá como saída as delimitações de um retângulo (bounding box), dentro do qual se encontra a face do usuário (Figura 6). É com base nas dimensões desse retângulo, no ângulo de visão da câmera e nas dimensões da imagem obtida pela câmera que será calculada a posição da cabeça do usuário no espaço. 169 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. Figura 6. Resultados usando o rastreamento de faces com TLD (aka Predator). 3.2. Estimativa de Posição Espacial Queremos computar a posição no espaço da face do usuário (x’, y’, z’) a partir de um retângulo que a delimita. Para resolver esse problema, partimos do princípio de que toda câmera possui um ângulo de visão; este ângulo determina o campo de visão (field of view, ou FOV) de uma câmera, como mostra a Figura 7. Figura 7. FOV de uma câmera, visto de cima. 170 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. A Figura 7 mostra um objeto de tamanho m situado a uma distância z da câmera, de tal forma que esse objeto ocupa toda a lateral da imagem da câmera, que por sua vez possui largura w. Ao se realizar esse experimento, é possível calcular o ângulo de visão horizontal, em radianos, da câmera da seguinte maneira: Assim, fixando-se a largura da imagem obtida pela câmera, w, é possível obter a razão entre o ângulo de visão horizontal e a quantidade de pixels de uma imagem obtida por essa câmera. Chamemos essa razão de RPP (Radians Per Pixel), a qual é descrita por: Consequentemente, um retângulo detectado pelo TLD/Predator representando a face do usuário pode ser representado como apresentado p na Figura g 8. Figura 8. Retângulo detectado pelo TLD/Predator, visto de cima. A face do usuário possui largura, em unidades espaciais reais, de magnitude m. Em pixels, a face do usuário ocupa uma área da imagem de largura w’. Assim sendo, utilizando a razão RPP, podemos calcular α’ e, por fim, a coordenada de profundidade z da seguinte maneira: Trigonometricamente, portanto, podemos deduzir que: 171 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. Por sua vez, as coordenadas x’ e y’ podem ser calculadas com base nas dimensões reais horizontal e vertical do monitor, rw e rh, respectivamente. Dado o baricentro do retângulo (xp, yp), é possível se estabelecer a seguinte relação linear entre rw e xp, yp e rh. Em suma, essa relação linear irá mapear as coordenadas dadas em pixels (xp, yp) para coordenadas espaciais reais, com base nas dimensões reais do monitor. A Figura 9 ilustra graficamente esse mapeamento para a coordenada xp. Uma vez que o processo é análogo para a coordenada yp, esse passo será omitido. Dessa forma, então, são calculadas as coordenadas espaciais da face do usuário (x’, y’, z’), as quais são utilizadas para configurar o ambiente de renderização, com o propósito de criar o ambiente FTVR. Figura 9. Remapeamento de xp. 3.3. Cálculo da Matriz de Parâmetros Extrínsecos A matriz de parâmetros extrínsecos Rt, é composta por uma rotação e uma translação. Esta matriz é responsável, dentro do pipeline de renderização, por transformar os pontos que estão em um sistema de coordenadas de referência, chamados de coordenadas de mundo, para o sistema de coordenadas da câmera virtual. Nesse caso, deseja-se que a câmera virtual esteja situada no próprio olho do usuário, ou que ela seja ou represente o próprio olho do usuário, de tal forma que o que ele vê na tela é visto de acordo com sua posição real no espaço. Dada a posição da face do usuário, que nós chamaremos de E = (x’, y’, z’, 1), em coordenadas homogêneas, calculamos a matriz de parâmetros extrínsecos da seguinte forma: 172 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. Assim a matriz de rotação (R) dada por: E a matriz de translação (t) é dada por: Onde, R é uma matriz de dimensões 3x3 e t um vetor 1x3. A matriz Rt é dada por: Rt é uma matriz de dimensões 4x4, chamada matriz de parâmetros extrínsecos, ou matriz de câmera, e 0 é o vetor (0,0,0). 3.4. Cálculo da Matriz de Projeção (Frustum de Visualização) A matriz de projeção define o volume de visualização, ou frustum. Ela é totalmente especificada com base em oito parâmetros referentes aos limitantes do tronco de pirâmide considerado como subespaço do mundo virtual que será renderizado: left, right, bottom, top, left e right, near e far. A sua função é a de projetar os pontos do espaço que estiverem dentro do volume de visualização no plano da imagem. O plano da imagem, por sua vez, se encontra situado a uma distância da câmera denotada por near. Uma representação do frustum é mostrada na Figura 10. 173 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. Figura 10. Frustum de uma cena virtual. Os oito parâmetros estão denotados apenas por suas iniciais. Dentro do contexto do FTVR, o volume de visualização não permanece simétrico e constante, mas é de natureza assimétrica e muda conforme a posição da face do usuário, seguindo sua posição no espaço. É essa correção de perspectiva que, ao se adequar à posição do usuário, cria a ilusão de profundidade. Assim, quando o usuário altera sua posição, o frustum deve ser corrigido, e essa correção recebe contribuição de duas fontes. A primeira é quando o usuário se desloca sobre o eixo z, e a segunda é quando ele se move sobre os eixos x e y. Essas duas contribuições são computadas e, em conjunto, corrigem o frustum. Movimentação no eixo z A Figura 11 ilustra a geometria da cena demonstrando as variáveis necessárias para se estimar a profundidade (coordenada z) da face do usuário. 174 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. Figura 11. Calculando o novo frustum, movimentação no eixo z. Por semelhança de triângulos, pode-se demonstrar que: Movimentação nos eixos x e y De forma análoga à Figura 11, a Figura 12 ilustra a variação da posição da face do usuário no plano xy, bem como as variáveis necessárias para estimar sua posição na cena. Figura 12. Calculando o novo frustum, movimentação nos eixos x e y. Seguindo uma linha de raciocínio semelhante, demonstra-se que: 175 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. A partir disso, pode-se corrigir o frustum antigo (geralmente simétrico e pré-definido pela aplicação), obtendo os novos valores que o definem: left’, right’, bottom’ e top’ como demonstrado abaixo. Os valores, near e far são constantes [Maksakov 2009]. O resultado da aplicação do pipeline pode ser visualizado na Figura 13. A informação do rastreamento (retângulo azul) foi usada para estimar o ponto de vista do usuário (coordenadas x, y e z da face). Em seguida essa informação foi usada para modificar o frustum da cena. Como pode ser visto, a cena renderizada (parte direita da Figura 13) aparenta estar distorcida. Este efeito ocorre pois o frustum deixa de ser simétrico para se adequar ao ponto de vista do usuário. Figura 13. FTVR em execução, retângulo azul com face detectada. 4. Aplicações A técnica FTVR pode ser aplicada em diversos cenários. Os requisitos para a aplicação da técnica são mínimos considerando o contexto tecnológico. De fato, praticamente qualquer aplicação de RV 176 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. que conte com uma câmera à disposição e com uma carga de processamento disponível pode aplicar a técnica para incrementar a sua visualização. Exemplos de sua aplicação constam desde trabalho colaborativo na análise de dados até a simulação de hologramas. Tais cenários se beneficiam do maior nível de detalhes possibilitado pelo FTVR, da geração de campo de visão variável, e da percepção de profundidade. 4.1. Whale Tank Virtual Reality Dentro do escopo do trabalho colaborativo, uma expansão do sistema FTVR foi proposta, sendo chamada de Whale Tank Virtual Reality [Maksakov 2009]. A proposta do Whale Tank é fornecer um sistema de visualização baseado no FTVR, substituindo monitores tradicionais por telas maiores. Por causa disso, é possível que dois ou mais usuários colaborem entre si usando a mesma tela. No Whale Tank, mostrado na Figura 14, cada usuário pode interagir com o ambiente ao tocar na tela. Além disso, cada um possui seu próprio viewport, ou seja, sua própria visualização, de acordo com seu ponto de vista, baseado no FTVR. O rastreamento da posição da cabeça do usuário é feito usando sensores especiais que fornecem informações com 6 graus de liberdade, três graus para a posição (translação) e três para a configuração angular (rotação). Os usuários podem interagir com os objetos virtuais via toque. O Whale Tank é um bom exemplo que demonstra uma possível utilização do sistema em cenários de trabalho colaborativo, mesclando a interação por toques e gestos com a renderização baseada no ponto de vista do usuário. Figura 14. Trabalho colaborativo com Whale Tank Virtual Reality. 177 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. 4.2. pCube Em [Stavness et al. 2010] é descrito um dispositivo, chamado pCube (ver Figura 15). Este dispositivo pode servir tanto como ferramenta de visualização quanto ferramenta de input. O pCube usa a metáfora de uma caixa de vidro, e em cada uma de suas faces existe uma tela LCD que renderiza o ambiente virtual de acordo com o ponto de vista do usuário. Cada tela funciona independentemente, como um monitor com a técnica FTVR. Para simular coerentemente a metáfora de uma caixa de vidro, foi utilizada uma engine física para simular a movimentação dos objetos de acordo com o manuseio da mesma. O pCube utiliza o FTVR de uma forma diferente de todas as outras abordagens vistas até então. Mas, da mesma forma que o Whale Tank, houve a tentativa de expandir as capacidades do sistema padrão FTVR. O pCube pode ser usado para uma grande gama de aplicações em educação, jogos, radar 3D, mapas, entre outros [Stavness et al. 2010]. Essas e outras aplicações servem como indícios da riqueza de aplicações que podem se beneficiar pela técnica FTVR. 178 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. Figura 15. Detalhamento do pCube: a) imagem conceitual do pCube mostrando a renderização isolada em cada face e as renderizações integradas; b) imagem do pCube construído, também mostrando o controlador A/D e o Headphone contendo o dispositivo de head tracking; c) ilustração da engine física atuando sobre os objetos. 4.3. Holo Desk Recentemente, foi publicado pela Microsoft Research um trabalho que descreve o sistema Holo Desk [Hilliges et al. 2012]. O Holo Desk é um sistema interativo de RA que permite ao usuário o manuseio de objetos virtuais sem a necessidade de vestir nenhum hardware auxiliar. O usuário visualiza os objetos virtuais através de um vidro semitransparente, onde os mesmos são projetados. Nesse sistema é possível interagir com os objetos virtuais de forma natural, através de gestos de agarrar e também através de outros objetos reais, como livros, vasilhas e folhas de papel. O sistema utiliza a câmera do Kinect para detectar a interação entre os objetos reais e virtuais. Uma vez que o sistema foi criado com o intuito de não necessitar de nenhum outro tipo de instrumento auxiliar para manipular o ambiente virtual, a simulação de profundidade foi obtida usando-se a técnica FTVR para correção de perspectiva de acordo com o ponto de vista do usuário. Esta opção é tomada com base em estudos que sugerem que a correção de perspectiva de acordo com o ponto de vista é mais importante para a estimativa da profundidade na cena, do que a própria estereoscopia [Ware et al. 1993] [Stavness et al. 2010]. Entre as principais contribuições do Holo Desk figura a integração em um único sistema da simulação física de objetos virtuais no mundo real, além da interação com a mão livre e a visualização corrigida a partir do ponto de vista do usuário. A Figura 16 ilustra o funcionamento do Holo Desk. Nas partes A e B o usuário interage com esferas virtuais usando a mão e uma tigela. Na parte C é possível ver em detalhes as features rastreadas da mão do usuário, utilizadas para efetuar a sua interação com os objetos virtuais. Na parte D é possível observar o usuário levantando um cubo virtual com as duas mãos. Por fim, na parte E da Figura 16, é observado o uso de um caderno para sustentar um cubo virtual. Figura 16. Cenário de aplicação do Holo Desk. 4.4. Robótica e Telepresença 179 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. Em [Heinrichs and McPherson 2012], um sistema de telepresença é proposto, com o objetivo de simular o comportamento do FTVR em um ambiente real. Dessa forma, a ideia de simular uma janela para um outro espaço é alterada. O espaço que o observador vê não é mais virtual, mas sim real, e está situado remotamente. A intenção foi a de criar uma forte sensação de presença física no local remoto, fazendo o usuário se sentir como se estivesse realmente olhando para uma janela que mira para outro ponto no espaço físico. O sistema é composto por um braço robótico, o qual segura uma câmera, e a translada de acordo com a mudança de posição da cabeça do usuário. A cabeça do usuário, por sua vez, é rastreada por um Kinect. É possível perceber que nestes trabalhos, o conceito de visualização imersiva passa a transcender o caso comum. A Figura 17 ilustra o cenário e os equipamentos utilizados para a experimentação do conceito. Figura 17. Apresentação do sistema de telepresença que usa um braço robótico (topo) controlado pelo movimento do usuário na cena, o qual é rastreado por um Kinect (base). 4.5. Lentes Mágicas Em [Baricevi et al. 2012] é demonstrado um protótipo de Lentes Mágicas (Magic Lenses). Toda aplicação de RA pode ser considerada uma lente mágica, pois sobrepõe informação que só pode ser vista na tela do dispositivo que está exibindo a cena, neste caso, dispositivos móveis, como tablets e smartphones. No entanto, todas as aplicações mostram as informações apenas sob o ponto de vista do próprio dispositivo, ao invés de levarem em conta o ponto de vista do usuário na cena. Por exemplo, se 180 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. o usuário mudar o ângulo como observa a tela do dispositivo, a imagem não irá mudar, pois o dispositivo continua apontado para a mesma posição, e no mesmo local do espaço. Entretanto, seria desejável que a imagem mostrada para o usuário mudasse de acordo com o ponto de vista do mesmo, criando a ilusão de que a tela do dispositivo é realmente uma lente transparente. Este é justamente o objetivo do trabalho descrito em [Baricevi et al. 2012]. O protótipo pode ser visto na Figura 18, parte a). Consiste de um Kinect e um Wiimote, ambos acoplados a um tablet. O Kinect foi utilizado para reconstruir a cena, estimar a pose da câmera do dispositivo, a fim de renderizar os objetos virtuais nos lugares adequados, e também renderizar a própria reconstrução de forma diferenciada, baseada no ponto de vista do usuário. Para rastrear e obter o ponto de vista do usuário foi utilizado o Wiimote, juntamente com um óculos que possui emissores de luz infravermelho, de modo semelhente à configuração proposta por Lee [Lee 2008], explanada anteriormente. As principais contribuições deste trabalho se concentram na realização de um estudo comparando entre os dois tipos de lentes mágicas, a primeira que utiliza apenas o ponto de vista do dispositivo, enquanto a segunda, que se baseia no ponto de vista do usuário, gerando resultados quantitativos e qualitativos favoráveis ao uso da perspectiva baseada no ponto de vista do usuário. Além disso, a prova de conceito é de que é possível aplicar a técnica de FTVR também em cenários reais através da reconstrução destes em tempo real com sensores de profundidade como o Kinect. Mais além, é notável o feito de construir uma lente mágica desta natureza com componentes de hardware pré-fabricados e acessíveis (Kinect e Wiimote). Figura 18. Lentes mágicas: a) protótipo utilizado; b) cena aumentada sob o ponto de vista do dispositivo; c) cena aumentada sob o ponto de vista do usuário; d) ilustração conceitual do objetivo da aplicação. 5. Considerações Finais O presente trabalho introduz temas que concernem a Realidade Virtual, as suas origens, alguns de seus sistemas e técnicas. Temas como Interação Natural e Percepção de Profundidade são abordados e correlacionados com técnicas de visualização interativa. Em especial, a implementação da técnica Fish Tank Virtual Reality (FTVR) é abordada em detalhes. Mais além, é discutida uma implementação do sistema FTVR utilizando câmeras de baixo custo (e.g. webcams) e rastreamento de faces utilizando TLD/Predator. Esta combinação de implementação se destaca por usar unicamente uma câmera comum e um algoritmo de baixo custo de processamento para definir o ponto de vista do usuário. 181 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. Na sequência, a aplicabilidade da técnica é analisada. Visto que seu custo de implementação e implantação é baixo, uma vasta gama de aplicações pode se beneficiar deste tipo de visualização interativa. Tais aplicações vão desde jogos em primeira pessoa [Andersen et al. 2010] até sistemas de interação em disposivos móvel [Francone and Nigay 2011]. Outras sugestões também podem ser citadas, como a visualização de volumes em aplicações científicas, as quais exigem que um grande conjunto de dados seja renderizado, ou aplicações voltadas para trabalhos cooperativos [Maksakov 2009]. Mais além, trabalhos do estado da arte são apresentados, indicando que a técnica FTVR passa a ser aplicada inclusive em ambientes reais, com o objetivo de tornar também a representação da realidade nos displays, calibrada de acordo com o ponto de vista do usuário [Hilliges et al. 2012] [Heinrichs and McPherson 2012] [Baricevi et al. 2012]. Nestas aplicações é também demonstrado que a adição da técnica enriquece a interação e ajuda na execução de tarefas em que a informação de profundidade é relevante. References ANDERSEN, A.S.; HOLST, J.; VESTERGAARD, S.E. (2010) “The Implementation of Fish Tank Virtual Reality in Games: Exploring the concepts of motion parallax simulation and stereoscopy”, Department of Medialogy, Aalborg University Copenhagen. BARICEVI, D.; LEE, C.; TURK, M.; HOLLERER, T.; BOWMAN, D. A. (2012) “A Hand-held AR Magic Lens with User-Perspective Rendering”, International Symposium on Mixed and Augmented Reality ISMAR, United States. BRADSKI, G.; KAEHLER, A. Learning OpenCV: computer vision with the OpenCV library, O'Reilly Media, 2008. BROOKS JR.; F. P. (1999) “What’s Real About Virtual Reality?”, IEEE Computer Graphics and Applications, 19(6), 16-27. BRYSON, S. (1996) “Virtual Reality in Scientific Visualization”, Communications of the ACM, MS T27A-1, NASA Ames Research Center, Moffett Field, CA, United States. CHANG, I.; LIN, S. (2010) “3D Human Motion Tracking based on a Progressive Particle Filter”, Pattern Recognition Letters, 43(10), 3621-3635. CRUZNEIRA, C.; SANDIN, D. J.; DEFANTI, T. A. (1993) “Surround-screen Projection-based Virtual Reality: The Design and Implementation of the CAVE”, annual conference on Computer graphics and interactive techniques - SIGGRAPH, pp. 135-142. FRANCONE, J.; NIGAY, L. (2011) “Using the User’s Point of View for Interaction on Mobile Devices”, Université Joseph Fourier Grenoble 1, Laboratoire d’Informatique de Grenoble, France. GOKTURK, S.; TOMASI, C. (2004). “3D head tracking based on recognition and interpolation using a time-of-flight depth sensor”, Computer Vision and Pattern Recognition – CVPR. 182 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. HALARNKAR, P.; SHAH, S.; SHAH, H.; SHAH, H.; SHAH, A. (2012) “A Review on Virtual Reality”, International Journal of Computer Science Issues, 9(6), 325-330. HEINRICHS, C.; MCPHERSON, A. 2012) “Recreating the Parallax Effect Associated with Fishtank VR in a Real-Time Telepresence System Using Head-Tracking and a Robotic Camera”, International Symposium on Mixed and Augmented Reality – ISMAR, United States. HILLIGES, O.; KIM, D.; IZADI, S.; WEISS, M.; WILSON, A. D. (2012) “HoloDesk: Direct 3D Interactions with a Situated See-Through Display”, SIGCHI Conference on Human Factors in Computing Systems, United States, p 2421-2430. Sony (2013) “HMZ-T2 Visualizador Pessoal 3D”, http://www.sony.pt/product/visualizador-pessoal-3d/ hmz-t2, 25/03/2013. KALAL, Z.; MATAS, J.; MIKOLAJCZYK, K. (2010) “P-N Learning: Bootstrapping Binary Classifiers by Structural Constraints”, Computer Vision Pattern and Recognition - CVPR, United States. Leap Motion, Inc. (2013) “Leap Motion”, https://www.leapmotion.com/, 25/03/2013. LEE, J. C. (2008) “Hacking the Nintendo wii remote”, IEEE Pervasive Computing, United States, Vol. 7, pp. 39-45. MAKSAKOV, E. (2009) Whale Tank Virtual, Dissertação de Mestrado, Ciência da Computação, The University of British Columbia, United Kingdom. MELLO, C. A. “Percepção de Profundidade”, http://www.cin.ufpe.br/~cabm/visao/PV_Aula01_Percepcao. pdf, 15/03/2013. Microsoft (2013) “Xbox 360 + Kinect”, http://www.xbox.com/en-US/xbox360?xr=shellnav, 25/03/2013. Oculus VR, Inc. (2013) “Oculus Rift”, http://www.oculusvr.com/, 25/03/2013. PRACHYABRUED, M.; BORST, C. W. (2012) “Virtual Grasp Release Method and Evaluation”, International Journal of Human-Computer Studies, 70(11), 828-848. PURVES, D.; LOTTO, B.; NUNDY, S. (2002) “Why We See What We Do: An Empirical Theory of Vision”, American Scientist, Sunderland, MA: Sinauer Associates, United Kingdom. STAVNESS, I.; LAM, B.; FELS, S. (2010) “pCubee: A Perspective-Corrected Handheld Cubic Display”, ACM CHI, 1381-1390, New York, United States. STENGER, B.; THAYANANTHAN, A.; TORR, P. H. S.; CIPOLLA, R. (2003) “Filtering using a Tree-Based Estimator”, International Conference on Computer Vision, p. 1063. STEUER, J. (1992) “Defining Virtual Reality: Dimensions Determining Telepresence”, Journal of Communication, 42(4), 73-93. 183 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 157-184, maio/2013. ARRUDA, Ermano Ardiles; FIGUEIREDO, Lucas Silva; TEICHRIEB, Veronica. Percepção Natural de Profundidade: Uma Análise do Fish Tank Virtual Reality. STEVENSON, A. (2002) “Calibrating Head-Coupled Virtual Reality Systems”, Master of Science, The Faculty of Graduate Studies, The University of British Columbia, United Kingdom. SUTHERLAND, I. E. (1965) “The Ultimate Display”, IFIPS Congress, New York, United States, Vol. 2, pp. 506-508. SUTHERLAND, I. E. (1968) “Head-Mounted Three Dimensional Display”, AFIPS Fall Joint Computer Conference, United States, Vol. 33, pp. 757-764. UM3DLab (2011) “Kinect - Navigation in a Virtual Reality CAVE”, http://www.youtube.com/ watch?v=XMl4Q2smpPk, 25/03/2013. VALLI, A. (2005) “Notes on Natural Interaction”, http://www.idemployee.id.tue.nl/g.w.m.rauterberg/ lecturenotes/valli-2004.pdf, 25/03/2013. WARE, C.; ARTHUR, K.; BOOTH, K. S. (1993) “Fish Tank Virtual Reality”, CHI, pp. 37-42. WAYNE, C. (2003) “A Critical History of Computer Graphics and Animation, Section 17: Virtual Reality”, http://design.osu.edu/carlson/history/lesson17.html, 29/02/2013. 184 185 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 185-200, maio/2013. ELISEO, Maria Amelia; PACHECO, Beatriz de Almeida; DELMONDES, Darlan Silva Alves. Desenvolvimento de websites com ambientes virtuais 3D interativos Desenvolvimento de websites com ambientes virtuais 3D interativos Maria Amelia Eliseo Beatriz de Almeida Pacheco Darlan Silva Alves Delmondes Abstract This chapter shows aspects for developing websites with interactive 3D virtual environments. The use of HTML 5 Canvas and the X3DOM framework, allows the construction and display of environments that does not require the installation of plugins in the browser. X3DOM integrates X3D scenes in HTML and allows the manipulation of content by adding, removing or altering dynamically HTML DOM elements. The result is a 3D virtual environment where the user can navigate and interact with objects in threedimensional world. Resumo Este capítulo mostra os aspectos para o desenvolvimento de websites com ambientes virtuais 3D interativos. O recurso Canvas da HTML 5 e o framework X3DOM dão suporte para a construção destes ambientes e sua exibição não necessita da instalação de novos plugins no browser. X3DOM integra cenas X3D no código HTML e permite a manipulação do conteúdo adicionando, removendo ou alterando dinamicamente os elementos DOM HTML. O resultado é um ambiente virtual 3D onde o usuário poderá navegar e interagir com os objetos do mundo tridimensional. 1. Introdução Nos últimos anos, os avanços tecnológicos tornaram possível a construção de modelos 3D interativos e ambientes virtuais 3D, que podem ser experimentados através da Web, usando para seu desenvolvimento computadores comuns, de baixo custo. A ideia de se construir um conteúdo 3D na web não é novidade, no entanto percebe-se ainda hoje, um pequeno número de sites que trazem este recurso. O entrave ocorrido no passado para tal popularização se deu devido à capacidade de processamento das 185 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 185-200, maio/2013. ELISEO, Maria Amelia; PACHECO, Beatriz de Almeida; DELMONDES, Darlan Silva Alves. Desenvolvimento de websites com ambientes virtuais 3D interativos máquinas e a largura de banda de transmissão de dados existente na Web, que não permitia a visualização e manipulação de conteúdo 3D. Tal, obstáculo vem sendo superado com a melhoria da performance das máquinas e da transmissão de dados via Internet. Aliado a isso, nos últimos anos surgiram algumas tecnologias que permitiram otimizar a performance de renderização, como o X3D, algumas Game Engines, entre outros. Como resultado, há um crescente incremento de conteúdos 3D na web, cada vez mais utilizados em áreas diferentes de aplicação, tais como a educação e formação profissional [Chittaro e Ranon 2007a], [John 2007], [Sims 2007], e-commerce, arquitetura e turismo, comunidades virtuais (Active Worlds, Second Life) e museus virtuais [Barbieri e Paolini 2001]. Web sites que distribuem conteúdo 3D (doravante, chamados de Web Sites em 3D) podem ser divididos em duas grandes categorias: • Sites de Exibição: possuem modelos interativos 3D de objetos embutidos em páginas da Web, como sites de comércio eletrônico que permitem aos clientes examinar os produtos por meio de sua manipulação tridimensional; • Sites que se baseiam principalmente em um Ambiente Virtual 3D exibido dentro do navegador Web, como sites de turismo que permitem aos usuários navegar dentro de uma cidade virtual. No primeiro caso, a estrutura de informação primária e os métodos de interação do usuário ainda se baseiam no modelo tradicional de hipermídia, com a possibilidade adicional de inspecionar objetos em 3D. Já no segundo caso, a estrutura de informação principal é um espaço 3D, em que os usuários podem se mover para todas as direções e executar várias ações. Logo após o surgimento da Web, já existia a vontade de desenvolvedores e pesquisadores em desenvolver conteúdo tridimensional e interativo na rede. A capacidade de visualizar e manipular conteúdo 3D em tempo real parecia ser a nova tecnologia que tornaria a navegação na web mais próxima das experiências interativas dos usuários em seu meio ambiente. Nesse sentido, algumas soluções foram desenvolvidas ao longo dos últimos 15 anos, mas poucas delas introduziram um modelo realmente novo e revolucionário (jogos on-line, por exemplo) [Behr et al. 2009]. Vale destacar que ainda não há uma única tecnologia que seja amplamente utilizada para a visualização e interação com tais modelos. Diversos sistemas e soluções têm sido propostos e desenvolvidos para superar este problema, mas na maioria destas abordagens há uma aproximação de paradigma tecnológico. Assim, costuma haver uma contribuição da comunidade científica no sentido de adicionar novos recursos aos padrões desenvolvidos a partir da detecção de problemas nas soluções anteriormente propostas. Dessa forma, uma série de extensões foi adicionada a soluções individuais, gerando muitas vezes um confronto com fornecedores de tecnologia e distribuidores de conteúdo e gerando uma quantidade grande de ambientes sobrecarregados [Behr et al. 2009]. É possível perceber também, que o desenvolvimento de Sites 3D não visa a substituir o modelo hipermídia que é a mote principal da web de hoje, mas eles podem aumentar a eficácia de web tradicional, agregando valor a ela ao disponibilizar a visualização de modelos 3D aos sites ou ao permitirem experiências em primeira pessoa em ambientes online [Chittaro e Ranon 2007b]. Tal como no caso da Web hipermidiática, a adaptatividade pode desempenhar um papel importante no aumento da utilidade, eficácia e utilidade de sites 3D. Por exemplo, um sistema adaptativo 186 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 185-200, maio/2013. ELISEO, Maria Amelia; PACHECO, Beatriz de Almeida; DELMONDES, Darlan Silva Alves. Desenvolvimento de websites com ambientes virtuais 3D interativos inteligente de apoio à navegação poderia ajudar os usuários com diferentes habilidades de navegação, repertório e estrutura cognitiva a orientar-se na medida em que adquirem conhecimento espacial do ambiente com o qual interagem. Nesse sentido, um cuidado adicional no desenvolvimento tem de ser tomado, por se tratar de modelos conceitualmente peculiares, são poucas as abordagens conceituais, técnicas e ferramentas de software de desenvolvimento de conteúdo 3D que podem aceitar diretamente recursos adaptativos. No entanto, alguns projetos de pesquisa têm abordado a questão da adaptabilidade para sites 3D. Por exemplo, uma arquitetura de software para a construção dinâmica de conteúdo Web 3D foi proposto e aplicado ao e-commerce e museus virtuais. Alguns pesquisadores desenvolveram métodos para suporte de navegação personalizado, interação adaptativa [Celentano e Pittarello 2004] e apresentação de conteúdo em 3D [Chittaro e Ranon 2000, 2002]. Este capítulo visa apresentar ao leitor os conceitos, temas e técnicas de sites em 3D. A intenção é centrar os estudos aqui apresentados principalmente em sites 3D da primeira categoria apresentada anteriormente, uma vez que esta categoria é a mais geral e complexa (mas a maioria das técnicas discutidas pode ser aplicada também a sites interativos com objetos 3D). O capítulo está estruturado da seguinte forma. Seção 1.1 fornece uma introdução aos sites da Web em 3D para o leitor iniciante, descreve as principais áreas de aplicação, e menciona as principais tecnologias, com foco em padrões. A seção, 1.2, por sua vez, apresenta alguns exemplos de aplicação da web 3D no modelo que é discutido no presente trabalho. Já a seção 1.3 discute o contexto de desenvolvimento de web sites em 3D e em relação à Web baseada em hipermídia. Já a seção 1.4 descreve o modelo usado no minicurso proferido no Simpósio de Realidade Virtual, enquanto a seção 1.5, apresenta o exercício desenvolvido com suas considerações e explicações. Finalmente, a seção 1.6 conclui o capítulo. 2. A Web 3D A web evoluiu rapidamente desde sua popularização na década de 1990. Desde as páginas HTML (HyperText Markup Language) estáticas, com estilo incorporado nos tags (inline), passando para uma fase de conteúdo separado da apresentação (HTML + CSS), chegando aos dias atuais, nos quais se constrói páginas web dinâmicas baseadas em JavaScript e tecnologia AJAX. A base para essas mudanças são desenvolvimentos impulsionados pelas comunidades de XHTML (eXtensible HyperText Markup Language) e HTML5, bem como sistemas navegação como o Mozilla e WebKit [Behr et al., 2009]. As linguagens, protocolos e ferramentas de software que permitem a construção de modelos 3D e Ambientes Virtuais 3D que podem ser experimentados por meio da Web são conhecidos como tecnologias Web3D. Atualmente, com o aumento da largura de banda e do poder de processamento (especialmente a capacidade de gerar e renderizar gráficos 3D), é possível que cada vez um número maior de usuários possa interagir com sistemas e ambientes complexos em 3D baseados na Web, como as cidades virtuais, visualizações de dados científicos, ou museus virtuais. As tecnologias usadas para a criação da Web3D baseiam-se nas escolhas técnicas e arquitetônicas típicas do ambiente web: o conteúdo é representado normalmente por um formato (muitas vezes texto), que é armazenado em um servidor. Quando solicitado por um cliente, normalmente através de HTTP (HyperText Transfer Protocol), é exibido por um navegador, ou, mais frequentemente, por um plug-in 187 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 185-200, maio/2013. ELISEO, Maria Amelia; PACHECO, Beatriz de Almeida; DELMONDES, Darlan Silva Alves. Desenvolvimento de websites com ambientes virtuais 3D interativos para um navegador da Web. Como resultado, o conteúdo 3D pode ser fortemente integrado com outros tipos de conteúdo da Web, aumentando sites com objetos 3D interativos (um modelo 3D pode aparecer em uma página da Web com conteúdo HTML), bem como ao exibir a maioria dos tipos de conteúdo da Web (como imagens, sons, vídeos) dentro de um Ambiente Virtual 3D acessível por meio da Internet. Estas são as principais características distintivas das tecnologias Web3D com relação a outros tipos de gráficos 3D interativos demais tecnologias relacionadas, tais como as em Realidade Virtual. Além disso, enquanto a Realidade Virtual normalmente se concentra em experiências de imersão em 3D, por exemplo, empregando head-mounted displays (HMDs) e luvas, o conteúdo da Web 3D é geralmente experimentado com os dispositivos de entrada/saída comuns computadores pessoais (monitor, teclado e mouse) [Chittaro e Ranon, 2007b]. Apesar de se estruturarem em termos de protocolos e arquitetura de forma bem semelhante às da Web tradicional (hipermidiática), as tecnologias da Web 3D possuem suas próprias características e linguagens. As aplicações 3D costumam manipular conteúdo dinâmico e estilo em uma descrição XML (eXtensible Markup Language) representada por um modelo DOM (Document Object Model) . Este modelo DOM inclui um gráfico 2D que descreve o conteúdo de um aplicativo específico. Esses padrões incluem métodos para manipular este DOM sobre interfaces com script específicos, o que leva a mudanças dinâmicas. Há diversas tecnologias web disponíveis, que fornecem distribuição, comunicação e segurança de conteúdo [Behr et al., 2009]. Apesar de diversas formas de desenvolvimento de aplicações web 3d estarem disponíveis, ainda não há uma única padronização para tais soluções, o que gera um série de possibilidades diferentes de trabalhos na área, mas uma dificuldade grande de acesso a tais sistemas, devido à necessidade de plug-ins ou outras especificações para que tais ambientes possam ser acessados. Para solucionar este problema gerado pela falta de padronização de conteúdos 3D dinâmicos na Web, deve haver um esforço no sentido de transformar tal conteúdo em algo que possua característica de mídia web, e dessa forma, possa ser transmitido e compartilhado com os demais recursos hipermídia de tal ambiente, isto é, texto, imagens, áudio e vídeo. Uma boa solução para esta integração está no uso direto da árvore DOM [Behr et al., 2009]. 3. Tecnologias Envolvidas no Desenvolvimento de Web Sites em 3D Várias tecnologias têm sido desenvolvidas para que construção de cenas 3D interativas bem como ambientes virtuais 3D em web sites sejam viáveis. Os entraves do passado, como o desempenho do processamento envolvido na renderização e taxa de transmissão das cenas 3D via Internet estão sendo superados. Este subcapítulo apresenta algumas tecnologias utilizadas para o desenvolvimento de web sites em 3D, como o elemento canvas da HTML 5, a API (Application Programming Interface) WebGL e a linguagem X3D (eXtensible 3D). Com a integração destas tecnologias, cenas 3D podem ser visualizadas, enriquecidas por animações, além de permitir interação do usuário com as cenas, promovendo “passeios virtuais” interativos através de web sites. 188 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 185-200, maio/2013. ELISEO, Maria Amelia; PACHECO, Beatriz de Almeida; DELMONDES, Darlan Silva Alves. Desenvolvimento de websites com ambientes virtuais 3D interativos 3.1. O elemento canvas da HTML 5 A especificação HTML 5 inclui uma gama de novas funcionalidades, e dentre elas está o elemento <canvas>. Este elemento permite construir representações gráficas através de scripts. Representa um conteúdo incorporado que consiste de uma imagem criada dinamicamente. O elemento canvas possui um contexto de renderização, que se não for definido nada aparecerá na tela. O contexto pode ser definido como 2D, WebGL ou por algum algoritmo descrito na especificação [W3C Consortium 2013]. Para ajustar as dimensões de canvas, utiliza-se os atributos “width” e “height”. A Figura 1.1 mostra como incluir canvas num documento HTML. O elemento canvas é um elemento HTML normal que se inicia com a tag de abertura <canvas> e se encerra com a tag de fechamento </canvas>. O atributo id é utilizado para identificar o elemento <canvas>. O atributo width (largura) define quantos pixels canvas irá ocupar na horizontal em uma página web. Da mesma forma, height (altura) define a área vertical que ocupará na página, na Figura 1.1 são 200 pixels. <canvas id="meuDesenho" width="400" height="200"></canvas> Figura 1.1. O uso do element canvas num documento HTML. Com CSS (Cascading Style Sheet) é possível visualizar as bordas do elemento canvas nas dimensões especificadas com os atributos width e heigth. Como alternativa estas dimensões também podem ser definidas através do CSS. A linguagem JavaScript é utilizada para desenhar em canvas. A Figura 1.2 mostra uma função JavaScript para a construção de um retângulo (que aqui é um quadrado, pois a largura é igual a altura). window.onload = function() { var canvas = document.getElementById("meuDesenho"); var context = canvas.getContext("2d"); context.fillRect(10, 10, 100, 100); }; Figura 1.2. Código JavaScript para desenhar um retângulo de 10 x 10 no elemento canvas. Na Figura 1.2 o elemento canvas foi identificado pelo ID através do método getElementById de HTML DOM (que é um padrão para acessar e manipular documentos HTML). O contexto foi definido como 2D. Para desenhar o retângulo, utilizou-se o método context.fillRect(x, y, w, h), onde x e y corresponde a posição do retângulo em canvas e w, h, a largura e altura, respectivamente, do retângulo. Além de retângulos, com o elemento canvas é possível criar arcos (e consequentemente circunferências), desenhar linhas, inserir textos, imagens, aplicar texturas, gradientes e inclusive incorporar cenas 3D utilizando a API WebGL ou a linguagem X3D. 189 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 185-200, maio/2013. ELISEO, Maria Amelia; PACHECO, Beatriz de Almeida; DELMONDES, Darlan Silva Alves. Desenvolvimento de websites com ambientes virtuais 3D interativos 3.2. A API WebGL WebGL é uma API Javascript de renderização de ambientes tridimensionais projetada para a Web. Esta API é derivada do OpenGL ES 2.0 (uma variação do OpenGL, que facilita a aplicação da API em dispositivos com baixo poder de processamento: smartphones, por exemplo) e fornece funcionalidades de renderização similares, porém em um contexto HTML. WebGL utiliza o elemento <canvas>, um novo elemento do padrão HTML5, para a renderização, permitindo a renderização sem a instalação de plug-ins adicionais. Como exemplos de uso desta API pode-se citar: passeios virtuais, jogos e visualização de dados. Mas, é importante salientar que nem todos os navegadores Web oferecem suporte a WebGL, como é o caso do IE, que requer plug-ins a serem instalados (JebGL e IEWebGL) para as renderizações. 3.3. Características das Cenas X3D X3D é um padrão internacional aberto de representação de cenas 3D resultantes de esforços do Consórcio Web3D. Constitui-se num formato padrão para representar cenas e objetos 3D usando a linguagem XML [WEB3D CONSORTIUM 2012]. X3D usa grafos de cena para modelar os vários nós gráficos que constituem um ambiente virtual [Brutzman e Daly 2007]. Segundo [Walsh 2002], [Woolford 2003], [Gutiérrez, Vexo e Thalmann 2008], um grafo de cena é uma estrutura de dados abstrata, representada por uma árvore. Descreve, de forma conceitual e hierárquica, os objetos ou elementos gráficos que compõem um cenário num ambiente virtual e o relacionamento entre eles. O grafo de cena é composto de nós, dispostos numa hierarquia, onde cada nó corresponde espacialmente e semanticamente ao objeto modelado. Espacialmente porque cada objeto é único e está distribuído no espaço. Semanticamente porque cada nó é consistente com a noção humana da natureza do objeto e os elementos que o constituem [Woolford 2003]. Os nós são divididos em três categorias: • Nó raiz (root node) ou nó pai (parent node); • Nó interno (internal node) ou nó filho (child node); • Nó folha (leaf node). A Figura 1.3 mostra um grafo de cena representado por uma estrutura em árvore que descreve, através da hierarquia de seus nós, a construção de uma escada. Os nós filho “Degrau”, “Balaústre” e “Corrimão” são constituídos pelos nós folha “Geometria” e “Aparência”. Os nós “Degrau” e “Balaústre” formam o nó “degrau:Grupo”, que pode ser reutilizado quantas vezes forem necessárias. O nó “escada:Grupo”, que representa a estrutura da escada é formado pelos nós “Transformação Geométrica”, que descrevem o posicionamento, a escala e a rotação de cada um de seus nós filho, “Corrimão” (que é reutilizado para a visualização do segundo corrimão na cena) e “degrau:Grupo” [Eliseo 2012]. 190 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 185-200, maio/2013. ELISEO, Maria Amelia; PACHECO, Beatriz de Almeida; DELMONDES, Darlan Silva Alves. Desenvolvimento de websites com ambientes virtuais 3D interativos Figura 1.3. Exemplo de grafo de cena representado por uma árvore que descreve uma escada. Fonte: [Eliseo 2012]. X3D melhora o padrão internacional VRML (Virtual Reality Modeling Language) e usa XML para expressar a geometria e as capacidades de comportamento da VRML. VRML é um formato intercambiável 3D altamente expressivo sendo suportado por muitas ferramentas. Seguindo seu antecessor, X3D, além de expressar representações geométricas e comportamentos de animação, permite, também, criar scripts (em ECMAScript ou Java) e nós prototyping, que, juntos, oferecem um suporte para extensões de grafos de cena gráfico e nova linguagem funcionalmente definida pelos autores [Brutzman e Daly 2007]. Em X3D pode-se reutilizar elementos gráficos quantas vezes forem necessárias. Isso pode ser feito através de scripts, de recursos de agrupar e instanciar (DEF e USE, respectivamente) e prototypes. DEF e USE são atributos utilizados dentro dos nós, onde DEF define uma identificação para o elemento e USE utiliza o elemento identificado. O nó prototype de X3D permite a criação de novos elementos gráficos que podem ser utilizados repetidamente. Uma vez definido um prototype, pode-se fazer uso dele através de instâncias. Sua vantagem, além da reutilização de elementos gráficos (USE, DEF), é ser flexível para alterações em suas instâncias, como escala, cor, textura, etc. A definição de um prototype pode ser feita num arquivo externo ao cenário [Brutzman e Daly 2007]. Para visualizar um documento X3D é necessário um navegador X3D, ou seja, uma aplicação que lê as cenas X3D para que possam ser renderizadas e visualizadas. Não se trata apenas de mostrar objetos 3D, mas também, habilitar animações e interações do usuário. Geralmente são implementados como plug-ins que funciona como um complemento de um navegador web. 191 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 185-200, maio/2013. ELISEO, Maria Amelia; PACHECO, Beatriz de Almeida; DELMONDES, Darlan Silva Alves. Desenvolvimento de websites com ambientes virtuais 3D interativos A Figura 1.4 mostra a arquitetura de uma aplicação X3D, que foi adaptada de [Brutzman e Daly 2007], utilizada num navegador. As cenas X3D são arquivos lidos pelo navegador (X3D browser). Parsers são utilizados ler os formatos de arquivo. Nós são criados e enviados para o gerenciador do grafo de cena, que mantém o controle de geometria definida, aparência, locais e orientações. O gerenciador do grafo de cena percorre repetidamente a árvore do grafo de cena de nós X3D para desenhar quadros de imagem de saída a uma taxa rápida, que redesenha a imagem, de forma precisa, conforme a visualização do usuário. Os nós de evento, definidos por um script (Scripting Engines) mantém o controle da animação e podem mudar aspectos da imagem renderizada. A SAI (Scene Authoring Interface) define como as APIs trabalham, permitindo que os autores criem códigos de script para funcionar em diferentes navegadores e sistemas operacionais. Finalmente, páginas web e aplicações externas também podem ser usadas para incorporar o plug-in do navegador X3D, permitindo aos usuários interagirem com imagens 3D [Brutzman e Daly 2007]. Figura 1.4. Arquitetura de uma aplicação X3D. Adaptado de [Brutzman e Daly 2007]. Dentro da família de especificações de X3D, que inclui codificação de arquivos e linguagem de programação, tem-se o DOM, uma API para linguagens de marcação, tais como HTML, XML, SVG. O DOM fornece uma representação logicamente estruturada de um documento, e um conjunto de objetos e métodos para manipular essa estrutura [Web Platform Docs 2013]. Possui métodos para modificar, inserir ou remover elementos, atributos e valores. Devido à extensibilidade de X3D foram definidos perfis (profiles) para funcionalidade oferecida. A Figura 1.5 mostra os diferentes perfis de X3D que dão suporte aos navegadores ao lerem o código em níveis intermediários. Assim, Core profile abrange as definições básicas de X3D (routes, metadados), 192 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 185-200, maio/2013. ELISEO, Maria Amelia; PACHECO, Beatriz de Almeida; DELMONDES, Darlan Silva Alves. Desenvolvimento de websites com ambientes virtuais 3D interativos não incluindo geometria, aparência ou animação. Interchange profile é a base para a troca de modelos geométricos entre aplicações 3D. Contém a geometria básica (incluindo primitivas, triângulos e polígonos), a aparência (material e da textura), e nós de animação. Foi projetado para facilitar a exportação e importação. Interactive profile é um pouco maior do que o Interchange, e acrescenta a maioria dos nós necessários para a interação dos com uma cena. CADInterchange profile suporta modelos CAD (Computer Aided Design). Immersive profile inclui tudo que foi definido em Interactive e adiciona capacidades avançadas, além de novos nós como: geometria 2D, efeitos de ambiente (environmental effects), eventos de utilidades (event utilities), etc. E Full profile inclui todos os nós definidos nas especificações de X3D, estendendo o perfil Immersive. Incorpora DIS (Distributed Interactive Simulation), H-Anim (Humanoid Animation), NURBS (Non-Uniform Rational B-spline Surfaces) e outros components avançados [Brutzman e Daly 2007]. Figura 1.5. Os perfis (profi les) definidos para X3D como suporte para os navegadores. Fonte: [Brutzman e Daly 2007]. 4. O modelo X3DOM X3DOM, um framework open-source que promove a inserção de conteúdo 3D interativo numa aplicação web, foi descrito em [Behr et al. 2009], [Behr et al. 2010], [Behr et al. 2011]. Integra X3D com HTML 5, mapeando e sincronizando elementos DOM com o modelo de cena X3D. Ao inserir uma cena X3D, o desenvolvedor pode manipular seu conteúdo 3D adicionando, removendo ou alterando os elementos DOM. Esta abordagem permite que o conteúdo 3D seja visualizado sem a necessidade 193 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 185-200, maio/2013. ELISEO, Maria Amelia; PACHECO, Beatriz de Almeida; DELMONDES, Darlan Silva Alves. Desenvolvimento de websites com ambientes virtuais 3D interativos de plug-ins ou plug-ins de interfaces como SAI (Scene Access Interface), utilizado para exibição de documentos X3D. Figura 1.6. Arquitetura de X3DOM. Adaptada de [Behr et al. 2009], [Behr et al. 2010]. A Figura 1.6 mostra a arquitetura de X3DOM proposta por [Behr et al. 2009], [Behr et al. 2010]. O navegador web dá suporte à árvore DOM, integra e compõe a renderização final e provê algum endereço URI para baixar imagens, vídeos, áudios e cenas X3D. X3D runtime fornece serviços para construir e atualizar a cena X3D, que é renderizada a cada alteração ou ação do usuário durante a navegação. O conector X3DOM constrói o núcleo interno da arquitetura e conecta a árvore DOM com o X3D runtime. Distribui as alterações ocorridas tanto no DOM quanto na representação X3D. Atualiza a árvore DOM quando nós são adicionados ou removidos ou quando há alteração em atributos. Através de respostas do observador, aciona eventos estilo DHTML a partir das ações do usuário ao navegar pelo conteúdo 3D. Manipula o upstream e o downstream de mídias como a visualização da cena, imagens, vídeos e áudios. Com o uso de X3D para descrever as cenas 3D integradas ao HTML, foi necessário criar um novo perfil (profile) para X3D. Este novo perfil, o X3D DOM profile, estende o Interactive profile incluindo novas características para animação e manuseio de eventos. Não inclui suporte para os scripts e nem para os nós prototype. As alterações na árvore DOM, as atualizações do X3D e a visualização do conteúdo 3D são realizadas através de JavaScript. A arquitetura geral é implementada como parte da aplicação web utilizando o framework para a renderização. Devido a APIs 3D, como por exemplo, o WebGL, é possível visualizar o conteúdo 3D sem a instalação de plug-ins. Para utilizar o framework deve-se inserir o arquivo JavaScript no documento HTML, através da tag <script>, conforme a Figura 1.7. A codificação JavaScript pode ser obtida em “http://www.x3dom.org/download/dev/x3dom.js”. 194 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 185-200, maio/2013. ELISEO, Maria Amelia; PACHECO, Beatriz de Almeida; DELMONDES, Darlan Silva Alves. Desenvolvimento de websites com ambientes virtuais 3D interativos <script src="x3dom.js"></script> Figura 1.7. Linha de código HTML que insere um arquivo JavaScript. O framework monitora a árvore DOM e implementa um modelo de retorno a cada tag <X3D> encontrada no código HTML. X3DOM dá suporte para as seguintes características, segundo [Behr et al. 2010]: • tag <x3d> usada como tag raiz • X3D runtime completo incluindo routes • sistema de material declarativo e shader • nó Texture genérico, e ImageTexture explícita, etc; • IndexedFaceSet (pode precisar de cópia extra) • nós adicionais X3D (Interpolator, TimeSensor, Inline, ...) Embora a maior parte das funcionalidades de X3D são cobertas pelo framework, não há suporte para a inserção dos scripts utilizados pelo X3D e nem dos nós prototypes. Se houver a necessidade de inserir scripts, isso será feito diretamente na HTML. A integração de conteúdo 3D com navegadores web também se integra com tecnologias web dinâmicas, como DHTML e AJAX. Isto permite uma maior interação do usuário com o conteúdo 3D, sem sobrecarregar a performance da aplicação. 5. Web Sites em 3D com o Framework X3DOM Para desenvolver aplicações web com cenas 3D utilizando o framework X3DOM deve-se fazer um download dos arquivos JavaScript, x3dom.js e CSS, x3dom.css, encontrado em <http://www.x3dom. org/download/dev/>. Pode-se, também, fazer uma referência diretamente do site x3dom.org, mantendo, desta forma, o framework sempre atualizado, uma vez que X3DOM ainda está em desenvolvimento. As Figuras 1.8 e 1.9 mostram a inclusão dos arquivos x3dom.js e x3dom.css, respectivamente, no código HTML. A inserção foi feita através do link para o site x3dom.org. <script src="http://www.x3dom.org/download/x3dom.js"></script> Figura 1.8. Código HTML incluindo o arquivo x3dom.js, com o código JavaScript. <link rel="stylesheet" type="text/css" href="href=http://www.x3dom.org/download/x3dom.css"> Figura 1.9. Código HTML incluindo o arquivo x3dom.css, com o código CSS. Para a integração das cenas 3D provenientes de X3D, foi incluindo na HTML o elemento <x3d> (que até a data de publicação deste texto não era uma especificação da HTML 5). Dentro das tags <x3d> e </x3> deve vir o código que descreve os grafos de cena de X3D. 195 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 185-200, maio/2013. ELISEO, Maria Amelia; PACHECO, Beatriz de Almeida; DELMONDES, Darlan Silva Alves. Desenvolvimento de websites com ambientes virtuais 3D interativos A Figura 1.10. mostra o código HTML com a inclusão do X3D que descreve a representação de uma caixa. O nó scene descreve a cena X3D, que é constituída dos nós transform e shape. O nó transform define o posicionamento e a escala do elemento geométrico. Pode definir também a rotação. O nó shape define a forma do elemento geométrico. Inclui os nós appearance e box. O nó appearance define a aparência do elemento gráfico, como cor, textura e contém o nó material. O nó box define a geometria da caixa. No exemplo da Figura 1.10 é definido um cubo de aresta 3. <x3d width="200px" height="400px"> <scene> <transform translation='3 0 -5' scale="1 1 1" > <shape> <appearance> <material diffuseColor='#FCDA15' /> </appearance> <box size='3 3 3'/> </shape> </transform> </scene> </x3d> Figura 1.10. Código HTML que insere uma caixa descrita com X3D. O código apresentado na Figura 1.10 é renderizado através da API WebGL. O navegador web precisa ter suporte a esta API, tais como: • Firefox 4+ • Safari 5.1+ (OS X only) • Chrome 9+ • Opera 12alpha+ O Internet Explorer não possui este suporte, por enquanto. Uma vez renderizada, a cena é exibida através do elemento canvas da HTML 5. No código HTML não será feita nenhuma referência a este elemento, que será inserido dinamicamente, através do HTML DOM. Os elementos geométricos inseridos podem ser manipulados através de eventos definidos com JavaScript. Por exemplo, o usuário, ao clicar na caixa inserida com o código da Figura 1.10, abre uma tela de texto. Para que esta ação seja realizada, é necessário acrescentar um evento JavaScript onClick no nó transform, conforme Figura 1.11. O evento onClick dispara a função JavaScript showValue. <transform translation='3 0 -5' scale="1 1 1" onClick="showValue('http://en.m.wikipedia.org/wiki/Cube#top')"> Figura 1.11. Inserção do evento JavaScript onClick no nó transform. 196 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 185-200, maio/2013. ELISEO, Maria Amelia; PACHECO, Beatriz de Almeida; DELMONDES, Darlan Silva Alves. Desenvolvimento de websites com ambientes virtuais 3D interativos Além do evento onClick, será acrescentado o elemento HTML iframe para a exibição do texto. A Figura 1.12 mostra a inserção do elemento iframe, identificado com o atributo id. No exemplo da Figura 1.12, o elemento frame foi identificado como como “infoText”. O elemento iframe está contido dentro de outro elemento div que recebe uma formatação CSS inline (style="overflow:hidden; height:90%;"). O atributo src está vazio, pois será controlado pela função showValue. <div style="overflow:hidden; height:90%;"> <iframe id="infoText" frameborder="0" src=""> </iframe> </div> Figura 1.12. Inclusão dos elementos HTML div e iframe para a exibição do texto informativo. Há necessidade de inserir o elemento HTML a que estabelece o link da caixa com a exibição do texto. Este link será controlado pela função JavaScript showValue e terá sua ação concluída quando o usuário clicar na caixa definida na Figura 1.10. A Figura 1.13 mostra a inserção do elemento HTML a identificado como “outlink” através do atributo id. O atributo href está vazio, pois será controlado através da função JavaScript showValue. <a id="outlink" href=""></a> Figura 1.13. Inserção do elemento HTML a para estabelecer um link entre o elemento geométrico e o texto a ser exibido. Para que o evento onClick funcione é necessário declarar a função JavaScript showValue que é disparada quando o usuário clicar na caixa definida na cena X3D. A Figura 1.14 mostra o código que implementa esta função. <script type="text/javascript"> function showValue(link) { var outlink = document.getElementById('outlink'); var frame = document.getElementById("infoText"); frame.src = link; } </script> Figura 1.14. Código JavaScript declarando a função showValue. A função showValue, mostrada na Figura 1.14, possui como argumento o link que será disparado quando a função for chamada, através do evento onClick. As variáveis “outlink” e “ frame” referem-se ao elemento a e ao elemento iframe da HTML, respectivamente. Ambas são identificadas pelo método getElementById() de HTML DOM). A variável frame insere dinamicamente o link especificado no evento onClick no atributo src do elemento iframe. 197 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 185-200, maio/2013. ELISEO, Maria Amelia; PACHECO, Beatriz de Almeida; DELMONDES, Darlan Silva Alves. Desenvolvimento de websites com ambientes virtuais 3D interativos O resultado final será uma caixa com evento que dispara um link externo e apresenta o conteúdo deste link no elemento iframe. A Figura 1.15 mostra o resultado final da aplicação web que incorpora cenas 3D. Outros elementos geométricos foram acrescentados a cena, como o cilindro, o cone e a esfera. Cada elemento geométrico, ao ser clicado, apresenta seu texto descritivo. Esta ação é realizado devido ao evento onClick que dispara a função JavaScript que implementa esta dinâmica. O lado esquerdo da Figura 1.15 apresenta as cenas X3D, onde o usuário interage com as formas e seleciona aquela que deseja ver informações. O lado direito exibe o texto, num iframe HTML, do elemento gráfico selecionado. Esta aplicação pode ser utilizada na área da educação para o aprendizado da geometria. Figura 1.15. Aplicação web que integra cenas X3D com elementos HTML e eventos JavaScript. 6. Considerações Finais Este artigo visou apresentar algumas considerações sobre o uso de modelos tridimensionais na Web e especificamente apresentar um modelo de integração baseado em DOM para X3D e HTML5. Partiu-se de um levantamento histórico e da apresentação de alguns questionamentos sobre o fato da Web 3D ainda não ser uma realidade, com diversas aplicações já funcionando, principalmente pelo fato da necessidade de alguns recursos possibilitantes de sua visualização, como plug-ins específicos. Apesar das especificações ainda estarem em desenvolvimento, já podem ser usadas com resultados 198 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 185-200, maio/2013. ELISEO, Maria Amelia; PACHECO, Beatriz de Almeida; DELMONDES, Darlan Silva Alves. Desenvolvimento de websites com ambientes virtuais 3D interativos significativos. Dessa forma, o presente capítulo aborda as tecnologias usadas para o desenvolvimento de uma aplicação web 3D, usando DOM e X3D, em navegador web e HTML5. Finalmente, a partir de uma explanação teórica, faz-se um levantamento e apresentação de um tutorial para desenvolvimento de web site em 3D com o framework X3DOM. Como trabalhos futuros pode-se destacar o desenvolvimento de uma aplicação web com cenas 3D para um passeio virtual interativo em edifícios tombados pelo Patrimônio Histórico, como meio para preservação de sua memória. Referências BARBIERI, T.; PAOLINI, P. (2001) “Reconstructing Leonardo's Ideal City - from Handwritten Codexesto Webtalk-II: a 3D Collaborative Virtual Environment System”, In: Conference on Virtual Reality, Archeology, and Cultural Heritage, 2001. Athens, Greece. Proceedings… New York: ACM, p. 61-66. BEHR, J.; ESCHLER, P.; JUNG, Y.; ZÖLLNER, M. (2009) “X3DOM – A DOM-based HTML5/ X3D Integration Model”, In: 14th International Conference on 3D Web Technology, 2009, Darmstadt. Proceedings… New York: ACM, p.127-135. BEHR, J.; JUNG Y.; DREVENSEK, T.; ADERHOLD, A. (2011) “Dynamic and Interactive Aspects of X3DOM”, In: 16th International Conference on 3D Web Technology, 2011. Paris. Proceedings… New York: ACM, p. 81-87. BEHR, J.; JUNG Y.; KEIL, J.; DREVENSEK, T.; ZOELLNER, M.; ESCHLER, P.; FELLNER, D. (2010) “A scalable architecture for the HTML5/X3D integration model X3DOM”, In: 15th International Conference on Web 3D Technology, 2010, Los Angeles. Proceedings… New York: ACM, p.185-194. BRUTZMAN, D.; Daly, L. X3D extensible graphics for web authors. California: Morgan Kaufmann, 2007. CELENTANO A.; PITTARELLO F. (2004) “Observing and Adapting User Behavior in Navigational 3D Interfaces”, In: 7th International Conference on Advanced Visual Interfaces, 2004. Gallipoli, Italy. Proceedings… New York: ACM, p. 275-282. CHITTARO L.; IERONUTTI L.; RANON R. (2004) “Navigating 3D Virtual Environments by Following Embodied Agents: a Proposal and its Informal Evaluation on a Virtual Museum Application”. In: Psychnology Journal. v.2, p. 24-42 CHITTARO L.; RANON R. (2000) “Adding Adaptive Features to Virtual Reality Interfaces for E-commerce”. In: 1st International Conference on Adaptive Hypermedia and Adaptive Web-based Systems, Trento, Italy. Proceedings… Berlin: Springer-Verlag, p. 85-96. CHITTARO L.; RANON R. (2002) “New Directions for the Design of Virtual Reality Interfacesto E-Commerce Sites”. In: Proc. of the 5th International Conference on Advanced Visual Interfaces, Trento, Italy. Proceedings… New York: ACM, 308-315. 199 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 185-200, maio/2013. ELISEO, Maria Amelia; PACHECO, Beatriz de Almeida; DELMONDES, Darlan Silva Alves. Desenvolvimento de websites com ambientes virtuais 3D interativos CHITTARO L.; RANON R. (2004) “Using the X3D Language for Adaptive Manipulation of 3D Web Content”. In: 3rd International Conference on Adaptive Hypermedia and Adaptive Web-based Systems, Eindhoven, Netherlands. Proceedings… Berlin: SpringerVerlag, p. 287-290. CHITTARO L.; RANON R. (2007a) “Web3D Technologies in Learning, Education and Training: Motivations, Issues, Opportunities”. In: Computers and Education, Oxford: Elsevier Science Ltd., v. 49, n. 1, p. 3-18. CHITTARO L.; RANON R. (2007b) “Adaptive Hypermedia Techniques for 3D Educational Virtual Environments”. IEEE Intelligent Systems, v. 22, n. 4, p. 31-37. CHITTARO L.; RANON R.; IERONUTTI L. (2003) “Guiding Visitors of Web3D Worlds through Automatically Generated Tours”. In: 8th International Conference on 3D Web Technology, St. Malo, France. Proceedings… New York: ACM, p. 85-91. DANCHILLA, B. “Beginning WebGL for HTML 5”. Apress, 2012. ELISEO, M. A. “Modelo de representação espaço-temporal em reconstruções digitais tridimensionais”. 2012. Tese (Doutorado em Ciências) – Instituto Tecnológico de Aeronáutica, São José dos Campos. GUTIÉRREZ, M.A.; VEXO, F.; THALMANN, D. “Stepping into virtual reality”. London: Springer-Verlag, 2008. JOHN, N. W. (2007) “The Impact of Web3D Technologies on Medical Education and Training”. In: Computers and Education, Oxford: Elsevier Science Ltd., v. 49, n. 1, p. 19-31. Khronos Group. (2013) “WebGL Specification”. Disponível em: <http://www.khronos.org/registry/webgl/ specs/latest/#2.3>. Acesso em: 24/03/2013. SIMS, E.M. (2007) “Reusable, Lifelike Virtual Humans for Mentoring and Role-Playing”. In: Computers and Education, Oxford: Elsevier Science Ltd., v. 49, n. 1, p. 75-92. W3C Consortium. (2013) “HTML 5”. Disponível em: <http://www.w3.org/TR/html5/>. Acesso em: 24/03/2013. WALSH, A. E. (2002) “Understanding scene graphs”. Dr Dobb’s Journal of Software Tools, v. 27, n. 7, p. 17-26. Web Platform Docs. (2013) “DOM.” Disponível em: <http://docs.webplatform.org/wiki/dom>. Acesso em: 20/03/2013. Web3d Consortium. (2012) “What is X3D?” Disponível em: <http://www.web3d.org/realtime-3d/x3d/ what-x3d>. Acesso em: 10/02/2012. WOOLFORD, D. (2003) “Understanding and using scene graphs”. (COMP4201 Lectures). Disponível em: <www.itee.uq.edu.au>. Acesso em: 19/01/2012. 200 201 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. Simulações Físicas para Ambientes de RV e RA Luciano Silva Resumo Simulações físicas permitem acrescentar um alto grau de realismo tanto em sistemas de RV quanto RA. Com o aumento das capacidades de processamento de CPUs e GPUs, além do surgimento de bibliotecas, frameworks e engines focados em Física, a realização de simulações complexas tornou-se uma realidade e, em muitos casos, uma necessidade. Dentro deste contexto, este capítulo apresenta as bases de simulações físicas para RV e RA, apresentando desde as principais aplicações até detalhes internos de funcionamento de solvers e os fundamentos de programação para Havok Physics, um engine bastante comum e portável para implementação de Física; 1. Introdução Com o advento de placas gráficas programáveis e novas bibliotecas, frameworks e engines, fenômenos físicos podem ser incorporados em aplicações para RV e RA, com o objetivo de se alcançar um alto grau de realismo em rendering e animação. Simulações baseadas em Física ou, simplesmente, simulações físicas correspondem aos processos que permitem esta incorporação. Porém, sem um embasamento físico teórico adequado, a utilização destas ferramentas, tanto em hardware quanto em software, pode ficar limitada, pois uma grande parte deles implementa diretamente equações que dependem de um conhecimento mais aprofundado dos parâmetros para sua correta configuração. Esta exigência cria um ambiente interdisciplinar bastante interessante entre Computação e Física, fértil para pesquisas tanto no âmbito teórico quanto no aplicado. Dentro deste contexto, este capítulo apresenta os principais conceitos físicos para utilização de bibliotecas, frameworks e engines de Física, objetivando-se aplicações em RV e RA. Além deste suporte teórico, o capítulo também apresenta os fundamentos de organização e programação para o engine de Física Havok, que pode ser integrado com diversas soluções de RV e RA. O texto está organizado da seguinte forma: a Seção 1.2 apresenta os principais tipos de fenômenos físico-mecânicos importantes para ambientes de RV e RA; a Seção 1.3 apresenta as equações diferen201 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. ciais, muito úteis para modelagem de fenômenos físicos variacionais, além dos principais métodos numéricos utilizados para solucioná-las, base da implementação dos solvers; a Seção 1.4 apresenta a estrutura do engine de Física Havok e seus fundamentos de programação; a Seção 1.5 apresenta os comentários finais deste capítulo e, finalmente, a Seção 1.6 apresenta um conjunto de referências bibliográficas aos interessados em iniciar desenvolvimentos nesta importante área de pesquisa. 2. Estática, Cinemática e Dinâmica A Mecânica é uma área da Física que trata do movimento e repouso de corpos e sua evolução no tempo. Compreende três sub-áreas principais: Cinemática e Dinâmica (movimento) e Estática (repouso). A Cinemática descreve os movimentos dos corpos utilizando, por exemplo, posições, velocidades e acelerações, sem se procupar com a análise de suas causas e consequências. Normalmente, os resultados diretos dos cálculos cinemáticos são utilizados por processos de animação ou renderização dentro de sistemas de RV e RA, sendo considerados elementos quantitativos dentro de um engine de Física. As causas e consequências do movimento de um corpo são os objetos principais de estudo da Dinâmica. Força, impulso e energia são alguns dos conceitos que podem estar relacionados às causas de movimento, enquanto que deformação de corpos e transformações energéticas podem ser relacionar às consequências de movimentos. Geralmente, os resultados diretos dos cálculos dinâmicos não são utilizados diretamente pelos processos de animação ou renderização, pois precisam ser transformados em posições, velocidades e acelerações. Por isto, são considerados elementos qualitativos dentro de um engine de Física. A Estática procupa-se com sistemas sob a ação de forças que se equilibram. Raramente, engines de Física implementam ou disponibilizam recursos diretos de Estática. Assim, este capítulo considera somente as sub-áreas de Cinemática e Dinâmica para a descrição dos fenômenos físicos relacionados à Mecânica. 2.1 Cinemática e Dinâmica da Partícula A Cinemática da partícula caracteriza o movimento de um ponto em relação a um referencial (referenciais serão detalhados no próximo capítulo). Se o movimento do ponto em relação a um mesmo referencial é carcaterizado unicamente pela variação da distância e sentido, este movimento é chamado de retilíneo. Porém, se o movimento em relação a um referencial permanece constante s sua direção varia segundo um plno, este movimento é chamado de circular ou curvilíneo (que inclui o bem conhecido movimento retilíneo). A Figura 1 ilustra exemplos destes movimentos no caso bidimensional: 202 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. Figura 1: Movimentos curvilíneo e circular de uma partícula. O movimento retilíneo, do ponto de vista cinemático, fica completamente caracterizado em relação se forem fornecidas a posição, velocidade e aceleração. Para o movimento circular, são necessárias a posição, velocidade angular e aceleração angular. Quando uma partícula está sujeita a um sistema de forças não-equilibradas, ela terá um movimento acelerado. Força é toda a causa capaz de modificar o estado de repouso ou de movimento de um corpo ou lhe causar deformações. As relações entre força e movimento de partículas é o objeto de estudo da Dinâmica da partícula. A Dinâmica da partícula é caracterizada por quatro conceitos fundamentais: espaço, tempo, massa e força. No caso geral, forças são funções do ponto de aplicação, da velocidade e do tempo. A Figura 2 ilustra diversas forças aplicadas a um bloco de massa m (de dimensões desprezíveis): Figura 2: Forças (peso, atrito e normal) aplicadas a um bloco visto como uma partícula. Na linha de Dinâmica da partícula, existem dois problemas fundamentais em RV e RA: • conhecidas as leis de movimento de um partícula, pretende-se obter as forças que sobre ela atuam ou • conhecidas as forças que atuam sobre uma partícula, pretende-se obter o movimento desta partícula. 203 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. 2.2. Cinemática e Dinâmica de Corpos Rígidos Os movimentos em Cinemática de corpos rígidos podem ser classificados em cinco tipos, conforme abaixo: • Translação: ocorre quando qualquer reta, unindo dois pontos quaisquer do corpo, conserva a mesma direção durante o movimento. A Figura 3 ilustra este tipo de movimento: Figura 3: Translação curvilínea de um corpo rígido. • Rotação em Torno de um Eixo Fixo: ocorre quando os pontos que formam o corpo rígido se deslocam em planos paralelos ao longo de circunferências, cujos centros estão sobre uma mesma reta fixa. A Figura 4 ilustra este tipo de movimento: Figura 4: Força unidimensional aplicada a um bloco visto como uma partícula. • Movimento Plano Geral: ocorre quando todos os pontos que formam o corpo se deslocam em planos paralelos. Exemplos cássicos deste tipo de movimento são os discos rolantes e as hastes deslizantes, conforme mostrado na Figura g 5: Figura 5: Movimentos planos gerais de corpos rígidos. 204 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. • Movimento em Torno de um Ponto Fixo: movimento tridimensional em torno de um ponto fixo como, por exemplo, o movimento de um ppião sobre o solo (Figura 5): Figura 6: Movimento em torno de um ponto fi xo. • Movimento Geral: qualquer movimento que não esteja incluído nos movimentos anteriores. Um exemplo típico deste movimento é o movimento caótico de um corpo rígido sobre a ação do vento. 2.3 Cinemática e Dinâmica de Corpos Deformáveis Corpos deformáveis (soft bodies) representam a categoria mais complexa de simulação física em RV e RA, uma vez que a distância entre dois pontos quaisquer do objetos pode variar com o tempo. Tanto para Cinemática quando para Dinâmica de corpos deformáveis, existem diversas abordagens diferentes para o tratamento da deformação, dentre os quais se pode destacar: • Modelo massa-mola (mass-spring): o corpo é modelado como um conjunto de pontos com massa (nós), conectados por molas elásticas ideais e sem peso, que obedecem a alguma variação de Lei de Hooke ( a se tratada no capítulo de Dinâmica da Partícula). Este conjunto pode ser utilizado como uma representação de malha poligonal para a superfície do corpo, onde as simulações físicas podem ser aplicadas. A Figura 9 mostra um exemplo destas malhas poligonais como sistemas massa-mola: Figura 9: Exemplo de sistema massa-mola definindo uma malha poligonal. 205 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. Aplicando-se, por exemplo, a Segunda Lei de Newton (na forma diferencial) a cada um dos nós da malha, obtém-se um sistema de equações diferenciais para o movimento dos nós que, normalmente, é resolvido por esquemas numéricos para EDO (Equações Diferenciais Ordinárias) ou EDP (Equações Diferenciais Parciais). Uma vez realizada a simulação física, a renderização de um modelo massa-mola pode ser realizado com esquemas convencionais do tipo free-form deformation. • Dinâmica Baseada em Posição (Position-based Dynamics ou PBD): trata-se de uma abordagem baseada em relaxação de restrições, onde um modelo massa-mola é convertido em um sistema de restrições. Este sistema é resolvido sequencialmente e interativamente, movimentando diretamente nós para satisfazer cada restrição, numa abordagem semelhante ao método de Gauss-Seidel ao sistema matricial implícito definido pelo modelo massa-mola. Trata-se de um esquema bastante utilizado para simulação em tempo real de tecidos nos engines PhysX™, Havok Cloth™ e Maya nCloth™. • Deformação baseada em Corpos Rígidos: nesta abordagem, o corpo deformável é modelado como uma malha de múltiplos corpos rígidos, conectados por restrições. A Figura 10 mostra um exemplo destas malhas: Figura 10: Malha de corpos rígidos subjacente a um corpo deformável. Para efeitos de renderização, esta malha funciona como um sistema esquelético para a superfície do objeto. Assim, pode-se utilizar um esquema do tipo skinning mesh para calcular a deformação da superfície do objeto. Esta abordagem é utilizada, por exemplo, na simulação física de objetos deformáveis no Havok Destruction™. • Simulação de Elementos Finitos: nesta abordagem, que melhora sensivelmente a acurácia da resolução das equações diferenciais de Cinemática e Dinâmica, o objeto deformável é visto como um continuum elástico, sendo discretizado em um grande número de elementos sólidos (os elementos finitos). Estes elementos, tipicamente, são triângulos (superfícies) ou tetraedros (volumes), agrupados e para os quais são simulados os modelos físicos para o corpo deformável. 206 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. 2.4. Exemplos de Aplicações de Física em RV e RA • Colisão é, inegavelmente, umas das aplicações mais comuns de Física de contato dentro de sistemas de RV e RA. A Figura 11 mostra uma sequência de imagens relativas a uma colisão de um corpo rígido (uma esfera) com um corpo deformável (líquido): Figura 11: Sequência de colisão de um corpo rígido com um corpo deformável. Fonte: graphics.stanford.edu O cálculo da interação entre a esfera e o líquido nesta colisão, assim como a movimentação do líquido e a da esfera, são bastante complexos e exigem a aplicação das Equações de Navier-Stokes, um sistema de equações de derivadas parciais. 207 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. A Animação baseada em Física é outro exemplo onde diversas áreas da Mecânica podem tornar sequências de animações mais reais, como mostrado na Figura 12: Figura 12: Animação baseada em Física, com aplicação de gravidade e fraturas em materiais. Fonte: graphics.stanford.edu Neste exemplo, foi aplicado um movimento retilíneo uniformemente variado (MRUV) para especificar a queda das esferas. O modelo de fratura para as esferas é um modelo dinâmico, com quantidade de fragmentos definida através de uma variável aleatória. Além, após a queda e fratura das esferas no solo, ocorre a formação de um pequeno movimento oscilatório amortecido até o repouso total. 208 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. Ainda na linha de Animação baseada em Física, é muito comum se encontrar animações de corpos rígidos com presença de vínculos, conforme mostra a Figura 13: Figura 13: Animação baseada em Física, com presença de vínculos em corpos rígidos. Fonte: graphics.stanford.edu Neste exemplo, os vínculos estão presentes como restrições que interligam os diversos componentes da ponte (corpo deformável). Embora a ponte como um todo seja um corpo deformável, suas componentes são corpos rígidos com equações de Cinemática e Dinâmica próprias, mas que obedecem às restrições dos vínculos. A presença de vínculos também pode ser encontrada em sistemas esqueléticos e musculares para animação de personagens. 209 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. O disparo de projéteis e balas por armas, muito comum em jogos baseados em RV e RA, representa um outro exemplo bastante comum de uso de diversos recursos de Cinemática e Dinâmica. O exemplo da Figura 14 mostra o disparo de um projétil esférico (corpo rígido), com posterior colisão com um anteparo (corpo deformável): Figura 14: Colisão entre um projétil esférico e um anteparo deformável. Fonte: graphics.stanford.edu 210 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. O movimento do projétil segue uma força Newtoniana. A deformação do anteparo até a sua posterior ruptura em fragmentos utiliza um modelo mais complexo que o sistema de ruptura do exemplo anterior. Simulação de Fluidos (líquidos, fogo, fumaça) podem ser realizados com grande acurácia via modelos físicos como as já mencionadas Equações de Navier-Stokes (líquidos) ou sistemas de partículas (fogo, fumaça), inclusive com interações com outros corpos físicos. A Figura 15 mostra alguns exemplos destes fluidos já renderizados: Figura 15: Exemplos de fluidos com simulação física renderizados. Fonte: graphics.stanford.edu 211 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. É importante observar que as simulações físicas somente calculam os movimentos dos fluidos (partículas, malhas e volumes). Os efeitos foto-realísticos são devido aos processos de renderização baseada em Física (Physically Based Rendering), que trabalha com modelos de iluminação e materiais adequados para fluidos. Tecidos representam um exemplo típico de corpos deformáveis e possuem diversas aplicações em RV e RA: vestimentas de personagens, bandeiras de demarcação de territórios, decoração de interiores de cenários, dentre outros. A Figura 16 ilustra alguns exemplos de simulação física de tecidos, inclusive com interação com objetos rígidos e fluidos: Figura 16: Exemplos de simulação de tecidos e interação com corpos rígidos e deformáveis. Fonte: graphics.stanford.edu 212 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. A simulação de tecidos, normalmente, é baseada em Dinâmica baseada em Posições, realizada sobre modelos do tipo massa-mola. Estes modelos podem incluir diversas propriedades dos tecidos como, por exemplo, massa, elasticidade e resistência das fibras do tecido, propriedades hidrodinâmicas de absorção de líquidos, vínculos (como os os prendem as extremidades dos tecidos na Figura 16), dentre outras. Veículos são objetos bastante complexos para simulação física pois, além de incluírem diversos vínculos entre as suas diversas partes (carroceria, portas, direção, rodas, dentre outros), ainda precisam interagir com o meio onde circulam. O meio pode ser algo simples como nos dois primeiros quadros da Figura 17 (abaixo) ou mais complexo como o último quadro desta figura, onde há obstáculos formados pelo próprio cenário, além de outros veículos. Figura 17: Exemplos de veículos em ambientes simples e complexos. 213 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. Não é incomum se encontrar um sub-sistema somente dedicado a veículos em grande parte dos engines de Física. Eles, normalmente, implementam os recursos de Cinemática e Dinâmica, além de oferecerem uma interface para integração com dispositivos de E/S como volantes, para aumentar a imersão do jogador. Embarcações, por sua vez, não são tão comuns como os veículos em engines de Física. Normalmente, quando o sistema de RV ou RA necessita de tal recurso, é comum uma implementação própria de recursos hidrostáticos e hidrodinâmicos para suportar a Cinemática e Dinâmica exigidas pelas embarcações. A Figura 18 exibe alguns screenshots do jogo PT-Boats, que faz uso intensivo de recursos de Física para embarcações. Figura 18: Exemplos de embarcações e interação com os meios aquáticos/marinhos. Fonte: Jogo PT-Boats 214 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. Além dos vínculos naturais entre as diversas partes das embarcações, há um fator bastante complexo na simulação física destes objetos: a interação com o meio líquido. Normalmente, as equações são bastante complexas envolvendo as tradicionais Equações de Navier-Stokes para líquidos, além de restrições com resistência dos materiais. Além disto, sub-sistemas para embarcações ainda deveriam disponibilizar interfaces de interação com dispositivos de E/S e a navegação em meio aquático/marítimo requer maiores conhecimentos do usuário. Aeronaves também não são tão comuns em engines de Física como os veículos. A própria mecânica de vôo, que exige cálculos complexos de Aerodinâmica, varia bastante de aeronave para aeronave. Os elementos físicos que definem esta mecânica podem ser igualmente complexos aos das embarcações, mesmo que o meio (ar) tenha equações mais simples. A Figura 19 mostra dois exemplos de aeronaves em simuladores de vôo (dois quadros superiores da figura) e um exemplo de jogo de estratégia aérea, com temática de guerra. Figura 19: Exemplos de aeronaves. 215 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. Uma das principais dificuldades na implementação de aeronaves refere-se aos controles aerodinâmicos que, normalmente, exigem um conhecimento mais aprofundado não só de mecânica de vôo, como também princípios de funcionamento dos diversos módulos que compõem a aeronave. Do usuário, também é exigido um grau maior de conhecimento destes controles, pois as interfaces dependem deste conhecimento para operarem adequadamente. 3. Equações Diferenciais e Métodos Numéricos de Resolução A parte central de um sistema de simulação física para RV e RA é composto por equações diferenciais. Uma equação diferencial é uma equação cujas incógnitas são funções na forma de derivadas. Equações diferenciais são muito úteis para modelagem de fenômenos físicos, pois permitem estabelecer relações entre variações infinitesimais, representadas pelas derivadas. Por exemplo, a Segunda Lei de Newton da Dinâmica para partículas é, na verdade, uma equação diferencial de segunda ordem: ܨԦ ሺݎԦǡ ݐሻ ൌ ݉ ݀ଶ ݎԦ ݀ ݐଶ Resolvendo-se esta equação, obtém-se o vetor-posição da partícula num instante t. As equações diferenciais dividem-se em dois tipos: • Equação Diferencial Ordinária (EDO): contém apenas funções de uma variável e derivadas daquela mesma variável. Um exemplo típico é a EDO do oscilador harmônico unidimensional, bastante comum na implementação de sistemas massa-mola: ݀ଶ ݔሺݐሻ ݉ ൌ െ݇ݔሺݐሻ ݀ ݐଶ Para se evitar a sobrecarga na notação, é comum se indicar as derivadas ,…, por , respectivamente. Assim, a EDO do oscilador harmônico unidimensional também poderia ser escrita abreviadamente como: ݉ݔԢԢ ൌ െ݇ݔ Dependendo da ordem das derivadas, uma EDO pode receber designações mais específicas. Se contiver apenas derivadas de primeira ordem, será uma EDO de primeira ordem. Ela será uma EDO de segunda ordem (como a do oscilador acima) se a maior ordem de derivação for dois e assim por diante. 216 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. • Equação Diferencial Parcial (EDP): contém funções com várias variáveis e suas derivadas parciais. Um exemplo simples de EDP é a equação da onda, que permite obter um modelo bastante simplificado para ondas se deslocando com velocidade em meios homogêneos e isotrópicos: ߲ ଶ ݑሺݔǡ ݕǡ ݐሻ ߲ ଶ ݑሺݔǡ ݕǡ ݐሻ ߲ ଶ ݑሺݔǡ ݕǡ ݐሻ ଶ ൌ ݒ ቆ ቇ ߲ ݐଶ ߲ ݔଶ ߲ ݕଶ Assim como ocorre nas EDOs, há também uma notação simplificadora para derivadas parడమ ௨ሺ௫ǡ௬ǡ௧ሻ ciais em EDPs: డ௨ሺ௫ǡ௬ǡ௧ሻ pode ser representada por ݑ௧ , డ௧ మ , por ݑ௧௧ e, o Laplaciano డమ ௨ሺ௫ǡ௬ǡ௧ሻ డమ ௨ሺ௫ǡ௬ǡ௧ሻ డ௧ డ௬ మ , porమ ଶ . Logo, a equação da onda pode ser escrita de forma simplificada డ௫ మ como: ݑ௧௧ ൌ ݒଶ ଶ ݑ EDPs também podem receber designações específicas como lineares, não-lineares, homogêneas, não-homogênas, hiperbólicas, parabólicas ou elípticas. Isto será tratado nos tópicos específicos onde elas aparecem, assim como as interpretações de EDOs e EDPs do ponto de vista físico. Geralmente, para se explicitar uma solução específica, uma equação diferencial vem acompanhada ou de um valor inicial ou de uma condição de contorno. No caso de um valor inicial, tem-se um problema chamado Problema de Valor Inicial (PVI) (ou Problema de condições Iniciais) como no exemplo de EDO abaixo: ݕᇱ ൌ ݕ ൜ ݕሺͲሻ ൌ ʹ Quando uma condição de contorno (ou fronteira) é fornecida, tem-se um Problema de Valor sobre o Contorno (PVC). Um exemplo de PVC é a EDO abaixo no intervalo ݀ଶݕ ͵ ݕൌ ͳǡcomݕሺͲሻ ൌ ʹeݕሺͳሻ ൌ ͷ ݀ ݐଶ Como a fronteira do intervalo é representada por 0 e 1, são fornecidas restrições de valores para esta fronteira. Existem diversos métodos numéricos (solvers) para se resolver EDOs. Nesta seção, serão apresentados os principais métodos comumente encontrados em engines de Física para problemas de valores iniciais, em ordem crescente de complexidade das equações e métodos. Inicialmente, será considerada um PVI da seguinte forma: ൜ ݕᇱ ሺݐሻ ൌ ݂ሺݐǡ ݕሻ ݕሺݐ ሻ ൌ ݕ 217 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. Um dos métodos mais elementares para se resolver numericamente esta forma de EDO é o Método de Euler, bastante comum em engines de Física mais simples. Ele consiste em utilizar a seguinte aproximação para a primeira derivada: ݕሺ ݐ ݄ሻ െ ݕሺݐሻ ݕᇱ ሺݐሻ ൎ ݄ Nesta aproximação, é chamado passo do método e é um importante parâmetro de configuração dos solvers para EDOs nos engines de Física. Para evitar o cálculo de múltiplas derivadas e ainda melhorar a acurácia do Método de Euler, existe o Método de Runge-Kutta (Método RK), um dos mais utilizados em engines de Física, principalmente o de quarta ordem. A idéia básica do Método de Runge-Kutta é utilizar uma função F que calcula ݂ሺݐǡ ݕሻ em múltiplos pontos e tomar uma média aritmética ponderada destes valores para obter uma aproximação da derivada de y. De uma forma geral, F tem a seguinte expressão: ܨሺݐ ǡ ݕ ሻ ൌ ݓ ݂ሺݑ ǡ ݒ ሻ ୀଵ O número m é chamado número de estágios ou ordem do Método de Runge-Kutta. Por exemplo, o Método de Runge-Kutta de segunda ordem ( solver RK2) é dado por: ݄ ݄ ݕାଵ ൌ ݕ ݄݂ ൭ݐ ǡ ݕ ݂ሺݐ ǡ ݕ ሻ൱ ʹ ʹ O solver RK2 também é conhecido como Método de Euler Melhorado. Já o Método de Runge-Kutta de quarta-ordem (solver RK4) é dado por: ݄ ݕାଵ ൌ ݕ ൫ܭଵ ሺݐ ǡ ݕ ሻ ʹܭଶ ሺݐ ǡ ݕ ሻ ʹܭଷ ሺݐ ǡ ݕ ሻ ܭସ ሺݐ ǡ ݕ ሻ൯ ܭଵ ሺݐ ǡ ݕ ሻ ൌ ݂ሺݐ ǡ ݕ ሻ ݄ ݄ ܭଶ ሺݐ ǡ ݕ ሻ ൌ ݂ ൭ݐ ǡ ݕ ܭଵ ሺݐ ǡ ݕ ሻ൱ ʹ ʹ ݄ ݄ ܭଷ ሺݐ ǡ ݕ ሻ ൌ ݂ ൭ݐ ǡ ݕ ܭଶ ሺݐ ǡ ݕ ሻ൱ ʹ ʹ ܭସ ሺݐ ǡ ݕ ሻ ൌ ݂൫ݐ ݄ǡ ݕ ݄ܭଷ ሺݐ ǡ ݕ ሻ൯ O processo de obtenção destes dois métodos é bastante longo e utiliza alguns resultados elementares de otimização para se aproximar da expansão em Série de Taylor com a ordem correspondente. Ao leitor interessado em verificar como estes métodos são obtidos, recomenda-se a referência LENGYEL (2012). 218 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. Para EDOs de ordem superior, uma maneira bastante simples de se resolver consiste em transformar a equação em um sistema de EDOs de primeira ordem equivalente e aplicar algum dos solvers vistos anteriormente. Por exemplo, considere-se a seguinte EDO de ordem 2: ݕᇱᇱ ൌ ݂ሺݐǡ ݕǡ ݕᇱ ሻ Esta EDO de ordem 2 é equivalente ao seguinte sistemas de EDOs de primeira ordem: ݕᇱ ሺݐሻ ൌ ݖሺݐሻ ቐ ݖᇱ ሺݐሻ ൌ ݂ሺݐǡ ݕǡ ݕᇱ ሻ Utilizando-se as condições iniciais e , pode-se derivar a seguinte variação do Método de Euler para este sistema: ݐାଵ ൌ ݐ ݄ ݕାଵ ൌ ݕ ݄ݖ ݖାଵ ൌ ݖ ݄݂ሺݐ ǡ ݕ ǡ ݖ ሻ Em geral, uma EDO de n-ésima ordem , pode ser escrita como o seguinte sistema de EDOs de primeira ordem: ݖᇱଵ ሺݐሻ ൌ ݖଶ ሺݐሻ ۓ ۖ ۖ ݖᇱ ଶ ሺݐሻ ൌ ݖଷ ሺݐሻ ۔ ǥ ۖ ۖ ݖەᇱ ሺݐሻ ൌ ݂ሺݐǡ ݖଵ ǡ ݖଶ ǡ ǥ ǡ ݖ ሻ , que pode ser resolvida, dentro de determinadas condições iniciais, pelo Método de Euler, Método da Série de Taylor ou Método de Runge-Kutta. É comum, devido à acurácia e velocidade do método, o RK4 ser também implementado como rotina básica para resolução de EDOs de ordem superior dentro dos engines de Física. No entanto, é importante observar que os métodos apresentados anterioemente não são os únicos para EDOs e que existem alguns métodos numéricos específicos para tipos específicos de EDOs, onde há exploração de esquemas de simetria, esparsidade, dentre outros. Geralmente, os métodos numéricos para resolução de EDPs baseiam-se no tipo específico da equação (parabólica, hiperbólica ou elíptica). Uma maneira bastante comum para se resolver EDPs é utilizar uma malha (grid), criar um processo de aproximação para as derivadas nesta malha e definir um processo iterativo de melhorar esta aproximação. Como exemplo desta estratégia, considere-se uma versão mais complexa da equação da onda, mostrada abaixo, EDP classificada como hiperbólica: 219 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. ߲ ଶ ݑሺݔǡ ݕǡ ݐሻ ߲ ଶ ݑሺݔǡ ݕǡ ݐሻ ߲ ଶ ݑሺݔǡ ݕǡ ݐሻ ߲ݑሺݔǡ ݕǡ ݐሻ ଶ ൌ ݒ ቆ ቇെߤ ଶ ଶ ଶ ߲ݐ ߲ݔ ߲ݕ ߲ݐ Nesta versão, além da velocidade de propagação da onda no líquido, introduziu-se o fator de viscosidade do líquido. Para se obter uma aproximação numérica para esta equação, inicialmente será definida uma malha , de tamanho , para a variáveis e a fim de se obter uma aproximação para as derivadas, conforme mostra a Figura Figura 28: Malha para resolução numérica da equação da onda. Esta malha define uma discretização do ambiente onde a onda será simulada e a qualidade desta simulação depende, inicialmente, do fator que regula a grossura da malha. Malhas mais grossas geram resultados mais rápidos, porém de baixa qualidade. Malhas mais finas produzem resultados de melhora qualidade, porém são mais lentos de se calcular. Utilizando um esquema de diferenças centrais nesta malha, as derivadas de primeira ordem podem ser aproximadas por: ߲ݑሺ݅ǡ ݆ǡ ݇ሻ ݑሺ݅ ͳǡ ݆ǡ ݇ሻ െ ݑሺ݅ െ ͳǡ ݆ǡ ݇ሻ ߲ݑሺ݅ǡ ݆ǡ ݇ሻ ൎ ߲ݔ ʹ݀ ߲ݕ ݑሺ݅ǡ ݆ ͳǡ ݇ሻ െ ݑሺ݅ǡ ݆ െ ͳǡ ݇ሻ ൎ ʹ݀ De maneira semelhante, as derivadas de segunda ordem podem ser aproximadas pelos seguintes esquemas de diferenças: 220 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. ߲ ଶ ݑሺ݅ǡ ݆ǡ ݇ሻ ݑሺ݅ ͳǡ ݆ǡ ݇ሻ െ ʹݑሺ݅ǡ ݆ǡ ݇ሻ ݑሺ݅ െ ͳǡ ݆ǡ ݇ሻ ൎ ߲ ݔଶ ݀ଶ ߲ ଶ ݑሺ݅ǡ ݆ǡ ݇ሻ ݑሺ݅ǡ ݆ ͳǡ ݇ሻ െ ʹݑሺ݅ǡ ݆ǡ ݇ሻ ݑሺ݅ǡ ݆ െ ͳǡ ݇ሻ ൎ ߲ ݕଶ ݀ଶ ߲ ଶ ݑሺ݅ǡ ݆ǡ ݇ሻ ݑሺ݅ǡ ݆ǡ ݇ ͳሻ െ ʹݑሺ݅ǡ ݆ǡ ݇ሻ ݑሺ݅ǡ ݆ǡ ݇ െ ͳሻ ൎ ݐଶ ߲ ݐଶ Substituindo as aproximações de primeira e segunda ordens na equação da onda considerada, tem-se: ݑሺ݅ǡ ݆ǡ ݇ ͳሻ െ ʹݑሺ݅ǡ ݆ǡ ݇ሻ ݑሺ݅ǡ ݆ǡ ݇ െ ͳሻ ݐଶ ݑሺ݅ ͳǡ ݆ǡ ݇ሻ െ ʹݑሺ݅ǡ ݆ǡ ݇ሻ ݑሺ݅ െ ͳǡ ݆ǡ ݇ሻ ൌ ݒଶ ቈ ଶ ݀ ݒଶ ቈ ݑሺ݅ǡ ݆ ͳǡ ݇ሻ െ ʹݑሺ݅ǡ ݆ǡ ݇ሻ ݑሺ݅ǡ ݆ െ ͳǡ ݇ሻ ݑሺ݅ǡ ݆ǡ ݇ ͳሻ െ ݑሺ݅ǡ ݆ǡ ݇ െ ͳሻ െߤቈ ଶ ݀ ʹݐ Normalmente, o interesse está em se obter uma fórmula para atualização da malha na posição para um instante , ou seja, deseja-se conhecer o valor de . Isolando-se este termo na igualdade anterior, tem-se: ͺܿ ଶ ݐଶ ݀ ଶ ݑሺ݅ǡ ݆ǡ ݇ሻ െ ߤ ݐെ ʹ ݑሺ݅ǡ ݆ǡ ݇ െ ͳሻ ݑሺ݅ǡ ݆ǡ ݇ ͳሻ ൌ ߤ ݐ ʹ ߤ ݐ ʹ Ͷെ ʹܿ ଶ ݐଶ ଶ ሾݑሺ݅ ͳǡ ݆ǡ ݇ሻ ݑሺ݅ െ ͳǡ ݆ǡ ݇ሻ ݑሺ݅ǡ ݆ ͳǡ ݇ሻ ݑሺ݅ǡ ݆ െ ͳǡ ݇ሻሿ ݀ ߤ ݐ ʹ Um detalhe bastante importante em relação a este tipo de método é a estabilidade. Por exemplo, para que o método acima se torne estável, é necessário (além de boas condições iniciais) que o intervalo de tempo t onde a simulação será feita obedeça à restrição abaixo: Ͳ൏ݐ൏ ߤ ටߤ ଶ ͵ʹ ͺ ܿଶ ݀ଶ ܿଶ ݀ଶ O método anterior pertence à categoria dos Métodos das Diferenças Finitas (FDM - Finite Difference Method), bastante usual em engines de Física. Outros métodos numéricos que também são comumente usados em RV e RA são: Método dos Elementos Finitos (FEM – Finite Element Method) e o Método dos Volumes Finitos (FVM - Finite Volume Method). Ao leitor interessado no detalhamen221 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. to destes métodos adicionais (e outros específicos para EDPs parabólicas ou elípticas), recomenda-se consultar a referência BURDEN e FAIRES (2008). 4. Engine Havok Physics™ O engine Havok Physics™ foi desenvolvido, inicialmente, pela empresa irlandesa Havok e, atualmente, é de domínio da Intel, que o disponibilizou gratuitamente para estudo e ensino. Ele disponibiliza recursos de Física para diversas plataformas como Windows™, Xbox™ (inclusive 360), Game Cube™, Wii™, Playstation 2™ e 3™, PSP™, Linux™ e Mac OS X™, uma vez que é todo desenvolvido em C/C++. Para a versão gratuita, os programadores têm à disposição um conjunto de bibliotecas dinâmicas para ligar com as suas aplicações, sem acesso ao código-fonte. Aos possuidores de licenças, é fornecido acesso ao código-fonte para otimizações e adaptações locais. A estrutura genérica g do engine g é mostrado na Figura g 20: Figura 20: Estrutura básica do engine Havok Physics™. Fonte:www.havok.com Esta estrutura é executada como um loop principal de simulação e, a partir de uma configuração inicial, o Havok Physics™: • Determina quais objetos estão sobrepostos (colisão) ou próximos de estarem em sobreposição, efetuada em três níveis de refinamento (broadphase, midphase e narrowphase) que serão discutidos a seguir. • Coleta informações de forças externas e determina, adicionalmente, quais forças são produzidas pelos processos de colisão. • Com base em todo o sistema de forças e eventuais restrições (constraints), o solver (núcleo central de simulação) calcula os próximos estados dos objetos (posição, orientação, velocidade, aceleração) e os disponibiliza para o sub-sistema que faz a atualização gráfica destes objetos em tela. O solver pode ser disparado, eventualmente, sob coordenação de eventos. 222 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. De forma mais detalhada, os passos definidos anteriormente estão organizados nos elementos da Figura 21: Figura 21: Estrutura básica do engine Havok Physics™. Fonte:www.havok.com A detecção de colisão é uma das tarefas principais do Havok Physics™ . Há dois resultados importantes gerados pela colisão de pares de corpos: os agentes de contato (passados como parâmetros de configuração para as ilhas de simulação) e os pontos de contato, passados para as configurações de restrições, que serão detalhados no capítulo de tratamento de colisões. Antes da simulação física, os objetos são agrupados em ilhas de simulação, que permitem que grupos de objetos sejam simulados de forma independente aproveitando, por exemplo, recursos de multithreading ou programação multi/manycore. Corpos podem compartilhar ilhas de simulação se existe alguma restrição ou efeito físico entre eles como, por exemplo, um vínculo. A determinação destas ilhas de simulação é realizada automaticamente pelo Havok Physics™ e não é possível (na atual versão deste framework) interferir nesta determinação. Uma ação é uma implementação que controla o estado dos corpos na simulação. A cada passo de simulação, uma ação precisa ser adicionada ao mundo para que ela possa ser aplicada. O Havok Physics™ já traz algumas ações pré-implementadas como, por exemplo, a ação de controle de veículos (vehicle action) e outras mais específicas devem ser implementadas pelo programador, conforme será mostrado posteriormente. Ações podem depender de implementações externas de forças. 223 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. Uma restrição (constraint) é uma relação entre dois corpos, utilizadas para criar corpos mais complexos a partir de interrelacionamentos entre corpos mais simples. Forças aplicadas a um determinado corpo também são transmitidas, segundo as suas leis, para os outros corpos quer fazem parte da restrição. Tipicamente, existem vários tipos de restrições que aparecem naturalmente em corpos como springs (molas), dashpots (amortecedores) e joints(junções). Além de lidar com estes tipos de restrições, o Havok Physics™ também recebe as informações das restrições de contato geradas pelo sub-sistema de colisão. Finalmente, entra em cena o solver, que resolve a dinâmica do sistema dentro das restrições apresentadas, repassando as informações de resolução para o integrador. O integrador calcula o novo estado da movimentação (posição, orientação, velocidade, aceleração) para cada corpo, que pode ser repassado, por exemplo, para um renderizador para exibição em tela. Como exemplo de aplicação, considere-se a cena mostrada na Figura 22, composta de dois blocos físicos que interagem entre si: Figura 23: Exemplo de aplicação em Havok Physics™. Fonte:www.havok.com A implementação será realizada na linguagem C++, linguagem-base de programação da Havok Physics. O primeiro passo, é construir uma função main, definir uma configuração geral para a simulação física através de uma classe HavokCore, conforme mostrado abaixo: 224 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. Um exemplo de classe HavokCore é mostrada abaixo: 225 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 201-226, maio/2013. SILVA, Luciano. Simulações Físicas para Ambientes de RV e RA. Como exemplo de criação dos objetos físicos, tem-se o código abaixo, onde é criado um corpo rígido e seão configurados os seus principais parâmetros físicos: Nesta configuração, são definidos a posição (m_position), o tipo de movimento do corpo (m_motionType) e a forma do objeto (m_shape). 5. Considerações Finais Este pequeno texto mostrou as principais aplicações de simulações físicas para ambientes de RV e RA, além de evidenciar os seus princípios de funcionamento como equações diferenciais e solvers. O autor espera que esta introdução ao tema possa despertar o interesse do leitor em aprofundar os seus conhecimentos nesta importante área de RV e RA, assim como contribuir para o avanço em pesquisas na área. Referências BOYCE, E.; DIPRIMA, W. Equações Diferenciais Elementares e Problemas de Valores de Contorno. 8.ed. Rio de Janeiro: Editora LTC, 2006. BURDEN, R.L.; FAIRES, J.D. Análise Numérica. São Paulo: Gengage Learning, 2008. EBERLY, D.H. Game Physics. New York: CRC Press, 2010. JOST, J. Partial Differential Equations. New York: Springer-Verlag, 2002. LENGYEL, E. Mathematics for 3D Game Programming and Computer Graphics. 3.ed. New York: Course Technology PTR, 2012. PALMER, G. Physics for Game Programmers. New York: Apress, 2005. 226 227 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 227-249, maio/2013. SILVA, Luciano. Desenvolvimento de Aplicações de RV e RA para Smart TVs. Desenvolvimento de Aplicações de RV e RA para Smart TVs Luciano Silva Resumo Smart TVs são televisores digitais dotados de um ambiente capaz de executar aplicações e, geralmente, disponibilizar mecanismos de interação mais sofisticados com os usuários como, por exemplo, reconhecimento de voz e gestos. Com o desenvolvimento de novas bibliotecas e frameworks, além de processadores mais potentes, as Smart TVs configuram-se com um novo ambiente para desenvolvimento de aplicações de RV e RA. Neste contexto, este capítulo apresenta os fundamentos de organização destas TVs e os princípios básicos de programação que podem suportar o desenvolvimento de aplicações de RV e RA neste ambiente. 1. Introdução Com a introdução de processadores genéricos e gráficos dentro dos televisores digitais, configurou-se nos últimos anos um ambiente bastante viável para desenvolvimento de aplicações chamado Smart TV. Trata-se um televisor digital capaz de executar aplicações e disponibilizar mecanismos de interação mais sofisticados como reconhecimento de voz e de gestos, além do tradicional controle remoto. Neste mesmo período, aumentou-se muito o desempenho e memória destes processadores que, aliado ao desenvolvimento de bibliotecas, frameworks e engines específicos para programação de Smart TVs, disponibiliza um novo ambiente para desenvolvimento de aplicações de RV e RA. Dentro deste contexto, este capítulo se propõe a apresentar a organização básica deste novo ambiente e mostrar os seus princípios básicos de programação, objetivando-se construir um suporte para implementação de aplicações para RV e RA. Além disto, dada a escassez de materiais sobre o assunto, é intenção deste capítulo organizar um caminho inicial ao leitor interessado em prosseguir com pesquisas na área. O texto está organizado da seguinte forma: a Seção 2.2 apresenta os detalhes de hardware de uma Smart TV (SAMSUNG SMART TV), a Seção 2.3 traz a organização do ambiente operacional e das 227 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 227-249, maio/2013. SILVA, Luciano. Desenvolvimento de Aplicações de RV e RA para Smart TVs. aplicações, a Seção 2.4 mostra como fazer a tradicional aplicação Hello World no SAMSUNG SDK, a Seção 2.4 mostra como programar o acesso à câmera, a Seção 2.5 como programar o sistema de reconhecimento de gestos, a Seção 2.6 como programar o sistema de reconhecimento de voz, a Seção 2.7 traz os fundamentos de acesso à câmera para suporte a AR, a Seção 2.8 traz os comentários finais e, finalmente, a Seção 2.9 apresenta um conjunto de referências bibliográficas aos interessados em iniciar desenvolvimentos nesta área emergente em RV e RA. 2 Samsung Smart TV Como exemplo de smart TV a ser considerado neste texto, escolheu-se a Samsung Smart TV (www.samsung.com) devido à sua potencialidade em termos de hardware e por possuir um dos SDKs mais evoluídos no mercado. Outras opções possíveis de televisores digitais que também suportam programação são as smart tvs da LG e da Sony. A tela da Samsung Smart TV é composta por um sistema de leds e o aspecto visual do painel frontal é como o mostrado na Figura 1, onde já se pode notar a aplicação Smart Hub, que é uma espécie de ambiente operacional que permite acesso ao vídeo do sinal de TV e às aplicações: Figura 1: Samsung Smart TV, painel frontal. Fonte: www.samsung.com Nesta mesma figura, pode-se notar na parte superior a câmera o sistemas de captação de áudio (microfones). Atualmente, há diversas resoluções destas TVs. Alguns detalhes internos deste televisor não são divulgados(ainda) pela Samsung. Porém, sabe-se que o processador atual destes televisores é dual core. Na linha do processador, uma grande vantagem da Samsung Smart TV é possibilidade de upgrade no processador através do Evolution Kit, mostrado na Figura 2: 228 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 227-249, maio/2013. SILVA, Luciano. Desenvolvimento de Aplicações de RV e RA para Smart TVs. Figura 2: Evolution kit. Fonte: www.samsung.com Este kit é composto, essencialmente, de processadores genéricos e gráficos, além de memória. Chama-se a atenção para o fato de que a saída deste kit é no estilo HDMI. Vários modelos da Samsung SDK já vêm com suporte nativo a estereoscopia ativa. Normalmente, o aparelho é acompanhado de dois a quatro óculos ativos, conforme mostra a Figura 3: Figura 3: Óculos estéreos da Samsung Smart TV. Fonte: www.samsung.com 229 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 227-249, maio/2013. SILVA, Luciano. Desenvolvimento de Aplicações de RV e RA para Smart TVs. Outro detalhe bastante importante deste televisor é o suporte à tecnologia Anynet+, que permite integrar vários dispositivos através de conexão cabeada (HDMI, por exemplo) ou através de adaptadores wi-fi, conforme mostra a Figura 4: Figura 4: Redes de dispositivos Anynet+. Fonte: www.samsung.com A tecnologia Anynet+ permite, por exemplo, controle (leitura/escrita) para projetores interligados via HDMI. Assim, tem-se um suporte muito interessante para se trabalhar com visualização distribuída para RV. Se o dispositivo suporta a tecnologia Anynet+, o seu reconhecimento pelo televisor e pelas aplicações é automático. Outro recurso bastante interessante e que já está implementado em hardware é o reconhecimento facial, conforme mostrado na Figura 5: 230 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 227-249, maio/2013. SILVA, Luciano. Desenvolvimento de Aplicações de RV e RA para Smart TVs. Figura 5: Reconhecimento facial na Samsung Smart TV. Fonte: www.samsung.com Todas as informações provenientes do reconhecimento facial podem ser acessadas diretamente pelas aplicações. No exemplo da Figura 5, o usuário faz um login automático no Skype. O reconhecimento de gestos também é outra funcionalidade já implementada em hardware na Samsung Smart TV. A Figura 6 mostra um exemplo da interface exibida ao usuário: Figura 6: Sistema de reconhecimento de gestos da Samsung Smart TV. Fonte: www.samsung.com 231 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 227-249, maio/2013. SILVA, Luciano. Desenvolvimento de Aplicações de RV e RA para Smart TVs. Todas as informações de gestos podem ser recuperadas pelas aplicações. Além isto, é possível se definir novos gestos e incorporá-los ao sistema de gestos do televisor. Finalmente, outro detalhe importante que também é implementado em hardware refere-se ao sistema de reconhecimento de voz, mostrado na Figura 7: Figura 7: Interface de reconhecimento de voz e dispositivo de amplificação. Fonte: www.samsung.com Os comandos de voz podem ser direcionados para a TV em diversas línguas. Por exemplo, para ligar a TV em Português dizemos “Ligar Smart TV”; já, em Inglês, dizemos “Turn on Smart TV”. Quando a distância entre o usuário e o televisor não é suficiente para reconhecimento, utiliza-se um dispositivo de amplificação como o mostrado na Figura 7. 3 Organização do Ambiente Operacional e Aplicações Essencialmente, as aplicações para a Smart TV são “executadas” sob um grande navegador (browser) chamado Smart HUB, que pode ser visto quando o televisor carrega o ambiente operacional, conforme mostra a Figura 8: Figura 8: Smart HUB. Fonte: www.samsung.com 232 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 227-249, maio/2013. SILVA, Luciano. Desenvolvimento de Aplicações de RV e RA para Smart TVs. As aplicações, quando desenvolvidas, podem ser descarregadas diretamente na Samsung Smart TV ou através do Hub Site, que é um repositório de aplicações para este televisor: Figura 9: Hub Site. Fonte: www.samsung.com O Hub Site pode ser acessado através de qualquer dispositivo ou diretamente da Samsung Smart TV. Mesmo que as aplicações sejam “executadas” sob um navegador diferente, “executar” uma aplicação no Smart HUB é quase equivalente a visualizar uma página Web em um computador convencional, conforme mostrado na Figura g 10: Figura 10: Comparação entre execução de aplicações e visualização de páginas. Fonte: www.samsung.com 233 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 227-249, maio/2013. SILVA, Luciano. Desenvolvimento de Aplicações de RV e RA para Smart TVs. Esta “quase” equivalência deve-se às diferenças de resolução dos dois ambientes, especificações de hardware e mecanismos de interação. O mecanismo de controle do navegador do Smart Hub é feito por um engine chamado App Engine que, atualmente (Março/2013), está na versão 6.0. Para gerenciar a “execução” das aplicações, existe um gerenciador chamado Application Manager, que utiliza as funcionalidades do App Engine, conforme mostra a Figura 11: Figura 11: Camadas de controle de execução das aplicações na Samsung Smart TV. Fonte: www.samsung.com Uma aplicação típica para a Samsung Smart TV é formada de uma página HTML, um arquivo CSS, um arquivo JavaScript onde a aplicação é efetivamente programada, um arquivo de configuração em XML e os artefatos da aplicação/página como imagens, vídeos, áudio e aplicações Flash. A Figura 12 mostra esta organização: Figura 12: Componentes de uma aplicação para Samsung Smart TV. Fonte: www.samsung.com Existem, basicamente, três formas de visualização para aplicações na Samsung Smart TV, mostradas na Figura 13: 234 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 227-249, maio/2013. SILVA, Luciano. Desenvolvimento de Aplicações de RV e RA para Smart TVs. full-screen single-sided g ticker Figura 13: Formas de visualização de uma aplicação para Samsung Smart TV. Fonte: www.samsung.com Em full-screen, a aplicação ocupa toda a tela e outras aplicações são bloqueadas. Em single-sided, a aplicação ocupa apenas uma parte da tela e outras aplicações podem “rodar” simultanemente. Em ticker, a aplicação ocupa toda a tela, mas outras aplicações continuam a “rodar”. 4. A Aplicação “Hello World” em Samsung Smart TV SDK Para desenvolvimento para Samsung Smart TV, é necessário o Samsung Smart TV SDK, que pode ser descarregado gratuitamente do site da SAMSUNG (http://developer.samsung.com). O SDK é formado, além do framework de classes em Java, de um IDE conforme mostra a Figura 14: 235 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 227-249, maio/2013. SILVA, Luciano. Desenvolvimento de Aplicações de RV e RA para Smart TVs. Figura 14: IDE para desenvolvimento em Samsung Smart TV SDK. Fonte: developer.samsung.com Para usuários de Eclipse, existe um ambiente semelhante já pré-configurado. Para o teste das aplicações, não é necessária uma Smart TV. Tanto a IDE da Samsung quanto o Eclipse já trazem um emulador, como mostrado na Figura 15: Figura 15: Emulador para aplicações em Samsung Smart TV SDK. Fonte: developer.samsung.com 236 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 227-249, maio/2013. SILVA, Luciano. Desenvolvimento de Aplicações de RV e RA para Smart TVs. Como exemplo de programação, os próximos passos irão criar a famosa aplicação “Hello World”, versão para Smart TV. O aspecto final da aplicação é como mostrado abaixo, onde já estão presentes os arquivos do projeto: p j Figura 16: Aplicação Hello World em Samsung Smart TV SDK. Fonte: developer.samsung.com Os arquivos Main.css, Main.js, config.xml e index.html são criados automaticamente quando se cria um projeto em Samsung Smart TV SDK. O primeiro arquivo importante é o config.xml, mostrado abaixo: 237 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 227-249, maio/2013. SILVA, Luciano. Desenvolvimento de Aplicações de RV e RA para Smart TVs. No arquivo de configuração config.xml, define-se, por exemplo, se ela ocupará toda a tela (fullwidget ou ticker). No arquivo de configuração anterior, ambos os marcadores estão desabilitados (n), indicado que a aplicação será single-sided e terá um tamanho definido em width e height. Configurações adicionais da janela podem ser definidas (ou redefinidas) no arquivo Main.css, escrito em CSS (Cascading StyleSheet), como mostrado a seguir: A aplicação fica vinculada, essencialmente, no arquivo Main.js, conforme mostrado a seguir: 238 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 227-249, maio/2013. SILVA, Luciano. Desenvolvimento de Aplicações de RV e RA para Smart TVs. O código acima interage com eventos do controle remoto mostrado (normal ou qwerty) na Figura 17 e substitui o identificador welcome, que conterá inicialmente uma frase com Hello World, para outras mensagens: Figura 17: Controles básicos de interação com aplicações na Samsung Smart TV. Fonte: developer.samsung.com 239 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 227-249, maio/2013. SILVA, Luciano. Desenvolvimento de Aplicações de RV e RA para Smart TVs. Finalmente, todos estes arquivos são agrupados dentro do arquivo index.html, conforme mostrado abaixo, que é a página que dispara a execução da aplicação: Observe que, em particular, a aplicação é carregada através da invocação do método onload do objeto Main do arquivo Main.js. Observe, também, que esta invocação é síncrona, fato que pode concorrer para diminuir o desempenho das aplicações. Para contrapor a chamada síncrona, é possível se utilizar algo semelhante ao AJAX, via tecnologia XHR: No objeto XHRExample, será definida uma chamada assíncrona muito semelhante ao que se faz em AJAX: 240 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 227-249, maio/2013. SILVA, Luciano. Desenvolvimento de Aplicações de RV e RA para Smart TVs. Inclusive, a forma de utilização é muito semelhante ao AJAX: instancia-se um objeto XMLHttpRequest e indica-se a aplicação que se quer invocar. Outro detalhe bastante importante e que permite transições suaves entre o carregamento das aplicações é feito através dos efeitos de transição. Pode-se utilizar, para tanto, o diagrama mostrado na Figura 18: Figura 18: Estados e transições entre as aplicações. Fonte: developer.samsung.com Abaixo, tem-se um exemplo p de um esqueleto q de código g para p realizar as transições via JavaScript: 241 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 227-249, maio/2013. SILVA, Luciano. Desenvolvimento de Aplicações de RV e RA para Smart TVs. 5. Reconhecimento de Gestos O primeiro passo para realizar o reconhecimento de gestos é verificar se este recurso está habilitado e/ou disponível no seu televisor: A partir desta confirmação, o reconhecimento é feito através registro e processamento de eventos, conforme mostrado no código abaixo: 242 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 227-249, maio/2013. SILVA, Luciano. Desenvolvimento de Aplicações de RV e RA para Smart TVs. Todas as constantes utilizadas nos comandos case são pré-definidas no Samsung Smart TV SDK e correspondem aos gestos. É possível, ainda, incluir o Gesture Helpbar, para trabalhar com gestos mais complexos. O Gesture Helpbar p é mostrado na Figura g 19: Figura 19: Gesture Helpbar funcionando em conjunto com o emulador do Samsung Smart TV SDK. Fonte: developer.samsung.com A leitura dos estados do Gesture Helpbar para saber qual o gesto foi escolhido, é mostrado abaixo: 243 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 227-249, maio/2013. SILVA, Luciano. Desenvolvimento de Aplicações de RV e RA para Smart TVs. 6. Reconhecimento de Voz Assim como ocorreu no reconhecimento de gestos, o primeiro passo para realizar o reconhecimento de voz é verificar se este recurso está habilitado e/ou disponível no seu televisor: A partir deste reconhecimento, o processamento de áudio também é feito por detecção de eventos e associação de ações: 244 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 227-249, maio/2013. SILVA, Luciano. Desenvolvimento de Aplicações de RV e RA para Smart TVs. Como exemplo do método handleMainCommand, o código abaixo reconhece os comandos up, down, left, right, open e exit: 245 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 227-249, maio/2013. SILVA, Luciano. Desenvolvimento de Aplicações de RV e RA para Smart TVs. Para áudio, também existe o Voice Helpbar, mostrado na Figura 20: Figura 20: Voice Helpbar funcionando em conjunto com o emulador do Samsung Smart TV SDK. Fonte: developer.samsung.com Assim como ocorria no Gesture Helpbar, o acesso ao Voice Helpbar também é feito através de registro e tratamento de eventos: 246 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 227-249, maio/2013. SILVA, Luciano. Desenvolvimento de Aplicações de RV e RA para Smart TVs. É possível, também, a configuração de quais opções estarão disponíveis no Voice Helpbar: 247 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 227-249, maio/2013. SILVA, Luciano. Desenvolvimento de Aplicações de RV e RA para Smart TVs. 7. Uso da Câmera A câmera da Samsung Smart TV é um dos recursos mais importantes para dar suporte a aplicações baseadas em RA. O primeiro passo é inicializar a câmera: A inicialização da câmera ocorre quando o usuário clica no botão PLAY, disponível na interface do simulador (ou da TV). A partir disto, pode-se iniciar a captura dos frames ou parada da câmera, conforme mostra o código abaixo: 248 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 227-249, maio/2013. SILVA, Luciano. Desenvolvimento de Aplicações de RV e RA para Smart TVs. O objeto deviceapis pode, agora, ser integrado a bibliotecas de RA que dão suporte à linguagem Java. É possível, por exemplo, se utilizar os ports de ARToolkit para Java ou mesmo o Samsung Smart TV AR Simulator. 8. Considerações Finais Este pequeno texto mostrou os fundamentos de desenvolvimento de aplicações para Smart TVs, com foco no equipamento Samsung Smart TV e com ênfase nos mecanismos que possam servir de suporte a aplicações de RV e RA. Como todos observarão abaixo, existe uma quantidade bastante escassa de referências nesta área, dada a sua atualidade. Assim, o autor espera que esta pequena introdução ao tema possa despertar o interesse de alunos, professores e pesquisadores de RV e RA no desenvolvimento de técnicas, bibliotecas, frameworks, engines, padrões e aplicações para alavancar esta área emergente em RV e RA. Referências Para se conhecer o suporte de redes para aplicações na Samsung Smart TV, recomenda-se as duas referências de livros abaixo, onde deve ser dada especial atenção aos mecanismos de IPTV. Para desenvolvimento, recomenda-se iniciar pelo documento Samsung Developer Guide. Há, também, uma comunidade bastante ativa no Samsung Developer Forum. BENOIT, H. Digital Television: Satellite, Cable, Terrestrial, IPTV, Mobile TV in the DVB Framework. New York: Focal Press, 2008. SIMPSON, W. IPTV and Internet Video. New York: Focal Press, 2009. SAMSUNG. Samsung Developer Program. Disponível em: http://developer.samsung.com. Acesso em: 01.03.2013. __________. Samsung Developer Forum. Disponível em: http://www.samsungdforum.com/. Acesso em: 05.03.2013. __________. Samsung Developer Guide. Disponível em: http://www.samsungdforum.com/ Guide/. Acesso em: 05.03.2013. 249 250 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA Christopher Shneider Cerqueira Claudio Kirner Abstract Virtual and augmented reality interactive applications development requires tools that easy and accelerates the coding time through the reuse of components. The openFrameworks is an example of tool oriented to reuse. This chapter shows the context of openFramework use and this type of tool-framework, with the exploration of three examples: one basic to explain the structure, one using additional components and the third to develop an augmented reality environment. Resumo Desenvolvimento de aplicações interativas de realidade virtual e aumentada requer ferramentais que facilitem e acelerem o tempo de codificação através do reuso de componentes. O openFrameworks é um exemplo deste tipo de ferramental. Neste capítulo é mostrado o contexto de utilização e outros exemplos de frameworks, a exploração de três exemplos: um básico para explicar a estrutura, um utilizando componentes adicionais e o terceiro desenvolvendo um ambiente de realidade aumentada. 1. Introdução O desenvolvimento de sistemas interativos nem sempre é apenas uma atividade de codificação para cientistas da computação ou engenheiros. Artistas, professores, designer e estudantes dos mais variados segmentos podem se interessar em criar interações que satisfaçam as suas necessidades de apresentação ou coleta de dados, focando em aplicações que possam parecer extremamente high-tech ou utilizar metáforas de interação mais parecidas com o ambiente temático onde será implantado. Este capítulo descreve em breves linhas, um roteiro de desenvolvimento desde a explicação de conceitos básicos de desenvolvimento interativo e criativo, os cenários atuais de alguns frameworks e a motivação de reutilizar componentes de código livre. Passa por uma explicação estrutural e dinâmica 250 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA do funcionamento do openFrameworks (oF), mostrando o que é possível e o papel importante da comunidade de desenvolvimento. O exemplo ilustrado, passo a passo, mostra como gerar um novo exemplo, partindo para a utilização de alguns componentes interessantes como o ofxAssimp, um wrapper da biblioteca ASSIMP [1] que permite a utilização de vários formatos de modelos tridimensionais, o ofxEasyCam, da biblioteca do openFrameworks que permite fácil interação de movimentação de elementos 3D da cena e por fim utilização do componente ofxARToolKitPlus, um wrapper do ARToolKitPlus [2], para criação de ambientes de realidade aumentada [3], como mostrado na Figura 1. Figura 1. oF em criação de ambientes de realidade aumentada. Nota-se que o oF é muito mais que este pequeno exemplo, contudo para fins ilustrativos e introdutórios foi escolhido este roteiro. 1.2. Conceitos básicos de desenvolvimento criativo e interativo Desenvolvimento criativo e interativo é focado primariamente na interação, criando aplicações que o usuário realize interações diretamente de forma mas natural e envolvente. O usuário necessita de uma boa experiência de forma que o valor agregado do seu sistema seja atingido. Atualmente tem-se utilizado a terminologia de Desenvolvedor de Experiência com Usuário, ou UX Developer do Inglês User Experience Developer [4], como a maneira de denominar o profissional, ou equipe, que não desenvolve apenas interfaces com o usuário, mas é capaz de determinar experiências de uso, neste são necessários o conhecimento de frentes multidisciplinares como psicologia, antropologia, sociologia, semiótica, epistemologia, historia, etc. [5]. O Desenvolvedor de Experiência colhe o design da meta-mensagem alvo e a recobre pela interface que contém a tecnologia para realizar a interação [6]. Mas o que é interação? Qual a sua natureza? Interação pode ser definida como a troca de informação entre dois ou mais atores. Como um desenvolvedor de interação, é necessário entender o que o usuário quer, qual ambiente ele está inserido, quais os fatores culturais para definir como ele vai 251 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA entrar com dados, e como espera que o sistema responda. Interação não se trata de uma atividade unidirecional com o sistema, trata-se da transformação do sistema num sistema reativo [7] que responde aos estímulos do usuário. Um exemplo de atividade unidirecional é a transmissão de televisão, este é simplesmente um sinal transmitido se o usuário está ou não escutando, e ocorre no seu próprio tempo. A televisão digital tem inserido controles, que podem retroceder, adicionar legendas ou informações. Estes controles introduzem interação a um sistema que era unidirecional, mudando substancialmente a maneira como a experiência de uso ocorre, agora a televisão ocorre no tempo do usuário, centrada nas suas expectativas e necessidades. Interação ocorre através das trocas bidirecionais de mensagens entre o sistema e o usuário. Estas podem ser texto, voz, cores, imagens, respostas ou entradas mecânicas. O mais difícil de criar interações é entender como o sistema vê as mensagens do usuário e como os usuários veem as mensagens do sistema. Para ilustrar esta dificuldade pense na maneira que duas pessoas conversam; a comunicação entre eles foi calcada em anos de estudo (treinamento), aprendendo a linguagem, formas de interação. Quando um sistema aumenta a complexidade da sua interação mais coisas podem dar errado. Para isso o desenvolvedor deve tentar antecipar as experiências. A interface que cobre as mensagens e uma parte importante em comunicar a interação. A interface é o meio entre o usuário e o sistema, este diz o que é possível e o que não é possível, o que é eficiente ou não e a emoção da interação. Ter uma interface funcional, expressiva e atrativa é importante para tornar a interação agradável ao usuário. Interações tem um vocabulário, assim como a nossa comunicação. O usuário deve entender a ação que realiza e saber que o sistema entende que a ação realizada tem um significado e realizará a atividade esperada. Interações podem envolver: manipulação física, entrada de códigos, manipulação de mouse, reconhecimento de presença, local ou imagem, interfaces hápticas e de toque, gestos ou reconhecimento de voz. Cada uma destas modalidades de interação tem suas propriedades e características, que devem ser analisadas. Finalizando, a tarefa ou objetivo é facilitar a interação homem-sistema, seja essa para visualização de dados, organizar-se, criar experiências, permitir colaboração entre usuários, controlar mecanismos e experimentos, criar ambientes ou contar uma narrativa. 1.3. Cenário atual dos frameworks Existem varias formas de desenvolver interação criativamente, neste momento serão revistos alguns ferramentais (frameworks) mais conhecidos como Processing, Flash, Unity, cinder e o openFrameworks. Processing é um framework desenvolvido para Java. É uma ferramenta open-source e tem um forte apelo educacional. É baseada em programação via código e possibilita a utilização de openGL. É possível conectar bibliotecas Java para complementar as aplicações e aumentar as possibilidades. Uma das vantagens é a fácil exportação de projetos para web. Processing está disponível em: http://processing.org/ Adobe Flash é uma possibilidade bem conhecida para desenvolvimento criativo, baseado em ActionScript. É muito utilizado por ter uma estrutura familiar com ferramentas de design como 252 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA o Photoshop e Illustrator. A IDE de desenvolvimento da Adobe é paga, contudo existe a opção do Flash Builder, pois esta é grátis para estudantes e professores. Flash é completamente exportável para web, porem isso impacta na performance e no acesso a hardware quando comparado a outras tecnologias. Flash Buider está disponível em: http://www.adobe.com/ products/flash-builder-family.html Unity é um motor de jogos, grátis para desenvolvimento em Windows e pago para dispositivos móveis, e como motor de jogos permite desenvolvimento com grafo de cena, editor de níveis, etc. A programação pode ser realizada em C#. Não é open-source, mas deve ser considerado depende do projeto. Unity está disponível em: http://unity3d.com/ Cinder é um ferramental open-source e cross-plataform disponível para Mac, iOS e Windows. A programação é baseada em C++ e possui diversos elementos prontos: como manipulação 3D, áudio, vídeo, rede, processamento de imagem, etc. Cinder está disponível em: http:// libcinder.org/features/ openFrameworks é um ferramental open-source e cross-plataform disponível para Mac, Linux, Windows, Android e iOS. A programação é baseada em C++ e isso permite uma liberdade, que num ponto dificulta o iniciante, mas em contrapartida possibilita a utilização da criatividade para qualquer aplicação. Possui uma gama de componentes criados pela comunidade facilitando o reuso além dos elementos prontos como: manipulação 3D, áudio, vídeo, rede, processamento de imagem, etc. openFrameworks está disponível em: http://www.openframeworks.cc/ 2. oF – openFrameworks oF é uma coleção de códigos criados para ajudar em uma determina atividade, ou framework. Alguns frameworks são criados para trabalhar com banco de dados, outros para controle de Internet. oF é um framework que, em tese, foi criado para artistas e designers trabalharem com design interativo. Contudo, a atividade não é simples, pois requer conhecimento em C++, uma linguagem forte e poderosa, porém complexa. Como a base da codificação é em C++, este é um framework que permite muita flexibilidade e acesso a hardware. oF é desenvolvido principalmente por Zach Liberman, Theo Watson, Artuno Castro e Chris O’Shea e hoje recebe colaborações da comunidade. oF nasceu do desconforto da falta de comunicação entre diversas bibliotecas em C++, que não falavam a mesma língua. Deve-se considerar utilizar oF quando: • O projeto renderiza muitos gráficos 3D, e/ou; • Utilizar muita visão computacional, e/ou; • Controlar equipamentos, como, por exemplo, o ARDUINO. oF inclui uma série de bibliotecas, como: • OpenGL, GLEW, GLUT, libtess2 e cairo para gráficos. • rtAudio, PortAudio ou FMOD e Kiss FFT para entrada, saída e análise de áudio. • FreeType para fontes. • FreeImage para salvar e carregar imagens. 253 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA • • Quicktime e videoInput para playback e aquisição de vídeo. Poco, que contém uma variedade de utilidades. O código foi bem escrito para ser compatível com várias arquiteturas e vários ambientes de desenvolvimento, no momento de escrita deste capítulo eram suportados cinco sistemas operacionais (Windows, OSX, Linux, iOS e Android) e quatro IDEs (XCODE, Code::Blocks, Visual Studio e Android). Deve-se ainda ressaltar que é open-source distribuído utilizando a Licença MIT [8]. 2.1. Requisitos para desenvolvimento Neste capítulo utilizaremos como exemplo o sistema operacional Windows, utilizando a IDE/ Compilador do Visual Studio C++ 2010 Express (VC2010E). Assim é necessário fazer o download e instalação do VC2010E, fazer o download do oF correspondente e o add-on do ARToolKitPlus. O oF fornece os tutoriais para cada sistema operacional e ambiente de desenvolvimento na página: http://www.openframeworks.cc/download/ Para este exemplo, devem ser realizados o download do oF (versão 0.7.4 no momento de escrita deste capítulo) para Visual Studio 2010 (Seta 1 na Figura 2) e da realização da configuração do ambiente de desenvolvimento com o tutorial (Seta 2 na Figura 2). Figura 2. Download do openFrameworks. 254 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA Caso não queira seguir o tutorial do ambiente de desenvolvimento o link para o VC2010E é o seguinte: http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express Tendo o oF e o VC2010E instalados, faça um teste inicial, descompacte a pasta em algo semelhante à Figura 3: Figura 3. Exemplo de caminho para desenvolvimento. Para testar um exemplo e validar o ambiente de desenvolvimento vá à pasta de exemplo, pasta de 3D, exemplo pointPickerExample e faça duplo click no arquivo pointPickerExample.sln. Como ilustrado na Figura 4. Figura 4. Projeto do VC2010E. Como ilustração do uso no VC2010E, pode-se gerar o executável em versão Release ou Debug, selecione a versão Release (Seta 1 na Figura 5) e com o botão direito clique em Solution ‘pointPickerExample’ no Solution Explorer (Seta 2 na Figura 5) e selecione Build Solution. Este procedimento deve compilar o oF e o exemplo. Gerando o seguinte resultado de compilação como na Figura 6 e o exemplo da execução na Figura 7. Nota-se que todas as dlls necessárias para são copiadas para a pasta bin. 255 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA Figura 5. Procedimento para compilar. Figura 6. Resultado esperado da compilação. 256 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA Figura 7. Exemplo do funcionamento. 2.1.1. Componentes da Comunidade Uma das vantagens do oF é o fato da comunidade poder desenvolver componentes ou funcionalidades que possam ser inseridas no oF. Estes componentes são chamados de add-ons. A página oficial (http://ofxaddons.com/) de contribuições do oF está dividindo os add-ons nos seguintes seguimentos: • Animation: animação de elementos simples, como posicionar e movimentar na tela. • Bridges: bridges são formas de adicionar elementos de outros frameworks, adaptando a interface de dados para o oF. • Computer Vision: rotinas de rastreio, usando openCV e Kinect. • Graphics: rotinas para renderizar elementos na tela. • GUI: componentes para criar interfaces com usuário. • Hardware Interface: rotinas de acesso a vários hardwares. • iOS: rotinas específicas para desenvolvimento e utilização dos recursos do iOS. • Machine Learning: rotinas de inteligência artificial. • Physics: rotinas de processamento de física, colisão, etc. • Sound: rotinas e wrappers de bibliotecas para tratamento e execução de áudio. • Typography: rotinas para manipulação de texto. 257 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA • • • Utilities: rotinas diversas para manipulação com o computador, sistema operacional e outros recursos. Video/Camera: rotinas e wrappers de bibliotecas para tratamento e execução de vídeo e dados de câmera (incluindo Kinect e openNI). Web/Networking: rotinas para interconexão de sistemas, http, ftp, json, ssl, etc. Para o exemplo, faça o download do add-on do ofxARToolKitPlus do fishkingsin como indicado na Figura 8, pois o mesmo é o mais atualizado (Last updated: 30 January, 2013). Salve numa pasta conhecida. Sugestão: colocar na mesma pasta que o oF. Figura 8. Link para download do ofxARToolKitPlus. 3. Desenvolvendo exemplos Com os requisitos prontos (oF para Visual Studio, VC2010E e ofxARToolKitPlus) é possível explorar um roteiro para explicar o funcionamento e tentar suavizar a curva de aprendizado. O roteiro será dividido em três casos, com incremento de dificuldade: • Caso 1: o exemplo vazio para explorar a estrutura de arquivos do oF, a utilização do gerador automático e a organização do código. • Caso 2: exemplo com modelos 3D para explorar a utilização de bibliotecas de modelos 3D e de controle de câmera. • Caso 3: exemplo com RA para explorar a utilização de add-ons adicionais. 3.1. Caso1: O exemplo vazio Descompactando o oF, temos uma série de pastas que contêm a estrutura do oF, como visto na Figura 9. 258 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA Figura 9. Estrutura das pastas do oF. De cima para baixo temos os seguintes itens: • Pasta addons: contém os add-ons que estendem o oF. Para adicionar um novo add-on basta salva-lo nesta pasta. Geralmente o add-on inicia-se com as letras ofx; • Pasta apps: local sugerido para salvar os projetos de desenvolvimento; • Pasta examples: contém diversos exemplos (100) dos recursos do oF, separados pelas temáticas: 3d, add-ons, communication, events, gl, graphics, math, sound, utils e video; • Pasta export: contém as dlls que são exportadas para a pasta de execução durante a montagem/compilação; • Pasta libs: contém as bibliotecas estáticas dos componentes que fazem parte do oF. Algumas bibliotecas para serem livre determinam que a aplicação só pode usar a versão da biblioteca dinâmica, neste caso apenas os includes (.h) estão nesta pasta; • Pasta other: contém um exemplo de código para comunicação com ARDUINO; • Pasta projectGenerator: contém o gerador de projeto que facilita a montagem do projeto. Cada distribuição de oF contem um gerador de projeto para a arquitetura/IDE desejada; • Pasta script: contém scripts para facilitar o funcionamento, este diferencia para cada distribuição do oF; • Arquivos changes.txt e license.md: contém uma listagem das principais alterações e da licença de uso. 3.1.1. O gerador automático projetos Uma das grandes dificuldades é montar o projeto para a IDE e resolver todas as dependências de add-ons, para resolver este problema o oF disponibiliza um gerador automático de projetos. Ele se encontra dentro da pasta projectGenerator no caminho do oF. A utilização da interface é bem simples, 259 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA contendo campos para nomear o projeto, qual o endereço (para o gerador criar o projeto com todos os endereços relativos corretamente), a plataforma do gerador e quais os add-ons, como na Figura 10. Figura 10. Pagina inicial do projectGenerator. Clicando em Addons abre-se um novo menu pedindo para selecionar os add-ons desejados. Para este caso deixaremos todos os add-ons sem seleção, como na Figura 11, e retornar para o menu anterior. Figura 11. Menu para escolher add-ons do projectGenerator. 260 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA OBS.: Em alguns casos houve problema de compilar, isso ocorreu devido ao caminho do oF ou do projeto conter espaços e se o oF e o projeto estão em HD separados. Para gerar o projeto, por exemplo, na pasta <of>/apps/myApps/ clique em GENERATE PROJECT. Na pasta gerada, é colocada a estrutura para o desenvolvimento utilizando a IDE/SO desejado, no caso VC2010E no Windows. Neste, o projeto é o <of>/apps/myApps/caso1/caso1.sln. 3.1.2. Estrutura lógica dos arquivos de projeto Abrindo o projeto, no Solution Explorer estão dois projetos, o do caso1 e do openFrameworks. Na maioria dos casos não é necessário modificar o oF, mas se necessário é requerido uma recompilação. Expandindo os diretórios do caso1, na pasta com os fontes (src) existem três arquivos, que são o básico do funcionamento do oF: main.cpp, testApp.cpp e o testApp.h, como na Figura 12. Figura 12. Estrutura do projeto no VC2010E. O arquivo main.cpp é o ponto inicial, contendo o int main(). Neste arquivo não é necessário nenhuma modificação. Porém é interessante explicar a função ofRunApp(). Esta função é responsável por alocar a classe que contém os métodos padrões para o funcionamento: testApp.h. Esta classe herda da classe virtual ofBaseApp o formato e métodos virtuais que devem ser implementados para ser compatível com o esperado pela ofRunApp. A Figura 13 mostra o código do arquivo main.cpp. 261 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA #include “ofMain.h” #include “testApp.h” #include “ofAppGlutWindow.h” //======================================================================== int main( ){ ofAppGlutWindow window; ofSetupOpenGL(&window, 1024,768, OF_WINDOW); GL context // <-------- setup the // this kicks off the running of my app // can be OF_WINDOW or OF_FULLSCREEN // pass in width and height too: ofRunApp( new testApp()); } Figura 13. Código fonte do main.cpp. O arquivo de cabeçalho testApp.h, é a implementação concreta da classe virtual ofBaseApp, com as definições concretas dos métodos, como mostrado na Figura 14. #pragma once #include “ofMain.h” class testApp : public ofBaseApp{ public: void setup(); void update(); void draw(); void void void void void void void void void }; keyPressed (int key); keyReleased(int key); mouseMoved(int x, int y ); mouseDragged(int x, int y, int button); mousePressed(int x, int y, int button); mouseReleased(int x, int y, int button); windowResized(int w, int h); dragEvent(ofDragInfo dragInfo); gotMessage(ofMessage msg); Figura 14. testApp.h inicial para o caso1. 262 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA Os métodos são implementado no arquivo fonte testApp.cpp. O gerador automático cria os métodos sem conteúdo, como na Figura 15, adaptada. #include “testApp.h” //-------------------------------------------------------------void testApp::setup(){ } //-------------------------------------------------------------void testApp::update(){ } //-------------------------------------------------------------void testApp::draw(){ } //-------------------------------------------------------------void testApp::keyPressed(int key){ } //-------------------------------------------------------------void testApp::keyReleased(int key){ } //-------------------------------------------------------------void testApp::mouseMoved(int x, int y ){ } //-------------------------------------------------------------void testApp::mouseDragged(int x, int y, int button){ } //-------------------------------------------------------------void testApp::mousePressed(int x, int y, int button){ } //-------------------------------------------------------------void testApp::mouseReleased(int x, int y, int button){ } //-------------------------------------------------------------void testApp::windowResized(int w, int h){ } //-------------------------------------------------------------void testApp::gotMessage(ofMessage msg){ } //-------------------------------------------------------------void testApp::dragEvent(ofDragInfo dragInfo){ } Figura 15. testApp.cpp inicial para o caso1. Os desenvolvedores de openGL estão acostumados com esta divisão de métodos, que separam em apenas uma função os procedimentos de controle e desenho da janela e nos outros métodos são realizadas a gerencia dos dados. • O método void testApp::setup() é chamado no início do programa, e nele são colocadas todas as inicializações do programa, por exemplo, se tem que ler algum arquivo com as definições do programa, se tem que configurar qual o conteúdo da barra de título ou inicializar variáveis. • O método void testApp::update() é chamado sempre que a aplicação não estiver ocupada resolvendo a exibição. Nesta, por exemplo, são chamadas as funções de captura e análise de uma câmera, requisições de status de hardware, atualização de conexão, etc. • O método void testApp::draw() é chamado para realizar o “desenho” da janela, apenas esta função pode abrir contextos de exibição. Lembrando que assim como o openGL o ponto 0,0 é o canto superior esquerdo e o incrementa-se o valor de X no sentido esquerda à direita e incrementa-se o valor de Y no sentido superior à inferior. 263 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA • • • • • O método void keyPressed(int key) e void keyReleased(int key) são relacionados à utilização do teclado como forma de interação, o primeiro é chamado quando uma tecla é pressionada e o segundo quando todas as teclas (se mais de uma) forem liberadas. Os métodos tem como parâmetro de entrada o código da tecla. O arquivo <of>/libs/openFrameworks/ utils/ofConstants.h contém os códigos das teclas. Os métodos void mouseMoved(int x, int y ), void mouseDragged(int x, int y, int button), void mousePressed(int x, int y, int button) e void mouseReleased(int x, int y, int button) tratam a utilização do mouse como forma de interação, o primeiro é chamado no caso onde ocorrer um arraste do mouse, no momento que ele é liberado, o segundo é chamado quando um botão do mouse é apertado e o terceiro quando os botões (se mais de um) forem liberados. Os métodos tem como parâmetro de entrada a posição x, y na tela da aplicação e qual o botão apertado. O método void windowResized(int w, int h) é chamado quando ocorrer um redimensionamento da tela, este método é útil para adaptar o conteúdo da tela para o redimensionamento, por exemplo: ajustando a orientação, posicionamento e exibição de conteúdo. O método void dragEvent(ofDragInfo dragInfo) é chamado quando algo de fora da aplicação é arrastado para dentro do contexto. É utilizado, por exemplo, quando se deseja arrastar uma figura para a aplicação. O método recebe como parâmetro de entrada a nova largura (w - weight) e a nova altura (h – height). O método void gotMessage(ofMessage msg) é chamado quando uma mensagem de algum bloco da aplicação pede atenção. Compilando o programa é gerado na pasta /bin do projeto o programa caso1.exe com as dlls necessárias para execução, como mostrado na Figura 16a e o resultado da execução na Figura 16b. ç g (a) (b) Figura 16. (a) pasta bin com arquivos copiados e gerados; (b) executando o exemplo vazio. Para fechar o Caso1, modificaremos o programa para exibir uma mensagem que segue o mouse, e quando clicar na tela desenhar um círculo de raio regulável pelo arrasto do mouse. 264 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA Criar as variáveis na classe testApp.h, como na Figura 17: ... string mensagem; int x_i,y_i; float raio; ... Figura 17. testApp.h para o caso1 modificado. Para este teste, basta preencher os métodos setup para inicializar a mensagem e o raio inicio, preencher o mousePressed para salvar a posição inicial do mouse, e mouseDragged para mudar o raio de acordo com o arraste e finalizar o valor do arraste em mouseReleased. No método draw foi colocado para imprimir um circulo da cor azul, no ponto onde o mouse foi criado com o raio do arraste, e em vermelho a mensagem seguindo os valores do mouse, como na Figura 18. //-------------------------------------------------------------void testApp::setup(){ mensagem = “Hello SVR2013!!!”; raio = 0; } //-------------------------------------------------------------void testApp::draw(){ ofSetColor(ofColor::blue); ofCircle(x_i,y_i,raio); ofSetColor(ofColor::red); ofDrawBitmapString(mensagem,mouseX,mouseY); } //-------------------------------------------------------------void testApp::mouseDragged(int x, int y, int button){ raio = ofDist(x_i,y_i,x,y); } //-------------------------------------------------------------void testApp::mousePressed(int x, int y, int button){ x_i = x; y_i = y; } //-------------------------------------------------------------void testApp::mouseReleased(int x, int y, int button){ raio = ofDist(x_i,y_i,x,y); } Figura 18. testApp.cpp para o caso1 modificado. 265 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA 3.2. Caso2: Adicionando modelos 3D e controle de câmera Este caso trata o uso de um modelo 3D manipulado pelo add-on ofxAssimp e pelo controle de visualização via a câmera ofEasyCam. Incialmente deve-se gerar o projeto utilizando o projectGenerator, coloca-se o nome caso2 e escolhe o add-on ofxAssimp. Para separar o processo, dividiremos em duas etapas, inserção do modelo 3D e depois da manipulação: 3.2.1. Inserindo modelos 3D. O oF fornece na distribuição uma add-on para utilização da biblioteca Assimp. Esta biblioteca foi desenvolvida em C++, sob licença BSD, e possui bindings para outras linguagens, como C# e Python. E a vantagem de utilização desta lib é a possibilidade de carregar vários formatos de modelos 3D, utilizando-os de maneira semelhante. Alguns exemplos de tipos de modelos possíveis são: Collada, Blender, 3DS Max, AutoCad, Ogre, Quakes, Valve, Unreal e DirectX X. O site do Assimp disponibiliza para download um AssimpViewer e este pode ser utilizado para testar se o modelo e o tipo desejado funcionam. Para este exemplo foi utilizado um dos modelos do exemplo da biblioteca Assimp, mas poderia ser realizado o download de um modelo 3D no formato Collada do repositório 3D do Google (http://sketchup.google.com/3dwarehouse/). O modelo antes de ser utilizado pode ser testado utilizando o aplicativo AssimpViewer, como visto na Figura 19. Figura 19. Modelo visualizado no assimpViewer. 266 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA O projeto do oF já está preparado para procurar os caminhos da biblioteca ofxAssimpModelLoader. O primeiro passo para inserir o modelo 3D no oF no arquivo testApp.h é criar uma variável do tipo afxAssimpModelLoader e o include da biblioteca, como na Figura 20. #pragma once #include “ofxAssimpModelLoader.h” #include “ofMain.h” class testApp : public ofBaseApp{ // Não apagar o que já tinha ofxAssimpModelLoader model; }; Figura 20. testApp do caso2 com a instancia do modelo. O segundo passo é realizar a carga do modelo no método setup() e no método draw() fazer a chamada do modelo, posicionando-o no centro da janela, como visto no código da Figura 21 e o Resultado na Figura 22. //-------------------------------------------------------------void testApp::setup(){ ofBackground(50, 0); //Configura o fundo // Abre o arquivo if( !model.loadModel(“astroBoy_walk.dae”, false) ) ofSystemAlertDialog(“Erro em carregar arquivo”); // configurações do openGL glEnable(GL_DEPTH_TEST); glShadeModel(GL_SMOOTH); //some model / light stuff } //-------------------------------------------------------------void testApp::draw(){ // Configura a cor do objeto ofSetColor(255); ofPushMatrix(); // Abre o contexto do openGL ofTranslate(ofGetWidth()/2,ofGetHeight()/2+100,0); //model.drawWireframe(); // desenha o wireframe model.drawFaces(); // desenha as faces //model.drawVertices(); // desenha os vértice ofPopMatrix(); // fecha o contexto do openGL } Figura 21. testApp.cpp com os métodos setup() e draw() preenchidos. 267 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA Figura 22. Resultado do caso2. 3.2.2. Manipulando o modelo O oF disponibiliza um componente de manipulação de câmera, chamado ofEasyCam. Este componente é um facilitador de visualização 3D, permitindo orbitar e dar zoom com o arrasto do mouse com o botão esquerdo ou o direito apertado, respectivamente. Para utilizar o ofEasyCam deve-se criar na classe testApp.h um atributo do tipo ofEasycam, e no método draw() abrir e fechar o contexto da EasyCam, como mostrados na Figura 23 e Figura 24. #pragma once #include “ofxAssimpModelLoader.h” #include “ofMain.h” class testApp : public ofBaseApp{ ... ofxAssimpModelLoader model; ofEasyCam cam; }; Figura 23. testApp.h do caso2 com EasyCam. 268 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA //-------------------------------------------------------------void testApp::draw(){ ofSetColor(255); // Configura a cor do objeto cam.begin(); // Abre o contexto da câmera //model.drawWireframe(); // desenha o wireframe model.drawFaces(); // desenha as faces //model.drawVertices(); // desenha os vértice cam.end(); // fecha o contexto da câmera } Figura 24. testApp.cpp do caso2 com EasyCam no método draw(). 3.3. Caso3: Juntando dois mundos Para o desenvolvimento de RA é possível criar um rastreador de característica com alguma metodologia, seja ela usando openCV ou algum derivado, para rastreio de características naturais, ou utilizar o rastreio de marcadores. Está disponível para o oF um wrapper do ARToolKitPlus, inicialmente desenvolvido pelo grupo da Graz University of Technology [2] como uma alternativa ao ARToolKit desenvolvido pelo HITLab [9]. O ARToolKitPlus, foi feliz em alguns aspectos, dentre eles a velocidade de rastreio, pois ao invés da análise realizada em todo a área de código do marcador, validando o seu conteúdo, apenas algum pontos numa matriz de 6x6 são rastreados para identificar o marcador. Este tipo de marcador tem um código, ou ID, característico e implícito. Este tipo de técnica é chamado de ID-encoded marker detection enquanto o do ARToolKit é chamado template marker detection. Para este caso, será explorado o exemplo dado pelo ofxARToolKitPlus, porém com a criação inicial do projeto e depois com a inserção do código, e com a utilização do modelo 3D adicionado no caso 2 como exemplo de conteúdo virtual. O procedimento será dividido em duas partes, desenvolvimento da infraestrutura, relacionamento do real com o virtual através do rastreio de marcadores, e depois da inserção do modelo 3D. 3.3.1. Desenvolvendo infraestrutura O primeiro passo é descompactar o ofxARToolKitPlus e salva-lo dentro de <of>/addons. Ele vem com o sufixo –master. Este sufixo deve ser apagado, deixando apenas o nome principal. O primeiro passo para o desenvolvimento é criar o projeto, através do projectGenerator. Para este caso, devem ser marcado os add-ons ofxOpenCv, ofxAssimpModelLoader e o ofxARToolKitPlus. De forma a repetir o procedimento, nomeia-se este projeto como caso3. O projeto vem incompleto, sem as definições de biblioteca estática do oxARToolKitPlus. Para incluir, deve-se entrar nas propriedades do projeto (caso3), Configuration Properties Æ Linker ÆGeneral ÆAdditional Library Directories e inclua o caminho para a biblioteca, no caso: ..\..\..\addons\ofxARtoolkitPlus\libs\ARToolKitPlus\lib\win32 269 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA E em Configuration Properties ÆLinker ÆInput Æ Additional Dependencies incluir a lib: ARToolKitPlus.lib O ARToolKitPlus utiliza o openCV, por isso deve ser adicionado também. Como os outros casos, no arquivo testApp.h deve ser adicionado os includes necessários e as variáveis. Neste exemplo, utilizamos o rastreio de câmera do próprio oF, é necessário instanciar a classe do ARToolKitPlus, e as variáveis de processamento de imagem do openCV. O cabeçalho testApp.h está na Figura 25. #pragma once #include “ofMain.h” #include “ofxOpenCv.h” #include “ofxARToolkitPlus.h” //Cabeçalho do OpenCV //Cabeçalho do ARToolKitPlus class testApp : public ofBaseApp{ public: void setup(); void update(); void draw(); void void void void void void void void void keyPressed (int key); keyReleased(int key); mouseMoved(int x, int y ); mouseDragged(int x, int y, int button); mousePressed(int x, int y, int button); mouseReleased(int x, int y, int button); windowResized(int w, int h); dragEvent(ofDragInfo dragInfo); gotMessage(ofMessage msg); int width, height; ofVideoGrabber vidGrabber; // Tamanho da janela da câmera // Componente do oF que pega a câmera. ofxARToolkitPlus artk; int threshold; // Instância do ARToolKitPlus // Threshold da relação preto/branco ofxCvColorImage colorImage; ofxCvGrayscaleImage grayImage; ofxCvGrayscaleImage grayThres; //imagem capturada pela câmera //imagem em tons de cinza (mais rápida) //imagem com threshold antes de ir pro artk }; Figura 25. testApp.h do caso3 com carregador de vídeo e ARToolKitPlus. 270 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA No caso 3 serão necessários o preenchimento de quatro métodos do arquivo fonte testApp.h O primeiro método chamado é o setup(), serão configurados a janela, o tamanho da imagem, alocado na memória o local para armazenar o buffer de aquisição da câmera, e das etapas de processamento de imagem, inicializado o ARToolKitPlus (neste caso utilizando calibração e marcadores padrão), o ARToolKitPlus faz o threshold automático, mas para fins de mostrar o resultado, neste exemplo, ficará manual. O método setup() está ilustrado na Figura 26. //-------------------------------------------------------------void testApp::setup(){ ofSetWindowShape(1280,480); // Ajusta o tamanho da aplicação width = 640; height = 480; // largura e altura da imagem da câmera vidGrabber.initGrabber(width, height); câmera colorImage.allocate(width, height); rida grayImage.allocate(width, height); grayThres.allocate(width, height); tada // reserva espaço para o buffer da artk.setup(width, height); padrão // inicia o ARToolKitPlus com valores threshold = 85; artk.setThreshold(threshold); ajuste é externo } // threshold para a imagem ajustada // informa ao ARToolKitPlus que o // reserva espaço para a imagem colo// reserva espaço para a imagem mono // reserva espaco para a imagem ajus- Figura 26. Método setup() do testApp.h do caso3. O método update() realiza as leitura da câmera, o processamento da imagem, e envia a imagem monocromática para o ARToolKitPlus realizar o rastreio. A Figura 27 contém o código do método update(); 271 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA //-------------------------------------------------------------void testApp::update(){ vidGrabber.grabFrame(); frame da câmera bool bNewFrame = vidGrabber.isFrameNew(); novo // Pega // configura que é um frame if(bNewFrame) { // se um frame novo /pega os pixels do buffer da câmera e armazena colorImage.setFromPixels(vidGrabber.getPixels(), width, height); grayImage = colorImage; //converte a imagem para mono //Como queremos testar o threshold temos que gerar essa imagem grayThres = grayImage; grayThres.threshold(threshold); //Passa para o ARToolKitPlus a imagem monocromática artk.update(grayImage.getPixels()); } } Figura 27. Método update() do testApp.h do caso3. A exibição da camada virtual junto com a real filmada é realizada no método draw(). Neste exemplo foi dividida a exibição em duas imagens, a principal com a sobreposição e a imagem adaptada para exemplificar o rastreio. As imagens são exibida pela função draw() da imagem, antes de cada uma é necessário indicar a cor branca, senão a janela fica de acordo com a última cor. A imagem colorida usa a colorImage.draw() e a adaptada grayThres.draw(). Como em RA o conteúdo virtual sempre sobrescreve o conteúdo real filmado, inicialmente devem ser exibidas as duas imagens. Para mostrar qual o marcador foi encontrado é utilizado a função draw do ARToolKitPlus. Para detectar os marcadores é necessário aplicar a matriz de projeção da câmera. Para cada marcador encontrado é aplicado um modelo 3D, no exemplo é um empilhamento de retângulos ajustados para matriz de perspectiva do marcador da lista de marcadores encontrados. A Figura 28 contém o código do método draw(). 272 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA //-------------------------------------------------------------void testApp::draw(){ ofSetColor(ofColor::white);// inicia a cor dos objetos como branca colorImage.draw(0, 0);// exibe a imagem capturada colorida grayThres.draw(640, 0);// exibe a imagem adaptada artk.draw(640, 0);// Esta função exibe a posição e etiqueta o marcador // ARTK 3D artk.applyProjectionMatrix(); // primeiro passo é aplicar a matriz de projeção da camera int numDetected = artk.getNumDetectedMarkers(); //detectar os marcadores ofEnableAlphaBlending();//habilitar a transparência for(int i=0; i<numDetected; i++) { // passar por todos os marcadores encontrados artk.applyModelMatrix(i); //aplicar a matriz de perspectiva do marcador //Local onde colocar o conteúdo 3D do marcador // neste exemplo é uma pilha de retângulos. ofNoFill(); ofEnableSmoothing(); ofSetColor(255, 255, 0, 50); for(int i=0; i<10; i++) { ofRect(-25, -25, 50, 50); ofTranslate(0, 0, i*1); } } } Figura 28. Método draw() do testApp.h do caso3. Para o ajuste manual do threshold é necessário tratar a entrada de teclado. Para isso é necessário utilizar o método keyPressed. Nele deve-se filtrar qual a tecla foi apertada e aplicar o resultado desejado. Neste são utilizados a tecla da seta para cima para aumentar o valor do threshold e a respectiva tecla para baixo para diminuí-lo. Adicionalmente a tecla ‘s’ abre o painel de configuração da aquisição da câmera. O método keyPressed está na Figura 29. 273 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA //-------------------------------------------------------------void testApp::keyPressed(int key){ if(key == OF_KEY_UP) { artk.setThreshold(++threshold); // aumenta o valor do threshold } else if(key == OF_KEY_DOWN) { artk.setThreshold(--threshold); // diminui o valor do threshold } else if(key == ‘s’) { vidGrabber.videoSettings(); // chama a configuração da câmera } } Figura 29. Método keyPressed() do testApp.h do caso3. O resultado da compilação está na Figura 30. Figura 30. Resultado do reconhecimento do caso3. 3.3.2. Adicionando conteúdo Finalizando a sequencia de passos, criada a infraestrutura é necessário inserir o conteúdo, para isto será reutilizado o modelo do caso 2 (encontrado no exemplo do ofxAssimp no oF). Semelhante ao caso 2, deve-se incluir o cabeçalho do ofxAssimpModelLoader e criar uma variável do modelo no arquivo testApp.h, como exemplificado no código da Figura 31. 274 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA #pragma once #include “ofMain.h” #include “ofxOpenCv.h” #include “ofxARToolkitPlus.h” #include “ofxAssimpModelLoader.h” class testApp : public ofBaseApp{ ... ofxCvGrayscaleImage grayThres; ofxAssimpModelLoader model; }; Figura 31. testApp.h do caso3 com exibição de modelo 3D. No método setup() é necessário carregar o modelo, e no método draw() após a aplicação da matriz de perspectiva do marcador desenhar o modelo 3D. Estes passos estão ilustrados na Figura 32, que contém os dois métodos completos para melhor ilustrar a posição destes elementos adicionais. //-------------------------------------------------------------void testApp::setup(){ ofSetWindowShape(640,480);// Ajusta o tamanho da aplicação width = 640; height = 480;// largura e altura da imagem da câmera vidGrabber.initGrabber(width, height);// reserva espaço para o buffer da câmera colorImage.allocate(width, height);// reserva espaço para a imagem colorida grayImage.allocate(width, height);// reserva espaço para a imagem mono artk.setup(width, height);// inicia o ARToolKit plus com valores padrão ofBackground(50, 0);//Configura o fundo // Abre o arquivo if( !model.loadModel(“astroBoy_walk.dae”, false) ) ofSystemAlertDialog(“Erro em carregar arquivo”); } //-------------------------------------------------------------void testApp::draw(){ 275 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA Continua ofSetColor(ofColor::white);// inicia a cor dos objetos como branca colorImage.draw(0, 0);// exibe a imagem capturada colorida ofDrawBitmapString(“alive”,mouseX,mouseY); artk.draw(0, 0);// Esta função exibe a posição e etiqueta o marcador // ARTK 3D artk.applyProjectionMatrix();// primeiro passo é aplicar a matriz da câmera int numDetected = artk.getNumDetectedMarkers(); //detectar os marcadores for(int i=0; i<numDetected; i++) { // passar por todos os marcadores encontrados artk.applyModelMatrix(i); //aplicar a matriz de perspectiva do marcador //Local onde colocar o conteúdo 3D do marcador //pilha de retângulos. ofPushMatrix();// Abre o contexto ofEnableAlphaBlending(); ofEnableSmoothing(); ofSetColor(255, 255, 0, 50); for(int i=0; i<10; i++) { ofRect(-25, -25, 50, 50); ofTranslate(0, 0, i*1); } ofDisableSmoothing(); ofDisableAlphaBlending(); ofPopMatrix();// fecha o contexto // Modelo 3D ofSetColor(255);// Configura a cor do objeto ofPushMatrix();// Abre o contexto glEnable(GL_DEPTH_TEST);// habilita profundiade ofScale(0.1,0.1,0.1);// ajusta escala ofRotateX(-90);// rotaciona 90 graus model.drawFaces();// desenha as faces glDisable(GL_DEPTH_TEST); // desabilita profundidade ofPopMatrix();// fecha o contexto } } Figura 32. Métodos setup() e draw() do testApp.h do caso3 com exibição de modelo 3D. 276 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA O resultado da adição de conteúdo 3D está na Figura 33. Figura 33. Resultado do caso3 com modelo 3D. 4. Conclusões Este capítulo visou apresentar um ferramental, de desenvolvimento multi-plataforma baseado em C++, chamado openFrameworks. Sendo o mesmo open-source e livre para desenvolvimento educacional e comercial. Apresentou-se dois casos introdutórios, para explicar o framework e sua estrutura e o uso de elementos adicionais, no caso o uso da biblioteca Assimp, chamados add-on, finalizando com um exemplo de construção de ambientes de realidade aumentada utilizando uma biblioteca similar ao ARToolKitPlus. Como contribuição, esperamos que este ferramental auxilie no desenvolvimento de aplicações mais criativas e de desenvolvimento veloz, com: • Codificação C++ portável • Facilidade de acesso a hardware • Múltiplos componentes prontos disponíveis pela comunidade • Facilidade de acesso ao disco • Facilidade de comunicação • Facilidade de uso de áudio e vídeo. Como sugestão de livro e aprofundamento, aconselhamos o livro Programming Interactivity da O´Reilly e os tutoriais do site do openFrameworks. 277 Tendências e Técnicas em Realidade Virtual e Aumentada, v. 3, p. 250-278, maio/2013. CERQUEIRA, Christopher Shneider; KIRNER, Claudio. Introdução à utilização de openFrameworks para o desenvolvimento de aplicações de RVA Referências GESSLER, A.; SCHULZE, T.; KULLING K.; NADLINGER, D. “Assimp,” 2013. [Online]. Available: http:// assimp.sourceforge.net/. [Acesso em 15 03 2013]. D. Wagner e D. Schmalstieg, “ARToolKitPlus for Pose Tracking on Mobile Devices,” Proceedings of 12th Computer Vision Winter Workshop (CVWW’07), Fevereiro 2007. KIRNER, C.; CERQUEIRA, C. S.; KIRNER, T. G. “Claudio Kirner, Christopher Shneider Cerqueira and Tereza Gonçalves Kirner (2012). Using Augmented Reality Cognitive Artifacts in Education and Virtual Rehabilitation, Virtual Reality in Psychological, Medical and Pedagogical Applications, Dr. Christiane,” em Virtual Reality in Psychological, Medical and Pedagogical Applications, InTech, 2012. REICHELT L. “What is a UX Developer and are they really a thing?,” 25 01 2012. [Online]. Available: http:// www.disambiguity.com/what-is-a-ux-developer/. [Acesso em 15 03 2013]. TOGNAZZINI, B. Tog on interface, Addison-Wesle, 1992. FERNANDES, L. A. F. “Interface Homem/Máquina,” 2011. [Online]. Available: http://www2.ic.uff. br/~laffernandes/teaching/2011.1/tcc-00.184/aula_06.pdf. [Acesso em 15 03 2013]. WIERINGA, R. J. Design methods for reactive systems: yourdon, statemate, and the uml, Amsterdam, Netherlands: Morgan Kaufmann, 2003. OPEN SOURCE INITIATIVE. “The MIT License,” Open Source Initiative, [Online]. Available: http:// opensource.org/licenses/MIT. [Acesso em 15 03 2013]. LAMB, P. “ARToolKit,” [Online]. Available: http://www.hitl.washington.edu/artoolkit/. [Acesso em 13 03 2013]. 278