Uma Introdução à Realidade Virtual

Prof. Msc. Márcio Serolli Pinho

Grupo de Realidade Virtual

Instituto de Informática

PUCRS

Prof. Dr. Cláudio Kirner

Grupo de Pesquisa em Realidade Virtual

Departamento de Computação

UFSCar

SUMÁRIO

1. Introdução

2. Visão Geral de Realidade Virtual

3. Geração de Ambientes Virtuais por Computador

4. Plataformas para Aplicação de Realidade Virtual

5. Aplicações de Realidade Virtual

6. Dispositivos para Realidade Virtual

7. Links com Informações sobre Realidade Virtual

Referências Bibliográficas

1. Introdução

1.1 Uma Nova Interface

A cada hora, a cada momento, notamos o extraordinário desenvolvimento da ciência e da tecnologia. Um dos recentes adventos deste desenvolvimento, que vêm se firmando, no exterior, como uma nova área da Ciência da Computação é o que chamamos Realidade Virtual[6, 21, 32, 55, 58].

A Realidade Virtual(RV) vem trazer ao uso do computador um novo paradigma de interface com o usuário. Neste paradigma, o usuário não estará mais em frente ao monitor, mas sim, sentir-se-á dentro da interface. Com dispositivos especiais, a Realidade Virtual busca captar os movimentos do corpo do usuário(em geral braços, pernas, cabeça e olhos) e, a partir destes dados, realizar a interação homem-máquina.

Realidade Virtual pode ser definida de uma maneira simplificada como sendo a forma mais avançada de interface do usuário de computador até agora disponível [46]. Com aplicação na maioria das áreas do conhecimento, senão em todas, e com um grande investimento das indústrias na produção de hardware, software e dispositivos de E/S especiais, a realidade virtual vem experimentando um desenvolvimento acelerado nosúltimos anos e indicando perspectivas bastante promissoras para os diversos segmentos vinculados com a área.

Uma definição um pouco mais refinada de realidade virtual é a seguinte : "realidade virtual é uma forma das pessoas visualizarem, manipularem e interagirem com computadores e dados extremamente complexos" [6]. Agrupando algumas outras definições de realidade virtual [21, 57, 60], pode-se dizer que realidade virtual é uma técnica avançada de interface, onde o usuário pode realizar imersão, navegação e interação em um ambiente sintético tridimensional gerado por computador, utilizando canais multi-sensoriais.

A interface com realidade virtual envolve um controle tridimensional altamente interativo de processos computacionais. O usuário entra no espaço virtual das aplicações e visualiza, manipula e explora os dados da aplicação em tempo real, usando seus sentidos, particularmente os movimentos naturais tridimensionais do corpo. A grande vantagem desse tipo de interface é que o conhecimento intuitivo do usuário a respeito do mundo físico pode ser transferido para manipular o mundo virtual. Para suportar esse tipo de interação, o usuário utiliza dispositivos não convencionais como capacete de visualização e controle, luva, e outros. Estes dispositivos dão ao usuário a impressão de que a aplicação está funcionando no ambiente tridimensional real, permitindo a exploração do ambiente e a manipulação natural dos objetos com o uso das mãos, por exemplo, para apontar, pegar, e realizar outras ações.

Em outras palavras, a Realidade Virtual é uma área que busca criar uma nova forma de interação com o computador. Trata-se de uma nova filosofia de interface com o usuário. Nesta nova filosofia, o usuário é colocado "dentro da interface" [HED 95].

Esta interface atua de duas formas:

Considerando a análise dos movimentos e das ações do usuário, uma interface baseada em Realidade Virtual é semelhante à uma interface tradicional no aspecto de que ambas lêem dados que o usuário produz. Entretanto, numa interface de Realidade Virtual os periféricos usados para captar as informações procuram libertar o processo de interação do plano bidimensional.

Exemplificando, suponhamos uma aplicação onde o usuário deva mover um objeto de um local para outro. Em uma interface tradicional(com mouse) o usuário deverá pegar o objeto, clicando sobre ele, e, movendo o mouse sobre a mesa, poderá colocá-lo em sua nova posição, no plano XY. Para uma movimentação que altere a posição do objeto relativamente ao eixo Z, uma nova forma de entrada de dados deve ser acrescentada.

Por outro lado, em uma interface de Realidade Virtual, na qual o usuário vista uma luva eletrônica que possua sensores de posição e sensores de flexão no dedos, ele poderá pegar o objeto, curvando seus dedos e, movendo a mão no espaço, reposicioná-lo onde desejar.

No aspecto de geração de sensações no usuário, é que reside o verdadeiro diferencial das interfaces de Realidade Virtual em relação às interfaces comuns. Atualmente estão se desenvolvendo pesquisas buscando atuar principalmente sobre a visão, a audição e o tato.

Quanto à visão, os usuários são vestidos com HMDs (Head Mounted Display ou visores presos à cabeça) ou capacetes com visores. Estes visores, em geral, um para cada olho, criam para o usuário a sensação de que ele está dentro de um ambiente virtual. Isto é conseguido pela combinação de duas técnicas:

Quanto à audição, estão sendo estudadas formas de tornar mais real a emissão dos sons. Por exemplo, se uma pessoa ouve o barulho da passagem de um carro por suas costas, este som será diferente quando este mesmo carro passar à sua frente.

No que se refere a tato, algumas pesquisa estão iniciando na área. O MIT(Massachusetts Institute of Technology) construiu um equipamento, batizado de Phantom[9, 91], que preso aos dedos do usuário, limita a movimentação dos mesmos de forma a dar a sensação de que este está pegando algo sólido, mais, ou menos consistente. Este algo sólido, trata-se de um objeto virtual. Algumas pesquisas já iniciaram também no que se refere à produção de sensações de frio, calor e pressão.

Um sistema de realidade virtual envolve estudos e recursos ligados com percepção, hardware, software, interface do usuário, fatores humanos, e aplicações [16]. Para a elaboração de sistemas de realidade virtual é necessário ter algum domínio sobre: dispositivos não convencionais de E/S, computadores de alto desempenho e boa capacidade gráfica, sistemas paralelos e distribuídos, modelagem geométrica tridimensional, simulação em tempo real, navegação, detecção de colisão, avaliação, impacto social, projeto de interfaces, e aplicações simples e distribuídas em diversas áreas.

