• Nenhum resultado encontrado

Neste cap´ıtulo, foram apresentados conceitos relacionados a t´ecnicas e crit´erios de teste, enfatizando a t´ecnica estrutural que utilizam grafos orientados para que possam represen- tar o controle l´ogico de um programa. A fim de selecionar um conjunto de casos de teste que satisfa¸cam os requisitos extra´ıdos do ambiente virtual a serem testados, crit´erios de teste ser˜ao definidos baseados no grafo de cena.

CAP´ITULO 2. TESTE DE SOFTWARE Nessa linha de pesquisa, um dom´ınio que at´e agora pouco se explorou ´e o de sistemas de Realidade Virtual (RV). No pr´oximo cap´ıtulo, ´e realizado um estudo sobre RV e Grafos de Cena (GC), uma forma para se descrever Ambientes Virtuais (AVs).

Cap´ıtulo

3

Realidade virtual

A Realidade Virtual pode ser entendida como uma interface avan¸cada para aplica¸c˜oes computacionais, na qual o usu´ario pode interagir, em tempo real, a partir de um ambiente tridimensional sint´etico, utilizando dispositivos multissensoriais (Kirner e Siscoutto, 2008). Aplica¸c˜oes de RV s˜ao aquelas nas quais um determinado Ambiente Virtual (AV) ´e simulado por meio do computador e que permitem que o usu´ario interaja com esse AV, seja por meio de uma simples tela de computador, seja por meio de dispositivos espec´ıficos que permitam a imers˜ao do usu´ario (Burdea e Coiffet, 1994; Jacobson, 1991; Krueger, 1991).

Um dos precursores da tecnologia de RV foi o pesquisador Ivan E. Sutherland, que desenvolveu o primeiro sistema gr´afico interativo. Este sistema fazia interpreta¸c˜oes de de- senhos como dados de entrada e realizava associa¸c˜oes com topologias conhecidas, gerando novos desenhos (Sutherland, 1964).

O termo conhecido como Realidade Virtual surgiu em meados dos anos 70. Pesqui- sadores sentiram a necessidade de uma defini¸c˜ao para diferenciar as simula¸c˜oes compu- tacionais tradicionais dos mundos digitais que come¸cavam a ser criados. Nasciam ent˜ao as interfaces de terceira gera¸c˜ao. Intera¸c˜oes eram produzidas sobre as situa¸c˜oes geradas, utilizando-se comandos n˜ao convencionais, diferenciando-se das interfaces dotadas apenas de reprodu¸c˜ao multim´ıdia, mantidas at´e ent˜ao por interfaces bidimensionais de primeira e segunda gera¸c˜ao (Bolt, 1980; Krueger, 1977; Lanier, 1992). O termo ´e bastante abran- gente levando acadˆemicos, desenvolvedores de software e pesquisadores a definirem RV

CAP´ITULO 3. REALIDADE VIRTUAL baseados em suas pr´oprias experiˆencias. De acordo com Pimentel e Teixeira (1995), a RV conduz o usu´ario a uma experiˆencia interativa e imersiva fundamentada em imagens gr´aficas tridimensionais geradas em tempo real por um computador.

Machover e Tice (1994) afirmam que a qualidade dessa experiˆencia de RV ´e essencial, pois deve estimular ao m´aximo, de forma criativa e produtiva, o usu´ario. Os sistemas de RV tamb´em precisam fornecer uma rea¸c˜ao de forma coerente aos movimentos do par- ticipante, tornando a experiˆencia consistente. O principal objetivo da tecnologia de RV ´e fazer com que o participante desfrute de uma sensa¸c˜ao de presen¸ca no mundo virtual (Jacobson, 1994).

Para proporcionar uma sensa¸c˜ao de presen¸ca em aplica¸c˜oes de RV ´e essencial que o ambiente simulado seja representado por meio de objetos tridimensionais (3D) e propor- cione intera¸c˜ao em tempo real. Por outro lado, esse tipo de representa¸c˜ao em dispositivos que s˜ao inerentemente bidimensionais n˜ao ´e uma tarefa simples e demanda alto consumo de recursos computacionais (Silva et al., 2009).

