Introdução:
A intenção dos desenvolvedores deste projeto foi a de desenvolver
um projeto ambicioso: criar um novo meio de comunicação.
A idéia foi a de desenvolver uma performance viva de "Shakespeares´s
A Midsummer Night´s Dream" e executá-la sobre a Internet.
Os sets, apoios, e todos os caracteres foram desenvolvidos em VRML 2.0.
Um grupo de atores pode prover as vozes, e pôde se controlar os caracteres.
Ambas, as vozes e os dados de movimentos puderam ser digitalizados, comprimidos
e mandados para a internet em tempo real, possibilitando a pessoas acessarem
o conteúdo usando modems convencionais de 28.8k e computadores Pentium
150MHz. Seis meses depois, a idéia pode ser concretizada. O Projeto
foi pioneiro em tempo de execução com mais de 2/3 minutos
e com a execução de movimentos e vozes sobre a Internet.
Este artigo narra alguns dos problemas envolvidos com o desenvolvimento,
modelos e tecnologias e o que foi influente no projeto final. Ele também
examina a tecnologia necessária para criar animações
em tempo real em 3D.
Em
busca de uma nova mídia:
O projeto VRML Dream abriu espaço para a discussão de uma
nova mídia na Internet e pode ser visto com uma visão de
futuro. Uma interessante forma de projeto narrativo foi desenvolvida no
IrishSpace - http://pluto.njcc.com/~paulsam/irish/welcome.html
Neste caso, a estória de sobreviventes de um desastre com
meteoro é narrada. O tempo de execução para tal produção
foi de mais de uma hora. Atores forneceram suas vozes para os caracteres,
e VRML foi usado para criar os modelos 3D e as animações.
Mas, a produção em cima da Internet não foi prática.
Os arquivos de sons excediam 8Mbytes, dificultando a narrativa, em contrapartida
à facilidade de buscar os arquivos em VRML.
"Nós acreditamos que o padrão pode ser a base para um novo
meio verdadeiro que possa tirar todas as vantagens da tecnologia digital.
Enquanto as formas de controle de mídias tradicionais sempre
se preocupam com como os visualizadores possam ver uma dada estória,
produções baseadas em VRML permitem ao observador a liberdade
de movimento e de escolha de posição para assistir a uma
dada cena, ou mesmo assistir a cena como um diretor - através do
ponto de vista do mesmo. No entanto, VRML provê uma grande diminuição
de flexibilidade para a estrutura da narrativa."
Daqui nasceu a idéia de conceber um grande teatro para ser assitido
pela rede, usando VRML. Um conjunto de critérios para concepção
do projeto foi definido:
-
desenvolvimento do projeto seria feito por voluntários
-
seria usado um trabalho reconhecido para a estória
-
o áudio para o proejto teria de usar uma solução de
som já existente
-
o projeto deveria usar browser VRML já existente e JAVA
-
a produção deveria ser acesssível, usando modem 28.8k
e para Pentium 150Mhz sem aceleração de hardware.
Roehl sugeriu a adoção de "A Midsummer Night´s
Dream" de Sheakespeare que seria apropriado para o meio. Foi criado
uma lista de discussão para o projeto e foi feita uma chamada de
voluntários para o mesmo. Assim nasceu este projeto.
Em
busca de modelos para uma nova mídia:
"Os modelos para a VRML Dream apresentaram um grande conjunto de problemas
que mudaram continamente." A decisão de escolha de VRML não
foi uma decisão puramente técnica, ... VRML encapsula uma
série de temas inerentes com o projeto em si - veja http://www.vrmldream.com/vrmldream/artistic.html"
Em outras palavras, o meio tinha como executar um grande conjunto de elementos
artísticos alvos da produção. Ao mesmo tempo, os modelos
deverima se conformar com os tipos de restrições inerentes
ao desenvolvimento de material de animação em tempo real
e em 3D, usando a Internet."
Que restrições são estas??
- os elementos e os conjuntos devem ser compostos por poucos polígonos,
viabilizando animações suaves;
- a restrição anterior deve ocasionar uma diminuição
de detalhes aplicáveis aos modelos;
- deve ser considerado o tamanho de arquivos de forma a viabilizar a conexão
de usuários usando modem 28.8k.
Estabelecendo
os parâmetros de projeto e encontrando modelos:
Após escrever um script, começou-se a prepara um conjunto
artístico que pudesse definir com clareza o projeto de produção.
Para tanto, o autor do projeto busca definições no texto
para conceber os personagens. Aqui, até mesmo recursos de iluminação
são usados para dar mais brilho a um dado personagem e ser fiel
à trama em si. Os modelos primários foram então desenvolvidos,
usando características específicas.
H-Anim:
Uma das formas de projetar tais elementos foi
usar as animações de humanóides desenvolvidas por
Humanoid Working Group - http://ece.uwaterloo.ca/~h-anim/.
Os corpos são divididos em segmentos e estes, conectados por juntas.
Mudanças nas juntas controlam os movimentos dos corpos. Aqui, abre-se
a possibilidade de reutilização dos modelos. No caso específico
deste propósito, não foram necessários elementos com
muitos detalhes, os elementos somente requeriam manuseios opostos e dedos
indexados.
A gênese do modelo:
Ouve um grau de liberdade para os modeladores criarem e implementarem os
elementos e os conjuntos. No entanto, padronizações de medidas
foram necessárias.
Número
de polígonos versus tamanho de arquivos:
De maneira a viabilizar o projeto e após certas tentativas, alguns
elementos chaves foram definidos:
- todos os arquivos deveriam ser pequenos - quando descompactados, deveriam
ter, no máximo, 60k;
- os modelos deveriam gastar menos de 5 quadros por segundo, quando vistos
em um navegador para VRML;
- o número de polígonos e o número de texturas usadas
nos elementos e conjuntos deveria ser o mínimo possível.
Obs: o número de polígonos usado para criar um modelos tem
o efeito inverso da contagem de quadros. Um grande número de polígonos
resulta num baixo frame rate. Os mapas de texturas foram reduzidos a 256
cores e com áreas do tamanho de 128x128 pixels. No final, a produção
de VRML Dream usou somente 12 mapas de textura e um total aproximado de
36kbytes.
Outras informações importantes:
- A lista de discussão levantou a hipótese de uso de IndexedFaceSets
- IFS - ao invés de uso de primitivas, como cones, esferas, cilindros
e se notou que, realmente, esta idéia reduzia a quantidade de polígonos
para renderizar. Logo, a opção de uso de IFS foi a base de
sustentação das concepções dos modelos.
- Algumas otimizações foram importantes para melhoria de
tempo de carga e de desempenho dos navegadores, dentre elas, o reprojeto
de elementos de cena, tais como o templo de Theseu - ver figuras abaixo.
Aqui, os autores eliminaram muitos mapas de texturas.
Veja as imagens acima e compare as diferenças.
Um outro elemento importante na diminuição de arquivos VRML
foi a utilização do software Vorlon e de vistoria nos arquivos
VRML de forma a verificar o que poderia ser eleminado ou otimizado e eliminação
de espaços em branco, usando editor de textos. Um script em Unix
foi importante auxiliar no procedimento citado. Tais processos permitiram
importantes reduções nos tamanhos dos arquivos VRML, chegando
a reduções de até 60% no total.
-
A
tecnologia do VRML Dream:
A audiência pôde ver a performance usando o browser Cosmo
Player ou WorldView e usou o software SpeakFreely desenvolvido por John
Walker - http://www.fourmilab.ch.
O único hardware requerido foi um Pentium com uma placa de som e
um modem 28.8k. Os expectadores puderam se sentir inseridos na cena e podiam
selecionar diferentes tipos de pontos de vista - viewpoints, seguindo a
idéia de assistir como diretores.
Houve um grupo de atores que foi responsável pela produção
das vozes e outra equipe controlava o movimento dos elementos em cena.
Muitos dos softwares necessários foram desenvolvidos pela equipe
do VRML Dream.
As
estações de apresentação do teatro:
As estaçõe de apresentação permitiram
teclado, mouse, joystick - um ou mais. Ainda era possível 6 graus
de liberdade, usando spaceballs ou trackers. O software que permitiu a
apresentação foi desenvolvido pela equipe de projeto e escrito
totalmente em JAVA, com exceção de alguns métodos
nativos nas classes, modelados com joystick. Como JAVA não suporta
joystick, o uso de métodos nativos não pode ser permitido.
A interface com 6 graus de liberdade foi adaptada de um trabalho anterior
envolvendo o uso de DirectorInput e JAVA. O software também mantém
uma representação interna do estado de cada elemento e, periodicamente,
retransmite o estado, bem como as mudanças de estado. Os dados são
encapsulados em um formato de pacote simples e mandados através
de um protocolo datagrama de usuário - UDP para um servidor atrasado
- relay.
O time usou diversas técnicas para reduzir a quantidade de dados,
reduzindo as informações de cada junta.
O time de programação digitalizou e comprimiu os dados de
áudio usando o algoritmo Global System for Mobile telecomunications
- GSM. Os pacotes de dados resultantes foram encapsulados usando o Real-Time
Protocol - RTP e mandados via UDP. Informações sobre o RTP
estão em http://www.cs.columbia.edu/~hgs/rtp/.
O empacotamento do tipo GSM requer somente 13kbytes por segundo.
Servidores de atraso - relays:
Este servidor é peça importante no sistema, com ele, os dados
de animação 3D e de áudio são reenviados para
uma série de hosts, incluindo sistemas de clientes e outras instâncias.
Aqui, uma aplicação JAVA pôde manipular ambos, dados
de áudio e movimentos. Tal programa é altamente reconfigurável
e aceita configuração via Telnet. O esquema básico
está dado abaixo:
Esquema básico de Relays
Uma das desvantagens do esquema acima é que a latência
aumenta com o aumento de profundidade da árvore, entretanto, quando
o tráfego de dados é one-way, tal latência é
irrelevante. Aqui, um sistema de multi-usuário teria soluções
muito diferentes.
Outra importante desvantagem é que tais sistemas necessitam de um
grande número de servidores relay, necessitando de grande organização
e coordenação.
O lado "cliente":
A parte final do sistema é o software do lado
cliente. Ele recebe os dados e usa-os para atualizar o mundo. Para uma
primeira performance, o software cliente foi um applet JAVA que rodava
como uma página HTML no mundo VRML. O applet recebia os eventos
mandados e atualizava sobre o mundo VRML, usando uma interface externa
autorizada - EAI - um mecanismo de applets JAVA pra acessar mundos executados
em browser VRML.
Esta abordagem deu muitos problemas, um importante
foi o overhead imposto por passar através da EAI. Os autores se
dizem atrás de uma solução mais adequada.
O lado "cliente":
O VRML Dream foi apresentado em 26/04/98 e os problemas
relatados pelos autores foram:
-
transmissão de áudio
-
alguns expectadores não receberam os dados
de movimento
À despeito de tais problemas, VRML Dream foi um sucesso. Os novos
testes têm mostrado a eficiência do sistema de transmissão
de dados e sons.
Alguns sites relacionados:
|