|
Acadêmico(a): Leonardo Willrich |
Título: Protótipo de um Ambiente Virtual Distribuído Multiusuário |
|
Introdução: |
Com o passar dos tempos a interface entre o usuário e os computadores passou a ser mais amigável de tal maneira que qualquer pessoa, independente do seu grau de instrução, pudesse conseguir atingir determinados objetivos com o uso de computadores. Isto se deve pelo fato da evolução que se teve com estudos na área de interfaces e também ao avanço e ao amadurecimento na construção de programas. E, com isso, objetivou-se tornar a interação do usuário mais natural possível com o computador. A maioria das interfaces construída apresentava as informações aos usuários somente através de imagens em duas dimensões (2D) e geralmente através de um monitor. Como a interação do usuário com o mundo real é realizado em três dimensões (3D), começou-se a desenvolver aplicações que utilizassem imagens em 3D também. O objetivo é tornar a interface do usuário mais próxima da realidade. E com isso, começam a surgir aplicações que simulam a realidade do mundo real para se criar uma interface com os usuários. Essas aplicações passam a ser chamadas de ambientes virtuais. Segundo Pinho (1999), um ambiente virtual é um cenário em três dimensões gerado computacionalmente através de técnicas de computação gráfica, procurando sempre representar a parte visual de um ambiente real ou imaginário. Geralmente, esses ambientes são caracterizados pela sua geração dinâmica e pela capacidade dos usuários interagirem com ele. As primeiras interfaces que surgiram para os ambientes virtuais eram do tipo Window, Icon, Menu, Pointer (WIMP) (Pinho, 1999) ou Window on World System (WoW) (Isdale, 1993) e eram projetas em monitores comuns e utilizavam o teclado e o mouse como dispositivos de entrada. Com a evolução dos tempos começou-se o desenvolvimento de equipamentos mais específicos para estes ambientes virtuais, como capacetes, luvas e salas de projeção. Dessa forma a interação com os ambientes virtuais gerados por computador deixa de ser não imersiva, e passa a imergir o usuário dentro dos ambientes virtuais, procurando fazer com que o mesmo passe a se sentir dentro do próprio ambiente gerado. Dessas duas formas de interação com os mundos virtuais surge a primeira classificação de ambientes virtuais: os imersivos e não imersivos. Uma outra característica também é atribuída a estes ambientes virtuais, que é a capacidade desses de suportarem um ou mais usuários e também permitirem que esses usuários compartilhem o mesmo ambiente virtual estando em computadores separados. Com essa característica o ambiente virtual passa a ter uma série de fatores que devem ser considerados e levados em conta na hora de seu desenvolvimento. Segundo Macedonia (1997), os fatores são os seguintes: a) limitação da largura de banda da rede sobre a qual o ambiente virtual está interconectado; b) melhor forma de distribuir o mundo virtual (se de forma centralizada ou distribuída); como contornar os problemas de latência; c) confiabilidade do ambiente virtual que trata as questões de sincronia e consistência entre os vários usuários participantes do mesmo. Tomando-se em conta estes fatores, procurou-se desenvolver um protótipo de ambiente virtual multiusuário e distribuído, com uma interface não imersiva, permitindo implementar na prática as técnicas pesquisadas que tratam desses quatro fatores descritos. Para a realização desse trabalho também foi necessário o estudo de duas API’s: a API da biblioteca gráfica OpenGL (Silicon, 2001) e a API do DIS-Java-VRML (Web3D, 2001). A primeira foi utilizada para a construção do ambiente virtual e a segunda para a implementação dos mecanismos de controle da conexão entre os usuários do ambiente virtual. Além do estudo das duas API´s também foi necessário o estudo de objetos distribuídos, pois as duas API´s serão implementadas em linguagens diferentes e existe a necessidade de troca de mensagens entre elas. Segundo Geyer (2000), o padrão Common Object Request Broker Architecture (CORBA) do grupo Object Management Group (OMG) propõe uma arquitetura de software para suportar objetos distribuídos e garantir a interoperabilidade entre diferentes plataformas de hardware e sistemas operacionais. Esta capacidade é obtida através do uso de uma interface comum e um mecanismo de passagem de informações implementado em diferentes linguagens de programação, entre elas o Borland Delphi e o Java. Dessa forma, este trabalho permite que se tenha uma visão geral de algumas características importantes que precisam ser observadas na construção de ambientes virtuais distribuídos. Também verifica a viabilidade da utilização da biblioteca gráfica OpenGL, da API DIS-Java-VRML e do padrão CORBA para a implementação do protótipo. Com isso, pôde-se estudar e aplicar de forma prática algumas técnicas já desenvolvidas para construção de ambientes virtuais multiusuário distribuídos e a utilidade dessas duas API’s mencionadas no processo de construção do ambiente virtual e do controle das conexões entre os usuários. |
|
|