ine 5341

Programa

OpenGL

Trabalhos 2001

Trabalhos 2002

Links

Bibliografia

Plano de Ensino

Parte IV - Topicos Avançados

Realidade Virtual

Introdução
VRML é uma Linguagem para Modelação de Realidade Virtual usada para criar mundo de três dimensões. Trata-se de um formato de arquivo objeto de 3D, análogo ao HTML (para objetos tridimensionais). Usando-se formas pré-definidas e se especificando novas formas a partir dessas, pode-se atribuir cor, forma, luz e outros a um documento VRML.

Há um tempo, surgiu a idéia de levar a Realidade Virtual para a internet. Dessa idéia surgiu o VRML, que é a abreviação de Virtual Reality Modeling Language. VRML é uma linguagem independente de plataforma que permite a criação de ambientes virtuais por onde se pode navegar, visualizar objetos por ângulos diferentes e até interagir com eles. Hoje, graças ao crescente investimento de grandes empresas, o VRML é o padrão paradesenvolvimento de aplicações de realidade virtual multi-usuário na internet. O objetivo da linguagem é este mesmo: levar a realidade virtual para o usuário comum, através da internet. Com o rápido avanço datecnologia, os computadores pessoais estão cada vez mais rápidos e poderosos, e isto faz com que a realidade virtual deixe de ser objeto de estudo dos grandes centros de pesquisa e possa ser utilizada por usuários comuns.

A linguagem possui toda a estrutura necessária para o desenvolvimento de aplicações de realidade virtual. A primeira versão (VRML1.0), com exceção de algumas extensões, não possibilita muita interação do usuário com o mundo virtual, mas versões recentes acrescentam características como animação, som, movimentos de objetos e interação entre usuários. A última versão é a 2.0, chamada Moving Worlds VRML 2.0. Por serindependente de plataforma, uma aplicação VRML roda em qualquermáquina que tenha um browser VRML, ou seja, uma aplicação que roda no PC, roda numa Silicon Graphics,numa Sun, etc. sem nenhuma alteração.

A indústria do entretenimento é a que mais tem se beneficiado com os recursos da RV. Muitas tecnologias também são desenvolvidas partindo da necessidade que certos filmes têm em passar para a tela as idéias no papel. Um exemplo é a empresa Industrial Light & Magic de George Lucas que pretende num futuro próximo desenvolver atores humanos virtuais mais realistas para interagir com atores reais (como no filme pioneiro Roger Rabbit).

Na World Wide Web, a RV é usada principalmente em jogos interativos criando ambientes em que o nível de realidade dos cenários se aproxima do mundo real. Exemplos são os jogos MUD

Sociedades virtuais juntam em mesmo espaço humanos, avatares e objetos em 3D. Servindo como foco de estudo para comportamento humano em casos concretos.

Mundos em VRML são adotados por usuários que desejam interação mais face a face. O Brasil Virtual é um exemplo onde criou-se uma espécie de cidade tridimensional na qual habitantes podem construir, comunicar-se e votar. 

Na medicina virtual, a RV possibilita construção de ambientes tridimensionais para operações delicadíssimas a serem efetuadas, sem prejuízo para o paciente. É a maneira de praticar as aulas teóricas e ainda consultar a distância através da telemedicina. O projeto ‘Homem Visível’ foi pioneiro ao mapear todo o corpo humano montando uma gigantesca base de dados de imagens virtuais. Este projeto foi desenvolvido pela Natinal Library Medicine (NLM), a maior biblioteca médica do mundo e ponto de referência da medicina mundial. O processo baseou-se em escanear e digitalizar cadáveres perfeitos de ambos sexos - obtendo-se as imagens tomográficas de ambos, cada corpo foi seccionado em fatias de 1 mm de espessura e fotografado por câmara digital colorida de alta resolução. No total 56 Gbytesde espaço que constituem a 19 000 imagens produzidas. O primeiro projeto a utilizar esta base de dados foi a Analyse da Clínica Mayo, em Rochester, Estados Unidos. O software Analyse permite uma viagem virtual pelo corpo humano.