1.2. Estrutura do Texto

Este trabalho apresenta a teoria básica sobre realidade virtual, incluindo sua conceituação, história, modelos, etc., mostra as questões práticas envolvidas com hardware, software, aplicações, e dispositivos não convencionais de E/S, analisa algumas plataformas computacionais para realidade virtual, aborda realidade virtual distribuída e finalmente fornece uma bibliografia e um conjunto de endereços na internet para facilitar o aprofundamento do assunto por parte do interessados.

Este documento está em constante atualização, assim, se o leitor encontrar inconsitencias, erros ou desejar contribuir com alguma informação, por gentileza contacte os autores.

2. Visão Geral de Realidade Virtual

2.1. Caracterização

Como foi visto na introdução, há várias definições aceitas para realidade virtual. Isto é devido, em parte, à natureza interdisciplinar da área, e também a sua evolução. De uma maneira ou de outra, os sistemas de realidade virtual acabaram vindo de sistemas computacionais de mesa, simuladores, sistemas de teleoperação, etc.

A realidade virtual também pode ser considerada como a junção de três idéias básicas : imersão, interação e envolvimento [68]. Isoladamente, essas idéias não são exclusivas de realidade virtual, mas aqui elas coexistem.

A idéia de imersão está ligada com o sentimento de se estar dentro do ambiente. Normalmente, um sistema imersivo é obtido com o uso de capacete de visualização, mas existem também sistemas imersivos baseados em salas com projeções das visões nas paredes, teto, e piso [26]. Além do fator visual, os dispositivos ligados com os outros sentidos também são importantes para o sentimento de imersão, como som [12], posicionamento automático da pessoa e dos movimentos da cabeça, controles reativos, etc. A visualização tridimensional através de monitor é considerada não imersiva.

A idéia de interação está ligada com a capacidade do computador detectar as entradas do usuário e modificar instantaneamente o mundo virtual e as ações sobre ele (capacidade reativa). As pessoas gostam de ficar cativadas por uma boa simulação e de ver as cenas mudarem em resposta aos seus comandos. Esta é a característica mais marcante nos video-games.

A idéia de envolvimento, por sua vez, está ligada com o grau de motivação para o engajamento de uma pessoa com determinada atividade. O envolvimento pode ser passivo, como ler um livro ou assistir televisão, ou ativo, ao participar de um jogo com algum parceiro. A realidade virtual tem potencial para os dois tipos de envolvimento ao permitir a exploração de um ambiente virtual e ao propiciar a interação do usuário com um mundo virtual dinâmico.

2.2. Realidade Virtual Imersiva e Não Imersiva

Outra questão importante está ligada ao fato da realidade virtual poder ser imersiva ou não imersiva. Como já foi visto, do ponto de vista da visualização, a realidade virtual imersiva é baseada no uso de capacete ou de salas de projeção nas paredes, enquanto a realidade virtual não imersiva baseia-se no uso de monitores. De qualquer maneira, os dispositivos baseados nos outros sentidos acabam dando algum grau de imersão à realidade virtual com o uso de monitores, mantendo sua caracterização e importância [83].

Embora a realidade virtual com o uso de capacetes tenha evoluído e seja considerada típica, a realidade virtual com monitor apresenta ainda assim alguns pontos positivos como : utilizar plenamente todas as vantagens da evolução da indústria de computadores; evitar as limitações técnicas e problemas decorrentes do uso de capacete; e facilidade de uso. Em alguns casos, como visualização, por exemplo, a realidade virtual com monitor é aceitável, mas com a evolução da tecnologia de realidade virtual a tendência será a utilização de capacetes ou salas de projeção para a grande maioria das aplicações.

2.3. Tipos de Sistemas com Interfaces Não Convencionais

No sentido de definir os sistemas que apresentam interfaces de hardware e software muito bem elaboradas envolvendo dispositivos e abordagens não convencionais, é importante tomar-se como base o relacionamento usuário/ambiente, de acordo com a figura 2.1 [61].

Figura 2.1 - Relacionamento Usuário / Ambiente

Nesse caso, assume-se que o ambiente seja composto pelo espaço físico, funções, processos, equipamento e conceitos. Ele é responsável por responder às ações do usuário com os estímulos que vão provocar a sensação. O ambiente no contexto desse modelo compõe-se dos espaços real e artificial. Em seguida, são definidos os sistemas de telepresença, realidade virtual, realidade aumentada e realidade melhorada, que têm em comum o acesso através de interfaces não convencionais.

2.3.1. Sistema de Telepresença

Telepresença é uma situação, onde uma pessoa está objetivamente presente num ambiente real que está separado fisicamente da pessoa no espaço [17, 90]. A telepresença que é implementada por mecanismos de teleoperação, consiste de um usuário, uma interface homem-máquina, um telerobô e um ambiente remoto, conforme a figura 2.2 [30, 90].

Figura 2.2 - Sistema de Telepresença

2.3.2. Sistema de Realidade Virtual

Consiste de um usuário, uma interface homem-máquina, e um computador, conforme a figura 2.3. O usuário participa de um mundo virtual gerado no computador, usando dispositivos sensoriais de percepção e controle. Um ambiente virtual pode ser projetado para simular tanto um ambiente imaginário quanto um ambiente real.

Figura 2.3 - Sistema de Ambiente Virtual (Realidade Virtual)

Os sistemas de telepresença e de realidade virtual são semelhantes na parte em que envolvem os usuários e as interfaces muito elaboradas. Eles diferem na atuação sobre o ambiente. Enquanto a telepresença faz com que a interface atue sobre o telerobô que vai atuar sobre o mundo real, o sistema de realidade virtual faz com que a interface atue diretamente sobre o computador que vai atuar sobre um mundo virtual ou um mundo real simulado. Em telepresença e em outros casos, onde possa haver dificuldades de transferência ou tratamento em tempo real de imagens reais complexas, a substituição do mundo real por um mundo virtual equivalente pode resolver o problema, na medida em que as imagens podem ser geradas localmente. As transferências de informações podem ser reduzidas a dados de posicionamento.

2.3.3. Sistema de Realidade Aumentada

É uma combinação da visão do ambiente real com o ambiente virtual [8, 11, 17, 38]. Esse tipo de sistema é obtido mesclando-se sistemas de telepresença e realidade virtual [55], conforme a figura 2.4 [30].

