Ministério da Ciência e Tecnologia Instituto Nacional de Pesquisas
Transcrição
Ministério da Ciência e Tecnologia Instituto Nacional de Pesquisas
Ministério da Ciência e Tecnologia Instituto Nacional de Pesquisas Espaciais INPE-6389-TDI/605 A REALIDADE VIRTUAL EM APLICAÇÕES CIENTÍFICAS Liliane dos Santos Machado Dissertação de Mestrado em Computação Aplicada, orientada pelo Dr. Luiz Alberto Vieira Dias, aprovada em abril de 1997. INPE São José dos Campos Abril de 1997 1 i DEDICATÓRIA Aos meus pais, que me deram tudo que sou hoje. ii AGRADECIMENTOS Ao professor, orientador e amigo Luiz Alberto Vieira Dias pelas suas valorosas críticas e incentivos; à Ronei Marcos de Moraes pela sua ajuda, apoio e amizade; ao Instituto Nacional de Pesquisas Espaciais, aos professores do curso de Computação Aplicada e à CAPES por propiciarem-me a oportunidade de estudar e crescer intelectualmente ao longo destes três anos. iii RESUMO Com o desenvolvimento tecnológico, a Realidade Virtual tornou-se mais viável e barata, podendo ser construída e explorada através de um simples computador pessoal (PC). No entanto, o uso de um computador pessoal não significa necessariamente uma experiência de RV totalmente desprovida de interação e/ou recursos de estereoscopia para sua visualização. Este trabalho utiliza um computador pessoal e o software REND386 para a criação de um mundo virtual, onde é possível observar o satélie CBERS em atuação no espaço, permitindo verificar a viabilidade e vantagens da Realidade Virtual quando utilizada em aplicações científicas. Conceitos referentes à Realidade Virtual, Computação Gráfica e Estereoscopia, dentre outros necessários para o desenvolvimento do trabalho, são tratados aqui. iv THE VIRTUAL REALITY FOR SCIENTIFIC APPLICATIONS ABSTRACT The progress of technology turned possible, and economically viable Virtual Reality (VR) with personal computers (PC). The use of PC’s does not mean a VR without interaction and/or stereoscopy for its visualization. This work uses a PC and the REND386 software for the creation of a virtual world, where it is possible to observe the CBERS satellite in space. This permits to access the advantages of VR when used in scientific applications. Are presented concepts, concerning to Virtual Reality, Computer Graphics, and Stereoscopy, among others, that are necessary for the study performed. v SUMÁRIO Pág. LISTA DE FIGURAS......................................................................................... xv INTRODUÇÃO.................................................................................................. 1 1 CONCEITOS DE REALIDADE VIRTUAL................................................... 3 1.1 - Histórico..................................................................................................... 3 1.2 - O que é Realidade Virtual (RV)................................................................... 5 1.3 - Formas de Realidade Virtual........................................................................ 7 1.3.1 - Realidade Virtual de Simulação................................................................ 8 1.3.2 - Realidade Virtual de Projeção................................................................... 8 1.3.3 - Augmented Reality (“Realidade Realçada”).............................................. 9 1.3.4 - Telepresença............................................................................................ 9 1.3.5 - Visually Coupled Displays (“Displays Visualmente Casados”)................. 9 1.3.6 - Realidade Virtual de Mesa (Desktop VR).................................................. 10 1.4 - Dispositivos de Saída de Dados................................................................... 10 1.4.1 - Dispositivos Visuais................................................................................. 10 1.4.2 - Dispositivos Auditivos.............................................................................. 14 1.4.3 - Dispositivos Físicos.................................................................................. 14 1.5 - Dispositivos de Entrada de Dados............................................................... 16 1.5.1 - Dispositivos de Interação......................................................................... 16 1.5.2 - Dispositivos de Trajetória......................................................................... 20 2 CONCEITOS DE COMPUTAÇÃO GRÁFICA.............................................. 23 2.1 - Visualização do Espaço 3D......................................................................... 23 2.2 - Estereoscopia.............................................................................................. 26 2.2.1 - Tipos de Estereoscopia............................................................................. 27 vi 2.2.2 - Paralaxe................................................................................................... 31 2.3 - Graus de Liberdade (DOF - degrees of freedom)......................................... 32 3 COMPONDO UM MUNDO VIRTUAL......................................................... 35 3.1 - Software para Criação de Realidade Virtual................................................. 35 3.2 - REND386................................................................................................... 36 3.3 - Modelagem do Mundo Virtual no REND386.............................................. 38 3.3.1 - Objetos Virtuais....................................................................................... 39 3.4 - Animação com o REND386........................................................................ 40 3.5 - Visualização no REND386.......................................................................... 41 4 APLICAÇÕES................................................................................................ 43 4.1 - Protótipo I - O satélite CBERS no espaço................................................... 43 4.1.1 - Os arquivos de Polígono (PLG)................................................................ 44 4.1.2 - Arquivo de Figura - O satélite CBERS..................................................... 45 4.1.3 - Arquivo de Mundo (WLD) - O Espaço..................................................... 46 4.1.4 - Animação................................................................................................. 47 4.1.5 - Visualização e Interação........................................................................... 49 4.2 - Protótipo II................................................................................................. 51 4.2.1 - Obtendo o par estereoscópico.................................................................. 51 4.2.2 - Implementação......................................................................................... 54 4.2.3 - Visualização............................................................................................. 56 5 CONCLUSÕES.............................................................................................. 59 GLOSSÁRIO...................................................................................................... 61 REFERÊNCIAS BIBLIOGRÁFICAS................................................................. 63 vii APÊNDICE A - BIBLIOGRAFIA COMPLEMENTAR...................................... 65 APÊNDICE B - FIGURAS COMPLEMENTARES............................................ 67 APÊNDICE C - SISTEMA DE VISUALIZAÇÃO DOS PROTÓTIPOS............. 75 viii LISTA DE FIGURAS Pág. 1.1 - Esquema com os elementos básicos de um sistema de head-coupled display suspenso..................................................................................................... 12 1.2 - Esquema de uma luva de dados baseada em fibra ótica................................ 17 1.3 - Esquema de uma bola isométrica................................................................. 18 1.4 - Diagrama de bloco de um sistema de detecção de trajetória típico............... 20 2.1 - Linha AB e suas projeções A’B’perspectiva e paralela................................ 24 2.2 - Projeção perspectiva de um cubo a partir de dois pontos de fuga................. 25 2.3 - Construção de três projeções paralelas ortográficas..................................... 26 2.4 - Estereoscópio.............................................................................................. 28 2.5 - Esquema básico de um estereoscópio.......................................................... 28 2.6 - Figura estereoscópica formada pelo processo de cores complementares....... 29 2.7 - Polarização linear........................................................................................ 30 2.8 - Esquema mostrando as diferentes direções em que um objeto pode moverse no espaço 3D......................................................................................... 33 3.1 - Formato de um arquivo PLG....................................................................... 39 3.2 - Figura humana e associação de suas partes para modelagem num arquivo de extensão FIG......................................................................................... 40 4.1 - As partes da decomposição do satélite CBERS para modelagem................. 45 4.2 - Estrutura básica do satélite CBERS............................................................. 45 ix 4.3 - Hierarquia das partes que compõem o satélite CBERS................................ 46 4.4 - As partes do satélite com seus centros de movimentação............................. 49 4.5 - As projeções off-axis e on-axis.................................................................... 52 4.6 - A imagem monoscópica do satélite CBERS................................................. 54 4.7 - Projeção off-axis......................................................................................... 55 4.8 - A imagem projetada em cores complementares vermelho e azul (a) e imagem visualizada através de um filtro vermelho (b).............................................................................................................. 56 B.1 - O satélite CBERS....................................................................................... 67 B.2 - O satélite CBERS com os painéis solares semi-abertos................................ 68 B.3 - Ambiente gerado no REND386.................................................................. 69 B.4 - A Terra com as faces iluminada e sombria................................................... 70 B.5 - O satélite CBERS com os painéis solares se abrindo................................... 71 B.6 - A Terra com o satélite CBERS em órbita ao redor do Sol........................... 72 B.7 - A imagem estereográfica do satélite CBERS............................................... 73 1 INTRODUÇÃO Apesar de existir há mais de duas décadas, a Realidade Virtual tem emergido consideravelmente nos últimos anos. Por utilizar sofisticados equipamentos seu custo permaneceu alto por muito tempo. Entretanto, com o grande avanço tecnológico e o crescimento da indústria de computadores, a Realidade Virtual deixou de ser viável apenas para as grandes empresas e instituições de pesquisa. Sendo assim, é possível encontrar software e hardware de baixo custo para serem utilizados em Realidade Virtual. Através da Realidade Virtual é possível simular situações reais num computador, podendo levar o usuário à sensação de “estar em outro lugar”. Atualmente existe uma série de dispositivos, como luvas de dados e capacetes de visualização, próprios para serem utilizados em sistemas de Realidade Virtual. Da mesma forma, existe uma grande quantidade de softwares disponíveis, com diferentes ferramentas de programação e voltados para os mais diversos tipos de computador. Sendo assim, um simples computador do tipo PC pode ser utilizado para a construção e exploração da Realidade Virtual. Os capítulos iniciais deste trabalho tratam de conceitos como Realidade Virtual, Computação Gráfica, Estereoscopia e outros necessários para o desenvolvimento de duas aplicações que permitem verificar a viabilidade da Realidade Virtual em aplicações científicas. O apêndice B contém fotos do sistema desenvolvido. Liliane dos Santos Machado [email protected] 2 3 CAPÍTULO 1 CONCEITOS DE REALIDADE VIRTUAL Diane Ackerman afirma em seu livro A Natural History of the Senses que 70% dos receptores do sentido humano encontram-se nos olhos tornando-os os grandes “monopolistas dos sentidos” (citado por Jacobson, 1994). A maioria das informações recebidas pelo ser humano tem a forma de imagens visuais, e estas são interpretadas por um computador extremamente eficiente: o cérebro. Os computadores digitais, por sua vez, interpretam informações desde que elas sejam fornecidas através de um dispositivo de entrada de dados, como por exemplo o teclado. Atualmente, com a Realidade Virtual, computadores e mente humana entram numa esfera onde ambos podem atuar num nível cada vez mais íntimo. 1.1 Histórico A Realidade Virtual começou com a indústria de simulação, com os simuladores de vôo que a força aérea do Estados Unidos passou a construir logo após a Segunda Guerra Mundial. A indústria de entretenimento também teve um papel importante no surgimento da Realidade Virtual através de um simulador chamado Sensorama. Este simulador combinava filmes 3D, vibrações mecânicas, som estéreo, aromas e ar movimentado por ventiladores; tudo isso para que o espectador tivesse uma viagem multisensorial (Pimentel e Teixeira, 1995). Alguns anos depois, por volta de 1965, Ivan Sutherland apresentou à comunidade científica a idéia de usar computadores para desenhar projetos diretamente na tela do computador através do uso de uma caneta ótica - foi o início dos gráficos computadorizados (computação gráfica). Sutherland tornou-se o precursor da atual indústria de CAD e desenvolveu o primeiro videocapacete totalmente funcional para gráficos de computador no projeto “The Ultimate Display”. Com o uso deste 4 videocapacete era possível ao usuário ver, através da movimentação de sua cabeça, os diferentes lados de uma estrutura de arame na forma de um cubo flutuando no espaço (Pimentel e Teixeira, 1995). Na mesma época em que Sutherland criava na Universidade de Utah seu videocapacete, Myron Krueger experimentava combinar computadores e sistemas de vídeo, criando Realidade Artificial na Universidade de Wisconsin (Pimentel e Teixeira, 1995). Em 1975 Krueger criou o VIDEOPLACE, onde uma câmera de vídeo capturava a imagem dos participantes e projetava-a em 2D numa grande tela. Os participantes podiam interagir uns com os outros e com objetos projetados nessa tela, sendo que seus movimentos eram constantemente capturados e processados. Essa técnica tornou-se também conhecida como Realidade Virtual de Projeção (Jacobson, 1994). Em 1982, Thomas Furness demonstrava para a Força Aérea Americana o VCASS (Visually Coupled Airborne Systems Simulator), conhecido como “Super Cockpit” - um simulador que imitava a cabine de um avião através do uso de computadores e videocapacetes interligados representando um espaço gráfico 3D (Pimentel e Teixeira, 1995). Os videocapacetes integravam a parte de áudio e vídeo. Assim, os pilotos podiam aprender a voar e lutar em trajetórias com 6 graus de liberdade (6DOF) sem decolar verdadeiramente, ficando praticamente isolados do mundo ao seu redor. O VCASS possuía uma alta qualidade de resolução nas imagens e era bastante rápido no rendering de imagens complexas. No entanto apresentava um problema: milhões de dólares eram necessários apenas para o capacete (Pimentel e Teixeira, 1995). Através do uso de uma nova tecnologia de visores de cristal líquido (LCD) Michael McGreevy começou a trabalhar no projeto VIVED (Virtual Visual Environment Display) em 1984 na NASA, no qual as imagens seriam estereoscópicas (Pimentel e Teixeira, 1995). A resolução das imagens era limitada em comparação ao VCASS mas o custo era bastante atrativo (Rheingold, 1991). A parte de áudio e vídeo foi então montada sobre uma máscara de mergulho utilizando dois visores 5 de cristal líquido com pequenos auto-falantes acoplados. Scott Fisher juntou-se a esse projeto no ano de 1985 com o objetivo de incluir nele: luvas de dados, reconhecimento de voz, síntese de som 3D, e dispositivos de feedback (resposta) tátil (Pimentel e Teixeira, 1995). Em 1985, Thomas Zimmerman e Jaron Lanier fundam a VPL Research tendo como primeiro produto uma luva de dados, chamada DataGlove, desenvolvida por Zimmerman e capaz de captar a movimentação e inclinação dos dedos da mão (Jacobson, 1994). No mesmo ano uma dessas luvas foi comprada para o projeto VIVED. No final de 1986 a equipe da NASA já possuía um ambiente virtual que permitia aos usuários ordenar comandos pela voz, escutar fala sintetizada e som 3D, e manipular objetos virtuais diretamente através do movimento das mãos. O mais importante é que através deste trabalho foi possível verificar a possibilidade de comercialização de um conjunto de novas tecnologias, sendo que o preço de aquisição e desenvolvimento tornava-se mais acessível (Pimentel e Teixeira, 1995). A conscientização de que os empreendimentos da NASA baseavam-se em equipamentos comercializáveis deu início a inúmeros programas de pesquisa em Realidade Virtual no mundo inteiro (Pimentel e Teixeira, 1995). Organizações variando de firmas de software até grandes corporações de informática começaram a desenvolver e vender produtos e serviços ligados à Realidade Virtual (Jacobson, 1994). Em 1989 a AutoDesk apresentou o primeiro sistema de Realidade Virtual baseado num computador pessoal (PC) (Jacobson, 1994). 1.2 O que é Realidade Virtual (RV) O termo Realidade Virtual é creditado a Jaron Lanier, que nos anos 80 sentiu a necessidade de um termo para diferenciar as simulações tradicionais por computação dos mundos digitais que ele tentava criar (Machover e Tice, 1994). O termo 6 é bastante abrangente, e por isto acadêmicos, desenvolvedores de software e principalmente pesquisadores procuram definir Realidade Virtual baseados em suas próprias experiências. Pimentel e Teixeira (1995, p. 15, 17) definem Realidade Virtual como o uso da alta tecnologia para convencer o usuário de que ele está em outra realidade - um novo meio de “estar” e “tocar” em informações : “Virtual Reality is the place where humans and computers make contact”. Latta e Oberg (1994, p. 23) citam Realidade Virtual como uma avançada interface homem-máquina que simula um ambiente realístico e permite que participantes interajam com ele: “Virtual Reality involves the creation and experience of environments”. Em geral, o termo Realidade Virtual refere-se a uma experiência imersiva e interativa baseada em imagens gráficas 3D geradas em tempo-real por computador (Pimentel e Teixeira, 1995). Machover e Tice (1994, p. 15) afirmam que a qualidade dessa experiência em RV é crucial, pois deve estimular ao máximo e de forma criativa e produtiva o usuário - a “realidade” precisa reagir de forma coerente aos movimentos do participante, tornando a experiência consistente. O principal objetivo desta nova tecnologia é fazer com que o participante desfrute de uma sensação de presença no mundo virtual (Jacobson ,1994). Para propiciar esta sensação de presença o sistema de RV integra sofisticados dispositivos. Estes dispositivos podem ser luvas de dados, óculos, capacetes, etc. Atualmente podemos encontrar diferentes termos sendo utilizados por pesquisadores e estudiosos da área de Realidade Virtual, dentre eles podemos citar: espaço cibernético, mundo virtual e ambiente virtual. Espaço Cibernético (cyberspace) foi o termo utilizado por William Gibson em seu livro Neuromancer (Gibson, 1984) para designar “uma representação 7 gráfica de dados abstraídos dos bancos de dados de todos os computadores do sistema humano. Uma complexidade impensável. Linhas de luz alinhadas que abrangem o universo não-espaço da mente; nebulosas e constelações infindáveis de dados. Como luzes de cidades, retrocedendo”. Gibson descreveu uma rede de computadores universal contendo todo tipo de informações, na qual seria possível “entrar” e explorar os dados de forma multisensorial (Pimentel e Teixeira, 1995), e onde pessoas com implantes nos seus corpos poderiam transmitir informações diretamente para o computador. Na verdade, o Espaço Cibernético é uma simulação 4D do espaço-tempo controlada pela interface de RV; é um espaço imaginário (Adams, 1994). Vince (1995, p. 15) afirma que desde que os sistemas de RV criem o Espaço Cibernético é possível interagir com tudo e com todos num nível virtual. Mundo virtual é o nome dado ao mundo digital criado a partir de técnicas de computação gráfica. Uma vez que se possa interagir e explorar esse mundo através de dispositivos de entrada e dispositivos de saída, ele se transforma em um ambiente virtual ou ambiente de Realidade Virtual (Vince, 1995). Dois fatores tornam-se então bastante importantes em sistemas de RV são eles: imersão e interatividade. A imersão pelo seu poder de prender a atenção do usuário, e a interatividade no que diz respeito à comunicação usuário-sistema (Pimentel e Teixeira, 1995). 1.3 Formas de Realidade Virtual Os sistemas de RV diferem entre si levando em conta o nível de imersão e de interatividade proporcionado ao participante. Ambos são determinados de acordo com os tipos de dispositivos de entrada e saída de dados usados no sistema de RV além da velocidade e potência do computador que suporta o sistema de RV (Jacobson, 1994). É claro que tudo vai depender da finalidade do sistema. 8 De acordo com Pimentel e Teixeira (1995) estes estilos de RV poderiam ser classificados como: RV de Simulação, RV de Projeção, Augmented Reality (Realidade Realçada), Telepresença, Visually Coupled Displays (“Displays Visualmente Casados”) e RV de Mesa. 1.3.1 Realidade Virtual de Simulação A RV de Simulação representa o tipo mais antigo de sistema de RV porque originou-se com os simuladores de vôo desenvolvidos pelos militares americanos depois da Segunda Guerra Mundial (Jacobson, 1994). Um sistema de RV de Simulação basicamente imita o interior de um carro, avião ou jato, colocando o participante dentro de uma cabine com controles. Dentro dessa cabine, telas de vídeo e monitores apresentam um mundo virtual que reage aos comandos do usuário. Uma vez que o sistema de RV de Simulação não processa imagens em estéreo, as imagens aparecem de forma bastante rápida (Jacobson, 1994). Em alguns sistemas as cabines são montadas sobre plataformas móveis (Pimentel e Teixeira, 1995), além de dispor de controles com feedback tátil e auditivo (Jacobson, 1994). 1.3.2 Realidade Virtual de Projeção Também conhecida como Realidade Artificial, esta categoria de RV foi criada nos anos 70 por Myron Krueger. Na RV de Projeção o usuário está fora do mundo virtual, mas pode se comunicar com personagens ou objetos dentro dele (Jacobson, 1994). O sistema de RV de Projeção VIDEOPLACE criado por Krueger nesta época capturava a imagem do(s) usuário(s) e projetava-a numa grande tela que representava um mundo virtual. Nesse mundo virtual usuários podiam interagir uns com os outros ou com objetos. Krueger criou o termo Realidade Artificial para descrever o 9 tipo de ambiente criado pelo seu sistema, que poderia ser utilizado sem a necessidade do participante vestir ou usar dispositivos de entrada de dados (Jacobson, 1994). 10 1.3.3 Augmented Reality (“Realidade Realçada”) A Augmented Reality utiliza dispositivos visuais transparentes presos à cabeça nos quais os dados são projetados. Pelo fato desses displays serem transparentes, o usuário pode ver dados, diagramas, animações e gráficos 3D sem deixar de enxergar o mundo real, tendo informações sobrepostas ao mundo real. Estes displays transparentes são chamados heads-up-displays (HUDs) pois permitirem essa visão através das informações geradas pelo computador. O usuário pode, por exemplo, estar consertando algo e visualizando nos óculos os dados necessários a esta operação (Pimentel e Teixeira, 1995). 1.3.4 Telepresença Este tipo de RV utiliza câmeras de vídeo e microfones remotos para envolver e projetar o usuário profundamente no mundo virtual. Controle de robôs e exploração planetária são exemplos de pesquisas em desenvolvimento. No entanto, existe um grande campo de pesquisa no uso de telepresença em aplicações médicas. Em intervenções cirúrgicas, médicos já utilizam camêras de vídeo e cabos de fibra óptica para visualizar os corpos de seus pacientes. Através da RV ele podem literalmente “entrar” no paciente indo direto ao ponto de interesse e/ou vistoriar a operação feita por outros (Pimentel e Teixeira, 1995). 1.3.5 Visually Coupled Displays (“Displays Visualmente Casados”) Esta é a classe de sistemas geralmente mais associada à RV. Nos sistemas desta classe as imagens são exibidas diretamente ao usuário, sendo que este está olhando em um dispositivo que deve acompanhar os movimentos de sua cabeça. Este dispositivo geralmente permite imagens e sons em estéreo, além de conter sensores especiais ligados a ele que detectam a movimentação da cabeça do usuário, usando esta informação para realimentação da imagem exibida (Pimentel e Teixeira, 1995). 11 1.3.6 Realidade Virtual de Mesa (Desktop VR) Pimentel e Teixeira (1995) vêem a RV de Mesa como um subconjunto dos sistemas tradicionais de RV. Ao invés do uso de head-mounted displays (HMDs), são utilizados grandes monitores ou algum sistema de projeção para apresentação do mundo virtual. Alguns sistemas permitem ao usuário ver imagens 3D no monitor através do uso de óculos obturadores, polarizadores ou com filtros coloridos. 1.4 Dispositivos de Saída de Dados A maioria das aplicações de RV é baseada no isolamento dos sentidos. O hardware de RV estimula principalmente a visão e a audição, enquanto o sentido do tato está apenas começando a ser explorado (Pimentel e Teixeira, 1995). 1.4.1 Dispositivos Visuais Uma grande porção do cérebro é dedicada ao processamento e organização dos estímulos visuais. Devido a isto, os dispositivos visuais e o tipo de imagem gerada influenciam na determinação do nível de imersão de um sistema de RV (Pimentel e Teixeira, 1995). Os sistemas de RV podem ser monoscópicos ou estereoscópicos, ou seja, cada um dos olhos pode visualizar ou não imagens diferentes. No caso de um sistema monoscópico, a mesma imagem será exibida para os dois olhos: apenas uma imagem passa pelo processo de rendering e é exibida para os dois olhos. Já no sistema estereoscópico, cada olho verá uma imagem ligeiramente diferente, sendo necessário um processo de rendering separado para cada uma das imagens (Pimentel e Teixeira, 1995). Um outro fator importante quanto à parte visual da RV refere-se ao número de quadros por segundo que aparecem no vídeo, ou seja, a velocidade da simulação. Filmes projetados para o cinema apresentam aproximadamente 24 quadros 12 por segundo, enquanto os projetados para TV apresentam aproximadamente 30 quadros por segundo (Foley et al., 1990). Em RV, busca-se entre 15 e 22 quadros por segundo (Jacobson, 1994). Existem duas classes de dispositivos visuais, a primeira é composta pelos videocapacetes (HMDs) e head-coupled displays (dispositivos que utilizam-se de braços mecânicos para permanecerem diante do usuário), e a segunda é composta pelos monitores de computador e sistemas de projeção. O que diferencia estas duas classes é que na primeira existem sensores para os movimentos do usuário ligados ao dispositivo visual, enquanto que na segunda isso não ocorre e tudo vai depender dos comandos do usuário via outro dispositivo de entrada (Pimentel e Teixeira, 1995). a) Videocapacetes (HMDs) O videocapacete (HMD) é o dispositivo de saída de dados que mais isola o usuário do mundo real. Ele é constituído basicamente de duas minúsculas telas de TV e um conjunto de lentes especiais. As lentes ajudam a focalizar imagens que estão a alguns milímetros dos olhos do usuário, ajudando também a estender o campo de visão do vídeo. O videocapacete funciona também como um dispositivo de entrada de dados (ver 1.5) porque contém sensores de rastreamento que medem a posição e orientação da cabeça transmitindo esses dados para o computador. Conseqüentemente, o computador gera uma sequência de imagens por quadro, correspondentes às ações e perspectiva do usuário (Jacobson, 1994). b) Head-Coupled Display Este dispositivo basicamente constitui-se de um display montado sobre um braço mecânico com um contra-peso, fazendo com que o display possua “peso zero”. Sensores ligados ao braço mecânico mais os controles presentes próximos ao display permitem movimentos com até 6 graus de liberdade (Pimentel e Teixeira, 1995). 13 O formato do head-coupled display permite uma transição fácil entre a visualização do mundo virtual e a interação com teclados, monitores e outros dispositivos que possam estar controlando a simulação. Devido a essa e outras características, e ao fato do seu preço ser inferior ao dos HMDs, os head-coupled displays são bastante populares entre a comunidade científica (Rheingold, 1991; Pimentel e Teixeira, 1995). A Figura 1.1 mostra os componentes básicos de um headcoupled display. Fig. 1.1 - Esquema com os elementos básicos de um sistema de head-coupled display suspenso. FONTE: Pimentel e Teixeira (1995), p.166. 14 c) Monitores e Sistemas de Projeção Dispositivos visuais baseados em monitores e sistemas de projeção não costumam oferecer um alto nível de imersão. Além disso o usuário precisa estar constantemente olhando para a tela e utilizar algum dispositivo de entrada para fazer sua movimentação pelo mundo virtual (Jacobson, 1994). Mas isso não quer dizer que as imagens não podem ser vistas em estéreo. Uma técnica básica utiliza óculos obturadores para filtrar as duplas de imagens geradas pelo computador. Ou seja, o computador exibe alternadamente as imagens direita e esquerda sincronizadas com óculos que bloqueiam cada um dos olhos, permitindo que o usuário visualize uma imagem que “sai” da tela (Jacobson, 1994). Uma outra técnica existente utiliza filtros coloridos, onde as imagens de cada olho são exibidas em cores complementares, como vermelho e azul (ou vermelho e verde). As imagens são observadas por óculos que tem a mesma correspondência de cores (são os filtros), permitindo a cada olho ver a sua respectiva imagem. No entanto, estes óculos cansam os olhos após algum tempo de uso, além de só poderem ser usados com monitores coloridos (Vince, 1995). Uma vantagem dos óculos na visualização baseada em monitores ou sistemas de projeção é que eles permitem que várias pessoas participem da experiência de RV, além do custo ser inferior ao de um HMD (Jacobson, 1994). Um outro dispositivo utilizado é o chamado “capuz” de visualização: uma peça plástica anexada à superfície frontal do monitor. Neste sistema o computador exibe as imagens esquerda e direita ao mesmo tempo e lado a lado no monitor, sendo que o “capuz” separa e reflete a dupla de imagens de forma que o usuário só percebe um único objeto flutuando à sua frente (Jacobson, 1994). 15 1.4.2 Dispositivos Auditivos Os dois ouvidos captam ondas sonoras provenientes de todas as direções. O formato de concha do ouvido externo capacita-o para o trabalho de coletar ondas sonoras e direcioná-las para os vários caminhos através do canal auditivo. O cérebro então recebe e processa as características deste som para determinar ou localizar o local da fonte sonora. Os sistemas de som 3D duplicam artificialmente os ativadores naturais que auxiliam o cérebro a localizar o som, além de recriarem eletronicamente esses efeitos em tempo-real (Jacobson, 1994). Existem diversas placas de som projetadas para trabalhar com conjuntos de ferramentas que constróem mundos em RV. Algumas dessas placas permitem trabalhar com diversas fontes de som simultâneas (Schweber, 1995). Um método bastantes popular para criar e controlar sons é o MIDI (musical instrument digital interface) (Pimentel e Teixeira, 1995). 1.4.3 Dispositivos Físicos Os dispositivos físicos procuram estimular as sensações físicas, como o tato, tensão muscular e temperatura (Gradecki, 1995). Diferente dos dispositivos de saída de visão e audição, os dispositivos físicos requerem uma sofisticada interação eletromecânica com o corpo do usuário. A tecnologia existente atualmente não é capaz de estimular os sentidos físicos com o nível de realismo que atinge os sentidos visuais e auditivos: o problema está além da criação de dispositivos de feedback, pois envolve também a compreensão e simulação das forças apropriadas (Pimentel e Teixeira, 1995). a) Feedback tátil Feedback tátil é o nome dado a sistemas que transmitem sensações que atuam sobre a pele. O feedback tátil deve fornecer não apenas a sensação do toque mas também permitir ao usuário perceber se está tocando uma superfície lisa ou rugosa 16 (Gradecki, 1995). Existem atualmente duas diferentes formas de fazer essa simulação tátil: através de pressão de ar e através de vibrações (Pimentel e Teixeira, 1995). A maioria das pesquisas sobre sensações físicas envolve feedback tátil (Gradecki, 1995) e já existem projetos que esperam demonstrar a possibilidade de pessoas tocarem-se no mundo virtual e sentirem essa sensação. Apesar disso, as técnicas citadas acima ainda estão numa fase primitiva (Pimentel e Teixeira, 1995). b) Feedback de força Sistemas que permitem as sensações de pressão ou peso oferecem feedback de força. Uma maneira de construção de um sistema de feedback de força seria através de uma espécie de exoesqueleto mecânico que se encaixa no corpo do usuário, fazendo com que determinados movimentos possam permitir-lhe sentir o peso ou a resistência do material de um objeto no mundo virtual (Gradecki, 1995). Alguns sistemas transmitem feedback de força apenas para as mãos e braços. Através do uso de pistões, por exemplo, é possível controlar a quantidade de resistência do braço e/ou da mão do usuário (Gradecki, 1995). c) Feedback térmico Um tipo de feedback que também pode ser fornecido por um sistema de RV é o feedback térmico, permitindo ao usuário a sensação de temperatura do mundo virtual. Este feedback poderia ser fornecido, por exemplo, quando o usuário se aproximasse de uma fogueira ou de um iceberg no mundo virtual (Gradecki, 1995). O feedback térmico não é muito utilizado em sistemas de RV devido ao seu alto custo, mas já existem algumas pesquisas neste campo sendo desenvolvidas. Uma dessas pesquisas fez uma empresa do Texas desenvolver um sistema que aquece parte do 17 corpo do usuário através de um pequeno dispositivo que reúne um aquecedor, um sensor de temperatura e um inversor de calor (Gradecki, 1995). d) Plataformas móveis As plataformas móveis também são consideradas um dispositivo de feedback físico, pois fornecem a sensação de movimento. Normalmente são utilizadas em caros videogames, simuladores de vôo e simuladores de movimento (Pimentel e Teixeira, 1995). 1.5 Dispositivos de Entrada de Dados O participante da experiência de RV pode “entrar” no mundo virtual através dos dispositivos de saída de dados. Os dispositivos de entrada de dados, por outro lado, permitem a movimentação e interação do usuário com o mundo virtual. Sem o dispositivo de entrada de dados o usuário participa da experiência em RV apenas de forma passiva (Pimentel e Teixeira, 1995). Pimentel e Teixeira (1995) dividem estes dispositivos de entrada de dados em duas categorias: dispositivos de interação e dispositivos de trajetória. Os dispositivos de interação permitem ao usuário a movimentação e manipulação de objetos no mundo virtual. Os dispositivos de trajetória, por sua vez, monitoram partes do corpo do usuário, detectando seus movimentos e criando a sensação de presença no mundo virtual. 1.5.1 Dispositivos de Interação Existem diferentes dispositivos de interação com diferentes finalidades: é importante escolher o mais adequado para a aplicação de RV em questão. A escolha do dispositivo de interação mais adequado leva em conta não apenas a finalidade do sistema, mas também o software utilizado, pois a eficiência do sistema vai depender da 18 capacidade do software aproveitar as características do dispositivo (Pimentel e Teixeira, 1995). Existe uma série de dispositivos de interação disponíveis atualmente, variando desde luvas de dados até dispositivos chamados de sensores biológicos (Pimentel e Teixeira, 1995). a) Luvas de dados Através das luvas de dados o sistema de RV pode reconhecer os movimentos da mão do usuário que veste a luva (Sturman e Zeltzer, 1994). Para a determinação dos movimentos dos dedos são utilizados na maioria dos projetos sensores mecânicos ou de fibra ótica. Os sensores de fibra ótica são utilizados atualmente nas versões mais populares de luvas de dados. Seu uso consiste em um fio de fibra ótica com junções. Quando a junta é movida o cabo dobra-se reduzindo a passagem de luz por ele. Essas variações de luz são resumidas e transmitidas para o computador (Pimentel e Teixeira, 1995). O esquema básico deste tipo de luva pode ser visto na Figura 1.2. 19 Fig. 1.2 - Esquema de uma luva de dados baseada em fibra ótica. FONTE: Pimentel e Teixeira (1995), p.183. O uso de luvas de dados ajuda a aumentar a sensação de presença no mundo virtual (Pimentel e Teixeira, 1995). Atualmente existem diversos modelos de luvas disponíveis no mercado de RV (Sturman e Zeltzer, 1994), e estão sendo utilizados em sistemas de diferentes finalidades (Pimentel e Teixeira, 1995). b) Dispositivos com 6 graus de liberdade (6DOF) Os dispositivos de interação com 6DOF (ver Graus de Liberdade em 2.3) permitem uma movimentação bastante ampla quando utilizados em sistemas de RV (Pimentel e Teixeira, 1995). Os dispositivos chamados isométricos, ou bolas isométricas, são bastante fáceis de manipular, costumam constituir-se de uma bola sobre uma plataforma com botões (normalmente um deles é utilizado para o reset (reinicialização) do sistema) que são configurados via software (Pimentel e Teixeira, 1995; Schweber, 1995). A Figura 1.3 ilustra este tipo de dispositivo. Fig. 1.3 - Esquema de uma bola isométrica. FONTE: Pimentel e Teixeira (1995), p.188. 20 Algumas empresas procuram modificar o projeto do mouse padrão para que este possa funcionar com sensores de trajetória de 6DOF ou 3DOF. Esses mouses (o plural correto seria mice) passam então a utilizar dispositivos de rastreamento e sua eficiência fica dependente da qualidade do sistema de rastreamento dos movimentos (Pimentel e Teixeira, 1995). c) Dispositivos com 2 graus de liberdade (2DOF) Interagir com um mundo virtual nem sempre requer o uso de um complicado e/ou caro dispositivo. Muitas tarefas podem ser executadas com simples dispositivos com 2DOF, como um mouse ou um joystick. Apesar de limitar as possibilidades de movimento, estes dispositivos reduzem o tempo de latência e são fáceis de serem utilizados (Pimentel e Teixeira, 1995). d) Sensores de Entrada Biológicos Sensores de entrada biológicos processam atividades chamadas de indiretas, como comando de voz e sinais elétricos musculares (Pimentel e Teixeira, 1995). Estudos sobre reconhecimento de voz existem há mais de vinte anos, e em sistemas de RV o reconhecimento de comandos de voz pode facilitar a execução de tarefas no mundo virtual, principalmente quando as mãos estiverem ocupadas em outra tarefa e não possam acessar o teclado (Pimentel e Teixeira, 1995). Já os dispositivos que utilizam sinais elétricos musculares são utilizados para, através de eletrodos colocados sobre a pele, detectar a atividade muscular, permitindo ao usuário movimentar-se pelo mundo virtual através do simples movimento dos olhos, por exemplo (Pimentel e Teixeira, 1995). e) Outros dispositivos de interação 21 Existe uma série de diferentes dispositivos de interação além dos citados acima. Muitos são criados a cada ano, enriquecendo a possibilidade de hardware para RV (Pimentel e Teixeira, 1995). É claro que entre tantos dispositivos de entrada de dados o teclado não pode ser esquecido: ele também é capaz de emitir comandos para um sistema de RV (Pimentel e Teixeira, 1995). 1.5.2 Dispositivos de Trajetória Muitos dos dispositivos de interação mencionados acima contam com um dispositivo responsável pela tarefa de detecção ou rastreamento da trajetória, conhecido como dispositivo de trajetória ou tracking (Pimentel e Teixeira, 1995). Os dispositivos de trajetória trabalham baseados na diferença de posição ou orientação em relação a um ponto ou estado de referência. Basicamente existe uma fonte que emite o sinal, um sensor que recebe este sinal e uma caixa controladora que processa o sinal e faz a comunicação com o computador (Pimentel e Teixeira, 1995). A Figura 1.4 ilustra um sistema de tracking. 22 Fig. 1.4 - Diagrama de bloco de um sistema de detecção de trajetória típico. FONTE: Pimentel e Teixeira (1995), p.194. A maioria das aplicações que utilizam detecção de trajetória fazem uso de pequenos sensores colocados sobre as partes do corpo ou sobre o objeto (se for o caso), técnica conhecida como tracking ativo. Dispositivos de trajetória de dispositivos de interação com 6DOF utilizam técnicas eletromagnéticas, ultrassônicas, mecânicas ou óticas para fazer a medida dos movimentos. Como alternativa, o tracking passivo utiliza câmeras ou sensores óticos para “observar” o objeto e determinar sua posição e orientação. Diferente dos dispositivos que utilizam tracking ativo, os dispositivos de tracking passivo utilizam apenas um sensor para rastrear o objeto (Pimentel e Teixeira, 1995). 23 CAPÍTULO 2 CONCEITOS DE COMPUTAÇÃO GRÁFICA Levando em conta que a Realidade Virtual procura estimular principalmente a visão, as imagens utilizadas precisam estar o mais próximas quanto possível das imagens do mundo real. Para tanto, a computação gráfica passa a ter um papel fundamental na criação destas imagens. Este capítulo visa fornecer alguns conceitos ligados à computação gráfica necessários para a compreensão e desenvolvimento deste trabalho, como visualização do espaço 3D, estereoscopia e graus de liberdade. 2.1 Visualização do espaço 3D Uma vez que os dispositivos de visualização são bidimensionais, a representação gráfica de objetos no espaço tridimensional passa obrigatoriamente por um processo de mapeamento da imagem 3D para 2D. Essa operação de mapeamento é chamada de projeção (Tori et al., 1987). Em geral, projeções transformam pontos de um sistema de coordenadas n-dimensional em pontos num sistema de coordenadas de dimensão menor que n. A computação gráfica estuda especialmente a projeção de objetos n-dimensionais em um espaço bidimensional devido ao fato dos displays de computador serem bidimensionais. Para este trabalho interessa-nos particularmente as projeções do espaço 3D no espaço 2D. No processo de visualização 2D simplesmente é escolhida uma “janela” do mundo 2D que é projetada na superfície de visualização 2D ou display. Já no processo de visualização de uma imagem ou objeto 3D é necessário especificar um 24 volume de visualização no mundo real, uma projeção sobre o plano 2D (display) e um campo de visualização sobre este plano (Foley et al., 1990). A projeção de um objeto 3D é definida através da emanação de raios de projeção provenientes de um centro de projeção. Estes raios passam por cada ponto do objeto e interceptam um plano de projeção no qual o objeto será projetado (Foley et al., 1990). Esta projeção é conhecida como projeção geométrica planar, e pode ser dividida em duas classes: perspectiva e paralela. A diferença entre as classes está relacionada à distância entre o centro de projeção e o plano de projeção: caso a distância entre os dois seja finita a projeção é perspectiva; caso seja infinita, a projeção é paralela. A Figura 2.1 ilustra estas duas classes de projeção. Fig. 2.1 - Linha AB e suas projeções A’B’perspectiva (a) e paralela (b). FONTE: Foley et al. (1990), p. 230. a) Projeção Perspectiva A projeção perspectiva é aquela em que o centro de projeção é um ponto próprio no espaço 3D. Ela é obtida através de “pontos de fuga”, pontos através dos quais a projeção é feita. Utiliza-se até três pontos de fuga (correspondendo ao número de eixos principais (x,y,z)) dependendo do número de eixos cortados pelo plano de projeção (Foley et al., 1990). 25 A Figura 2.2 a mostra um exemplo onde são utilizados dois pontos de fuga. Neste exemplo é possível observar que as linhas paralelas ao eixo y não convergem, uma vez que este eixo não é cortado pelo plano de projeção. Fig. 2.2 - Projeção perspectiva de um cubo através de dois pontos de fuga . O plano de projeção corta os eixos x e z. FONTE: Foley et al. (1990), p. 232 O efeito visual da projeção perspectiva é similar ao sistema visual humano, neste caso a pupila é o centro de projeção e a retina o plano de projeção. As imagens são visualizadas deformadas (e os ângulos distorcidos), ou seja, o tamanho de um objeto é inversamente proporcional à sua distância do centro de projeção (Tori et al., 1987). b) Projeção Paralela A projeção paralela é obtida quando o centro de projeção é distante o suficiente para tornar as linhas visuais paralelas, posicionando o centro de projeção no infinito. Ao invés de centro de projeção, agora utiliza-se o termo direção de projeção. A posição do plano de projeção em relação à direção de projeção determina alguns tipos de 26 projeção paralela: projeção paralela ortográfica - quando a direção e o plano de projeção formam um ângulo de 90° entre si - e projeção paralela oblíqua - quando este ângulo é diferente de 90° (Tori et al., 1987). A Figura 2.3 exemplifica a projeção paralela ortográfica. Fig. 2.3 - Construção de três projeções paralelas ortográficas (as linhas de projeção são perpendiculares aos planos de projeção). Observe que não existe um centro de projeção e sim uma direção relacionada a cada projeção. FONTE: Foley et al. (1990), p. 234. A projeção paralela é menos realística que a projeção perspectiva, mas bastante utilizada para extração de medidas da imagem devido ao fato de preservar a proporcionalidade das medidas de lados e ângulos, refletindo as características geométricas do objeto (Foley et al., 1990; Tori et al., 1987). 2.2 Estereoscopia Segundo Moffitt e Mikhail (1980, p. 110), estereoscopia é a ciência e arte que trabalha com imagens para produzir um modelo visual tridimensional com características análogas às características da mesma imagem quando vista através da 27 visão binocular real. Sendo assim, podemos dizer que a estereoscopia lida com o fato de que cada um dos olhos (humanos), devido à sua localização na face, vê imagens ligeiramente diferentes quando olha para algo. O cérebro então, reúne as duas imagens em uma, sendo que esta passa a ter características de profundidade, distância, posição e tamanho. Ou seja, a estereoscopia trabalha com a obtenção dessas imagens ligeiramente diferentes que produzirão a visão estereoscópica ou visão tridimensional. A estereoscopia tem suas desvantagens. Jacobson (1995, p.85) diz que de 10 a 20 por cento das pessoas não aproveitam os efeitos da estereoscopia, pois seus cérebros não conseguem fundir as imagens duplicadas de forma correta. No caso da computação, esta desvantagem está ligada à necessidade de mais processamento, pois é preciso gerar duas imagens ao invés de uma única. Na computação, as imagens geradas são visualizadas através de um dispositivo de saída de dados, normalmente no monitor. Neste caso, a visualização se dá de forma indireta e para imagens estereoscópicas este processo é chamado de visão estereoscópica indireta (a visão estereoscópica direta se dá quando os olhos recebem os raios luminosos refletidos diretamente pelo objeto observado) (Paredes, 1987). A visão estereoscópica indireta pode ser obtida através de 5 processos distintos: estereoscopia voluntária, estereoscopia por anaglifo, estereoscopia por polarização da luz, estereoscopia por luz intermitente e estereoscopia por holografia. No caso dos quatro primeiros processos cada um dos olhos do observador verá uma imagem diferente de um mesmo objeto e seu cérebro as fundirá em uma única imagem 3D. Portanto serão necessárias duas imagens chamadas de par estereoscópico. No processo por holografia a cena em 3D é registrada numa única imagem não havendo a necessidade de um par estereoscópico (Paredes, 1987). 2.2.1 Tipos de estereoscopia a) Estereoscopia Voluntária 28 Neste processo, normalmente utiliza-se um estereoscópio (Figura 2.4) - instrumento composto por lentes que direcionam uma das imagens do par 29 Fig. 2.4 - Estereoscópio. FONTE: American Society of Photogrammetry (1980), p. 628. Fig. 2.5 - Esquema básico de um estereoscópio. FONTE: American Society of Photogrammetry (1980), p. 535 30 estereoscópico para o olho direito e a outra para o olho esquerdo permitindo visualizar a imagem em 3D. Essencialmente, o estereoscópio é constituído de um par de lentes convexas montadas sobre um suporte (Loch e Lapolli, 1985). Seu esquema básico pode ser observado na Figura 2.5. b) Estereoscopia por Anaglifo Anáglifo é o nome dado a figuras planas cujo relevo se obtém por cores complementares, normalmente vermelho e verde ou vermelho e azul esverdeado. Neste caso, cada um dos olhos utilizará um filtro diferente para visualizar as imagens do par estereoscópico: o olho que estiver com o filtro vermelho refletirá apenas a cor vermelha e o olho que estiver com o filtro verde/azul refletirá apenas a imagem verde/azul (Figura 2.6). Assim, as duas imagens são separadas na observação e fundidas em uma única imagem 3D preto e branco (Paredes,1987). Fig. 2.6 - Figura estereoscópica formada pelo processo de cores complementares. FONTE: Vince (1995), p. 16. 31 c) Estereoscopia por Polarização da Luz É bastante comum o conceito de luz como energia que se transmite de forma ondulatória. Sendo assim, pode-se considerar que essas ondas vibram em todas as direções perpendiculares à direção de deslocamento. No entanto, em certas condições as ondas de luz podem ser obrigadas a vibrar apenas num plano. Designa-se esta luz de luz polarizada (Figura 2.7) (Paredes, 1987). Fig. 2.7 - Polarização linear. Em (a) pode ser observado o conceito de raio de luz nãopolarizada e em (b) a luz polarizada linearmente - neste caso para vibrar apenas no plano vertical. FONTE: Paredes (1987), p. 457. No processo de estereoscopia por polarização da luz são utilizados filtros polarizadores que fazem com que as imagens do par estereoscópico projetadas sejam polarizadas em planos ortogonais (por exemplo um plano vertical e um horizontal). Desta forma, o observador utiliza filtros polaróides ortogonais correspondentes as planos de projeção e vê com cada olho apenas uma das imagens projetadas. Da fusão das imagens vistas por cada olho resultará a visão estereoscópica (Loch e Lapolli, 1985). 32 d) Estereoscopia por Luz Intermitente Este processo baseia-se no fato de que uma imagem observada permanece no cérebro humano cerca de 1/20 a 1/8 de segundo. Utilizando-se esse dado as imagens são projetadas alternadamente para cada olho a um intervalo de 1/20 a 1/60 segundos, de modo que cada olho possa ver apenas uma imagem. Assim, o observador não perceberá a alternância das imagens e verá uma única imagem 3D (Paredes, 1987). Uma grande vantagem deste processo sobre o processo por anaglifos é a utilização de imagens coloridas. e) Estereoscopia por Holografia Como citado anteriormente, a estereoscopia por holografia não utiliza-se de um par de imagens estereoscópicas, pois tal qual a fotografia, a holografia é uma técnica que registra em filme a informação relativa a um objeto ou cena. A holografia capta as informações de uma imagem em 3D incluindo profundidade e as grava também em 3D (Paredes, 1987). 2.2.2 Paralaxe Nas imagens estereoscópicas geradas por computador, a quantidade de paralaxe - distância horizontal entre imagens esquerda e direita - determina a distância aparente dos objetos “virtuais” em relação ao observador (Jacobson, 1994; Gradecki, 1995). A paralaxe é importante porque a quantidade dela nos pares estéreos determinará a quantidade de disparidade nas retinas, ou seja, a distância horizontal entre quaisquer dois pontos nas imagens projetadas nas retinas (Gradecki, 1995). Gradecki (1995) cita quatro tipos básicos de paralaxe: zero, positiva, negativa e divergente. Quando os pares estéreos possuem paralaxe zero, não há qualquer intervalo entre as imagens. No entanto, quando as imagens possuem paralaxe positiva (maior que zero) já é possível notar profundidade na imagem de fusão. Neste caso, 33 quanto maior for a paralaxe, maior será a sensação de distância entre o objeto projetado e o observador. A paralaxe negativa é o caso mais interessante, ela ocorre quando as linhas de visão estão cruzadas, ou seja, o olho esquerdo visualiza a imagem da direita e o olho direito visualiza a imagem da esquerda. Quando isto ocorre, o objeto observado parece flutuar no espaço entre os olhos do observador e o ponto de projeção. Chamamos a paralaxe de divergente quando o valor dela é maior que o espaçamento interocular dos olhos. Esta situação, no entanto, nunca ocorre no mundo real e deve ser evitada nos pares estéreos devido ao grande desconforto gerado ao observador (Gradecki, 1995). 2.3 Graus de Liberdade (DOF - Degrees Of Freedom) Os graus de liberdade determinam flexibilidade de movimentação e/ou observação de algo. O termo “graus de liberdade” é utilizado para descrever a combinação de posições e orientações ou outro tipo de movimento que pode ser efetuado sobre um objeto ou imagem (Pimentel e Teixeira, 1995). Em Realidade Virtual, objetos em mundos virtuais tem a característica de poderem ser movimentados em “qualquer direção” no espaço. Tipicamente, estes objetos podem se movimentar em 6 direções diferentes: para frente ou para trás (eixo X), para cima ou para baixo (eixo Y), para esquerda ou direita (eixo Z), rotação em X (Roll), rotação em Y (Yaw) e rotação em Z (Pitch) (Pimentel e Teixeira, 1995). Um esquema destes movimentos pode ser observado na Figura 2.8. Grande parte dos sistemas de Realidade Virtual utilizam dispositivos de entrada de dados que permitem movimentos através dessas 6 direções citadas acima, e portanto são chamados de dispositivos de 6DOF. Estes dispositivos proporcionam uma maior sensação de imersão no mundo virtual (Jacobson, 1994). 34 Fig. 2.8 - Esquema mostrando as diferentes direções em que um objeto pode mover-se no espaço 3D: três translações e três rotações. FONTE: Pimentel e Teixeira (1995) p.186. 35 CAPÍTULO 3 COMPONDO UM MUNDO VIRTUAL Para a criação de um mundo virtual é necessário criar um ambiente e habilitá-lo com objetos e características virtuais. O aplicativo de Realidade Virtual é uma simulação animada que permite definir e exibir um objeto 3D, alterar seu ponto de referência e campo de visão, manipular e interagir com os objetos, e fazer com que esses objetos afetem uns aos outros (Jacobson, 1994). 3.1 Software para Criação de Realidade Virtual O software para criação de Realidade Virtual permite definir objetos com comportamentos (propriedades físicas) e programá-los para ativar algum tipo de feedback visual, auditivo ou tátil quando um evento específico acontece, além de gerenciar toda a seqüência de eventos. A maioria dos sistemas de construção de mundos virtuais compartilham alguns conceitos básicos que caracterizam o desenvolvimento da Realidade Virtual e que permitem aos desenvolvedores a criação de uma simulação bastante realística. Segundo Jacobson (1994), estes conceitos básicos poderiam ser: o Universo e seus Objetos, técnicas de apresentação e dinâmicas, e feedback. O Universo representa o lugar onde ocorrerá a experiência de RV, o lugar a ser modelado. Este Universo contém Objetos que são caracterizados por geometria (formato do objeto), aparência (tamanho, cor, composição, iluminação e sombreamento aplicados à geometria do objeto) e comportamento (reações do objeto frente a eventos). Estes Objetos são vinculados entre si por hierarquias, ou seja, um Objeto complexo do Universo pode incorporar muitos Objetos. Qualquer objeto é formado por um conjunto de polígonos e suas técnicas de apresentação envolvem conceitos de computação gráfica. Alguns desses conceitos são: perspectiva linear (o tamanho do objeto diminui conforme aumenta a distância do usuário), iluminação (intensidade da luz que incide sobre um 36 objeto), sombreamento (sombra causada pelo posicionamento de um outro objeto entre a fonte de luz e o objeto) e sobreposição (objetos encobrindo outros objetos ou partes deles) (Jacobson, 1994). Além de compartilharem os conceitos acima citados, os softwares para criação de RV também costumam oferecer recursos para determinados tipos de dispositivos de interação, permitindo programá-los para ativar algum tipo de feedback visual, auditivo ou tátil (Jacobson, 1994). Alguns softwares para criação de aplicativos de RV permitem a importação e exportação de geometrias tridimensionais, ou seja, é possível utilizar um programa de modelagem 3D para a criação dos objetos e cenários do mundo virtual e importá-los para o software que cria a RV. A modelagem normalmente baseia-se em primitivas chamadas polígonos, sendo que um objeto do mundo virtual é composto de vários polígonos combinados. Então, os programas de modelagem 3D irão combinar modelagem (criação dos objetos), representação visual (aplicação de propriedades aos objetos, como textura e iluminação) e animação (movimentação dos objetos na cena), tornando a apresentação das cenas e dos objetos o mais próxima do real possível (Jacobson, 1994). Existem diversos softwares para o desenvolvimento de RV, alguns permitem apenas a criação de RV exploratória onde o participante não pode alterar nem interagir com o cenário e seus componentes; outros permitem a criação de sofisticadas cenas com recursos de interação através de dispositivos compatíveis (Jacobson, 1994). 3.2 REND386 Uma vez que a Realidade Virtual era bastante cara até algum tempo atrás, entusiastas “caseiros” adaptavam tecnologias e dispositivos de baixo custo para criar seus próprios sistemas de RV. Mesmo assim, para estas pessoas o problema recaía sempre sobre a geração dos gráficos para seus sistemas, uma vez que não dispunham de 37 hardware poderoso ou estações gráficas (Stampe et al., 1993). Pensando nisto, Dave Stampe e Bernie Roehl da Universidade de Waterloo desenvolveram em 1991 o REND386, um sistema voltado para computadores pessoais (PCs) que permite a criação de mundos virtuais. O REND386 é um sistema que permite criar objetos através de polígonos e visualizá-los levando em conta perspectiva e posição do observador. A coleção de objetos criados formará o mundo virtual que poderá ser explorado usando dispositivos comuns como mouse e teclado (Gradecki, 1994). Uma característica interessante deste software é que, apesar de gerar imagens em tempo real e possuir recursos de animação, ele é bastante rápido pelo fato de executar todos os seus cálculos baseado em números inteiros (Stampe et al., 1993). Na verdade, o REND386 foi desenvolvido a partir de um conjunto de bibliotecas para a linguagem C, e exigirá conhecimentos desta linguagem e de geometria tridimensional por parte do desenvolvedor de RV caso ele queira programar rotinas específicas. As versões mais novas do sistema oferecem suporte para imagens estéreo, óculos obturadores e PowerGlove (um tipo de luva de dados) dentre outros. Com o REND386 é possível desenvolver mundos, definir superfícies e programar animações que dão a sensação de mundo real. Uma vez composto o mundo virtual, é possível visualizar cada objeto ou cena a partir de qualquer direção: o REND386 gera as imagens através de um processo constante de cálculos. Para determinar o que deve ser exibido, uma vez que o usuário pode visualizar apenas parte do mundo virtual na tela, o sistema define um volume de visualização e utiliza passos seqüenciais como: recorte de objetos, remoção de faces escondidas, projeção perspectiva, iluminação, seleção de profundidade e exibição final na tela (Stampe et al., 1993). Estes passos são executados sempre que uma nova imagem deve ser exibida, ou seja, sempre que há alguma movimentação (interação) por parte do observador, que modifica o ângulo de visão. 38 Uma vez que o REND386 é um software desenvolvido para PCs, não exige hardware avançado ou dispositivos especiais de interação, e permite uma visualização e interação razoáveis, ele será adotado no desenvolvimento do primeiro protótipo deste trabalho (cap. 4). 3.3 Modelagem do Mundo Virtual no REND386 O REND386 permite modelar mundos e seus componentes através de três arquivos básicos com extensão PLG (polígonos), FIG (figuras) e WLD (mundo). A modelagem do mundo virtual consiste em definir o raio de visão do observador, fator de escala para objetos a serem visualizados, posição inicial do sistema, cores do ambiente e animações correspondentes a objetos específicos, num arquivo WLD. A partir daí este arquivo irá incorporar as figuras e polígonos definidas a partir dos arquivos de extensão PLG ou FIG formando os objetos “virtuais”. No REND386, os objetos do mundo virtual costumam “nascer” de um modelo wireframe (modelo com contorno básico que contém todas as linhas do objeto) transparente. Esse modelo passa por um processo que faz a remoção das linhas que devem ficar ocultas. A partir daí a representação visual manuseia a superfície do objeto criando efeitos realísticos com a atribuição de cores, iluminação, sombreamento e textura. O toque final fica por conta da animação, onde os objetos e luzes serão movimentados conforme os comandos ou movimentos do usuário alterando as cenas seguintes a serem apresentadas. A animação é feita em tempo real a uma taxa que faz com que tudo pareça se deslocar com perfeição, numa média de 15 a 22 quadros por segundo (Jacobson, 1994). Uma característica interessante dos mundos criados pelo REND386 é que é possível alterar características como cor, tamanho e iluminação das figuras ou polígonos definidos previamente em outros arquivos. 39 3.3.1 Objetos Virtuais Uma vez que a modelagem do mundo virtual envolve a definição dos objetos através de arquivos independentes, torna-se necessário descrever como isto é feito. Os arquivos de extensão PLG são bastante interessantes, pois definem os polígonos que formarão os objetos virtuais. A partir desses polígonos será possível compor figuras mais complexas. Basicamente, num arquivo PLG descreve-se o número de lados e vértices de um polígono e suas cores (Stampe et al., 1993). Observe na Figura 3.1 o formato de um arquivo PLG. cube 8 6 -500 -500 -500 500 500 500 500 -500 -500 -500 -500 500 500 500 500 -500 # nome, no vértices, no de polígonos 500 # vértice 0 500 # vértice 1 500 # vertice 2 500 # vértice 3 -500 # vértice 4 -500 # vértice 5 -500 # vértice 6 -500 # vértice 7 0x18AF 0x19BF 0x1ACF 0x1BA8 0x1CB8 0x1DC8 4 4 4 4 4 4 0 1 5 0 4 7 1 5 4 3 5 3 2 6 7 7 1 2 3 2 6 4 0 6 # cor, no de vértices e vértices Fig. 3.1 - Formato de um arquivo PLG que define um cubo e as cores de cada uma de suas faces. As figuras, guardadas em arquivos de extensão FIG, serão formadas a partir dos polígonos (PLG), só que agora será possível concatenar esses polígonos e associá-los entre si. A associação é bastante útil no caso de uma animação, pois a partir do movimento de um componente da figura o sistema gerará os movimentos adequados das partes associadas (Gradecki, 1994). Além disso, existe a facilidade de utilizar um mesmo polígono em diversas figuras de um mundo virtual, isso porque dentro dos 40 arquivos de figura um polígono pode ter suas características de cor e tamanho alteradas. Sendo assim, um paralelepípedo (PLG) poderia ser utilizado tanto para representar uma casa, quanto para representar um pequeno cofre dentro do mesmo mundo virtual, por exemplo. A Figura 3.2 a seguir ilustra como é feita a associação de polígonos nos arquivos de figura. Fig. 3.2 - Figura humana e associação de suas partes para modelagem num arquivo de extensão FIG. FONTE: Stampe et al. (1993), p. 268. 3.4 Animação com o REND386 Animações podem variar de simples rotações a movimentos mais complexos. No REND386 as animações são programas de poucas linhas (por exemplo, apenas 3 linhas de código para movimentar um objeto) que podem ser incorporados ao próprio arquivo de extensão WLD ou simplesmente referenciados nele. A linguagem de controle das animações é basicamente uma máquina de estados que executa uma operação, toma decisões, e segue caminhos A ou B para novas operações. Ou seja, a animação de vários objetos pode ser composta por uma ou mais máquinas de estados, 41 sendo possível definir o número de vezes por segundo que se quer que cada animação aconteça. Uma característica interessante quanto à animação com o REND386 é a possibilidade de associar objetos entre si, de forma que o movimento de um afete o outro. Isto já acontece internamente com as partes de figuras (arquivos de extensão FIG), onde o movimento de uma parte leva consigo todas as outras ligadas a ela (Stampe et al., 1993). A animação no REND386 permite controlar rotações, movimentos, associar objetos entre si para que se movam em conjunto, redefinir características dos objetos durante os movimentos, e captar e acionar movimentos em resposta às ações do usuário (Stampe et al., 1993). 3.5 Visualização no REND386 A visualização é bastante interessante no REND386. Apesar das superfícies circulares não possuírem muito boa definição, o usuário pode visualizar qualquer objeto a partir de qualquer posição dentro do mundo virtual, posicionando-se com movimentos até 6 graus de liberdade e fazendo uso de 10 câmeras virtuais, definidas previamente pelo programador do mundo virtual (Stampe et al., 1993). Este software também dispõe de ferramentas que auxiliam o usuário durante o processo de visualização: como um compasso onde são exibidos os eixos x, y e z, e um indicador de valor de posição de x e z que se alteram dependendo dos movimentos do usuário; um indicador do número de quadros por segundo que está sendo gerado e exibido; e ferramentas de mensagens como, por exemplo, nome do lugar no mundo em que o usuário se encontra (Stampe et al., 1993). Além disso, o sistema dispõe de duas ferramentas para visualização em estéreo: na primeira o par estereoscópico é gerado automaticamente e posicionado na 42 tela do computador, sendo que as imagens esquerda e direita do par estéreo permanecem lado a lado na tela e podem ser vistas em 3D com o auxílio de visores chamados fresnel; a segunda ferramenta necessita do auxílio de óculos obturadores, e gera as imagens esquerda e direita alternando-as na tela do computador em sincronia com os óculos obturadores (Stampe et al., 1993). 43 CAPÍTULO 4 APLICAÇÕES Este capítulo destina-se à descrição dos métodos e ferramentas utilizados para a geração de dois protótipos que utilizam recursos de realidade virtual. Os protótipos basearam-se no modelo do satélite CBERS (China-Brazil Earth Resources Satellite), um satélite de sensoriamento remoto desenvolvido em cooperação entre o Brasil e a China (Figuras B.1 e B.2) (INPE, 1995). O protótipo I utiliza um software de realidade virtual para a modelagem de um mundo virtual com a simulação do satélite abrindo seus painéis solares no espaço. O protótipo II utiliza a estereoscopia, recurso bastante utilizado em realidade virtual, para a obtenção de uma imagem do mesmo satélite para ser visualizada em 3D. Ambos os protótipos poderão ser visualizados através do sistema constante no apêndice C. 4.1 Protótipo I - O Satélite CBERS no Espaço Este protótipo consiste na modelagem de um mundo virtual que simula parte do sistema solar com a atuação do satélite CBERS no espaço. O objetivo deste protótipo é visualizar o movimento de abertura dos painéis solares e a órbita do satélite de maneira realística. Para a modelagem do mundo virtual foi utilizado o software REND386. O ambiente completo é composto de três módulos: arquivos PLG com a definição dos objetos básicos como o planeta Terra, o Sol e as partes do satélite; um arquivo do tipo FIG, onde são conectadas as diversas partes componentes do satélite; e um arquivo WLD que apresenta as características do mundo virtual e referencia os arquivos PLG e FIG. A seguir será descrito como foi possível a composição do ambiente total através destes arquivos. 44 4.1.1 Os Arquivos de Polígono (PLG) Nos arquivos de polígono (PLG) é possível definir as características de um simples polígono ou de um objeto composto por diversos polígonos. Os vértices são definidos em termos de coordenadas x,y,z e depois ligados formando os polígonos, que receberão cores que variam entre opacas, sombreadas (dependentes da posição da fonte de luz), metálicas ou transparentes. Estes arquivos de polígono (PLG) foram utilizados para definir o Sol, a Terra e cada uma das partes que compõe o satélite em questão. Uma vez que o REND386 trabalha sempre baseado em polígonos, esferas ou qualquer superfície arredondada passam a ser objetos formados por um conjunto de polígonos. Sendo assim, a modelagem da Terra e do Sol tornou-se uma tarefa bastante complexa levando-se em conta os recursos do REND386. Para facilitar este processo, foi utilizado um software de modelagem que possui ferramentas específicas para o desenho de superfícies arredondadas, e um tradutor de formato de arquivo. Assim, estes objetos foram modelados no 3DStudio e posteriormente convertidos para o formato PLG. A Terra teve a cor de seus polígonos modificada de forma a distinguir os continentes dos mares e permitir sombra dependendo da posição da fonte de luz no mundo virtual. O mesmo foi feito com o Sol, que com a alteração das cores parece possuir partes mais “quentes” quando visualizado. O satélite, por sua vez, foi dividido em 3 partes principais: corpo, haste e painéis, conforme pode ser observado na Figura 4.1. O corpo do satélite e a haste foram definidos em arquivos PLG distintos. O corpo, no formato de um cubo, recebeu uma cor metálica e a haste uma cor opaca. Para a definição dos painéis solares, também de cor metálica, foi utilizado apenas um arquivo PLG, sendo que este foi utilizado três vezes para a formação do conjunto de painéis solares que compõem o satélite. A união de 45 todos estes arquivos PLG foi feita num arquivo FIG, responsável pela hierarquia e posicionamento de cada uma das partes que formam o satélite. Fig. 4.1 - As partes da decomposição do satélite CBERS para modelagem: corpo, haste e painéis solares. 4.1.2 Arquivo de Figura - O satélite CBERS O modelo real do satélite CBERS é bastante simples: basicamente uma grande caixa que acomoda os módulos de serviço e de carga útil, e o painel solar (Figura 4.2). 46 Fig. 4.2 - Estrutura básica do satélite CBERS: a e b indicam respectivamente os módulos de serviço e carga útil, e c o painel solar. FONTE: INPE, 1995. O modelo virtual foi gerado a partir de três arquivos tipo PLG conectados para permitir uma posterior manipulação de cada parte. Para tanto, foi utilizada uma hierarquia de partes permitida em arquivos FIG (capítulo 3), ficando o modelo conforme a ilustração 4.3. Fig. 4.3 - Hierarquia das partes que compõem o satélite CBERS, conforme definido no arquivo de figura. Temos então a seguinte hierarquia: o painel 3 do satélite é “filho” do painel 2, que é “filho” do painel 1, que é “filho” da haste, que é “filha” do corpo. Dessa forma, no processo de animação torna-se possível movimentar qualquer parte do satélite com seu filho e descendentes seguindo o mesmo movimento. 47 4.1.3 Arquivo de Mundo (WLD) - O Espaço O arquivo de mundo (WLD) permite a integração de todos os componentes do sistema, bem como a definição das características do ambiente em que eles atuarão. Todos os componentes do mundo são posicionados em termos de coordenadas x,y,z , e será através destes eixos que o usuário poderá movimentar-se. Durante o processo de codificação deste arquivo WLD foi utilizada uma iluminação específica para tornar o ambiente o mais realístico possível. Determinou-se uma iluminação ambiente fraca e ao Sol foi atribuída a função de fonte de luz. Assim, objetos como a Terra, cuja cor admite sombreamento, terão sua cor alterada conforme seu posicionamento em relação ao Sol. Isto não ocorrerá com o satélite uma vez que sua coloração metálica não admite sombreamento. Para facilitar o processo de visualização foram definidas 10 câmeras virtuais posicionadas em lugares diferentes do espaço com as quais o usuário pode rapidamente alterar sua posição utilizando simplesmente as teclas de função de um teclado comum. Estas câmeras foram posicionadas em locais que facilitam a visualização de determinados objetos ou seus movimentos. Isto porque o ambiente possui valores de x,y,z muito espaçados de forma que os objetos são bastante distanciados uns dos outros, o que torna um pouco lenta a movimentação entre eles. Além disso, o sistema possui um compasso e um visualizador dos valores de x e z, onde o usuário consegue controlar sua posição no mundo virtual (Figuras B.3 e B.4) Visando o processo de animação, também foi feita a associação de objetos durante a codificação deste arquivo de mundo. Através deste recurso, foi possível “ligar” objetos entre si tornando um dependente do outro, de forma que quando um se movimenta, o outro acompanha esse movimento. 48 4.1.4 Animação Este processo de animação visa fornecer características de movimento aos objetos, permitindo ao mundo virtual características do mundo real. A animação deste sistema consiste em 4 partes: os movimentos de rotação da Terra e do Sol, o movimento de translação da Terra e do satélite ao redor do Sol, a órbita terrestre do satélite, e o movimento de abertura dos painéis solares do satélite. A geração dos movimentos é sempre definida em função das coordenadas x, y e z. Para as rotações, é preciso definir um ponto de referência ao redor do qual ela acontecerá. Uma particularidade das rotações está no fato dela só ocorrer ao redor de x, y e z, sendo que a combinação da rotação nestes eixos obedece a ordem de execução y, x, z (Stampe et al., 1993 p.453). Ou seja, para a execução de uma rotação que não obedeça a direção dos eixos definidos, é preciso alterar o sistema de eixos do ponto de referência. Sendo assim, o ponto de origem dos movimentos de rotação do Sol e da Terra são os seus pontos centrais, originalmente definidos no arquivo de polígono (PLG), respectivamente. O Sol gira em função do eixo y. Já a Terra teve a direção de seus eixos modificada para que seu movimento fosse levemente inclinado em 23o, aproximadamente sua inclinação real em relação ao plano da sua órbita solar (Pauwels, 1989 p.87 fornece o valor de 23o30’). Para a órbita da Terra ao redor do Sol, foi utilizada a ferramenta de associação de objetos descrita em 4.1.3, assim o planeta Terra foi associado ao Sol e passou a seguir seus movimentos, caracterizando sua órbita. No caso do satélite, foi necessário utilizar um artifício para a modificação de seus eixos, uma vez que este obedece a dois movimentos distintos: a sua própria órbita ao redor da Terra, e o movimento desta ao redor do Sol. Neste caso, foi definido 49 um ponto transparente no espaço localizado no centro da Terra. O satélite foi associado a este ponto que foi associado ao Sol (da mesma forma que a Terra) permitindo que o satélite siga a Terra na sua rotação ao redor do Sol. No entanto, o satélite agora possui o mesmo sistema de coordenadas do ponto, inclinado 8o em z, e portanto, através da rotação deste ponto, foi possível gerar o movimento de rotação do satélite ao redor da Terra com uma inclinação de 98o em relação ao equador do planeta. Este valor aproxima-se consideravelmente do valor real de 98,504o (INPE, 1995) (Figuras B.5 e B.6). Por último, a animação da abertura dos painéis solares do satélite foi feita baseada na hierarquia das partes do objeto definido no arquivo de figura (FIG). O centro de movimentação de cada parte do objeto foi definido dentro do próprio arquivo de figura, e mesmo que o satélite tenha tido seu centro de movimentação alterado isto não afetou a animação das partes do satélite. A Figura 4.4 mostra as partes que compõem o satélite e o centro e movimentação de cada uma. Fig. 4.4 - As partes do satélite com seus centros de movimentação a, b, c e d pertencentes respectivamente à haste, painel 1, painel 2 e painel 3, conforme definidos no arquivo de figura (FIG). Além do movimento de abertura, os painéis solares também foram programados para girarem de acordo com a posição do satélite em relação ao Sol, da mesma maneira que ocorre com o modelo real. Desta maneira, os painéis solares mantêm-se sempre voltados para o Sol durante a rotação do satélite ao redor da Terra. 50 4.1.5 Visualização e Interação Neste protótipo, a visualização do mundo virtual tem como base um monitor comum de computador. Apesar do REND386 possuir ferramentas que permitam a visão em estéreo, estas não puderam ser utilizadas pelo fato deste mundo virtual em particular possuir valores de coordenadas considerados astronômicos, ou seja, os objetos são de dimensões muito elevadas e estão muito espaçados entre si, tornando a visualização em estéreo distorcida. Para a interação do usuário com o sistema, foram programadas funções para um teclado e mouse comuns. Dessa forma, o usuário pode movimentar-se utilizando as teclas de navegação do teclado, deslocar-se instantaneamente para outra posição do espaço através da funções programadas como câmeras virtuais, ativar animações através da seleção de objetos com o mouse, e obter informações a respeito dos objetos selecionados com o mouse. 51 4.2 Protótipo II - O Satélite CBERS em 3D O objetivo deste protótipo consistiu em mostrar os benefícios da estereoscopia na observação de uma imagem, vantagem esta oferecida pelos sistemas de realidade virtual. Sendo assim, foi gerada uma imagem 3D do satélite CBERS a partir de uma imagem 2D. Esta imagem foi implementada para ser visualizada utilizando-se a técnica de anaglifos com as cores complementares vermelho e azul, permitindo que diversos usuários usando óculos com filtros das mesmas cores, pudessem visualizar a imagem simultaneamente. 4.2.1 Obtendo o Par Estereoscópico Hodges (1992) descreveu em seu artigo três métodos para a obtenção do par estereoscópico: projeção off-axis, projeção on-axis e rotação. Na projeção off-axis assume-se a existência de dois centros de projeção, sendo que a visão esquerda é produzida baseada no centro de projeção esquerdo e a visão direita é produzida baseada no centro de projeção direito. Neste caso, ambas são implementadas juntamente com uma transformação de visualização. Hodges (1992) implementou o processo de obtenção das imagens do par estereoscópico por projeção off-axis junto com uma transformação de projeção perspectiva. Já na projeção on-axis, ao invés de dois centros de projeção, é utilizado um único centro de projeção em conjunto com translações horizontais dos dados. Neste caso, a obtenção de cada imagem do par estereoscópico é feita através de três passos: translação da imagem para a direita ou esquerda (dependendo da imagem do par estereoscópico a ser gerada), projeção perspectiva, e translação da imagem para o sentido contrário da primeira translação (Hodges, 1992). 52 Na Figura 4.5 é possível observar a diferença entre as projeções on-axis e off-axis. Para ambas as projeções, podemos observar três áreas distintas: a área visualizada apenas pelo olho esquerdo (E), a área visualizada apenas pelo olho direito (D), e a área que é visualizada por ambos. Fig. 4.5 - As projeções off-axis e on-axis, onde E e D representam os olhos esquerdo e direito, respectivamente. Uma pesquisa feita por Williams e Parrish (citado por Hodges, 1992) demonstrou que o campo visual, ou o conjunto das áreas visualizadas, difere até 40 por cento na projeção off-axis sobre a projeção on-axis. Apesar desta desvantagem, a projeção on-axis apresenta a grande vantagem de estar disponível a partir do hardware gráfico de diversas estações gráficas, o que aumenta o desempenho geral da máquina neste tipo de aplicação. A implementação da projeção off-axis, por sua vez, é feita via software (Hodges, 1992). 53 No caso da rotação para a obtenção do par estereoscópico, observa-se que esta técnica é bastante rápida computacionalmente, uma vez que as imagens são obtidas através da simples rotação vertical do centro de projeção (num total de 4 graus, normalmente). No entanto, isso é bastante utilizado em projeções paralelas de cenas. No caso de rotação implementada juntamente com projeção perspectiva, existe uma grande discussão a respeito, uma vez que as imagens obtidas apresentam deficiências, como paralaxe vertical e distorções, que afetam a qualidade da imagem (Hodges, 1992). Para este protótipo, no entanto, optou-se por utilizar a projeção off-axis, uma vez que a rotação, apesar de rápida, não produzia bons resultados e a projeção onaxis pareceu possuir uma implementação mais complexa via software. a) A Projeção off-axis Na projeção off-axis implementada juntamente com a projeção perspectiva (Hodges, 1992), após a transformação de visualização (3D para 2D), localiza-se o plano a ser visualizado paralelo ao plano x-y e passando pela origem. Um centro de projeção padrão (para o sistema de visualização monoscópico) é então localizado no ponto (0,0,-d), onde d é a distância do cento de projeção ao plano de projeção. Sendo assim, a projeção de um ponto P=(x,y,z) passa a ter as coordenadas (xp,yp) no plano de projeção, onde: xp = xd d+ z e yp = yd d+ z (4.1) Para a produção das imagens do par estereoscópico, é necessária a utilização de dois centros de projeção, um centro de projeção para a visão direita (CPD) e outro para a visão esquerda (CPE) ,alinhados horizontalmente. O CPD é movido perpendicularmente a z para a posição (e/2,0,-d) e o CPE para (-e/2,0,d), onde “e” representa a separação total entre os centros de projeção. 54 Temos então, para um ponto arbitrário P=(x,y,z), a projeção para a visão esquerda PE=(xE,yE), com coordenadas no plano de projeção: ze 2 xE = d+ z xd − e yE = yd d+ z (4.2) E a projeção de P para a visão direita, PD=(xD,yD), tem os valores de coordenadas no plano de projeção: ze 2 xD = d+ z xd + e yD = yd d+ z (4.3) 4.2.2 Implementação A implementação deste protótipo foi feita em Linguagem C utilizando sua biblioteca gráfica. A imagem utilizada foi a do satélite CBERS cercado por estrelas (figura 4.6). Fig. 4.6 - A imagem monoscópica do satélite CBERS no espaço. 55 Utilizando-se as fórmulas 4.2 e 4.3 aplicadas a cada ponto da imagem monoscópica, foi possível obter o par estereoscópico. Foi necessário definir os valor de “e” e “d”, ou seja, a distância entre os centros de projeção esquerdo e direito, e a distância do observador ao plano de projeção (Figura 4.7). Tomou-se e=6,5cm como uma distância média para os olhos humanos, e d=60cm como a distância entre o observador e a tela do computador. Para a aceleração do processamento na geração do par estéreo, os valores de y do par estéreo foram calculados uma única vez para cada ponto, servindo para a imagem esquerda e direita igualmente, uma vez que yD e yE são idênticos (fórmulas 4.2 e 4.3). Fig. 4.7 - Projeção off-axis. FONTE: Hodges (1992), p.24. Optou-se por exibir as imagens em cores complementares vermelho e azul para obter a estereoscopia por anaglifo. 56 4.2.2 Visualização A visualização foi feita diretamente sobre o monitor de vídeo do computador, utilizando-se a técnica de anaglifos para exibir o par estereoscópico. As imagens esquerda e direita foram projetadas em vermelho e azul, podendo ser separadas no momento da visualização através do uso de óculos com filtros das mesmas cores. Uma vez que se desejava o efeito de imagem “saindo” da tela, as linhas de visualização foram cruzadas, ou seja: o olho direito do observador utiliza filtro azul e verá a imagem em azul projetada à esquerda na tela, e o olho esquerdo que utiliza filtro vermelho verá a imagem em vermelho projetada à direita na tela. É importante deixar claro que a visualização depende da cor de fundo da cena. Uma vez que o fundo da cena venha a ser branco, o uso de um filtro vermelho, refletirá a cor vermelha de um objeto vermelho projetado, bem como a cor vermelha contida no branco (união de todas as cores) de fundo da cena. Neste caso, um objeto em azul não será refletido, e portanto se sobressairá como um objeto “preto” (sem reflexão) sobre um fundo “branco” (com reflexão)(Figura 4.8). Fig. 4.8 - Em (a) a imagem projetada com as cores complementares vermelho e azul sobre um fundo branco. (b) mostra a imagem visualizada através de um filtro vermelho. 57 Uma vez que o fundo da tela do monitor está sem cor (preto), a imagem vermelha projetada pode ser vista quando é utilizado um filtro vermelho, pois a imagem azul e o fundo não são refletidos. O mesmo acontece com a imagem projetada em azul. Desta forma, para a obtenção do cruzamento das linhas da visão, buscando o efeito de imagem “saindo da tela”, a imagem direita do par estereoscópico foi projetada em vermelho, correspondendo ao filtro vermelho esquerdo do óculos de visualização, e a imagem esquerda foi projetada em azul, correspondendo ao filtro azul direito dos óculos (Figura B.7). 58 59 CAPÍTULO 5 CONCLUSÕES Através do presente trabalho, pudemos observar que a Realidade Virtual não só é viável, mas também bastante vantajosa quando utilizada em aplicações científicas. Uma vez que foi possível a visualização de determinado fenômeno num ambiente semelhante ao real, neste caso um satélite em órbita e abrindo seus painéis solares no espaço, verificou-se que a Realidade Virtual é uma poderosa ferramenta na simulação de projetos científicos a um custo reduzido. Este trabalho, no entanto, contou com o uso de um simples microcomputador (PC 486) e um software desenvolvido para atuar neste tipo de máquina. Este software, o REND386, mostrou-se bastante rápido em animações que não envolvessem superfícies complexas (compostas por muitos polígonos), sendo assim, superfícies circulares apresentaram uma definição grosseira. Características como sombreamento, iluminação, uso de câmeras, visualização 3D são algumas das características encontradas no REND386. No entanto, softwares mais modernos e poderosos de Realidade Virtual apresentam ferramentas que permitem a modelagem de um ambiente mais realístico, com mais recursos de animação, além de serem compatíveis com diversos tipos de hardware adicional, como: luvas de dados, capacetes de visualização e dispositivos de feedback; ambos podendo ser utilizados para trabalhos futuros. O fato dos objetos modelados e das dimensões do mundo virtual serem muito elevados para o REND386 gerar corretamente o par estereoscópico das imagens, fez com que fosse gerada uma imagem 3D separadamente. A geração desta imagem devido às restrições do REND386, novamente fez-nos crer que sistemas de Realidade Virtual mais poderosos, combinados com hardware específico, e que utilizam rotinas 60 gráficas disponíveis diretamente na máquina, tornam o processo de geração de imagens estereoscópicas rápido e eficiente. A imagem gerada pode ser visualizada em 3D através do uso de óculos com filtros coloridos, permitindo a visualização da imagem por diversos usuários. Apesar disso, este tipo de óculos é bastante cansativo se utilizado por algum tempo. Como alternativa, existem óculos obturadores e polarizadores, que apesar de exigirem mais tecnologia de hardware e software para serem utilizados, também permitem a visualização de uma imagem por diversos usuários. 61 GLOSSÁRIO estereoscopia Ciência que trabalha com imagens para produzir um modelo visual tridimensional com características análogas às da mesma imagem quando vista através da visão binocular real (Moffitt e Mikhail, 1980). feedback Realimentação. Mudança como resposta à manipulação de um dispositivo de entrada de dados. Dispositivos de saída que oferecem feedback transmitem pressão, força ou vibração para fornecer ao participante da RV a sensação do tato. O feedback tátil simula a sensação ligada à pele. O feedback de força simula peso ou resistência ao movimento (Jacobson, 1994). HMD (head-mounted display) Óculos ou capacetes com pequenos monitores que emitem imagens, posicionando cada monitor diante de cada olho do usuário (Pimentel e Teixeira, 1995). joystick Dispositivo de entrada de dados capaz de realizar movimentos em duas dimensões: para frente, para trás e para os lados. LCD Display de cristal líquido. O cristal líquido é fixado entre dois pedaços de vidro e polarizadores, sendo ativado por uma fonte externa. A corrente elétrica alterna o cristal entre transparente e opaco (Jacobson, 1994). MIDI Musical Instrument Digital Interface. Uma linguagem simples de computador que permite que instrumentos de música digital, como sintetizadores, comuniquem-se com computadores e entre si (Jacobson, 1994). mundo virtual Mundo digital. “Mundo” criado a partir de técnicas de computação gráfica. Através de dispositivos de saída de dados que estimulam os sentidos do participante, este mundo transforma-se num ambiente de RV (Vince, 1995). 62 off-axis, projeção Tipo de projeção que utiliza dois centros de projeção, um para o olho esquerdo e um para o olho direito, para a geração do par estereoscópico de uma imagem (Hodges, 1992). on-axis, projeção Tipo de projeção, utilizado para a geração do par estereoscópico de uma imagem, que trabalha com um único centro de projeção em conjunto com translações horizontais da imagem (Hodges, 1992). tempo de latência Intervalo de tempo entre um movimento executado pelo usuário e o resultado deste movimento (Pimentel e Teixeira, 1995). tempo real Pouco ou nenhum atraso no tempo de resposta, dando a impressão de resposta instantânea (Jacobson, 1994). rendering Processo de criação de imagens a partir de modelos (Foley et al., 1990). Utiliza técnicas de computação gráfica para o cálculo e desenho dessas imagens (Pimentel e Teixeira, 1995). 63 REFERÊNCIAS BIBLIOGRÁFICAS Adams, L. Windows visualization programming with C/C++. New York, McGraw-Hill, 1994. American Society of Photogrammetry (ASP). Manual of photogrammetry. 4.ed. American Society of Photogrammetry, 1980. Foley, J.D.;Van Dam, A.; Feiner, S.K.;Hughes, J.F. Computer graphics, principles and practice. 2.ed. New York, Addison Wesley, 1990. Gibson, W. Neuromancer. New York, ACE Books, 1984. Gradecki, J. Kit de montagem da realidade virtual. São Paulo, Berkeley, 1995. Gradecki, J. Virtual reality programmer’s kit. New York, John Wiley & Sons, 1994. Hodges, L.F. Tutorial: Time-Multiplexed Stereoscopic Computer Graphics. IEEE Computer Graphics & Applications, 12(3):20-30, Mar. 1992. Instituto Nacional de Pesquisas Espaciais. CBERS China-Brazil Earth Resources Satellite. Um tributo sino-brasileiro aos recursos naturais do nosso planeta. São José dos Campos, INPE, 1995. Jacobson, L. Realidade virtual em casa. Rio de Janeiro, Berkeley, 1994. Latta, J.N.; Oberg, D.J. A Conceptual Virtual Reality Model. IEEE Computer Graphics & Applications, 14(1):23-29, Jan. 1994. Loch, C; Lapolli, E.M. Elementos básicos da fotogrametria e sua utilização prática. Florianópolis, Editora da Universidade Federal de Santa Catarina, 1985. Machover, C.; Tice, S.E. Virtual Reality. IEEE Computer Graphics & Applications, 14(1):15-16, Jan. 1994. Moffitt, F.H.; Mikhail, E.M. Photogrammetry. 3.ed. New York, Harper & How Publishers, 1980. Paredes, E.A. Introdução à aerofotogrametria para engenheiros. Maringá/PR, CONCITEC, CNPq, 1987. v. 1. Pauwels, G.J. Atlas geográfico Melhoramentos. São Paulo, Melhoramentos, 1989. 64 Pimentel, K.; Teixeira, K. Virtual reality - through the new looking glass. 2.ed. New York, McGraw-Hill, 1995. Rheingold, H. Virtual reality. New York, Touchstone, 1991. Schweber, L.; Schweber, E. Realidade Virtual. PC Magazine Brasil, 5(6):51-72, Jun. 1995. Stampe, D.; Roehl, B.; Eagan, J. Virtual reality creations. Corte Madera/California, Waite Group Press, 1993. Sturman, D.J; Zeltzer, D. A Survey of Glove-based Input. IEEE Computer Graphics & Applications, 14(1):30-39, Jan. 1994. Tori, R.;Arakaki, R.;Massola, A.M.A.; Filgueiras, L.V.L. Fundamentos de computação gráfica. Rio de Janeiro; São Paulo, Livros Técnicos e Científicos Editora, 1987. Vince, J. Virtual reality systems. Cambridge, Addison-Wesley, 1995. 65 APÊNDICE A BIBLIOGRAFIA COMPLEMENTAR Banon, G.J.F. Bases da computação gráfica. Rio de Janeiro, Campus, 1989. Cor, Teoria da. Enciclopédia Barsa. Rio de Janeiro, Encyclopædia Britannica, 1979, v.4, p. 439-441. Hodges, L.F.; McAllister, D.F. Stereo and alternating-pair techniques for display of computer-generated images. IEEE Computer Graphics & Applications, 5(9):3845, Sep. 1985. Kalawsky, R.S. The science of virtual reality and virtual environments. New York, Addison Wesley, 1993. Machado, L.S. Conceitos de Realidade Virtual. São José dos Campos, Instituto Nacional de Pesquisas Espaciais, 1995. (INPE-5975-PUD/025). Terra. Encliclopédia Barsa. Rio de Janeiro, Encyclopædia Britannica, 1979, v.13, p. 232-237. 75 APÊNDICE C SISTEMA DE VISUALIZAÇÃO DOS PROTÓTIPOS Os protótipos gerados em 4.1 e 4.2 podem ser visualizados através da utilização do disquete e óculos anexos a este trabalho, e que encontram-se no final deste apêndice. Para tanto, o requisito mínimo é um microcomputador 386SX ou superior, com monitor VGA colorido, um mouse, e o sistema operacional MSDOS. Para a execução do programa basta digitar “A:\visao” na linha de comando (ou selecionar EXECUTAR no menu do WINDOWS 3.x ou 95 e digitar A:\VISAO), sendo que A é a unidade de disquete. C.1 Visualizando o satélite CBERS em 3D Primeiramente, aparecerá na tela do monitor a imagem estereoscópica do satélite CBERS nas cores complementares azul e vermelho. Para a sua visualização é necessário o uso dos óculos com filtros coloridos azul e vermelho encontrados no final deste apêndice. A distância média para visualização da imagem é de 60cm do monitor, e os óculos deverão ter o filtro azul posicionado sobre o olho direito e o filtro vermelho sobre o olho esquerdo. É importante notar, que ao inverter-se as lentes vermelha e azul, o relevo da imagem também ficará invertido, uma vez que as linhas de visão não mais se cruzarão, e portanto, o olho direito verá a imagem direita e o olho esquerdo verá a imagem esquerda. Para a finalização, basta pressionar qualquer tecla. Automaticamente iniciar-se-á o mundo virtual gerado no REND386. 75 C.2 Visualizando o satélite CBERS no espaço Para navegar dentro do mundo virtual, deve-se utilizar as setas de navegação do próprio teclado ou uma das dez câmeras programadas. As teclas ↑ e ↓ permitem a locomoção para frente e para trás, em profundidade. Já as teclas ← e → permitem um movimento de rotação ao redor do eixo y. Quando combinadas com a tecla Shift esquerdo do teclado, é possível a movimentação para a esquerda (← ), direita (→ ), para cima (↑) ou para baixo (↓). As câmeras programadas nas teclas F1 a F10 permitem uma mudança instantânea de posição, sendo que as câmeras em F1, F8, F9 e F10 auxiliam na visualização da órbita da Terra ao redor do Sol; F2, F3 e F4 permitem visualizar as faces iluminada e sombria da Terra, bem como a órbita do satélite ao redor dela; e F5, F6 e F7 auxiliam na visualização da abertura dos painéis solares do satélite. A utilização das câmeras não impede a execução de outros movimentos, no entanto para retornar à posição inicial de determinada câmera deve-se pressionar a tecla HOME. Para dar início às animações são necessários os seguintes passos: Para a abertura e fechamento dos painéis solares: - posicionar-se na câmera 5 (F5) - deslocar-se para frente (↑) Obs.: Para parar a animação, permanecendo os painéis solares abertos, deve-se estar na posição inicial da câmera 5, para isto, basta apertar a tecla HOME. Para a órbita do satélite ao redor da Terra: - “clicar” com o mouse sobre a Terra, selecionando-a. Obs.: Após iniciado, este movimento não pode ser interrompido (*). Após a seleção da Terra, esta apresentará um contorno ao redor de todos os polígonos que a compõem. Para retirar esta marcação, basta “clicar” novamente sobre a Terra. 75 Para a órbita da Terra (e satélite) ao redor do Sol: - “clicar” com o mouse sobre o Sol. Obs.: Após iniciado, este movimento não pode ser interrompido (*). Após a seleção do Sol, este apresentará um contorno ao redor de todos os polígonos que o compõem. Para retirar esta marcação, basta “clicar” novamente sobre o Sol. (*) todas as animações podem ser interrompidas e reiniciadas a qualquer momento através da tecla A. No entanto, esta interrupção não acontece individualmente para cada animação. Um menu com todos os comandos disponíveis pode ser ativado a partir da letra H do teclado. Para finalizar o sistema basta pressionar ESC seguido de Y. 75