Escolar Documentos
Profissional Documentos
Cultura Documentos
Pgina 1 de 1
http://www.revista.unam.mx/cgi-bin/websql/Hts/indexpreFinal.hts?id=6
21/02/2003
Pgina 1 de 15
Resumen
La animacin de mundos tridimensionales virtuales en VRML se hace mediante paso de eventos
entre nodos en el mundo virtual. Tal animacin tiene la limitacin de ser fija y predeterminada, sin
cambios. Animaciones complejas se realizan a travs de scripts de VRML los cuales contienen
programas escritos en otro lenguaje de programacin. Sin embargo, la labor de programar e integrar
el script al mundo virtual, actualmente, no es sencilla ni cmoda para el usuario. En este trabajo se
describe la definicin, diseo e implementacin de los esquemas de asignacin de comportamiento
en C++ sobre mundos VRML, analizando las peculiaridades de interaccin entre ambos lenguajes.
De manera complementaria se describe una implementacin de ello en la herramienta EASYvrml, la
cual facilita el trabajo de asignar comportamiento complejo utilizando C++ a mundos descritos en
VRML.
[English]
Artculo
Realidad Virtual
El concepto de realidad virtual surge en 1965 cuando Ivan Sutherland (hoy miembro de Sun
Microsystems Laboratories) public un artculo titulado "The Ultimate Display", en el cual describe las
ideas bsicas del concepto de realidad virtual. La realidad virtual se puede definir como:
"Una combinacin de diversas tecnologas e interfaces que permite a uno o ms usuarios interactuar,
en tiempo real, con un entorno o mundo dinmico tridimensional generado por computadora" 1
Otros la definen como:
"La simulacin de medios ambientes, reales o artificiales, y de los sentidos del hombre por
computadora, de tal manera que se busca proporcionar al que participa la sensacin de que este
ambiente realmente existe" 36
La realidad virtual permite un nuevo modo de interaccin entre el hombre y las computadoras
http://www.revista.unam.mx/vol.2/num2/art2/index.html
21/02/2003
Pgina 2 de 15
Tridimensionalidad
Tiene que ver directamente con la estimulacin de los sentidos del usuario, principalmente la
visin, para dar forma al espacio virtual. Los componentes del mundo virtual se muestran al
usuario en las tres dimensiones del mundo real. En lo que se refiere a los sonidos se tienen
efectos estereofnicos (direccin).
Navegacin
Es la caracterstica que permite al usuario moverse independientemente dentro del mundo.
Las restricciones para este aspecto las especifica quien desarrolla el software. Puede permitir
varios grados de libertad, si se puede volar o no, caminar, nadar, etctera. El otro punto
importante de la navegacin es la posicin del observador, es decir, el lugar desde donde el
usuario ve el mundo virtual.
Interaccin
Permite al usuario manipular el curso de la accin dentro de una aplicacin de realidad virtual,
permitiendo que el sistema responda a los estmulos de la persona que la utiliza. Otro aspecto
de la interaccin es la semntica del ambiente, es decir, las reglas de cmo los componentes
del mundo virtual interactan con el usuario para intercambiar informacin
Inmersin
Significa bloquear al usuario de toda distraccin y enfocarse slo en la informacin u
operacin sobre la cual se trabaja. Posee dos atributos importantes. El primero de ellos es la
habilidad para enfocar la atencin del usuario. El segundo es el que convierte una base de
datos en experiencias, estimulando de esta manera el sistema natural de aprendizaje humano
(las experiencias personales).
http://www.revista.unam.mx/vol.2/num2/art2/index.html
21/02/2003
Pgina 3 de 15
Autora
Permite el desarrollo de programas de computadora, capaces de crear, editar y mantener
archivos VRML, as como programas de conversin de otros formatos de archivos 3D,
comnmente utilizados, a archivos VRML.
Composicin
Proporciona la posibilidad de utilizar y combinar objetos 3D dinmicos dentro de un mundo
VRML y as permitir la reusabilidad.
Extensin
Proporciona la posibilidad de agregar nuevos tipos de objetos no definidos explcitamente en
VRML.
Capacidad de Implementacin
Permite implementar sobre un amplio rango de sistemas.
Desempeo
Enfatiza funcionamiento interactivo y escalable sobre una amplia variedad de plataformas de
cmputo.
Escalabilidad
Permite la descripcin de mundos tridimensionales dinmicos arbitrariamente grandes.
Conceptualmente, cada programa VRML es un espacio 3D que contiene objetos que pueden ser
modificados dinmicamente a travs de diversos mecanismos. La semntica de VRML describe un
comportamiento funcional abstracto, basado en el tiempo.
En la seccin 2 se presenta una panormica acerca de lo que es asignacin de comportamiento en
mundos o escenarios virtuales, en la cual, adems de algunos conceptos, se presenta una
clasificacin de los comportamientos de acuerdo a las caractersticas que estos presentan. En la
seccin 3 se aborda la asignacin de comportamientos descritos en C++, as como los esquemas
utilizados para llevar a cabo esto. Los requisitos y las restricciones que presentan los esquemas
planteados se presentan en la seccin 4. En la seccin 5 se describe brevemente la herramienta
EasyVRML, en la cual es aplicado lo descrito en este artculo. Finalmente, en la seccin 6 se
describen las conclusiones de este trabajo, as como el trabajo que queda para un futuro.
2. Comportamiento en Mundos Virtuales
El trmino comportamiento se refiere a la modificacin del estado de los objetos dentro de un
escenario virtual, en respuesta a alguna accin del usuario o al cambio de algn otro objeto en la
escena. Este cambio de estado ocurre cuando cambia alguno de los atributos del objeto, por ejemplo
la posicin (translacin), el tamao (escala), la orientacin (rotacin) o su apariencia.
En VRML, el comportamiento se controla (lleva a cabo) mediante eventos. Un evento es la
generacin de un mensaje y su envo de un nodo a otro. Algunos nodos VRML generan eventos en
respuesta a cambios en el ambiente o interaccin del usuario. El direccionamiento de eventos
proporciona a los autores de los mundos un mecanismo separado de la jerarqua del grafo de la
escena, a travs del cual estos eventos pueden ser propagados para efectuar cambios en otros
nodos.
Una vez generados, los eventos son enviados a sus destinos para ser procesados por el nodo
receptor. Este proceso puede cambiar el estado de un nodo, generar eventos adicionales o cambiar
la estructura del grafo de la escena.
El comportamiento puede ser tan sencillo como el encender una luz con un click del ratn, o tan
complejo como el clculo de la trayectoria de un misil teleguiado. Para fines de este trabajo se
http://www.revista.unam.mx/vol.2/num2/art2/index.html
21/02/2003
Pgina 4 de 15
http://www.revista.unam.mx/vol.2/num2/art2/index.html
21/02/2003
Pgina 5 de 15
2.3.3. Comunicacin
Se refiere a la forma como se realizan el envo o la recepcin de datos de la escena VRML al
programa de comportamiento:
z
Dependiente
Este modelo de comunicacin consiste en enviar un mensaje, desde el escenario VRML al
programa de comportamiento para actualizar los valores de los objetos dentro del escenario.
Esto significa que el programa de comportamiento se comporta como esclavo del escenario
(seccin 3.3.1.)
Independiente
Este modelo consiste, a diferencia del modelo Dependiente, en un programa de
comportamiento que realiza una tarea determinada y enva datos al escenario (para que ste
actualice el estado de los objetos dentro de l), de acuerdo al tiempo que tenga ocioso en su
ejecucin (seccin 3.3.2.)
Dplex
Es una mezcla de los dos modelos anteriores. El esquema de comunicacin dplex es ms
completo y complejo (seccin 3.3.3.)
http://www.revista.unam.mx/vol.2/num2/art2/index.html
21/02/2003
Pgina 6 de 15
figura 2. Esquema de comunicacin entre C++ y VRML empleando Java como puente.
Dicho esquema establece el empleo de Java como puente entre los lenguajes, vinculando, mediante
el mecanismo de Sockets, el comportamiento descrito por un programa C++, funcionando en su
plataforma nativa, con un mundo VRML, independiente de plataforma (Figura 2).
http://www.revista.unam.mx/vol.2/num2/art2/index.html
21/02/2003
Pgina 7 de 15
Seguridad: no se permite que programas Java (applets o scripts) realicen llamados a mtodos
nativos 11, a menos que se proporcione el permiso explcitamente.
Plataforma: aunque los programas Java pudiesen realizar tales llamados, stos slo pueden
ejecutarse en la misma mquina en la que funciona el mtodo nativo.
El empleo del esquema de comportamiento remoto para la comunicacin entre VRML y C++.
Los modelos de comunicacin entre el programa C++ y el escenario VRML (dependiente,
independiente y dplex).
http://www.revista.unam.mx/vol.2/num2/art2/index.html
21/02/2003
Pgina 8 de 15
Nivel de Aplicacin
En este nivel se encuentran las aplicaciones a las cuales se desea comunicar: Escenario
VRML. Es el mundo virtual al que se desea asignar el comportamiento. Se encarga de la
interaccin con el usuario y de la visualizacin del escenario virtual. Aplicacin C++. Es el
programa o biblioteca que describe el comportamiento que se quiere asignar al escenario
virtual.
Nivel de Interfaz
En este nivel se encuentran los programas que sirven como interfaz para la comunicacin.
stos se encargan de leer o escribir datos desde el Nivel de Aplicacin, procesarlos para
enviarlos o recibirlos desde el Nivel de Comunicacin. En este nivel se realiza la gestin de la
informacin, llevando el control de la lgica de la comunicacin entre C++ y VRML. Script
Java. Este programa se encarga de leer y/o modificar el estado de los nodos en el escenario
VRML. Procesa los eventos generados en el escenario virtual y realiza la actualizacin del
estado de los objetos en el escenario. Script C++. Este cdigo se encarga de leer y/o
modificar los datos en la aplicacin C++, de la cual se obtiene el comportamiento. Para ello se
aade al cdigo de la aplicacin como una extensin de ste.
Nivel de Comunicacin
En este nivel se homogeneiza el formato de los datos, al utilizar Sockets para enviarlos de una
computadora a otra. Esto es necesario debido a que como el cdigo compilado de C++ es
dependiente de la plataforma, la alineacin de los bits puede ser diferente a la que se
necesita.
Socket Java. Se encarga del envo y recepcin de datos desde las computadoras remotas.
Implementa el PAC-R *b, utilizando las clases VRML extendidas, propuestas en [2]. Tambin
se encarga de la conversin de los tipos de datos, para que sean compatibles con VRML.
Socket C++. Se encarga del envo y recepcin de datos desde la mquina donde se est
ejecutando el escenario virtual. Implementa el PAC-R y realiza las conversiones de tipos de
datos VRML a C++.
Las aplicaciones que describen el comportamiento se ejecutan en mquinas remotas, mientras que
el escenario VRML se ejecuta en la mquina local. Sin embargo, nada impide que en esta ltima se
ejecute tambin una o varias aplicaciones de comportamiento, ya que es vlido crear un Socket a la
mquina local.
3.3. Modelos de comunicacin
http://www.revista.unam.mx/vol.2/num2/art2/index.html
21/02/2003
Pgina 9 de 15
VRML
Representa al browser, ejecutando un programa VRML. Se encarga de la interfaz con el
usuario, generacin de eventos, etctera.
Script Java (Cliente)
Manipula los valores de los campos en los nodos del escenario VRML. Adems, se comunica
con el Script C++, empleando un Socket.
Script C++ (Servidor)
Atiende las peticiones del Script Java, realizando llamados a rutinas de la Aplicacin C++.
Aplicacin C++
http://www.revista.unam.mx/vol.2/num2/art2/index.html
21/02/2003
Es el cdigo C++, que describe el comportamiento. Puede ser una aplicacin especfica para
el escenario virtual o alguna biblioteca de uso general.
En este modelo, el programa de comportamiento est dedicado a realizar los clculos que se
requieran en el escenario. Por ejemplo, en un juego de billar se enviar una solicitud desde el
escenario al programa C++, para que calcule la trayectoria de una bola cada vez que sta sea
golpeada (ya sea por el taco o por otra bola). En este caso el programa C++ no realiza otra tarea,
mas que atender las peticiones provenientes del escenario.
La principal ventaja que tiene este esquema es que el escenario se encuentra siempre actualizado.
Es ste el que lleva el control de los tiempos y los eventos. Tambin tiene la ventaja de ser ms
sencillo, pues es el esquema "natural" de VRML para asignar comportamiento: en el escenario
VRML se hacen llamados a funciones o mtodos escritos en lenguaje Java.
3.3.2. Modelo Independiente
Este modelo consiste en un programa que realiza una tarea determinada y enva datos al escenario
(para que ste actualice el estado de los objetos dentro de l) cada determinado tiempo, de acuerdo
a algunos criterios.
A diferencia del modelo dependiente, el programa de comportamiento no tiene que esperar que el
escenario virtual enve las peticiones de actualizacin necesarias. Por ejemplo, un programa C++
que monitorea el estado de un guante de RV, enva los valores del estado de ste al escenario, en el
momento en que stos cambian.
Este modelo est formado por cuatro entidades (Figura 5):
VRML
Script Java (Actuador)
Es el cdigo que implementa un hilo, el cual atiende las solicitudes de actualizacin
provenientes del Script C++. Este cdigo manipula los valores de los campos en los nodos del
escenario VRML.
Cliente C++ (Controlador)
Este cdigo tiene como formas de trabajo:
A. Semi-asincrona: El programa Script C++ enva, cada cierto tiempo, una solicitud de
actualizacin a la Aplicacin C++ para que sta le proporcione los valores necesarios para la
actualizacin del escenario.
http://www.revista.unam.mx/vol.2/num2/art2/index.html
21/02/2003
B. Asincrona: La Aplicacin C++ enva los valores de actualizacin al escenario (a travs del
Script C++), el algn momento en el que tiene tiempo ocioso.
Aplicacin C++ Este esquema tiene la ventaja de que se pueden utilizar programas que
trabajan en forma independiente de VRML. Su elaboracin es ms compleja que en el caso
del esquema dependiente, ya que se requiere considerar otros aspectos complejos de
programacin, tales como programacin multihilos (o multiproceso en el caso de sistemas que
no tengan soporte de hilos).
http://www.revista.unam.mx/vol.2/num2/art2/index.html
21/02/2003
en el escenario, al terminar el mbito del objeto el vnculo creado quedar roto, creando con esto una
inconsistencia.
Para solventar este problema se deben vincular los nodos de VRML con objetos C++, cuyo mbito
sea global al programa o a la clase de la que se toma el comportamiento.
Las dems limitaciones del comportamiento en C++ las impone el esquema de comunicacin de
comportamiento remoto. En primer lugar, el equipo en el cual est ejecutndose el programa que
describe el comportamiento, debe soportar el uso de Sockets, ya que sin stos los esquemas y
modelos planteados no pueden funcionar.
Por otro lado, se debe configurar el browser con los permisos de acceso a red, ya que de otra forma
no se tienen los privilegios de acceso a ella desde el script. Esto puede evitarse empleando un
servidor de acceso a red (proxy), el cual est instalado en el mismo equipo del cual se descarga el
escenario y proporciona al escenario una forma segura de acceso a la red (Figura 7). Sin embargo,
esta solucin queda fuera de los alcances de este trabajo.
http://www.revista.unam.mx/vol.2/num2/art2/index.html
21/02/2003
Sin embargo, stos son solamente las bases de trabajos posteriores. En particular, los autores
trabajan actualmente en el primer apartado.
En cuanto al desarrollo de ambientes distribuidos, se considera la aplicacin de tecnologas que en
la actualidad ofrecen una capa de software de ms alto nivel, que el simple paso de mensajes a los
objetos distribuidos a travs de Sockets. Existen muchos ejemplos de estas tecnologas, como
implementaciones de CORBA (Common Object Request Broker Architecture) y RMI (Remote Method
Invocation), por mencionar algunas. La aplicacin de estas tecnologas para la asignacin de
comportamiento a componentes en escenarios VRML, generara una base ms robusta para la
generacin de VDE's (Virtual Distributed Environments), ambientes en los cuales los usuarios
(avatars) son objetos que se encuentran en cualquier sitio. Las ciudades virtuales estaran
conformadas por componentes distribuidos, proporcionados por empresas o por los usuarios de la
comunidad.
El empleo de CORBA, por ejemplo, permitir que el analizador de cdigo, descrito en el Captulo IV,
pudiese ser sustituido por un compilador de IDL (Interface Definition Language), con lo cual es
posible incorporar otros lenguajes para la definicin de comportamiento de una forma sencilla. De
esta forma se pueden utilizar objetos distribuidos, escritos en diferentes lenguajes, ejecutndose en
sus plataformas nativas.
Aplicaciones posibles son los laboratorios virtuales, en los cuales se pueden tener simulaciones de
aparatos sofisticados y caros para que los aprendices experimenten sin poner en riesgo los aparatos
reales. Por otro lado, se pueden tener sistemas de telecontrol, en los que se compartan recursos
escasos y caros, por ejemplo telescopios y robots.
El estndar VRML 2.0, segn la opinin de los autores, est llegando al lmite de sus capacidades,
ya que se necesita emplear alguna de las diferentes extensiones al lenguaje, cada vez que se quiere
escribir una aplicacin con l. En el mbito mundial, se estn dedicando esfuerzos para extender la
funcionalidad a un lenguaje que est llegando a su tope. Tales esfuerzos bien podran ser dedicados
a la generacin de un nuevo estndar del lenguaje.
Con el conocimiento de las necesidades actuales y las tendencias futuras, es posible crear la
especificacin de VRML 3.0. Dicha especificacin debiera considerar la tendencia hacia la creacin
de VDE's, creados a partir de componentes. De la misma forma, se deben considerar las tecnologas
de objetos actualmente disponibles (particularmente objetos distribuidos). Por ello el nuevo VRML
debe ser orientado a objetos, para soportar estas tecnologas y, ms an, dirigido a agentes
inteligentes capaces de habitar los VDE's y dar servicios a los usuarios de stos.
Con la incorporacin de este tipo de capacidades, los programas en VRML sern cada vez ms
poderosos, pero al mismo tiempo ms grandes y complejos. Por ello, el formato del archivo VRML
podra ser cambiado a un bytecode (quiz el bytecode de Java), para hacer ms eficiente el
intercambio de escenarios virtuales.
http://www.revista.unam.mx/vol.2/num2/art2/index.html
21/02/2003
En resumen, existe una amplia gama de aplicaciones de la RV. Si sta es utilizada en conjunto con
otras tecnologas, los alcances de los sistemas de RV crecen de manera significativa, pero, al mismo
tiempo, se generan nuevos problemas y lneas de investigacin, que hacen que el panorama de
trabajo sea prometedor y amplio.
Bibliografa
4a , 4b Brutzman Don (1998) The Virtual Reality Modeling Language and Java, Communications of
the ACM: Java, 57-64.
5 Carey Rikk, Bell Gavin, & Marrin Chris (1997) ISO/IEC 14772-1 Virtual Reality Modeling Language
(VRML97), VRML Consortium Incorporated, URL: http://www.vrml.org/Specifications/VRML97
6 Fisher S. Scott & Fraser Glen (1996) The Virtual Brewery Adventure, ACM-SIGGRAPH: Computer
Graphics FOCUS: "Real" Virtual Reality SIGGRAPH '96 Slide Sets, 30 (4): 44-46.
7a , 7b Gauvin Daniel, Marchal Herv , Gauthier Roger, Rizand Jean-Franois, Delle D. Vince (1997)
LALO: Langage d'Agents Logiciel Objet. Centre de Recherse Informatique de Montreal, URL:
http://www.crim.ca/sbc/english/lalo/
8 Gigante M.A., Earnshaw R. A., & Jones H. (1993) Virtual Reality: Definitions, History and
Applications in Virtual Reality Systems. Academic Press Ltd - Harcourt Brace & Company.
9 Hartman Jed, Wernecke Josie (1996) The VRML 2.0 Handbook. Addison Wesley
10 Lavroft Nicholas (1992) Virtual Reality Playhouse: Explore Artificial Worlds on your PC. Waite
Group Press, ISBN 1-878739-19-0.
http://developer.java.sun.com/developer/onlineTraining/Security/Fundamentals/index.html
http://www.revista.unam.mx/vol.2/num2/art2/index.html
21/02/2003
[ Ejemplar Actual ]
http://www.revista.unam.mx/vol.2/num2/art2/index.html
21/02/2003