Geralmente, utiliza-se um óculos ou capacete com visor semitransparente, de forma que a visão do ambiente real possa ser sobreposta com a informação do ambiente virtual. Também é possível coletar a imagem real com uma câmera de vídeo e misturá-la com a imagem virtual antes de ser apresentada. Com isso é possível enxergar-se, por exemplo, um objeto real com o seu detalhamento interno gerado por realidade virtual. O ponto crítico desse tipo de sistema é a superposição exata do mundo virtual com o mundo real.

Figura 2.4 - Sistema de Realidade Aumentada

Um sistema típico de realidade aumentada baseado em vídeo é composto de um capacete de visualização com sistema de rastreamento de posição, sobre o qual é disposta uma câmera de vídeo, conforme a figura 2.5 [11]. Nesse caso, a imagem real é obtida pela câmera de vídeo montada sobre o capacete, enquanto que a imagem virtual é gerada por um computador que considera o posicionamento do rastreador. Um misturador combina as duas imagens e mostra o resultado final ao usuário.

2.3.4. Sistema de Realidade Melhorada

É uma variação do sistema de realidade aumentada, onde um sistema de processamento de imagem gera informações adicionais para serem sobrepostas à imagem real. O resultado final pode ser tanto uma melhoria espectral quanto espacial [18], gerando transformações e anotações sobre a imagem. A geração de imagens obtidas através de ampliação do espectro visível do olho humano e a anotação de características específicas dos objetos como distância, tipo, etc., são exemplos de melhoria de uma imagem.

2.4. Configuração Genérica dos Sistemas com Interfaces Não Convencionais

Os vários tipos de sistemas com interfaces não convencionais podem ser agrupados de forma genérica em uma única configuração, conforme a figura 2.6 [30].

Figura 2.5 - Sistema de Realidade Aumentada Baseado em Vídeo

Figura 2.6 - Configuraço Genérica dos Sistemas com Interfaces não Convencionais

Nesse esquema genérico, podem enquadrar-se os sistemas de telepresença, realidade virtual, realidade aumentada e realidade melhorada. Em todos eles, o usuário é projetado dentro de um ambiente novo e interativo, através de dispositivos eletrônicos não convencionais. Tanto o desempenho, quanto a experiência do usuário no novo ambiente, dependem fortemente da interface homem-máquina e das características de interação com o ambiente real ou virtual. A particularização da configuração pode ser feita através de várias maneiras:

a) Se a primeira parte for desprezada, a segunda parte sozinha poderá transformar-se num robô autônomo, considerando-se que o computador seja utilizado para realizar seu controle;

b) Se a segunda parte for desprezada e o computador for usado para gerar um ambiente virtual, o sistema será visto como um sistema de realidade virtual;

c) Se as duas partes forem consideradas, mas o computador da primeira parte não for usado para gerar ambientes virtuais, limitando-se a repassar os sinais de sensação e controle, o sistema funcionará como um sistema de telepresença;

d) Se as duas partes forem consideradas e o computador da primeira parte for usado para gerar ambientes virtuais e serem misturados com as visões reais, o sistema funcionará como um sistema de realidade aumentada, para ambientes virtuais normais, ou um sistema de realidade melhorada, para ambientes virtuais complementados com sinais de processamento de imagens e anotações.

2.5. Modelos de Interação do Usuário Associados a Ambientes Virtuais

Num cenário composto por um ou mais usuários, um mundo real e um ambiente virtual equivalente, existem várias maneiras do usuário comunicar-se com seus parceiros, com o mundo real e com o ambiente virtual. Restringindo a interação do usuário a uma mediação tecnológica, através do uso de dispositivos não convencionais e do ambiente virtual, pode-se reduzir as possibilidades a dois grupos: um onde o usuário participa isoladamente , e outro, onde há vários usuários interagindo entre si e com o ambiente [16]. De forma genérica, a interação mediada pode ser vista na figura 2.7

Figura 2.7 - Esquema de Interação com Mediação Tecnológica

2.5.1. Interação de um Único Usuário

A interação com mediação tecnológica de um único usuário pode ocorrer de quatro maneiras: como espectador; com participação real; com participação simulada; e sem participação ou possível supervisão, conforme a figura 2.8.

Figura 2.8. - Formas de Interação Mediada de Um Único Usuário

Na maioria dos casos, o ambiente virtual representa o mundo real, a menos da participação simulada, onde o ambiente virtual pode ser imaginário ou representar o mundo real.

No caso do Espectador tem-se, por exemplo, uma situação particular de sistema de telepresença que só faz inspeção; o caso da participação real é um exemplo típico de sistema de telepresença; o caso da participação simulada é um exemplo de sistema de realidade virtual; e o último caso(sem participação) corresponde ao exemplo de um robô com possibilidade de supervisão.

2.5.2. Interação de Vários Usuários

A interação de vários usuários pode ocorrer de três maneiras para: comunicação entre usuários; compartilhar o ambiente virtual; e realizar trabalho cooperativo no mundo real através do ambiente virtual compartilhado, conforme a figura 2.9.

No caso de comunicação, os usuários trocam informações através do ambiente virtual; no caso de compartilhar o ambiente virtual, os usuários interagem entre si através do ambiente virtual; e no último caso, referente ao trabalho colaborativo, os usuários cooperam entre si no mundo real, através de sua representação como um ambiente virtual compartilhado. Também é possível que o trabalho colaborativo ocorra num ambiente virtual imaginário sem vinculação com o mundo real.

2.6. Uma Breve História da Realidade Virtual

A introdução do cinerama e cinemascope, em meados da década de 50 é considerada uma das primeiras experiências em obtenção de realismo artificial [60, 109].

Logo em seguida, em 1956; Morton Heilig (um cineasta) desenvolveu um simulador baseado em vídeo denominado sensorama [ 21, 60, 58], que permitia ao usuário expor-se a uma combinação de visão tridimensional, som estéreo, vibrações, sensações de vento e de aromas num passeio simulado de motocicleta por Nova York. Embora o invento não tenha tido sucesso comercial, ele foi o precursor da imersão do usuário num ambiente sintético.

Em 1961, Comeau e Bryan descreveram o primeiro sistema de circuito fechado de televisão com o visor montado num capacete, produzido pela Philco. O sistema tinha um rastreador de posição no capacete e permitia ao usuário controlar remotamente uma câmera de televisão a partir dos seus movimentos da cabeça [58].