A Arquitetura e a Construção Civil ainda usarão a RVpara que o usuário escolha e determine o ambiente em que vai morar. Mas já é possível o cliente andar pela planta antes de aprovar o projeto, tudo isso feito por simulações virtuais como a Faculdade de Arquitetura de Utah. Nessa faculdade, criou-se um modelo de hospital em VRML na WEB, onde se permite críticas e interação com o projeto.

Em design projetam-se roupas pelo MIT (Instituto de Tecnologia), esta é a função do Wearable computer. O MITtambém desenvolveu Photo Book, um amplo banco de dados de faces onde pode-se procurar rostos conhecidos entre os disponíveis no sistema - particularmente útil para a polícia, jornalistas, etc. O software é capaz de notar pequenas mudanças no rosto (na faceouum corte de cabelo). 

Histórico de VRML
VRML
foi exposto na primavera de 1994 na Primeira Conferência de World Wide Web anual, rmGenebra- Suíca.

Tim Berners-Lee e Dave Raggett organizaram uma sessao de Birds-of-a-Feather - Penas de um Pássaro - (BOF) para discutir interfaces de VR para a World Wide Web. Vários freqüentadores das discussões descreveram projetos ainda em planejamento para construir ferramentas de visualização gráfica para 3D que interagissem com a Web. Todos concordaram com a necessidade dessas ferramentas para ter uma linguagem comum de especificação de descrição de cenários 3De hiperlinksWWW - um análogo ao HTML para VR. O termo VRML foi forjado, e o grupo resolver começar com especificações de trabalho depoisda conferência. A palavra MarkUp foi posteriormente modificada para Modelação para refletir a natureza gráfica do VRML.

Logo após a Genebra, as listas de discussão www-vrml foram criadas para o desenvolvimento de uma especificação para a primeira versão de VRML. A adesão foi excepcional: após uma semana havia mais de mil membros. Após se estabelecer,Mark Pesce do Labyrinth Group anunciou que desejava aprontar um esboço da especificação para a Conferência de Outono de WWW de 1994, em apenas 5 meses. Era um calendário muito difícil: mas a primeira versão não era muito ambiciosa e o VRML poderia ser adaptado de uma solução existente. A lista rapidamente acatou que um grupo de regras para a primeira versão, e começou a procurar por tecnologias compatíveis com as necessidades do VRML.

A procura por tecnologias existentes envolveu vários tipo de candidatos no mundo. Depois de muito deliberar a lista chegou a um consenso: o Open Inventor ASCII File Format da Silicon Graphics Inc. O Inventor File Format suportava descrições completas de cenários de 3D com polígonos representando objetos, iluminação, materiais, propriedades de ambientes e efeitos realistas. Umsubconjunto do Inventor File Format, com extensões com suportes para redes, formas para base de VRML.

Gavin Bell da Silicon Graphics adaptou para a lista de mail o Inventor File Format para VRML, com design de acordo com lista de discussão. SGI tem publicidade estabelecida que o formato de arquivo está disponível para uso do mercado aberto, e tem contribuído para um parser de formato de arquivo num domínio público para bootstrap(mecanismo de boot) para desenvolvimento de visualizador de VRML.


 

 

Características de VRML

Tudo que se precisa para criar uma cena em VRML é um editor de textos. Uma vez que os arquivos são salvos em formato UTF-8 com a extensão .wrl. A linguagem apenas descreve como os ambientes tridimensionais devem ser apresentados, pois os arquivos não são compilados. A versão 1.0 é basicamente uma simplificação do Open Inventor, com propriedades de materiais, transformações, visões de câmera, texturas mapeadas e iluminação. Há pouca possibilidade de interação, tendo como principal objetivo a criação de mundos virtuais estáticos e criação de âncoras para outros ambientes.
A versão 2.0 permite que os objetos do mundo virtual possam se movimentar e responder a eventos, baseados nas iniciativas do usuário. Permite também a utilização de objetos multimídia, como sons e filmes. As principais características desta versão são: melhoria dos mundos estáticos, interação, animação, comportamento baseado em scripts e prototipação de novos objetos VRML. 
A linguagem VRML é baseada no conceito de nós (Nodes), onde cada nó é um objeto com alguma funcionalidade. Geralmente o nome do nó identifica sua funcionalidade. 

