-
1. Introdução:
-
-
VRML 2.0 oferece um novo meio de produção
de ambientes interativos. Os melhores resultados, entretanto, requerem
uma grande atenção a detalhes e um bom entendimento de elementos
do mecanismo de apresentação. A criação em
larga escala, através de ambientes hipermídia serviu como
motivação para este trabalho e para descobrir o que este
novo meio de construção pode mesmo prover.
-
"Desde sua criação em Outubro de 1994
- VRML apresentou um novo nicho tecnológico". Através de
experiências e de ferramentas específicas, construtores de
mundos produziram mundos que eram estáticos e simples. Com a adoção
do VRML 2.0, especificação de mundos em movimento e uma nova
gama de possibilidades se apresentou. Em outubro de 1996, a Silicon Graphics
lançou o O2, um novo tipo de estação de trabalho multimídia.
Uma experiência nova foi incorporada ao sistema, para introduzir
a dada usuário a capacidade de sua nova máquina. Tal pacote,
com documentação, demonstrações e interface
específica foi criada com HTML, MPEG, outros formatos digitais e
interface de usuário e Java Script. Esta forma foi uma oportunidade
de demonstrar que 3D é uma tecnologia de interface viável
e foi a primeira aplicação de VRML em larga escala, de forma
comercial.
-
Esta experiência foi chamada "Out Of Box Experience".
A mesma foi desenvolvida em CosmoWorlds 1.0 e era acessada pelo CosmoPlayer
1.0 nas estações Silicon Graphics. Alguns dos aspectos retratados
neste trabalho se aplicam especificamente a este domínio.
-
-
2. Projeto e preparação:
-
-
Para o OOBE, fez-se um típico projeto
de produção multimídia. Com o time de projetistas
em constante colaboração com o time de pojeto de construção
em Internet e a Silicon Graphics - direção de arte, produção
técnica e produtor, além dos arquitetos de VRML. A idéia
foi de desenvolver um mundo em movimentos e aplicá-lo efetivamente.
-
-
2.1 - Projetando:
-
-
A grande mudança introduzida no projeto foi
a idéia de um mundo em larga escala que, apresentava: uma história
de significado e completa e mantendo um interatividade com o usuário.A
otimização fez parte da produção - através
de um processo contínuo. Foram observados aspectos já utilizados
pela indústria de jogos - principalmente no gerenciamento de complexidade
versus tempo de carga. A idéia era de um projeto rico com pouca
pesquisa. Estas técnicas tem direta aplicação para
VRML.
-
A inspiração dos conceptores recaiu
sobre parques, museus e galerias de arte. Estes estudos foram refinados
e definiu-se alguns espaços: Entrada, Pátio, Galeria de novidades,
Tour pelo sistema, Ilha da selva. Para gerenciar a complexidade de cenas
e carregamento do sistema a cada tempo, cada área funcional foi
encapsulada em arquivos VRML separados. Com este projeto, o usuário
se move de um mundo para outro através de hiperlinks que usam o
mecanismo Anchor de VRML.
-
-
2.2. Projetando para surpreender com descobertas:
-
-
A idéia foi de causar surpresas, quando o
usuário navega através do processo. Assim, o usuário
fica imbuido de um espírito de aventura, tendo uma visão
ampla do mundo que o cerca - de forma que o mesmo se sinta recompensado,
através de sua exploração por todos os ângulos.
-
-
2.3. Ouvindo usuários:
-
-
A idéia é a de um ambiente amigável,
fácil de navegar e nem um pouco extenso. Se o usuário sentir
falta de controle ou perdido, o projeto falhou. As cenas possibilitam
uma razoável liberdade e limites bem definidos.
-
-
3. Modelamento e Geometria:
-
-
Em todos os estágios, a ambição
do projetista deve ser limitada pela performance. O balanceamento está
definido entre o artístico e a boa performance - técnica
e arte.
-
-
3.1 Orçamento e complexidade:
-
-
Quando a estrutura foi planejada, foram definidas
as quantidades de polígonos que uma cena poderia ter a cada tempo.
Procurou-se algo em torno de 10 quadros por segundo - com um total de 4000
triângulos numa cena em particular.
-
-
3.2. Modelamento e conversão:
-
-
Foram usados modeladores para trabalhar com VRML
2.0, já que a linguagem não tem um modelador nativo. Os modeladores
usados foram: Nichiman N-Geometry, Radiance Ez3d, Alias 3Design, Author
1.0 e Cosmo World 1.0 - para VRML2.0. Para cada modelador, observou-se
alguns pontos de estrangulamento, mas, todos eles foram projetados para
grande realismo e permitiram criar polígonos de grande resolução.
O problema é que depois foi necessário converter de um formato
para outro. Tais conversões resultaram em aumento de código
e até mesmo em erros de código fonte em VRML.
-
-
3.3. Estruturando para melhoria de performance:
-
-
Não se deve analisar apenas a quantidade de
polígonos que estão na cena, mas, as formas com que a linguagem
VRML 2.0 permite construir cenas e suas profundidades, o tamanho das texturas
e o número de vezes que elas são usadas, além da relação
espacial entre os objetos. Um dos problemas relatados foi decorrente da
mudança de VRML 1.0 para VRML 2.0 que fez com que a performance
de cenas com grande quantidade de faces indexadas caísse. Para contornar
tal problema, promoveu-se a colocação destas geometrias em
um conjunto simples de faces indexadas, dentro de um nó simples
"Appearance", melhorando a velocidade drasticamente.
-
-
3.4. Gerenciando a complexidade das cenas:
-
-
A complexidade de cenas pode ser organizada diretamente
usando o nó LOD - nivel de detalhes e ProximitySensors. Para o projeto,
dividuiu-se em um grande número de salas e os LOD´s foram
usados para o espaço aberto entre os diversos cenários.
-
-
3.5. Dicas rápidas para modelamento com geometria
de alta performance:
-
- determine o custo de polígonos;
-
- cuidado com os modeladores baseados em Splines;
-
- não acredite nas conversões feitas
para o formato de VRML 2.0;
-
- tente usar texturas para manter as geometrias complexas;
-
- combine atributos de geometria estática
com formas comuns para acelerar o processo de rendering;
-
- use backface culling sempre que apropriado
- IndexedFaceSet.solid = True;
-
- use LODs, ProximitySensors, e outras construções
em VRML 2.0 para gerenciar a complexidade das cenas;
-
- Remova Cilinder ends e Cone bottoms
quando eles não estão visíveis;
-
-
4. Layout
-
-
Trata-se do processo de composição
da cena - foi usado o programa CosmoWorld 1.0.
-
Dicas rápidas para melhoria de performance:
-
- evite agrupar objetos espacialmente dispersos,
-
- quando possível, objetos de mais alta posição
devem ser separados, evitando acúmulos de processos de renderização;
-
- subvida espacialmente grandes blocos, objetos que
estão vistos tipicamente por pouco tempo;
-
- use instaciação, não cópias,
para reproduzir geometrias comuns usadas na cena.
-
-
5. Navegação e Interface:
-
-
As características do OOBE incluem uma interface
multifuncional e multimídia, composto basicamente de 4 janelas,
sendo a janela principal A com conteúdo em VRML - foco central da
experiência do usuário e as janelas B e C, que têm conteúdo
em HTML, MPEG e VRML, além da janela D que é um mapa 2D usado
para navegação e controle.
-
A janela principal A é carregada pelo CosmoPlayer,
fazendo a interface centrada em VRML. Há um quadro superior que
contém a informação: você está aqui.
-
Alguns outros detalhes do processo de navegação:
-
uso do PROTO e dos nós Anchor;
-
ícones de navegação muito fáceis
de selecionar;
-
problemas com alguns navegadores, por causa do plug-in
utilizado;
-
além do processo de navegação
guiada, temos o processo de navegação nominada - nomes e
localizações associados, podendo o usuário visitar
qualquer localização nominada a qualquer tempo - no CosmoPlayer
através do menu popup;
-
liberdade de navegação - o usuário
explora a sala, os mundos, de forma intuitiva, através do painel
do plug-in que incorpora WALK, FLY etc;
-
possibilidade de visualização de formas
do mundo, selecionando aquilo que será visível ou não;
-
uso de iluminação direcionada, ajustada
com a atenção do usuário, que variam de intensidade
de acordo com o movimento do usuário - uso do ProximitySensors e
dos ScalarInterpolators juntos com os campo de intensidade luminosa
-
uso de widgets 3D implementadas em VRML, construídas como se segue:
Nesta figura, temos o diagrama de rotas apresentando o fluxo de eventos
para 3 tipos de widgets de iluminação: Translation, Rotation,
Color-Selection;
-
uso da widget RaptorBuilder para mapeamento de textura, construída
para suportar manipulação na cena. Usando somente TouchSensors
e Scripts, tal mapeamento foi possível com base nas ações
do mouse. Tais widgets performam escala, translação,
seleção de mapa de texturas;
-
uso de ClickMe para encorajar o usuário a explorar o mundo
6. Animações:
No OOBE, as animações são
ajustadas em uma das três formas:
-
Proximidade: quando o usuário se aproximada
de uma dada região do espaço - veja sequência de animação
abaixo:
-
Entrada do usuário: quando o mesmo clica um dado objeto, um TouchSensor
detecta tal interação e dispara o processo:
-
Auto-início: animações podem ser iniciadas automaticamente,
quando uma dada cena é carregada - uso de campos TimeSensor, com
valores especiais para cada caso:
As animações em OOBE foram do tipo animações
"orgânicas", para dar aos objetos mais vida e personalidade.
O processo de formas em 3D usou o CoordinateInterpolator para dar cacacteríticas
de um espaço elaborado para um humanóide.
7. Propriedades do material e Aparências:
"O entendimento da influência do material,
das cores, das texturas e da iluminação é a chave
para realizar grandes implementações de mundos virtuais em
VRML. Mas, tal processo é mais complicado do que parece ser." Há
problemas de disparidade de navegador para navegador, que resultam em disparidades
no processo de renderização.
Algumas saídas do projeto:
-
combinar sombreamento de polígonos baseado
nas cores por vértice com a aplicação de texturas
de um componente. O resultado gerou renderizações mais naturais;
-
a adição de especularidade e de controle
de brilhos pode enriquecer os objetos;
-
o uso de mapa de texturas é uma das boas técnicas
para criar aparente complexidade e detalhes, no projeto o uso de mapas
de textura em lugares onde a geometria era a alternativa foi a solução.
Alguns fatores devem ser levados em conta neste caso: tamanho do arquivo,
tamanho da textura, uso de texturas com transparência e compatibilidade
de plataformas;
-
Foram usadas na maior parte do projeto, texturas
com imagens do tipo jpeg e para texturas com cinza, imagens do tipo SGI's
BW e para texturas com transparência e cor foram usadas SGI's RGBA
- observe que nenhum destes formatos são padrões para o VRML;
-
o padrão de cores emissivas foi emissiveColor
=1.0;
8.Iluminação:
O conjunto de cores é de suma importância
para dar à cena que está sendo simulada um aspecto mais real
- o entendimento de cada cor pode ser de suma importância para tal
efeito - abaixo o uso de vermelho e de laranja pra dar aspecto de lava
fundindo:
Algumas características adicionais:
-
uso de cor por vértice para sombreamento através da cena,
embora os efeitos de iluminação pudessem ser aplicados diretamente
na geometria em si - o benefício desta técnica é a
possibilidade de controlar como uma dada cena e um dado objeto podem ser
iluminados.
-
o processo de cor por vértice pode ser usado em conjunto com os
processos de iluminação do VRML;
-
a técnica acima pode ser de díficil controle se uma ferramenta
que habilite o controle interativo de localização da iluminação
e a direção na cena
Considerações de performance:
-
a performance de iluminação é uma função
direta do número e tipo das luzes ativadas na cena. Em geral, iluminação
direcional é menos pesada que iluminação puntual ou
por spots. A escolha se deu por iluminação direcional na
maior parte dos casos. As outras formas só foram usadas quando um
tipo de efeito exigisse (PointLight ou SpotLight);
-
geralmente, foram usadas duas iluminações direcionais como
luzes de cantos;
-
em casos de mais de 10 fontes de luz, usou-se nós do tipo Switch
ou Script, para ligar e desligar as fontes de luz, dependendo da posição
do observador - isto para uma estação de trabalho,
em PC´s, as limitações seriam maiores.
9.Som:
"O som é meio fundamental para dar realismo
às cenas"
Como os arquivos de som tendem a ser grandes,
deve-se pesquisar sobre o melhor e mais adequado para cada situação,
tal escolha deve levar em conta: tamanho do arquivo, taxa de amostragem,
formato do arquivo e número de canais e frequências. Inicialmente,
o projeto OOBE deveria ter qualidade de CD - 44,1khz, mas, ao final trabalhou-se
com 20,5khz para diminuir os arquivos de som. Foram usados fontes mono
e formato WAV.
Dicas dos autores:
-
fazer a interatividade do quadro é prioritário
em relação os sons;
-
escolha parâmetros de som baseado nas limitações
da plataforma e no tipo de equipamento em uso;
-
use som mono;
-
selecione amostragens simples ao invés de
sons repetitivos;
-
use laços de repetição múltiplos
de diferentes comprimentos para mascarar repetições;
-
use a instanciação para evitar o tempo
de carga de arquivos de som;
-
use um pequeno raio de influência para sons
atados à animação das geometrias.
|