Em 1968, Ivan Sutherland construiu, na Universidade de Harvard, o primeiro capacete de visualização com imagens geradas por computador, incorporando um sistema de rastreamento da posição da cabeça. Esse trabalho é considerado por muitos como o marco inicial da imersão em ambiente virtual e início da realidade virtual.

Em 1977 e 1982 apareceram as primeiras luvas desenvolvidas respectivamente pelo grupo levado por Dan Sandin, Richard Soyre e Thomas Defanti na Universidade de Illinois e por Thomas Zimmerman para serem acoplados a computadores, e, em 1987, a empresa VPL Research Inc, da qual Zimmenam foi um dos fundadores colocou pela primeira vez produtos de realidade virtual no mercado com a comercialização da luva "Data Glove". Em seguida, a empresa também passou a vender um capacete de visualização chamado "Eye Phones".

A partir daí, o avanço das pesquisas, o elevado interesse industrial, o crescimento das aplicações e um número crescente de usuários vêm provocando um crescimento enorme na demanda de componentes e produtos de realidade virtual e uma redução rápida nos preços, movimentando um mercado multi-milionário de crescimento extraordinário.

Figura 2.9 - Interação de Vários Usuários

2.7. Comparação entre Realidade Virtual e Multimídia

Quando se fala em Realidade Virtual, uma questão que surge são suas semelhanças ou diferenças relação à Multimídia. Fazendo um quadro comparativo das duas tecnologias, esperamos auxiliar nesta diferenciação. Na tabela a seguir, são apresentados alguns elementos comuns às duas áreas e a forma de abordagem em cada caso.

Figura 2.10 - Comparação entre Realidade Virtual e Multimídia

3. Geração de Ambientes Virtuais por Computador

3.1. Estrutura de um Sistema de Realidade Virtual

A estrutura de um sistema de realidade virtual pode ser mostrada sob diferentes pontos de vista e graus de detalhamento. O diagrama de blocos da figura 3.1 fornece uma visão geral de um sistema de realidade virtual [21].

Figura 3.1 - Diagrama de Blocos de Um Sistema de RV

A interação do usuário com o processador de RV é intermediada pelos dispositivos de E/S. O processador de RV lê primeiramente a entrada do usuário e acessa o banco de dados para calcular as instâncias do mundo que correspondem aos quadros a serem mostrados em seqüência. Como não é possível prever as ações do usuário, os quadros devem ser criados e distribuídos em tempo real. Do ponto de vista de interface, um sistema de realidade virtual imersivo pode ser visto na figura 3.2 [58].

Figura 3.2 - Estrutura de um Sistema de RV Imersivo com Ênfase nas Interfaces

O gerador de ambiente virtual é um sistema de computação de alto desempenho que contém um banco de dados relativo ao mundo virtual. Este banco de dados contém a descrição dos objetos do ambiente virtual junto com a descrição dos movimentos dos objetos, seus comportamentos, efeitos de colisões, etc. Devido a necessidade de acesso e operação em tempo real, é necessário dispor-se da quantidade de memória suficiente, bem usar técnicas de compressão de informação que não prejudiquem as restrições de tempo. As imagens devem ser geradas com um atraso aceitável para não provocar desconforto ao usuário. Da mesma maneira, todas as características sensoriais relacionadas com interfaces deverão ser tratadas em tempo real para que o usuário tenha a impressão de estar imersoe interagindo com o mundo virtual.

De um ponto de vista mais detalhado, a estrutura de um sistema de realidade virtual pode ser vista de acordo com a figura 3.3 [30]. Nessa estrutura, o usuário é conectado ao computador através dos dispositivos multi-sensoriais. Cada modalidade sensorial requer uma simulação preparada especialmente para seu caso específico. Uma atuação unificada é necessária para coordenar as várias modalidades sensoriais e sincronizá-las. Finalmente, as informações devem ser difundidas pela rede de forma a manter a consistência do ambiente simulado distribuído.

Figura 3.3 - Estrutura Detalhada de Um Sistema de RV

3.2. Demanda Computacional da Realidade Virtual

Grande parte da ênfase do projeto de sistemas de realidade virtual tem sido estabelecida pelas restrições de geração da cena visual. Entretanto, muitos dos assuntos envolvidos na modelagem e geração das características de audição e tato/força do sistema são semelhantes ao domínio visual. Os requisitos para interação, navegação e comunicação em um mundo virtual são comuns a várias modalidades sensoriais.

No caso de geração da cena visual, o sistema requer taxas altas de quadros por segundo e respostas rápidas, em função de sua natureza interativa. O conceito de quadros é proveniente da animação baseada em uma sucessão rápida de uma seqüência de fotografias, como acontece em um filme de cinema. A taxa ideal da troca de fotos é de 20 quadros por segundo ou mais, para manter a ilusão de movimento. As taxas de quadros por segundo podem ser examinadas do ponto de vista gráfico, computacional e de acesso aos dados, de forma independente. A taxa mais crítica é a do ponto de vista gráfico, pois está ligada com a sensação de presença ou imersão, sendo o mínimo aceitável da ordem de 8 a 10 quadros por segundo. Nesse caso, a taxa mínima de quadros do ponto de vista computacional e de acesso a dados deverá também ser de 8 a 10 quadros por segundo. para sustentar a taxa de quadros do ponto de vista gráfico.

Para aplicações com controle interativo, são necessários tempos de resposta bem rápidos. Os atrasos também podem ser classificados do ponto de vista gráfico, computacional de acesso a dados e não devem ser inferiores a 0,1 segundo. Quanto maior a freqüência de movimento de algum objeto da cena, maior deverá se manter a taxa de quadros e menor o atraso, para manter-se a sensação confortável de animação. A taxa de quadros do ponto de vista gráfico depende de: complexidade gráfica; iluminação; sombreamento; e textura. Do ponto de vista de acesso aos dados e computacional, a taxa de quadros está relacionada com a complexidade do ambiente e com a quantidade de objetos dinâmicos. Isto vai se refletir no tempo de acesso e no tempo de simulação, definindo os atrasos.

