Highly immersive Virtual Reality applications are often complex and demand a lot of computational resources. To meet these demands, it is common to distribute the application execution over multiple computers connected through a data network. Although there are several tools for developing distributed applications, only a few are designed for VR applications. Thus, this paper presents a software tool to aid the development of distributed VR applications. This tool provides flexible features to data exchange and synchronization among processes using simple elements similar to those found in traditional programming languages. This tool uses the publisher/subscriber concept to reduce the coupling among processes and optimize the use of the network. Two applications have been developed using the proposed tool, proving its effectiveness.Resumo-Aplicações de Realidade Virtual de alta imersão geralmente são complexas e demandam muitos recursos computacionais. Para atender estas demandas,é comum distribuir a execução da aplicação em diversos computadores interconectados através de uma rede de dados. Apesar de existirem diversas ferramentas para desenvolvimento de aplicaçães distribuídas, poucas são dedicadas para aplicações de RV. Assim, este trabalho apresenta uma ferramenta de software para facilitar o desenvolvimento de aplicações distribuídas de realidade virtual. Esta ferramenta fornece um meio flexível para troca de dados e sincronização entre processos utilizando elementos simples e análogos aos encontrados nas linguagens de programação tradicionais. Esta ferramentaé baseada no conceito publicador/assinante, reduzindo o acoplamento entre processos e otimizando a utilização do meio físico de comunicação. Duas aplicações foram desenvolvidas utilizando a ferramenta proposta, comprovando sua eficiência.
I. INTRODUÇÃOA Realidade Virtual (RV)é umaárea de pesquisa e desenvolvimento multidisciplinar cujo objetivoé criar ambientes não reais através de simulações computacionais e periféricos de interação. Atualmente as tecnologias de RV são empregadas em diversasáreas como treinamento, entretenimento, medicina, engenharia, ensino e artes.A complexidade destas aplicações varia desde programas stand-alone até ambientes multi-usuários compostos por software e hardware de interação. Para as aplicações mais complexasé comum a utilização de um ambiente computacional distribuído, ou seja, um aglomerado de computadores interconectados através de uma rede de dados, no qual cada unidade computacional processa uma parcela específica da aplicação de forma coordenada com as demais unidades [1] [2]. A distribuição do processamento eleva a complexidade da aplicação e geralmenté e um desafio estabelecer a melhor divisão e a melhor arquitetura de troca de dados.A distribuição de uma aplicação de realidade virtual pode ocorrer em diversos níveis, de acordo com a natureza da aplicação. Aplicações multi-usuários, como jogos por exemplo, utilizam a distribuição em um nível mais alto para compartilhar umúnico mundo virtual para diversos usuários...