Multiprojeção por Clusterização de Visualização de Ambientes Virtuais com o Xj3D
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Multiprojeção por Clusterização de Visualização de Ambientes Virtuais com o Xj3D

on

  • 1,503 views

Title: Multiprojeção por Clusterização de Visualização de Ambientes Virtuais com o Xj3D

Title: Multiprojeção por Clusterização de Visualização de Ambientes Virtuais com o Xj3D

Statistics

Views

Total Views
1,503
Views on SlideShare
1,077
Embed Views
426

Actions

Likes
0
Downloads
6
Comments
1

3 Embeds 426

http://edufalcao.wordpress.com 416
http://www.slideshare.net 7
https://edufalcao.wordpress.com 3

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Multiprojeção por Clusterização de Visualização de Ambientes Virtuais com o Xj3D Document Transcript

  • 1. Multiprojeção por Clusterização de Visualização de Ambientes Virtuais com o Xj3DEduardo de Lucena Falcão, Herminegildo Remígio da Rocha Neto, Liliane dos Santos Machado Laboratório de Tecnologias para o Ensino Virtual e Estatística Universidade Federal da Paraíba - CCEN {eduardolfalcao, hdrneto}@gmail.com, liliane@di.ufpb.br Resumo 2. MultiprojeçãoSistemas de multiprojeção visam particionar a imagemde modo a oferecer diferentes configurações de Um sistema de multiprojeção é um sistemavisualização em mais de um monitor. O presente computacional complexo para aplicações que utilizamtrabalho tem como objetivo apresentar uma solução de RV de alta resolução, com múltiplas projeções -multiprojeção para visualização de ambientes virtuais utilizando ou não estereoscopia - particionando umtridimensionais no padrão X3D. Utilizando o browser ambiente ou imagem, produzido em tempo real, atravésXj3D, de código aberto, em conjunto com a LibGlass, de várias telas. A multiprojeção pode ser alcançada deé apresentado o resultado obtido com a descrição das diversas formas, tanto através de software quantoetapas de desenvolvimento. hardware específico para tal finalidade [4]. O hardware utilizado em sistemas de multiprojeção Abstract abrange placas gráficas, PCs com alto poder computacional, monitores ou projetores. É necessáriaMultiprojection systems aims the partition of images to também a utilização de software para que sejaoffer different visualization configurations into realizado o cálculo da angulação e posição das telas.multiple displays. This work has as goal to present a Um exemplo de solução de software para sistemas desolution for multiprojection of virtual environments multiprojeção é a libGlass[1], biblioteca paradeveloped following the X3D standard. Thus, the programação distribuída.description of steps necessary is presented for the use Em um sistema de multiprojeção como uma paredeof the Xj3D, an open source browser, with the de multiprojeção (PowerWall) [10], as telas sãoLibGlass for visualization clustering. distribuídas em forma de matriz (Figura 1).1. Introdução Com a constante evolução tecnológica, o uso detécnicas de Realidade Virtual (RV) tem aumentadoexpressivamente na comunidade científica. Conceitosrelacionados à visualização tridimensional einteratividade, são utilizados para prover ao usuárioambientes virtuais tridimensionais com maior imersão. Figura 1 – A: imagem projetada através de matriz de displays 3x4. B:Estes ambientes virtuais podem atuar em diversas imagem ilustrativa da CAVERNA Digital. Fonte: [4], [10].áreas, dando suporte a educação [7], entretenimento[6], treinamento [3], preservação do patrimônio É possível ainda alcançar multiprojeção estendendohistórico [8], disseminação cultural, entre outros. telas horizontalmente com angulação entre elas. No contexto de visualização, sistemas de Exemplos são sistemas como a CAVERNATM Digitalmultiprojeção podem ser considerados para prover o [4] ou NAVE [5]. No caso da CAVERNA Digital, éparticionamento da representação com abordagens possível ter de quatro a seis projeções (cubo), combaseadas em hardware ou baseadas em software. Este angulação de 90o entre elas, onde o usuário encontra-setrabalho tem por objetivo apresentar uma solução de totalmente imerso no ambiente (Figura 1). No sistemamultiprojeção através da integração entre o browser de multiprojeção NAVE a visualização é alcançadaXj3D, para o processamento de ambientes X3D, e a através de três telas horizontalmente dispostaslibGlass, para clusterização da visualização. lateralmente. A angulação necessária para um bom nível de imersão é de 120º.
  • 2. 3. X3D Tabela 1 – Browsers X3D e suas características. Browser Uso Código fonte Meio de e linguagem disponibilização O X3D (Extensible 3D) é um padrão adotado Bs Contact Pago* Indisponível Aplicação local,internacionalmente para disponibilizar conteúdos plugin, applet,tridimensionais na Web [2]. É um padrão aberto que disp. móveis,permite descrever em um arquivo formas e sist. decomportamentos de ambientes virtuais tridimensionais multiprojeçãocomplexos e interativos. FreeWRL Gratuito Open-source Aplicação local, Uma derivação do X3D em fase experimental é o C pluginX3DOM (X-Freedom), framework de código aberto Instant Gratuito Indisponível Aplicação local,que visa preencher a especificação do HTML5 Player ** plugin, disp. móveis, sist. depromovendo a integração do mesmo com conteúdos multiprojeção3D declarativos, como o X3D [12]. Como resultado é OpenVrml Gratuito Open-source Aplicação local,possível navegar em um ambiente X3D em C++ pluginnavegadores Web sem necessidade de plugins ou Xj3D Gratuito Open-source Aplicação local,browsers X3D específicos. Java Applet, Java A visualização dos ambientes virtuais Web Starttridimensionais descritos em X3D é realizada através *Existe uma versão gratuita experimental **Necessita de permissão para uso comercialde browsers específicos capazes de interpretar eprocessar as cenas (arquivos X3D), apresentando os O Xj3D é um browser em conformidade com asmodelos tridimensionais e permitindo interações do especificações do X3D, implementando inclusiveusuário com os objetos. Os browsers X3D, comumente funcionalidades não especificadas pelo padrão, o quechamados de navegadores ou players, podem se facilita o desenvolvimento de ambientes virtuais 3Dapresentar como plugins em navegadores Web, como o com interatividade complexa e alta qualidade gráfica.Google Chrome ou Mozilla Firefox, ou como Nenhum dos browsers gratuitos e de código abertoaplicações independentes. possui suporte a multiprojeção, e dentre estes o Xj3D é Os browsers para X3D são implementados visando o que possui mais recursos disponíveis. Estes fatoresinterpretar as funcionalidades definidas por sua resultaram na escolha do browser Xj3D para aespecificação [11]. Assim, desenvolvedores destes implementação da multiprojeção.browsers têm autonomia para seleção defuncionalidades a serem suportadas além das básicas,podendo também adicionar novas. Devido à 4. LibGlasscaracterística de extensibilidade do X3D existemmúltiplos documentos da especificação que conduzem Um dos principais requisitos em sistemasà evolução coerente de capacidades diversas do X3D. distribuídos é a eficiência de sincronização dosCada documento pode ser desenvolvido e integrado de computadores e subsistemas. Uma das formas deforma independente, permitindo atualizações anuais e sincronização utilizada é através de redes decrescimento estável do formato. A produção destes computadores, que implica na necessidade de troca dedocumentos ocorre por meio de um processo livre e mensagens entre os computadores da rede com umcolaborativo de membros voluntários do grupo custo muito menor, graças ao uso de componentesWeb3D. Cada ano novas funcionalidades são convencionais nesta abordagem.propostas, avaliadas, especificadas formalmente e A LibGlass (ou Glass) é uma biblioteca paraenviadas para a ISO (International Organization for computação distribuída, focando em alta performanceStandardization), a fim de serem revisadas e de aplicações de RV. A Glass é um conjunto deconfirmadas. componentes escaláveis que facilita a reprogramação Pelas suas funcionalidades e capacidades de de aplicações não-distribuídas a fim de torná-lasextensibilidade, o X3D também se apresenta como distribuídas. Com a Glass esta reescrita pode ser feitaimportante tecnologia para a produção de sistemas de em parte da aplicação, ou em uma nova [1].realidade virtual imersivos, como é o caso da multi- Todas as funcionalidades da Glass são providasprojeção. Vários browsers X3D possuem suporte para pelos plugins que são acessados através de simplestais sistemas, e outros disponibilizam seu código para declaração de variável. Atualmente existem quatroque desenvolvedores sintam-se livre para implementá- plugins disponibilizados pela Glass: variáveislos. A Tabela 1 exibe as características dos principais compartilhadas, barreiras, eventos e aliases. Asbrowsers X3D. variáveis compartilhadas são úteis para dados de tamanho pequeno, sincronizadas (evitando problemas
  • 3. de acesso global e inconsistência) e independem de um etapa foi implementada a distribuição da visualizaçãotipo específico. As barreiras servem para evitar o para alcançar maior agilidade na definição daacesso concorrente a um mesmo dado. Eventos são localização da câmera. Para tal, foi necessária a criaçãobasicamente filas de valores, úteis para a propagação de métodos de cálculo das matrizes de posição e dede mudanças assíncronas, e são independentes do tipo. orientação da câmera, para possibilitar oPor último, os aliases são úteis para calcular de forma compartilhamento da visão com o auxílio da LibGlass.transparente o ângulo de visão de cada projeção de Mudanças adicionais foram feitas nas camadas deuma aplicação com multiprojeção, e definem a posição configuração de cena (primeira etapa) e renderizaçãoda câmera segundo esse ângulo. em tempo real (segunda etapa), no intuito de obter A Glass trabalha utilizando o padrão Cliente- acesso aos métodos de leitura e alteração de orientaçãoServidor. O servidor é instanciado para que os clientes e posição da câmera durante a pré-renderização. A(ou nós) conectem-se a ele. O primeiro cliente que se Figura 2 ilustra o processo completo de renderizaçãoconectar ao servidor será inicializado como mestre e os da cena.próximos clientes serão considerados escravos. Aproposta da LibGlass é utilizar um protocolo detransporte, como o TCP, para auxiliar na troca demensagens e sincronização dos nós do sistema.5. Desenvolvimento Existem várias linguagens e frameworks paradescrição de ambientes virtuais tridimensionais. ALibGlass pode ser uma solução para a implementaçãode sistemas de multiprojeção, nos softwares de código Figura 2 – Processo completo de renderização da cena.aberto que executam tais ambientes. Neste trabalho opadrão de descrição tridimensional escolhido é o X3D, O compartilhamento da visualização se dá atravése como programa que processa o arquivo X3D do padrão peer-to-peer, em que os nós mestres agemdisponibilizando a cena correspondente, foi adotado o como um servidor, e os escravos como clientes. NoXj3D devido às características descritas na seção 3. mestre, as variáveis compartilhadas são atualizadas Para particionar a visualização do ambiente virtual através do input do usuário, e informa aos nós escravosem múltiplas telas foi necessário compreender em que de forma sincronizada acessam estes valores. Estaprofundidade a forma de renderização do Xj3D. Sua sincronização ocorre através das barreiras como oimplementação disponibiliza quatro etapas para a datalock e framelock.configuração do processo de renderização da cena: O datalock é responsável pela coerência dos  a primeira etapa trata a pré-configuração das elementos dinâmicos da cena, e para isto é importante estruturas renderizáveis da cena, funcionando que as informações em cada nó sejam idênticas em como uma espécie de interface entre o grafo de cada instante. Essas informações são armazenadas nas cena em alto nível e uma camada de variáveis compartilhadas ou ainda em eventos. Os gerenciamento da OpenGL em baixo nível. Esta dados são transmitidos para os outros nós para que etapa ocorre uma única vez durante a execução cada um atualize sua posição e orientação coerente do browser; com a cena. A Glass força que todos os outros nós  a segunda consiste em qualquer configuração atualizem seus dados e sigam o nó mestre de acordo prévia à renderização do grafo de cena, como com a mudança ocorrida. Em seguida ocorre o por exemplo, o modo de preenchimento e framelock garantindo que alterações no ambiente desenho dos polígonos; ocorram ao mesmo tempo em todas as projeções. Sua  a terceira etapa é a renderização, onde o grafo de ausência pode apresentar problemas de cena será desenhado em tela de acordo com descontinuidade facilmente percebidos pelo usuário. parâmetros configurados nas etapas anteriores;  na última etapa podem ser efetuadas 6. Resultados configurações posteriores à renderização. Após esta fase, a segunda etapa é executada repetindo Mediante os esforços da equipe e através do que já o ciclo. foi exposto, o objetivo de integrar a LibGlass e o Xj3D Como na segunda fase ocorre toda pré- foi alcançado. Isto indica que qualquer cena X3Dconfiguração imediata à renderização da cena, nesta genérica pode ser executada em multiprojeção. Uma
  • 4. vantagem deste trabalho em relação a [10] é que não 8. Agradecimentosfoi preciso uma longa e complexa implementação deum browser X3D como o Jinx, além disso, o Xj3D é Este trabalho está vinculado ao projeto Virtualidadedesenvolvido pela colaboração de diversos membros Imersiva e Interativa baseada em Cloud Computingda comunidade científica e da Web3D, tornando-o financiado pelo Ministério da Cultura através do editalestável e com mais funcionalidades suportadas. XPTA.Labs, e por bolsas de pesquisa científica PIBICContudo, nesta recompilação do Xj3D com a LibGlass através do CNPq.apenas a clusterização da visualização foiimplementada, ou seja, ambientes virtuais que possuam 9. Referênciasobjetos interativos que envolva mudança de posição,tamanho, ou forma, ainda não são suportados nesta [1] Gnecco, B.B.; Guimarães, M.P. Glass. Laboratório deversão. Sistemas Integrados, USP. São Paulo, Brazil. Outubro/2003. A Figura 3 permite observar o protótipo do browserXj3D desenvolvido em execução, onde a visualização [2] Brutzman, D., Daly, L. “X3D: 3D Graphics for Webestá distribuída em três telas, cada uma conectada a um Authors”. Morgan Kaufmann Publishers. 2007.computador diferente, interligados em rede. Nestecaso, as projeções estão configuradas para 60 graus de [3] Burdea, G.; Coiffet, P. “Virtual Reality Technology”.angulação. É possível navegar pelo ambiente sem a John Wiley e Sons, Nova Iorque, 1994.ocorrência de congelamento (travamento) da aplicação [4] Guimarães, M. P. Um ambiente para o Desenvolvimentoou descontinuidade da cena. Os resultados podem ser de Aplicações de Realidade Virtual baseadas emreplicados em mais computadores, configurados com Aglomerados Gráficos. Escola Politécnica da Universidadediferentes angulações. de São Paulo, São Paulo, 2004. [5] Jensen, C.; Pair, J; Flores, J.; Hodges, Larry F. The NAVE: Design and Implementation of Non-Expensive Immersive Virtual Environment. GVU Technical Report; Georgia Institute of Techonology, 2005. [6] Kumar, S.; Chhugani, J.; Kim, C.; Kim, D.; Kim, Y.; Nguyen, A.; Dubey, P.; Bienia, C. “Second Life and the New Generation of Virtual Worlds”, em IEEE Computer, Volume 41, Number 8. 2008. [7] Machado, L. S.; Costa, T. K. L.; Moraes, R. M. “A 3D Figura 3 – Execução do browser Xj3D em multiprojeção. Intelligent Campus to Support Distance Learning”, em Proc. of Information Technology based Higher Education and Training (ITHET2006), Sydney, 2006.7. Trabalhos Futuros [8] Marques, M.A.; Costa, T.K.L.; Machado, L.S.; Nettos, Como proposta para futuros trabalhos fica a C.X.A. Representação do Sítio Arqueológico da Pedra deimplementação do compartilhamento de eventos no Ingá com Realidade Virtual. In: Anais do Workshop deXj3D. Alguns trabalhos [9] já a propõem por Realidade Virtual e Aumentada. Santos, Brasil, 2009.intermédio da API (Application Programming [9] Sales, B.R.A.; Machado, L.S. Um Ambiente VirtualInterface) SAI (Scene Access Interface), mas o recurso Colaborativo e Telecomandável Baseado em X3D. In: Proc.não é implementado internamente ao browser Xj3D, X Symposium on Virtual and Augmented Reality (SVR2008).tampouco é esta a maneira ideal para sistemas de João Pessoa, Brasil, p. 327-330, 2008.multiprojeção, uma fez que barreiras imprescindíveiscomo o framelock não são utilizadas. [10] Soares, L. P. Um ambiente de multiprojeção totalmente Outro fator importante quanto a sistemas de imersivo baseado em aglomerados de computadores. Escolamultiprojeção é a visualização estereoscópica no Politécnica da Universidade de São Paulo. São Paulo, 2005.intuito de prover maior imersão ao usuário. Propõe-seainda a implementação de visualização estereoscópica [11] Web3D, “X3D Public Specifications”. Disponível em: www.web3d.org/x3d/specifications. Acesso em: março/2011.passiva através da polarização da luz, e uma interfacegráfica para facilitar a utilização de estereoscopia, [12] X3DOM 1.0, “Instant 3D the HTML way!”. Online:como por exemplo o ajuste de paralaxe. http://www.x3dom.org/. Acesso em: março/2011.