A maneira mais comum de criar-se imagens gráficas tridimensionais por computador baseia-se no uso dos polígonos. Foi estimado que uma cena realista detalhada requer aproximadamente 80 milhões de polígonos[30]. Para mostrar este mundo virtual a 10 quadros por segundo, por exemplo, seria necessário uma taxa de 800 M de polígonos por segundo, o que está longe da capacidade tecnológica atual. Para se ter uma idéia, as taxas recentes de máquinas Silicon Graphics, com aceleradores gráficos avançados estão em torno de 2 M triângulos por segundo e 600k polígonos por segundo. Um microcomputador PC com acelerador gráfico apresenta um desempenho de dezenas de K polígonos por segundo, enquanto que as estações de trabalho estão na faixa de centenas de K polígonos por segundo.

Considerando-se um mundo virtual pouco complexo com cerca de 6000 polígonos e um computador com desempenho de 300.000 polígonos por segundo, então o sistema deverá funcionar com uma taxa de 50 quadros por segundo para mostrar o mundo virtual. Se o mundo virtual for um pouco mais detalhado, com 15.000 polígonos, a taxa cairá para 20 quadros por segundo no mesmo computador. Portanto, para uma taxa mínima de quadros por segundo sempre haverá uma complexidade máxima do mundo virtual. Para realidade virtual estereográfica, haverá a necessidade de 2 cenas (uma para cada olho), o que provocará a queda no desempenho. Mesmo usando-se dois aceleradores( um para cada olho) haverá queda de desempenho devido a sobrecarga de computação e sincronização.

3.3. Modelagem de Mundos Virtuais

A modelagem de mundos virtuais é de fundamental importância num sistema de realidade virtual, definindo as características dos objetos como: forma; aparência; comportamento; restrições; e mapeamento de dispositivos de E/S. Para isto, os sistemas de desenvolvimento de realidade virtual levam em conta os diversos aspectos de modelagem, mapeamento e simulação, conforme a figura 3.4 [21].

Figura 3.4 - Sistema de Desenvolvimento de RV

3.3.1 Modelagem Geométrica

A modelagem geométrica abrange a descrição da forma dos objetos virtuais através de polígonos, triângulos ou vértices, e sua aparência, usando textura, reflexão da superfície, cores, etc.

A forma poligonal dos objetos pode ser criada, usando-se bibliotecas gráficas, como a biblioteca GL, ou usando-se modelos prontos de bancos de dados comerciais ou digitalizadores tridimensionais. Os objetos também podem ser criados por programas CAD, como AutoCAD ou 3-D Studio, ou com o uso de editores de realidade virtual.

A aparência dos objetos esta relacionada principalmente com as características de reflexão da superfície e com sua textura. A reflexão da superfície depende do modelo de iluminação de Phong e sombreamentos do tipo: facetado; por interpolação de Gourad; ou interpolação de Phong [110]. O sombreamento facetado é o mais simples e menos realista, enquanto o de Phong é o mais complexo e mais realista.

A textura dos objetos é obtida a partir do mapeamento de um padrão de textura do espaço bidimensional sobre os objetos tridimensionais. Isto se dá como se um pedaço de plástico com o padrão da textura fosse ajustado e colocado sobre o objeto, fazendo parte integrante dele [110]. A textura oferece várias vantagens para a realidade virtual, uma vez que aumenta o nível de detalhe e de realismo de cena, fornece vários melhor visão de profundidade, e permite a redução substancial do número de polígonos da cena, propiciando o aumento da taxa de quadros por segundo [21].

3.3.2. Modelagem Cinemática

A modelagem geométrica de um objeto não é suficiente para conseguir uma animação. Para isto, deve ser possível agarrar o objeto, alterar sua posição, mudar a escala, detectar colisões e produzir deformações na superfície. A utilização de coordenadas locais dos objetos e de coordenadas gerais, juntamente com matrizes de transformação, permitirão a alteração das posições e as mudanças de escala [84,87]

Para a detecção de colisão entre objetos móveis e outros objetos móveis ou estáticos há diversos métodos. Desde que as colisões devam ser detectadas em tempo real, procura-se normalmente processos eficientes para isso. Uma solução, normalmente adotada, é a abordagem hierárquica: os objetos irregulares ou não são envolvidos por sólidos simples como esferas ou paralelepípedos e faz-se uma análise de interferência ou sobreposição [43]. Se não houver nenhuma sobreposição, não haverá colisão, mas se houver, o risco existirá e outros métodos mais refinados e custosos serão aplicados. Como resultado de uma colisão poderá ocorrer deformação nos corpos envolvidos, ou simplesmente uma explosão, quando tratar-se de veículos ou aeronaves.

3.3.3. Modelagem Física

Visando a obtenção de realismo nos mundos virtuais, os objetos virtuais, incluindo a imagem do usuário precisam comportar-se como se fossem reais. No mínimo, os objetos sólidos não poderão passar um pelo outro e as coisas deverão mover-se de acordo com o esperado, quando puxadas, empurradas, agarradas, etc. Nesse sentido, os objetos virtuais também deverão ser modelados fisicamente pela especificação de suas massas, pesos, inércia, texturas (lisas ou ásperas), deformações (elásticas ou plásticas), etc. Essas características, juntas com a modelagem geométrica e com as leis de comportamento, determinam uma modelagem virtual próxima da realidade. A simulação mecânica do mundo virtual, para ser realista, deverá ser executada de maneira confiável, contínua, automática e em tempo real.

3.3.4. Comportamento do Objeto

As modelagem anteriores limitaram-se à modelagem matemática das propriedades cinemáticas e físicas dos objetos, visando uma resposta realista as ações do usuário. Também é possível modelar o comportamento de objetos independentes do usuário, como relógio, calendário, termômetro e outros agentes inteligentes independentes, acessando quando necessário alguns sensores externos.

3.3.5. Segmentação e Alteração de Detalhes

A modelagem geométrica e física de mundos virtuais com muitos objetos deverá resultar em um modelo muito complexo, difícil e caro de ser mostrado. Normalmente, esses mundos possuem vários espaços específicos, distâncias razoáveis e objetos móveis com velocidades diferentes.

O problema da complexidade pode ser contornado por segmentação do mundo, alteração do nível de detalhe dos objetos, alteração de resolução de imagens, pré-computação, etc.

A segmentação do mundo baseia-se na divisão do mundo geral em mundos menores,de forma que somente os objetos do mundo menor sejam mostrados. É o caso de uma casa com diversas salas, onde cada sala é um mundo menor. Embora o mundo geral seja muito complexo, a visão do usuário sempre será mais simples.