Cada nó é formado por atributos que o caracterizam. Esses atributos podem assumir valores numéricos, caracteres, e URLs indicando arquivos externos ou não. As URLs podem indicar links para outros arquivos VRML, arquivos HTML, ou imagens. 

A figura abaixo mostra a estrutura hierárquica de nós que compõem uma cena VRML. 

Estrutura hierárquica de nós que compõem uma cena VRML exemplo. 
 

Os nós indicados na figura XX caracterizam objetos que possuem características geométricas e propriedades materiais dos objetos apresentados pela cena. Os nós VRML constituem a cena a ser apresentada ao usuário através de um navegador e contém toda a informação a respeito da cena, como a forma dos objetos, sua cor, sua textura e localização no mundo virtual.

A figura abaixo mostra uma cena VRML vista através de um navegador.
Uma esfera em três dimensões em VRML

É necessário um programa adicional (plug-in) ao navegador para possibilitar a visualização de mundos virtuais VRML. 

A Linguagem VRML

Os mundos virtuais VRML são compostos basicamente de texto e podem ser gerados a partir de um editor gráfico ou um editor de textos. O código gerado é interpretado pelo navegador através do plug-in e a cena é mostrada ao usuário. O usuário interage com os objetos do mundo virtual através de botões apresentados na tela, gerados pelo plug-in

A seguir é mostrado um código exemplo de uma cena básica escrita em linguagem VRML que representa o objetos mostrado na figura abaixo (esfera). 
#VRML V2.0 utf8
Shape { 
  appearance Appearance {
    material Material {
      diffuseColor 1 0.5 0}
  }
  geometry Sphere{radius 2}
}

O exemplo mostra a sintaxe do nó Shape e seus atributos (appearance e geometry). Os atributos dos nós podem ser caracterizados por valores ou por outros nós (no caso Appearance e Sphere). Os nomes de nós iniciam com letra maiúscula e os nomes de atributos iniciam com letra minúscula.

Extensão NURBS para VRML

Algumas extensões foram propostas para a linguagem VRML padrão (ISSO/IEC 14772). É utilizada neste trabalho a extensão VRML que permite a utilização de modelagem NURBS, proposta pela empresa Blaxxun. Esta extensão não faz parte da especificação da linguagem VRML padrão, mas utiliza as mesmas características da linguagem citadas anteriormente.
A utilização do modelo NURBS em VRML traz as seguintes vantagens: 
-Tamanho reduzido dos arquivos devido à representação compacta de NURBS
-Formas com superfícies mais suaves
-Autoria facilitada devido a vários softwares gráficos utilizarem NURBS
-Melhor animação devido à mudança de poucos parâmetros causarem grande impacto nas formas
-Escalabilidade automática de apresentação (Level of Detail-LOD) dependendo da CPU e performance da placa de vídeo e complexidade da cena.
As curvas e superfícies NURBS tem sido utilizadas em desenho industrial de objetos como carros, barcos, aviões, etc, à bastante tempo devido as suas características matemáticas serem adequadas para a modelagem de formas fluidas. A grande utilização de NURBS em aplicação CAD/CAM/CAE, justifica-se pelas seguintes razões: 

-Formas podem ser representadas utilizando NURBS sem perda de exatidão matemática, sem aproximação por polígonos.

-Métodos intuitivos de geração e manipulação de formas são fornecidos por várias ferramentas
-Os algoritmos são relativamente rápidos e estáveis
A figura abaixo mostra a sintaxe do nó VRML que representa uma curva NURBS.

NurbsCurve {

fieldMFFloatknot[]# (- , )
fieldSFInt32order3# [2, )
exposedFieldMFVec3fcontrolPoint[]# (- , )
exposedFieldMFFloatweight[]# (0, )
exposedFieldSFInt32tessellation# (- , )
}