No final de 1986, uma equipe da NASA j´a possu´ıa um AV que permitia aos usu´arios ordenar comandos pela voz, ouvir fala sintetizada e som 3D, al´em de manusear objetos virtuais diretamente por meio de movimentos das m˜aos. Assim, verificou-se a possibilidade de comercializa¸c˜ao de um conjunto de novas tecnologias, com o custo de aquisi¸c˜ao e desenvolvimento cada vez mais acess´ıvel (Pimentel e Teixeira, 1995). A conscientiza¸c˜ao de que as iniciativas da NASA tornavam-se tecnologias comercializ´aveis deu in´ıcio a in´umeras pesquisas em RV no mundo inteiro. Organiza¸c˜oes variando de empresas de software at´e grandes corpora¸c˜oes de inform´atica come¸caram a desenvolver e vender produtos e servi¸cos ligados `a RV. Em 1987, a VPL Research Inc.1 come¸cou a vender capacetes e luvas digitais e em 1989 a AutoDesk2 apresentava o primeiro sistema de RV baseado em um computador pessoal (PC) (Jacobson, 1994).

A constru¸c˜ao de um AV, segundo Silva et al. (2004), aumentou em complexidade, estabelecendo novas formas de representa¸c˜ao de objetos na cena. Dentre elas est˜ao os chamados grafos de cena, que proporcionam camadas de abstra¸c˜ao para organizar de forma hier´arquica os objetos de um AV. Grafos de cena ser˜ao discutidos em detalhes na Se¸c˜ao 3.3.

Com o desenvolvimento das tecnologias de RV, diversos tipos de dispositivos de en- trada e de sa´ıda foram surgindo ao longo do tempo. Para ocorrer uma intera¸c˜ao com o ambiente virtual, o usu´ario pode utilizar equipamentos convencionais, como um mouse

1

http://vpl.astro.washington.edu/sci/index.html

2

CAP´ITULO 3. REALIDADE VIRTUAL ou um teclado comum (Figura 3.1), ou equipamentos n˜ao convencionais, como luva de dados3 e equipamento h´aptico4 (Figura 3.2).

Figura 3.1: Equipamentos convencionais, teclado e mouse.

Figura 3.2: Equipamento H´aptico (Sensable, 2012) e Luva de Dados (5DT, 2012).

Como um exemplo de intera¸c˜ao, o usu´ario pode sentar-se em uma cadeira comum, utilizar um capacete de RV, tamb´em chamado de HMD5 (Head Mounted Display) (Figura 3.3) ou um monitor comum para visualizar a cena virtual, ou at´e mesmo pode estar cercado por paredes onde as imagens s˜ao projetadas, denominada CAVE (DeFanti et al., 2009) (Figura 3.4), movendo os modelos de objetos utilizando um mouse sem fio ou um dispositivo h´aptico, eletromagn´etico ou uma luva de dados (Corrˆea et al., 2009).

Para facilitar o desenvolvimento de aplica¸c˜oes multidispositivos, surgiram algumas bibliotecas de RV que s˜ao capazes de fornecer dados como a posi¸c˜ao do dispositivo, ou a sua orienta¸c˜ao, sem que a aplica¸c˜ao necessite saber de qual dispositivo este dado est´a vindo. Elas agem como uma camada de abstra¸c˜ao. Al´em dos dispositivos de entrada, a aplica¸c˜ao pode gerar a sa´ıda visual sem saber se ela ser´a apresentada em um monitor ou em uma parede com v´arias telas de proje¸c˜ao.

3 http://www.5dt.com/products/pdataglove5u.html 4 http://www.sensable.com 5 http://www.5dt.com/products/phmd.html

CAP´ITULO 3. REALIDADE VIRTUAL

Figura 3.3: Head Mounted Display (5DT, 2012).

Figura 3.4: Foto de uma CAVE utilizada em DeFanti et al. (2009).

3.1

Bibliotecas gr´aficas

A constru¸c˜ao de ambientes virtuais consiste em representar objetos do mundo real ou abs- trato utilizando primitivas que possam reproduzi-lo no ambiente computacional. Existem v´arias t´ecnicas dispon´ıveis para essa representa¸c˜ao, sendo que uma das mais comuns ´e a representa¸c˜ao por malhas de triˆangulos (Birthelmer et al., 2003; Campagna et al., 1998). Campagna et al. (1998) dizem que malha de triˆangulos serve como uma base para a su- perf´ıcie primitiva adaptada para aproximar uma geometria suave de um modelo. Permite tamb´em adaptar o n´umero preciso de primitivas para a forma geom´etrica, em vez de um modelo arbitr´ario.

Em geral as bibliotecas gr´aficas s˜ao respons´aveis por fazer a liga¸c˜ao entre a aplica¸c˜ao e a placa gr´afica, como mostra a Figura 3.5. A aplica¸c˜ao envia a malha, juntamente com seus atributos (como cor, material e textura) para a biblioteca gr´afica e esta, por sua vez, envia os v´ertices para a placa gr´afica que far´a os c´alculos necess´arios para transformar a

CAP´ITULO 3. REALIDADE VIRTUAL coordenada 3D dos v´ertices dos triˆangulos em pixels na tela do computador (Shreiner, 2009).

Figura 3.5: Etapas de renderiza¸c˜ao de um objeto 3D (Shreiner, 2009).

As bibliotecas gr´aficas, segundo Walsh (2002), tamb´em chamadas de APIs (Appli- cation Programming Interface) gr´aficas, mais comumente utilizadas s˜ao a DirectX e a OpenGL. A DirectX 6 ´e uma cole¸c˜ao de APIs desenvolvida pela empresa Microsoft e distribu´ıda para tarefas relacionadas `a programa¸c˜ao de jogos para o sistema operacio- nal Windows. A OpenGL 7 ´e uma API livre que surgiu na d´ecada de 90 utilizada na computa¸c˜ao gr´afica, dispon´ıvel na maioria dos sistemas operacionais.