Uma abordagem semelhante é usada para cenas de movimentação. Objetos que estejam movendo-se rapidamente, não conseguem ser vistos claramente. Assim pode-se representar os objetos rápidos de maneira simplificada, conseguindo o mesmo efeito e economizando processamento.

Em alguns casos, une-se também tamanhos diferentes de janela, para cenas onde o usuário esteja parado (janela grande) ou em movimentação (janela pequena), alterando assim a resolução. Usa-se também a pré-computação para mapear previamente texturas complexas, mas isto pode limitar a interação não permitindo a deformação de objetos, por exemplo.

3.4. Programação

A programação de realidade virtual requer o conhecimento de sistemas em tempo real, orientação a objetos, redes, modelagem geométrica, modelagem física, multitarefas, etc. Para facilitar essa tarefa, diversas empresas e algumas universidades produziram sistemas de desenvolvimento de realidade virtual, conhecidos como "VR ToolKits". Esses sistemas são bibliotecas ampliáveis de funções orientadas a objeto, voltadas para especificações de realidade virtual, onde um objeto simulado passa a ser uma classe e herda seus atributos inerentes (default). Isto simplifica enormemente a tarefa de programar mundos complexos, uma vez que as bibliotecas, sendo ampliáveis, permitem aos projetistas escreverem módulos específicos de aplicações e ainda usar o mesmo núcleo de simulação. Além disso, esses sistema costumam ser independentes de hardware, suportam alguma forma de conexão em rede, importam mundos virtuais de outros softwares como o AutoCAD, possuem drivers de comunicação com dispositivos convencionais e não convencionais de E/S, suportam alguma forma de iluminação, sombreamento, textura, etc.

Uma ferramenta, muito útil para a construção e simulação dos mundos virtuais, é o editor de realidade virtual, que permite ao projetista verificar imediatamente os resultados da criação ou edição de objetos simulados. Uma organização desse tipo de ferramenta consta na figura 3.5 [21].

Durante a simulação, as entradas do usuário, através dos dispositivos de E/S são submetidos como eventos ao programa simulador, devendo ser lidos em tempo real para minimizar a latência. Esses dados são usados para atualizar a posição, forma, velocidade, etc, dos objetos virtuais, e alguns dados de sensores são usados para os objetos independentes. Tanto a cena, quanto as outras saídas (som, tato, força, etc.) são fornecidas durante o ciclo de simulação em tempo real. A figura 3.6 mostra o ciclo de simulação do sistema de desenvolvimento da SENSE 8, denominado World ToolKit [92].

Os sistemas de desenvolvimento de realidade virtual, portanto, ajudam na integração do sistema e no desenvolvimento das aplicações, podendo reduzir substancialmente o tempo de programação.

Figura 3.5 - Uma Estrutura de Sistema de Desenvolvimento de RV

Figura 3.6 - Ciclo de Simulação do World Tool

3.5. Avaliação de Sistema de Realidade Virtual

A principal característica de um sistema de realidade virtual é o envolvimento humano através da imersão sensorial. Com parâmetros humanos envolvidos no sistema, a sua avaliação torna-se subjetiva, mas essencial em função das questões tecnológicas, da qualidade da aplicação, e do impacto psicológico e social.

A avaliação do sistema de realidade virtual deve ajudar a garantir que :

a) As capacidades e limitações dos seres humanos, bem como as necessidades específicas de determinadas tarefas, estarão sendo consideradas no projeto do sistema;

b) O hardware e o software estarão fornecendo o ambiente virtual com bom índice relacionado com custo e benefício;

c) A aplicação representará uma melhoria significativa na maneira de fazer coisas conhecidas ou permitirá fazer coisas novas que não tenham sido feitas até então.

Embora muitas ferramentas de avaliação possam ser adaptadas para uso em sistemas de realidade virtual, outras ferramentas precisam ser utilizadas, para avaliar as propriedades específicas dessa tecnologia. Dentro desse contexto, a avaliação do sistema de realidade virtual deverá considerar : (1) a atuação dos dispositivos e os fatores ergonômicos gerais; (2) os aspectos gráficos e sua influência na visão; (3) a influência (5) a discriminação das cores visuais; (6) os aspectos visuais; (7) as questões auditivas; (8) as questões de tato e força; (9) o comportamento, o desempenho e as consequências da simulação; e (10) outras características específicas.

3.6. Requisitos de um Sistema de Realidade Virtual

Um sistema de realidade virtual de grande porte é caro e complexo, em função de todos os recursos envolvidos. Para que o projeto do sistema e a elaboração das aplicações sejam bem sucedidos, é necessário que sejam satisfeitos ou perseguidos um conjunto de requisitos.

3.6.1. Requisitos da Interface do Usuário.

De acordo com Cris Shaw [93], existem cinco requisitos e propriedades que um sistema de realidade virtual deve satisfazer para ser utilizável e utilizado com satisfação, ou seja:

a) Um sistema de RV deve gerar imagens estereoscópicas animadas suaves para capacetes de visualização (HMD), visando manter a característica de imersão. Isto significa que a taxa de quadros por segundo deve ser igual ou maior que 10;

b) Um sistema de RV deve reagir rapidamente às ações do usuário. A resposta do sistema deve apresentar atrasos de imagens iguais ou menores que 100ms;

c) Um sistema de RV deve fornecer suporte para distribuir uma aplicação em diversos processadores. Isto visa aplicações distribuídas e complexas, onde a distribuição permite múltiplos usuários e a computação cooperativa.

d) Num sistema distribuído de RV, é necessário um mecanismo eficiente de comunicação de dados. A utilização de dados compartilhados ou remotos deve ser viabilizada com uma comunicação eficiente para assegurar a característica de tempo real do sistema.

e) É necessário algum mecanismo de avaliação de desempenho do sistema de RV. Um sistema do desenvolvimento de RV deve ter mecanismos de monitoração do tempo real e do desempenho geral da aplicação para garantir o sucesso do conjunto. Dentre estes requisitos, os mais importantes para uma interface de realidade virtual são aqueles relacionados com a taxa de quadros por segundo e com o atraso da resposta do sistema, garantindo a imersão no ambiente.

3.6.2. Requisitos de Engenharia de Software