A curva NURBS é caracterizada pelos parâmetros knot, order, controlPoint, weight e tesselation.O parâmetro knot é caracterizado por um conjunto de valores numéricos Reais (MFFloat). O parâmetro order indica a ordem da curva através de um valor inteiro (SFInt32). O parâmetro controlPoint é formato por um conjunto de pontos no espaço tridimensional (MFVec3f). O seguinte parâmetro chamado weight é descrito através de um conjunto de valores numéricos Reais (MFFloat). Por fim, o fator tesselation é indicado através de um valor inteiro (SFInt32) e caracteriza a qualidade da renderização da imagem. A descrição desses parâmetros em mais detalhes é apresentada no capítulo XX, onde são caracterizados os fundamentos matemáticos utilizados na representação baseada em NURBS. Para a geração de uma curva NURBS em VRML, é apenas necessário que se forneça os valores dos parâmetros do nó VRML. Esse código será então interpretado pelo navegador e a cena será gerada. Um exemplo de um objetos VRML baseado em NURBS é mostrado na figura abaixo.
 
 


Gráfico VRML baseado em NURBS

Aplicações

A realidade virtual é forma de interface mais natural entre o computador e o ser humano. Por isso, o número de aplicações é muito grande, em diversas áreas do conhecimento. A seguir estão alguns exemplos deaplicação : na área de visualização de dados, podemos usar o VRML para criar gráficos tridimensionais, porexemplo. É fácil visualizar os números de umgráfico 3D. Fica mais fácil ainda quando podemosvisualizar este gráfico por vários ângulos diferentes. Veja um exemplo desta aplicação: CAD - VRML permite que o projetista ou desenhista vejaseu modelo CAD em um ambiente 3D virtual interativo, podendo manipular e visualizar omodelo de forma livre. Ou seja, o projetista pode acompanhar o desenvolvimento do projeto usando VRML para visualizar seu modelo em três dimensões.

Passos Básicos

É uma linguagem interpretada composta por nó, campo e comentário.

Usa-se : #VRML V1.0 asciipara que o interpretador reconheça este documento como VRML (*.wrl).

* Nó: comando que define formas e propriedades em VRML

Ex. de Primitivas: cubo, esfera, cilindro e cone,

=> Transform (move, dimensiona e rotaciona objeto)

=> AsciiText (define texto ascii a ser mostrados)

=> GroupindNodes (agrupa informações juntas - para reuso)

* Campo: atributos que os nós tem. 

Ex.: Um cubo é descrito pelas propriedades LARGURA, ALTURA e PROFUNDIDADE. 

* Comentário: " # " precede todo comentário. Um comentário pode ser feito em qualquer posição na linha.

O ESPAÇO

Todas coordenadas em VRML são expressas em X,Y,Z. O eixo X representa o eixo horizontal do monitor, o eixo Y vertical e o eixo Z,entra e sai.

Medidas lineares são em metros e angulares, em radianos.

Um forma criada é a princípio vazia, oca, sem cor e tem origem (0,0,0). Por isso, esses atributos devem ser modificados conforme a conveniência. Por exemplo, ao se representar-se um quarto, é conveniente que seja uma forma oca. É possível especificar iluminação dentro de uma forma (PointLight).

Os nós são basicamente quatro: cubo, esfera, cilindro, cone. E exceto, pelo cubo, os outros nós são formas triviais.

O CUBO

Constitui uma forma de 6 faces e pode dispensar altura, largura e profundidade equivalentes.

#VRML V1.0 ascii 

/* A sintaxepara construção de um cubo : */

Cube 

{

width2

height2

depth2

}

/* no lugar de 2 deve haver sempre um número real qualquer */

GRÁFICOS 3D

É necessário alguma familiaridade com internet e HTML.Para isso, exemplificaremos instruções básicas para a criação de mundos VRML. Usaremos um editor de texto ascii e o browser de VRMLLive3D. Eventualmente pode-se acrescentar textura aos arquivos de imagem criados.