Com o avan¸co dos recursos computacionais e da tecnologia das placas gr´aficas, das aplica¸c˜oes de computa¸c˜ao gr´afica e, por conseguinte, das aplica¸c˜oes de RV, efeitos visuais inovadores est˜ao sendo produzidos em tempo real. No entanto, o avan¸co da tecnologia das placas gr´aficas traz consigo um aumento de processamento e complexidade de desen- volvimento para conseguir efeitos ainda melhores. Tamb´em emprega modelos de objetos tridimensionais mais complexos, com mais v´ertices e maior n´ıvel de detalhe, levando o aumento dos dados a serem processados nas bibliotecas gr´aficas.

Segundo Akenine-M¨oller et al. (2008), para conseguir acompanhar este avan¸co na tec- nologia de processamento da placa gr´afica, t´ecnicas de otimiza¸c˜ao s˜ao utilizadas. Pode-se tomar como exemplo desse tipo de mecanismo, a t´ecnica de Culling (Figura 3.6). Nessa t´ecnica, os objetos que estiverem fora do campo de vis˜ao do observador ou atr´as de outro objeto, s˜ao descartados. Caso n˜ao houvesse esse algoritmo, todos os objetos teriam que passar por todo o pipeline de renderiza¸c˜ao at´e que fossem descartados no final por n˜ao estarem dentro da ´area vis´ıvel do dispositivo de sa´ıda.

6

Pode ser encontrada em (http://www.microsoft.com/windows/directx).

7

CAP´ITULO 3. REALIDADE VIRTUAL

Figura 3.6: Amostra de um AV e do campo de vis˜ao do observador na cˆa- mera (Akenine-M¨oller et al., 2008).

Renderiza¸c˜ao ou pipeline de renderiza¸c˜ao ´e o processo pelo qual um computador cria imagens para serem exibidas em dispositivos bidimensionais a partir de modelos tridimen- sionais (Shreiner, 2009).

A principal fun¸c˜ao do pipeline ´e gerar, ou renderizar, uma imagem bidimensional, da- dos uma cˆamera virtual, objetos tridimensionais, fontes de luz, sombreamentos, texturas, entre outros. Na Figura 3.6 s˜ao ilustrados os objetos na cena com uma cˆamera delimi- tando o campo de vis˜ao que ser´a renderizado, depois de aplicada a t´ecnica de Culling. ´E ilustrada tamb´em a vis˜ao da cˆamera que ser´a exibida para o observador.

A fim de facilitar o desenvolvimento de aplica¸c˜oes que utilizam gr´aficos tridimensionais, uma forma de representar os objetos em um AV pode ser utilizada: s˜ao os chamados grafos de cena, abordados na pr´oxima se¸c˜ao.