Do ponto de vista da engenharia de software pode-se citar os quatro requisitos [93] a seguir:

a) Portabilidade das aplicações. Normalmente as aplicações de realidade virtual são fortemente ligadas com o ambiente de desenvolvimento. As aplicações deverão ter facilidades para execução em diversas instalações, exigindo no máximo uma recompilação do código;

b) Suporte para uma larga faixa de dispositivos de E/S. Como a tecnologia de hardware de realidade virtual ainda está se expandindo, o sistema deverá ter capacidade de acomodar novos dispositivos;

c) Independência das aplicações com relação à localização física do usuário e de seus dispositivos de E/S. O sistema deverá ajustar-se a diferentes configurações de localização física do usuário (geometria da sala e situação dos rastreadores) e de seus dispositivos de E/S;

d) Flexibilidade de ambiente de desenvolvimento de aplicações de realidade virtual. Muitas vezes a aplicação é desenvolvida num ambiente e executada em outro. O sistema deve ter a flexibilidade para permitir a utilização de ambientes de desenvolvimento diferentes, bem como a execução de testes com outros dispositivos, com o mínimo de alteração do código.

Desta maneira, as características principais de um sistema de realidade virtual estão na portabilidade e na flexibilidade das aplicações.

3.6.3. Requisitos para a Definição de um Sistema de Realidade Virtual

A montagem de um sistema de realidade virtual requer um cuidadoso planejamento, em função da variedade de componentes e preços e da qualidade desejada para o conjunto. Para isto, ela deve satisfazer uma série de requisitos e características numeradas a seguir [42]:

Definição da aplicação;

Caracterização da imersão;

Avaliação dos dispositivos de visualização;

Estabelecimento das capacidades de rastreamento;

Avaliação de outros dispositivos de E/S;

Avaliação do conjunto de recursos e capacidades;

Seleção do sistema de desenvolvimento de realidade virtual:

Criação e edição da geometria;

Criação e edição de texturas;

Requisitos de programação;

Caracterização da visão estereoscópica;

Modelagem do comportamento físico;

Suporte a periféricos;

Requisitos do sistema; Portabilidade;

Suporte de rede;

Suporte de distribuição.

Seleção do hardware:

Quantidade e características das portas e slots;

Características do acelerador gráfico;

Conversores de sinais de vídeo;

Capacete de visualização (HMD);

Monitor externo;

Óculos estereoscópico;

Rastreadores/ posicionadores;

Navegadores 3D;

Luvas e dispositivos de força;

Outros dispositivos especiais.

O estudo e a definição integrada dos vários requisitos e características de um sistema de realidade virtual são elementos fundamentais para a otimização da relação entre o custo e benefício do sistema, contribuindo assim para a obtenção do sucesso na montagem de uma plataforma para desenvolvimento de aplicações de realidade virtual.

4. Plataformas para Aplicação de Realidade Virtual

Os avanços das pesquisas em realidade virtual e a oferta de produtos nessa área, envolvendo hardware, software, e dispositivos não convencionais, têm viabilizado a existência de diversos tipos de plataformas para aplicações de realidade virtual. Essas plataformas variam desde sistema baseados em microcomputadores, passando por estações de trabalho e máquinas paralelas, até sistemas distribuídos.

Os requisitos de sistemas de realidade virtual, enumerados no capítulo 3, devem ser satisfeitos nessa plataforma, cuja busca é sempre pela melhor qualidade possível. Isto depende não só do valor do investimento a ser feito, mas também de uma boa escolha do conjunto.

4.1. Plataformas Baseadas em Microcomputadores

Embora inicialmente os equipamentos de realidade virtual fossem muito caros e utilizados em poucos laboratórios de pesquisa, a popularidade dos microcomputadores e a curiosidade de muitos interessados na área fizeram com que as plataformas baseadas em microcomputadores se tornassem realidade.

Figura 4.1 - Configuração Típica de um Sistema de RV Baseado em PC

A adaptação de dispositivos [56] e o desenvolvimento de software adequado às limitações dos microcomputadores propiciaram o surgimento de aplicações para essas plataformas. A indústria, por sua vez, também investiu nesse segmento, de forma que atualmente pode-se montar uma boa plataforma com menos de US$5,000.00. O crescimento acelerado do mercado de realidade virtual vem assegurando cada vez mais o aumento da qualidade da plataforma e das aplicações nessa área.

A configuração típica de um sistema de realidade virtual baseado em microcomputador PC [21,77] consta na figura 4.1.

Além do microcomputador e dos dispositivos, a plataforma deve incluir o software que pode ser um único módulo integrado (tool kit) ou vários módulos separados e compatíveis para a criação do mundo virtual, simulação, e definição da aplicação. Detalhes sobre o software serão dados mais a frente.

4.2. Plataformas Baseadas em Estações de Trabalho

A grande vantagem das estações de trabalho sobre os PCs está na superioridade de características como capacidade computacional, capacidade gráfica, espaço em disco, e velocidade de comunicação. A grande maioria das estações de trabalho são voltadas para as mais variadas aplicações, de forma que, para serem usadas em realidade virtual, devem ser compostas com interfaces e dispositivos adequados.

Há uma grande variação de produtos e preços, envolvendo hardware e software para estações [39], mas é possível montar-se uma boa plataforma com custo abaixo de US$50,000.00, considerando-se, por exemplo, um estação Silicon Graphics Indigo 2 - Impact [95], software World Tool Kit[92], e alguns dispositivos de E/S mais simples [39]. Nesse caso, uma configuração de 64 bits e 250 MHz, 128 Mbytes de memória, 4 Gbytes de disco, características gráficas para dar um desempenho da ordem de 2 M triângulos por segundo e 600 K Polígonos por segundo, e software incluindo GL e Performer. Para trabalhar com taxa de 30 frames por segundo, essa plataforma aceita no máximo cenas com 20k polígonos.

Também é possível montar-se plataformas no valor de centenas de milhares de dólares, envolvendo máquinas paralelas, dispositivos avançados e software sofisticado.[39]

As ferramentas para desenvolvimento de sistema de realidade virtual costumam ser instaladas em plataformas de diversos fabricantes. Dentre as plataformas, citadas pelos fornecedores de ferramentas, tem-se: Silicon Graphics, Sun, DEC, IBM, HP, etc., e microcomputadores com aceleradores gráficos.