Há três elementos neste contexto: o observador, o objeto e a luz.

Um objeto mais complexo pode ser definido nas três coordenadas: X, Y e Z. E pode-se atribuir certas propriedades como:

* material: como o objeto interage com a luz. 

*translation: tradicionalmente é identificado como centro do objeto, modificando esta propriedade, modifica-se o centro do objeto (metros).

* rotation: muda a orientação de um objeto em cena (radianos).

* scaling: muda a dimensão dos objetos.

* lighting: aplica luz a cena.

* texture mapping: aplica imagem a superfície de um objeto.

Gráficos 3D definem espaços tridimensionais, como o sistema de três eixos: 

* X, que correspondea largura;

* Y, a altura;

* Z , a profundidade.

Eixos XYZ

Assumindo um ponto no centro, a discrição de objetos em espaço tridimensional é expresso com as coordenadas representando com pontos absolutos num sistemas de coordenadas tridimensionais relativos ao ponto central.

Cada eixo tem direção positiva e negativa entendendo-seo ponto central como cenário. VRML padroniza o eixo Y positivo aponta para cima, o eixo X positivo aponta para a direita e o eixo Z aponta direto para o usuário. Objetos com cenário podem ser rotacionados, provocando a orientação dos seus eixos mudem de acordo. 

Uma vez que a locação do objeto é estabelecida, relativa ao centro absoluto, pode ser orientada em uma ou mais de três direções: 

* Yaw: rotação sobre o eixo Y;

Yaw, Rotação Y

* Pitch: rotação sobre o eixo X;

Pitch, Rotação X

* Roll: rotação sobre o eixo Z.

Roll, Rotação Z

Os três eixos (X,Y,Z) e as três rotações (Yaw, Pitch, Roll) juntos, são referenciados como seis graus de liberdade. O referencial e a orientação de objetos em espaço tridimensional são determinados por estas seis informações.

COMO OS COMPUTADORES REPRESENTAM OBJETOS 3D

Quando um objeto gráfico tridimensional é criado, um conjunto de pontos normalmente costuma representar a forma. Desde que é difícil ver a forma de um objeto claramentequando somente alguns pontos são designados, este conjunto é chamado Point Cloud - Nuvem de Pontos. Os pontos, então, são ligados por linhas para formar uma malha (mesh ou wireframe). O wireframe mostra nitidamente um grupo de polígonos (tipicamente triângulos, desde que possam ser rapidamentegerados). É importante lembrar que polígonos são tipicamente lados ou faces. Uma face de polígono é o lado da qual sua normal (um raio de luz atravessa o polígono no ângulo reto) distancia-se do polígono. Assim, os polígonos são visíveis de fora e invisíveis por dentro.

Nuvem de Pontos

Malha (Wireframe)

Uma vez que os polígono foram criados, o computador pode então escurecer polígonos individuais para produzir a aparência de um objetos sólido. Opcionalmente o computador acresce a textura ao objeto. Texturizar torna possível criar rapidamente objetos de superfícies bastante complexas. 

Objeto SólidoObjeto Texturizado



Referências Bibliográficas

http://www.netscape.com/eng/live3d/howto/vrml_primer_index.html

http://apertos0.csc.uvic.ca/~brycerw/vrml_tutorial/tutframe.htm

http://www-ipf.bau-verm.uni-karlsruhe.de/Personen/landes/book.html

http://www.dc.ufscar.br/~grv/vrml/tutoriais/vrml10/#IntroduþÒo

http://tom.di.uminho.pt/vrml/

http://www.sdsc.edu/vrml/

http://www.eecs.tulane.edu/www/Benetz/mainpage.html

http://www.ezinfo.ethz.ch/general_info/WWW5/tutorial_2.html

http://www.sdsc.edu/vrml/cgi-bin/display.cgi?category=Tutorials+-+VRML

http://www.iwebmasters.com/HTML%20Links.html

http://www.sdsc.edu/vrml