Revista Perspectiva Amazônica
Ano 3 N° 6 p.114-124
VRML e JAVASCRIPT: Integração de Linguagens para criar matrizes de
objetos tridimensionais em tempo de execução
Rafael Brelaz*
RESUMO
Este artigo tem como objetivo apresentar alguns resultados obtidos com a criação de matrizes de objetos
tridimensionais por meio da integração entre as linguagens VRML e JavaScript. A necessidade de integração
neste caso, ocorre devido a algumas limitações da VRML que são supridas com o uso de uma linguagem de
programação para auxiliar na instanciação dinâmica de conjuntos de objetos. A criação de matrizes de
elementos tridimensionais usando VRML e JavaScript oferece várias vantagens para desenvolvedores que
precisam elaborar Ambientes Virtuais de forma mais ágil e evitar o dispêndio proveniente das translações
manuais muitas vezes necessárias, porém, existem restrições relativas quanto as relações que são
estabelecidas entre a complexidade e quantidade de objetos virtuais com a quantidade de memória volátil
disponível para visualização do espaço virtual.
ABSTRACT
This article aims to present some results obtained by creating arrays of three-dimensional objects through
integration between the languages VRML and JavaScript to be built in this case is due to some limitations of
VRML that are fixed with the use of another language programming to assist in the dynamic instantiation of
sets of objects. The creation of arrays of three-dimensional elements using VRML and JavaScript offers
several advantages for developers who need to build virtual environments more agile and avoid the expense
of translations from manuals often necessary, but there are restrictions on how the relationships are
established between the complexity and amount of virtual objects with the amount of volatile memory
available for viewing the virtual space.
*Centro de Tecnologia da Informação e Comunicação (CTIC) – Universidade Federal do Oeste do Pará (UFOPA) Santarém – PA – Brasil
[email protected], [email protected]
114
Revista Perspectiva Amazônica
Introdução
Ano33N°
N°66 p.p.XXX
XXX
Ano
A Virtual Reality Modeling Language (VRML) surgiu na década de 90 como a
primeira definição normalizada do espaço tridimensional na Internet [Henriques e
Sampaio, 2002]. Existem basicamente duas formas de interação que podem ser
realizadas com a VRML: a utilização de captura dos eventos ocorridos na aplicação e a
captura de eventos disparados em uma aplicação externa onde é necessária outra
linguagem de programação [Sousa e Kniess, 2004].
Como a VRML não possui suporte nativo à estruturas de seleção e repetição é
possível o uso de outras linguagens por meio do nó Script para que possam ocorrer
processamentos de decisão e interação [Delaiba e Junior, 2006], [Pacheco, 2004] e
[Fernandes e Pires, 2000]. Em casos como na concepção de vários objetos com
características geométricas idênticas é possível replicar os elementos manualmente e
atribuir coordenadas, cujo incremento é calculado pelo desenvolvedor ou usar
propriedades de outras linguagens que permitam a criação e atribuição de coordenadas
de forma automática.
O uso de scripts para realizar cálculos de processamento em VRML ocorre
frequentemente com a utilização das linguagens JavaScript, Java e VRMLscript (que é
uma derivação de JavaScript assim como a ECMAScript) [Nadeau, Moreland e Hech,
1998]. Com JavaScript podemos criar efeitos especiais nas páginas e definir
interatividades com o usuário [Delaiba e Junior, 2006]. Desta forma, foi escolhida a
linguagem JavaScript por esta ser capaz de solucionar o problema, da replicação manual
dos objetos especificando suas coordenadas geográficas uma a uma, e por estar
disponível na maioria dos navegadores e não necessitar de instalações ou configurações
adicionais para disparar as ações programadas.
A criação de Ambientes Virtuais requer noções de sistemas em tempo real,
orientação a objetos, redes, modelagem geométrica, modelagem física, multitarefas,
entre outras habilidades [Kirner, et al, 1996]. Ter o domínio destas propriedades
contribui para que desenvolvedores possam criar sistemas cada vez mais robustos,
escaláveis e confiáveis para uma clientela cada vez mais exigente.
A criação de conjuntos de objetos com o uso de scripts permite poupar o tempo
dos desenvolvedores agilizando o processo de construção de Ambientes Virtuais. Este
trabalho tem como objetivo demonstrar os resultados alcançados com o uso das
linguagens VRML e JavaScript para concepção de matrizes de objetos tridimensionais
de forma automática. Os tópicos a seguir abordarão desde os trabalhos correlatos
encontrados na literatura durante o desenvolvimento deste artigo, passando pelo
contexto de desenvolvimento, algumas questões relativas a VRML e JavaScript, o
problema e as soluções encontradas e finalmente os resultados alcançados apresentando
um exemplo onde foi utilizada a integração das duas linguagens para solucionar um caso
específico: criação de uma matriz tridimensional de livros para a Biblioteca Rui Barata
da Universidade Federal do Pará (UFPA), Campus de Santarém, atual Campus Rondon
da Universidade Federal do Oeste do Pará (UFOPA).
115
Revista Perspectiva Amazônica
Ano33N°
N°66 p.p.XXX
XXX
Ano
Trabalhos Correlatos
A criação de mundos virtuais em VRML é uma boa alternativa para
apresentar ambientes com Realidade Virtual não imersiva na Web, permitindo um
desenvolvimento rápido com base em geometrias predefinidas ou na criação e
articulação de polígonos para especificar detalhes nos objetos da cena. O que
acontece no entanto é que a VRML é uma linguagem de modelagem, e por esta
limitação, não permite o uso nativo de estruturas de seleção e repetição como pode
ser visto em linguagens de programação como Java, PHP, Python, entre outras. Por
este motivo, em situações onde é preciso usar algumas estruturas próprias de
linguagens de programação, se faz necessária a integração que a VRML permite por
meio de seu nó Script, como na criação de vários objetos em sequência no caso de
uma estrutura de repetição.
Poucos trabalhos tem analisado essa questão no sentido de explorar os
pontos relativos à renderização dos objetos na cena, tempo de resposta, testes de
consumo de memória, tempo de processamento, entre outras características que
podem ser estudadas nessa integração entre VRML e uma linguagem de script
auxiliar, neste caso a JavaScript, ou uma linguagem mais elaborada, robusta e
pesada, como o Java por exemplo. Apenas no trabalho de [Fernandes e Pires, 2000] é
que foi possível encontrar um estudo, pelo menos em parte, semelhante ao proposto
neste artigo. Em [Fernandes e Pires, 2000] é apresentada uma ferramenta, a
VRML+: uma plataforma de desenvolvimento rápido de mundos VRML, cuja
função é disponibilizar um preprocessador pra converter os códigos desenvolvidos
na VRML+ em código VRML equivalente. Um dos pontos do artigo trata da
utilização da plataforma no que diz respeito a estruturas de repetição para criar
vários postes, sem ter o trabalho manual de criar objeto por objeto e ir deslocando
este pelo ambiente virtual.
A integração entre VRML e JavaScript proposta neste artigo, para criar
matrizes de objetos em tempo de execução, não foi encontrada em nenhum outro
trabalho pesquisado na área de Realidade Virtual. Este fato proporciona ao artigo em
questão um caráter inovador, no intuito de analisar os resultados desta integração
para instanciação dinâmica de objetos num cenário específico.
Contexto de Desenvolvimento
No ano de 2007 foi criado no antigo Campus de Santarém da UFPA, atual
UFOPA – Campus Rondon, um grupo de estudos para modelar a Universidade em
questão. Idealizado pelo professor Mestre Cássio David Borralho Pinheiro, o grupo
formado pelos então alunos de graduação da Faculdade de Sistemas de Informação
da UFPA: Rafael Brelaz Sampaio, Idelvandro José de Miranda Fonseca e Luiz
Felipe de Sousa, ficou responsável por criar o Campus Virtual de Santarém (CVSUFPA).
116
Revista Perspectiva Amazônica
Ano33N°
N°66 p.p.XXX
XXX
Ano
A princípio a finalidade do projeto era estudar tecnologias de Realidade Virtual
para Web e então desenvolver o Campus Virtual, porém ao aprofundar os
conhecimentos no assunto outras possibilidades foram acrescentadas pelos integrantes
ao escopo do projeto, conforme [Brelaz et al, 2010]:
·
Permitir o conhecimento colaborativo entre seus participantes e
consequentemente aos interessados em assuntos correlatos ou similares à
Realidade Virtual;
·
Desenvolver e/ou adaptar mecanismos de coordenação, análise e construção de
softwares ao escopo do projeto;
·
Criar Sistemas de Realidade Virtual com foco em arquitetura de edificações, na
relação ensino/aprendizado, simulação de ambientes reais e suas aplicações no
contexto da Web;
·
Fazer um ambiente computacional que simule a estrutura da UFPA em
Santarém, permitindo aos visitantes virtuais conhecer suas edificações e
interagir com objetos no cenário;
·
Produção de materiais técnicos, científicos e didáticos para disseminação da
tecnologia, desenvolvimento da sociedade e construção do conhecimento;
A linguagem a princípio sugerida pelo idealizador do projeto foi a VRML,
devido a sua facilidade de instalação e uso, o fato de ser voltada para a Web, além da sua
popularidade e a consequente abundância de materiais disponíveis na Internet. Levando
em conta que a princípio o propósito era a simples modelagem da Universidade, a
linguagem cumpriu perfeitamente a função esperada no intuito de mostrar visualmente
as características do Campus de Santarém da UFPA.
No contexto do CVS-UFPA, um dos principais pontos desenvolvidos foi a
Biblioteca Virtual Rui Barata (BVRB), para permitir aos usuários virtuais conhecer a
estrutura arquitetônica do ambiente, bem como a disposição dos objetos presentes nela.
É neste ponto que surge a necessidade de encontrar uma alternativa eficaz para evitar a
criação manual, texturização e devida replicação no ambiente virtual dos livros da
BVRB. As figuras 1 e 2 mostram imagens da antiga biblioteca do Campus de Santarém
da UFPA criada com o uso da linguagem VRML.
117
Revista Perspectiva Amazônica
Ano33N°
N°66 p.p.XXX
XXX
Ano
Figura 1. Visualização das mesas para estudo na BVRB
Figura 2. Visão do balcão onde ficam os bolsistas e funcionários para entregar os
livros aos usuários da biblioteca
VRML e JAVASCRIPT
A integração entre as duas linguagens ocorre por meio do nó Script. Após o
estabelecimento das variáveis em VRML é chamado o arquivo ou especificado o
código que irá realizar algum processamento. Terminada a elaboração do script o
118
próximo passo é o estabelecimento de rotas que integrem funções em VRML com os
cálculos realizados em JavaScript.
Dentre as possibilidades de integrar VRML a outra linguagem de
programação foi escolhida a JavaScript por ser a que mais conciliou a relação
eficiência, facilidade de uso e disponibilidade nos navegadores, além do fato de ser
facilmente substituída por versões correspondentes como VRMLscript ou
ECMAScript. A necessidade de usar outra linguagem para realizar processamentos
de repetição ocorreu devido a grande quantidade de livros que teriam que ser criados
com seus atributos de textura e localização no espaço tridimensional da BVRB,
somado isto à limitação da VRML para tal quesito como já mencionado
anteriormente.
Revista Perspectiva Amazônica
Problemas e Soluções
Ano33N°
N°66 p.p.XXX
XXX
Ano
Como a VRML tem suas restrições foi necessária a utilização da linguagem
JavaScript juntamente ao VRML para realizar algumas tarefas [Delaiba e Junior, 2006].
Para realizar cálculos complexos é necessária a integração com outra linguagem que
realize os processamentos e repasse os resultados dos cálculos ao browser para que
possam ser atualizadas as informações no Ambiente Virtual.
Para criar conjuntos de objetos em VRML duas alternativas são facilmente
percebidas: a concepção manual e a integração com uma linguagem de programação.
No primeiro caso é preciso instanciar e posicionar objetos no espaço tridimensional de
maneira individual, ou seja, cada objeto é replicado e inserido no mundo virtual um a
um, demandando significativo tempo e paciência aos desenvolvedores. Na segunda
alternativa, que foi a utilizada neste artigo, pode ser usada uma estrutura de repetição
disponível em outra linguagem de programação integrando duas linguagens: uma para
processamento de cálculos e outra para exibição das propriedades da Realidade Virtual
com os resultados gerados.
A possibilidade de integração proporcionada pela VRML permite que a criação
de conjuntos de objetos com características semelhantes seja facilitada com a
construção dinâmica de vários elementos sem a necessidade de replicação e
posicionamento manual de matrizes de objetos.
Resultados
Para criar matrizes de objetos tridimensionais em tempo de execução foi
realizada a integração entre as linguagens JavaScript e VRML no intuito de conceber,
colorir e posicionar objetos no cenário virtual idealizado. A princípio foi analisado o
desempenho com base na quantidade de memória e objetos para a criação de livros em
uma biblioteca virtual para conferir ao visitante do Ambiente Virtual uma visualização
adequada, conforme o planejado pelos desenvolvedores da BVRB.
Foram utilizadas variáveis e estruturas de repetição para deslocar os objetos
criados de forma dinâmica e modelar uma matriz tridimensional de livros, onde cada
elemento possui uma cor determinada aleatoriamente com a ajuda de uma função para
geração de valores aleatórios para os valores RGB (Red, Green, Blue). O acionamento
do script inicia quando o avatar do usuário se aproxima do objeto e dispara o sensor de
proximidade (ProximitySensor) que é o gatilho para a criação da matriz tridimensional
de livros.
Qualquer distância entre o avatar e o primeiro livro da biblioteca, que seja menor
que a quantidade de unidades de medidas determinada no código em VRML para
disparar a ação, faz com que seja executado o script de criação de livros por meio de uma
rota (ROUTE) que interliga o nó sensor ao nó script. A partir desse momento, a relação
entre quantidade de memória volátil disponível e a quantidade de objetos que se deseja
criar passa a ser a questão mais importante a ser analisada neste contexto. A figura 3
mostra o diagrama de estados do cenário em questão criado com o auxílio da ferramenta
Astah Community [Astah, 2012].
119
Revista Perspectiva Amazônica
Ano33N°
N°66 p.p.XXX
XXX
Ano
Figura 3. Diagrama de estados do cenário proposto para criação dinâmica de
objetos
Como para este caso são usadas três estruturas de repetição alinhadas de
modo que seja criada uma matriz tridimensional, ocorre um grande consumo de
memória volátil, pois a cada interação as variáveis em JavaScript são atualizadas e
novos cálculos são gerados. Ao sair do laço, a variável que armazenou os códigos dos
objetos em VRML e seus respectivos atributos é adicionada ao navegador para que
este possa acrescentar as instruções geradas ao Ambiente Virtual. Esta etapa gera um
grande custo computacional pelo fato de serem gerados vários objetos, neste caso,
livros que possam representar superficialmente o acervo de uma biblioteca virtual
como pode ser visto em [Brelaz et al, 2010].
Pelo fato de criar várias linhas de código e armazená-las em uma dada
variável, ao acontecer o repasse dessas informações ao navegador pode ocorrer uma
demora acima dos limites que permitam uma visualização em tempo de execução ou
o mais próximo possível disso. Alguns testes foram feitos em um computador com
processador dual 1.6 Giga Hertz, 1 Giga Byte (GB) de memória volátil e placa de
vídeo com 64 Mega Bytes (MB).
Devido ao fato do processador ser dual foram distribuídas as funções para
que os processos de usuário pudessem ser realizados por um núcleo e o navegador
com uma biblioteca virtual e o script para criação dos livros tivesse atenção especial
com um núcleo direcionado para a aplicação estudada. É importante frisar neste
ponto, que o presente trabalho não tem como pretensão apontar resultados com base
em análises de desempenho computacional e técnicas precisas para este fim, mas sim
demonstrar os resultados alcançados por meio da experiência adquirida com a ajuda
de algumas propriedades disponíveis no sistema operacional, pois não foram
realizados estudos profundos sobre o funcionamento do sistema operacional
utilizado e questões norteadoras e/ou específicas.
120
A proposta deste artigo limita-se a demonstração dos resultados para uma
qualidade de visualização em tempo real ou o mais próximo possível disso, evitando
travamentos e/ou perda de quadros que possam prejudicar a sensação de realidade ao
visitar um Ambiente Virtual que contenha algum script para criação dinâmica de
Revista Perspectiva Amazônica
objetos virtuais. Desta forma, o objetivo proposto é analisar a viabilidade da integração
entre VRML e JavaScript para criação automática de objetos em tempo de execução em
contextos particulares, neste caso a criação de livros, demonstrando até que ponto a
Ano33N°
N°66 p.p.XXX
XXX
Ano
relação entre memória volátil e quantidade de objetos pode influenciar em uma
visualização adequada do ambiente.
A tabela 1 apresenta as quantidades de objetos e memória volátil utilizadas,
sendo que os processos do sistema operacional iniciam com 350 MB de memória já
usados que passam para 400 MB com o carregamento da biblioteca e dependendo da
quantidade de objetos assume estados finais diferentes para depois de executado o script
de criação dos livros.
Tabela 1. Demonstração das relações entre a quantidade de memória volátil e objetos instanciados em
tempo de execução
Objetos
Pico de Memória
Consumo Script
Estado Final
1920
1,3 GB
900 MB
490 MB
1728
1,1 GB
700 MB
480 MB
1536
0,98 GB
600 MB
472 MB
1344
0,86 GB
460 MB
465 MB
1152
0,75 GB
350 MB
455 MB
960
0,65 GB
250 MB
447 MB
Na criação da matriz tridimensional de livros nas estantes da biblioteca virtual
foram utilizados valores fixos para os deslocamentos nos eixos Y e Z, pois estes
representam as quantidades de prateleiras e estantes onde os objetos ficaram
posicionados. Apenas o valor do eixo X foi modificado com alterações que variaram
entre 10 e 5 unidades de medida da VRML para cada bloco ou conjunto de livros, sendo
dois blocos para cada compartimento de uma determinada prateleira, conforme pode ser
visto na figura 4.
Figura 4. Livros posicionados ao longo do eixo X nas estantes formando dois blocos
de 5 a 10 unidades de medida VRML, conforme os testes realizados
121
Revista Perspectiva Amazônica
Ano33N°
N°66 p.p.XXX
XXX
Ano
Como a quantidade de memória volátil disponível era 1 GB, qualquer pico de
memória acima deste valor provocou o uso de memória do Hard Disk (HD) e a
consequente degradação do desempenho do sistema pelo uso de memória não
volátil. As figuras 5 e 6 a seguir, mostram o resultado da integração entre VRML e
JavaScript para criar matrizes de objetos automaticamente e permitir a coloração de
cada elemento por meio de uma função aleatória que gera valores entre 0 e 1
conforme o padrão RGB.
Figura 5. Visão do corredor de livros formado com o acionamento do script
Figura 6. Visão panorâmica da matriz tridimensional de livros criada por meio da
integração entre VRML e JavaScript
122
Revista Perspectiva Amazônica
Conclusões
Ano33N°
N°66 p.p.XXX
XXX
Ano
A VRML é uma ferramenta bastante útil para construção de mundos virtuais na
Web, pois possibilita a elaboração de ambientes de forma rápida e intuitiva, o que
facilita sua disseminação para que interessados em criar espaços virtuais em
computador possam optar por esta alternativa, já que a linguagem consegue aliar uma
boa relação entre curva de aprendizado e resultados. Um problema, no entanto, é o fato
da VRML ter algumas limitações que dificultam determinadas possibilidades que são
facilmente implementadas em outras linguagens, entre elas a utilização de estruturas de
seleção e repetição que na VRML necessitam de outra linguagem para acrescentar tais
características.
Neste trabalho foram usadas a VRML e a JavaScript para criar uma matriz
tridimensional de livros em uma biblioteca virtual. Durante os estudos realizados foi
possível perceber que mesmo com o uso de uma linguagem auxiliar para agilizar a
construção de mundos virtuais, a VRML ainda apresentou algumas limitações quanto à
viabilidade de uso desta alternativa. Pelos resultados alcançados foi possível perceber
que é necessário analisar a relação entre memória volátil disponível e
quantidade/complexidade de objetos adicionados ao navegador.
Foram apresentadas duas alternativas para criar matrizes tridimensionais em
VRML: a manual e a automática. Pelo que foi percebido durante os estudos, para criar
matrizes tridimensionais usando a abordagem automática os desenvolvedores
necessitam calcular o custo computacional requisitado para que haja uma visualização
ideal ou o mais próximo disso para o usuário final do Ambiente Virtual. No caso da
abordagem que usa o script para criar objetos devem ser indicados os requisitos
mínimos de memória para uma visualização sem perdas de quadro e sem travamentos,
para que os usuários possam ter acesso aos resultados pretendidos pelos programadores,
e não julguem os ambientes pelas limitações de suas máquinas, mas possam gozar de
todas as estratégias disponíveis para criar mundos virtuais de forma mais rápida,
eficiente e inteligente.
Existe ainda a possibilidade de criar algo semelhante a [Fernandes e Pires, 2000]
para gerar o código diretamente no arquivo de forma estática ao invés da abordagem
dinâmica proposta neste artigo. Ambas as soluções tem suas vantagens e desvantagens,
conforme os objetivos, o cenário e os atributos que se deseja utilizar no mundo virtual
construído. A abordagem dinâmica, por exemplo, proporciona um código mais bem
elaborado e menor, porém com desempenho fortemente limitado às configurações de
hardware. Já a abordagem estática tende a ser mais robusta em termos de desempenho e
menos eficiente na questão de engenharia e espaço em disco.
Este artigo analisou a integração entre VRML e JavaScript para criação
dinâmica de objetos em um Ambiente Virtual, a biblioteca BVRB. Como principal
contribuição foram apresentados dados relativos ao desempenho do Ambiente Virtual
em vários cenários, a proposta de integrar as linguagens usadas neste trabalho para
permitir a criação dinâmica de mundos virtuais, bem como uma breve análise do custo /
benefício de criar objetos em sequência de forma estática e dinâmica, conforme os
requisitos que se pretende alcançar.
123
Revista Perspectiva Amazônica
Ano33N°
N°66 p.p.XXX
XXX
Ano
Trabalhos Futuros
Nesta etapa foi analisada a integração entre VRML e JavaScript para criação
de matrizes de objetos tridimensionais com base em resultados principalmente
qualitativos e alguns poucos dados quantitativos. Para as próximas etapas será feita
uma análise mais rigorosa a respeito do desempenho da abordagem apresentada,
usando técnicas e conceitos com base em um estudo mais aprofundado em relação a
Avaliação de Desempenho de Sistemas (ADS) que usem esta integração para
instanciar conjuntos de objetos em tempo de execução.
Em outro trabalho ainda não publicado, pelo mesmo autor deste artigo,
também foi criada uma ferramenta para gerar códigos de forma estática utilizando a
linguagem de programação Java. Sendo assim, também será feita uma análise mais
detalhada em relação as vantagens e desvantagens das abordagens estática e
dinâmica mencionadas no tópico anterior deste artigo, e desta forma mostrar em que
situações seria viável optar por esta ou aquela abordagem.
Referências
ASTAH COMMUNITY.
Disponível em <http://astah.net/editions/community>. Acesso em 17 de Fevereiro de
2012.
BRELAZ, R.; FONSECA, J. DE M.; SOUSA, L. F. E PINHEIRO, C. D. B. 2010.
Campus Virtual de Santarém: Visualização Tridimensional da Biblioteca Rui Barata
para Permitir Acesso a sua Estrutura Arquitetônica e Disposição de Objetos. ERIN
2010.
DELAIBA, V. H. B. E JUNIOR, E. A. L. (2006).
Realidade Virtual no Contexto da Eficiência Energética: Estudo e Desenvolvimento
de Ambientes Virtuais, como Ferramenta de Suporte para Aplicação Direta no Estudo
de Motores Elétrica e na Eficiência Energética.
FERNANDES, A. R. E PIRES, H. C. (2000).
VRML+: Uma Plataforma de Desenvolvimento Rápido de Mundos VRML. In: 9°
Encontro Português de Computação Gráfica, Marinha Grande, 16-18 de Fevereiro de
2000.
HENRIQUES, P. G. E SAMPAIO, A. Z. (2002).
Simulação Visual na Construção de Edifícios. In: XIV Congresso Internacional de
Ingeniería Gráfica, realizado em Santander, Espanha, 5-7 junho de 2002.
KIRNER, C. et al.
Sistemas de Realidade Virtual, Apostila do I Ciclo de Palestras de Realidade Virtual,
Universidade Federal de São Carlos, Outubro 1996, http://www.dc.ufscar.br/∼
grv/tutrv.htm
124
Download

Baixar - Faculdades Integradas do Tapajós