4.3. Tipos de Sistemas Distribuídos de Realidade Virtual

Aplicações de realidade virtual podem ser vistas sob um aspecto bastante amplo, variando de uma única pessoa, usando um único computador, até muitos usuários, usando um sistema distribuído. Os sistema de RV multi-usuários em ambiente distribuído vêm crescendo e apresentam elevado potencial de aplicação. Esse tipo de sistema permite que os usuários geograficamente dispersos atuem em mundos virtuais compartilhados, usando a rede para melhorar o desempenho coletivo, através da troca de informações.

4.3.1. Tipos de Sistema de Realidade Virtual Multi-usuários

Um sistema de realidade virtual multi-usuário pode ser centralizado ou distribuído [45], conforme a figura 4.2.

Figura 4.2 - Modelos de Sistema de RV Multi-Usuário

No modelo centralizado, todos os usuários compartilham o mundo virtual, enquanto, no modelo distribuído, o mundo virtual pode ser replicado (para mundos pequenos) ou particionado (para mundos virtuais de grande porte), conforme a figura 4.3.

Figura 4.3 - Acesso ao Mundo Virtual Distribuído

Num sistema replicado com n usuários, quando um usuário fizer qualquer alteração no mundo virtual, isto deverá ser comunicado para todas as (n-1) versões do mundo virtual, onde estão os outros usuários, constituindo a difusão (broadcast).

Num sistema particionado com n usuários, a situação é mais complexa, uma vez que o mundo virtual é dividido em várias partes e cada máquina ficará encarregada de uma delas. Como o usuário pode navegar no mundo virtual, ele poderá penetrar em outras regiões, de forma que sua máquina ou servidor deverá receber uma réplica da região, onde ele se encontra. Assim cada máquina estará cuidando de uma região fora da sua parcela. Se existirem vários usuários em uma mesma região do mundo virtual, esse grupo de usuários receberá uma cópia dessa região. Qualquer alteração no mundo virtual, feita por um membro do grupo, será retransmitida para o restante do grupo, constituindo a retransmissão por grupo (multicast).

Para reduzir o número de conexões e de mensagens na rede são utilizadas as técnicas de difusão, retransmissão por grupo, e dead-reckoning, que serão abordadas em seguida.

4.3.2. Aspectos de um Ambiente Virtual Distribuído

Ambientes virtuais distribuídos figuram entre os sistemas de software mais complexos já construídos [102]. Esses ambientes devem satisfazer uma variedade de características como: (1) resposta rápida a novos requisitos do sistema; (2) capacidade de manutenção; (3) suportar interação em tempo real; (4) fidelidade da inserção do usuário no mundo virtual em relação a uma referência; (5) alta taxa de quadros por segundo, reusabilidade e portabilidade; (6) ajustamento a novas interfaces e dispositivos de visualização;e (7) requisitos para capacidades adicionais.

A elaboração de um sistema de realidade virtual inclui atividades envolvendo: (1) suporte de comunicação em rede; (2) criação de ambientes virtuais; (3) atuação no mundo real; (4) criação de atores gerados por computador; (5) inserção de fenômenos naturais; e (6) uso de simulação tradicional.

O suporte de comunicação em rede fornece os meios para que as unidades computacionais heterogêneas separadas fisicamente sejam unificadas para implementar um único ambiente virtual. Devido à necessidade de comunicação intensiva entre as máquinas do sistema, toda vez que há uma atualização de posição, o sistema utiliza a técnica de dead-reckoning [40, 45, 102] para minimizar a troca de mensagens e suportar atrasos de comunicação. Essa abordagem trabalha com a previsão da posição de um elemento, levando em conta o seu trajeto, velocidade e posição anterior, decorrido um certo tempo. Todas as máquinas fazem o mesmo cálculo de previsão e reposicionam o elemento. Aquele que estiver gerenciando o elemento conseguirá verificar a diferença da trajetória real com a trajetória calculada. Sempre que essa diferença atingir um valor máximo, o valor real da posição será então comunicado às outras máquinas para devida correção. Desta forma, não haverá necessidade de informar continuamente a posição de um elemento para as outras máquinas, o que diminuirá bastante a comunicação pela rede.

A criação de ambientes virtuais está bastante ligada com realismo visual e interação usando os outros sentidos. Assim, assuntos como computação gráfica 3D, modelagem gráfica, e interação homem-máquina constituem uma parte fundamental na elaboração de ambientes virtuais.

Muitas vezes, ambientes virtuais são associados a aplicações de telepresença. Nesses casos, ações do usuário e o comportamento de certas entidades acabam refletindo ações do mundo real.

Em outros casos, há a necessidade de introduzir um grande número de indivíduos no ambiente virtual, criando uma população. Uma maneira de fazer isso é criar atores gerados por computador com comportamento humano, usando técnicas de inteligência artificial e de locomoção.

Outro ponto importante para ambientes virtuais é a introdução de fenômenos físicos como chuva, neblina, nuvens, dia e noite, movimentos do sol e da lua, etc.

Além dos atores controlados por computador e dos atores controlados por usuários, é possível inserir no ambiente grupos de atores manipulados estatisticamente, controlados por simulação tradicional.

4.4. Software de Desenvolvimento de Realidade Virtual

Existem muitos tipos de software para realidade virtual para as mais variadas plataformas e faixas de preço.

Alguns softwares podem ser obtidos via internet gratuitamente como: REND386, VR386, e AVRIL, para microcomputadores, e MRToolKit para estações de trabalho. Os endereços são os seguintes:

· REND386 e AVRIL: ftp "anonymous" para

sunee.uwaterloo.ca/pub/rend386

sunee.uwaterloo.ca/pub/avril

· VR386: ftp "anonymous" para

psych.toronto.edu/vr-386

· MR: http://www.cs.ualberta.ca/~graphics/MRToolKit.html

Outros softwares são vendidos comercialmente com preços variando de dezenas de dólares a dezenas de milhares de dólares.

Existem alguns endereços na internet, onde podem ser encontradas informações concentradas sobre software e recursos para realidade virtual, contendo também os ponteiros para os fornecedores. Um desses lugares é: Ian's VR Buying Guide [39], que apresenta uma parte da tabela de software da figura 4.4.

Figura 4.4 - Tabela de Software para Desenvolvimento de Aplicações de RV