Association for Computing Machinery
Página principal
Professional Chapters
OrganizaciónEventosRegresar a página principalSIGGRAPHEnglish version


¿Comentarios, sugerencias?
Contactanos

mcc@siggraph.org.mx


#17 - Febrero 96
Boletín Anterior

VRML (Virtual Reality Modeling Language)

Siguiente Boletín

 

D.I. Gonzalo León gleon@spin.com.mx

Ing. Eduardo Llaguno Velasco ellaguno@softtek.com

Ing. Juan Carlos Belaer juancarlos@mexico.sgi.com

Ing. Luis Daniel Soto Maldonado luisdans@microsoft.com

MC Arnulfo Zepeda zepeda@siggraph.org

 



¿Qué es VRML?

Por. Gonzálo León
La definición oficial dice que se trata de un lenguaje para describir simulaciones interactivas de participación múltiple. En español, Lenguaje de modelado de realidad virtual.

Historia
En la primavera de 1994, durante la primera conferencia anual de WWW en Génova, Suiza, Tim Berners-Lee y Dave Ragett organizaron una reunión para discutir las interfases de Realidad Virtual al WWW. Resultando que muchos de los participantes estaban trabajando en proyectos para conseguir herramientas de visualización tridimensional que interoperaran con el Web. La fuerza de trabajo en torno al VRML, se concentró en torno a una lista de correo, donde los participantes llegaron a un consenso sobre los reuerimientos para conseguir un VRLM, y discutieron las tecnologías existentes antes de pronunciarse por la tecnología Open Inventor de Silicon Graphics.

¿Que se requería del VRLM?

  1. Independencia de plataforma.

  2. Extensibilidad.

  3. Habilidad para trabajar adecuadamente con conexiones de poco ancho de banda.




¿Por qué se escogió Open Inventor ASCII file format?: Open Inventor es un lenguaje desarrollado por Silicon Graphics, que fue seleccionado entre otros como base para desarrollar VRML, ya que:

  1. Esta bien documentado.

  2. Contiene descripciones de objetos tridimensionales bastante completas.

  3. Muchos modelos disponibles, convertidores fáciles de escribir.

  4. Muchos modeladores disponibles.

  5. La funcionalidad del sistema se puede contruir poco a poco.

Los desarrolladores de Open Inventor no se mostraron en desacuerdo en el uso de los archivos tipo ASCII, reservando el uso de los archivos binarios. Esto noes problema ya que la mayoría de los archivos ASCII pueden ser compactados y leidos directamente en forma comprimida. El siguiente paso de la aceptación de Open Inventor fué la diponibilidad de un Parser de dominio público, el Qvlib, librerías escritas en C++, realizado por Paul S. Strauss, de Silicon Graphics. Su disponibilidad inmediata fue el empujón que permitió desarrollar visores de VRML en diversas plataformas que estuvieron disponibles a finales de 1994, junto con la primera versión de VRML.

Toda la historia y la especificación de VRML se puede encontrar en el repositorio central, en los siguientes URLs: vrml.wired.com y www.sdsc.edu/vrml.

Navegadores y editores de VRML

Por Eduardo Llaguno
Exiten diferentes visores para poder experimentar con VRML en el internet, disponibles para diferentes plataformas aunque a veces un tipo de navegador no está disponible más que en una o dos plataformas, y en muchos casos las versiones están en etapas Alfa o Beta. La lista de estos navegadores se actualiza continuamente y puede ser consultada en www.sdsc.edu/SDSC/Partners/vrml/repos_software.html . Los diversos visores se distinguen por sus funcionalidades por lo que no es necesario escoger solamente uno. Las funcionalidades que deben tomarse en cuenta son:

  • Plataforma.

  • Versión.

  • Número de colores (algunos solo soportan 8 bits como World View).

  • Velocidad.

  • Tipo de sombreado (wireframe, flat, gouround,phong).

  • Soporte de texturas.

  • Forma de despliegue (WebFX se puede ver como una ventana dentro de un HTML).

  • Posibilidad de modelar escenas (como el caso de Fountain).

Otro detalle a tomar en cuenta es que realmente a través de la aplicación se puede navegar en el Web con las ligas (HotSpots) definidos en la escena tridimensional, dado que algunas aplicaciones sólo son visores, incapaces de navegar, solo muestran la escena como una aplicación auxiliar (Helper) muestra cualquier archivo. Algunos ejemplos de navegadores son:

  • WebSpace (SGI,WinNT,Win95,AIX,Solaris).

  • WorldView (Win31,Win95).

  • WebFX (Win31,Win95,WinNT)(Plug-in diseñado para Netscape 2.0).

  • Fountain (Win31,Win95).

  • Virtus Voyager (Mac, PowerMac).

  • VRweb (Win31, Win95, WinNT, HP-UX, SunOS, Solaris,SGI, Linux, AIX,ULTRIX).

Todos ellos estan disponibles enla Red, se puede acceder a ellos a través del repositorio de VRML mencionado anteriormente.

Herramientas de autoría para VRML

Por Juan Carlos Belair
Para crear archivos VRML existen escencialmente dos maneras. La primera es hacerlo a mano, es decir utilizar cualquier tipo de editor de texto y escribir. La segunda y la máls sencilla es el usar una herramienta de autoría ¿Qué implica esto?:

  • El autor gana mucho tiempo al no tener que escibir códigos.

  • El autor ve lo que esta creando en ese mismo momento sin tener que hacer uso de un navegador de VRML.

  • Lo más importante el autor no tiene que conocer el lenguaje VRML para crear sus mundos virtuales.

La herramienta de autoría (mostramos Webspace Author para SGI) crea archivos VRML. Para crear un mundo el autor necesita tener sus modelos en 3D, (transformados al formato adecuado en este caso Open Inventor) importarlos y hacerles las modificaciones necesarias. En caso de que no tenga sus modelos en 3D Webspace Author trae utilerías que permiten crear objetos y texto en 3D.

Una vez que se selecciona un objeto se peude desplazar dentro del mundo, darle una serie de atributos (textura,color,nivel de detalle, ligas, etc.), modificar el tamaño, alinear con otros objetos, y más. Para aplicar texturas y colores se seleeciona el objeto y después, a través de unas paletas se escoge el color o la textura deseada; o el autor puede definir sus propias paletas de colores y texturas. Las ligas se crean a través de una caja de diálogo, éstas pueden ser hacia una imagen, video, audio o un Url. Aparte la mayoría de herramientas de autoría de VRML, Webspace Author cuenta con un editor de nivel de detalle o LOD (Level of Detail). En este caso se selecciona un objeto para el cual se considera que sólo se quiere ver a detalle cuando se está muy cerca y solo ciertas líneas cuando se está maás lejos. Para VRML lo que vamos a hacer es que vamos a tener varios modelos representando el mismo objeto, se escogerá un modelo diferente según la distancia a la que nos encontramos del objeto real. Tomamos el modelo original y definimos en que rango de distancias lo queremos ver, despues lo duplicamos y la copia que se va a usar para una distancia mayor la pasamos por una utilería que reduce el número de polígonos. Así se puede ir formando varios duplicados. Toda la labor de modelado y definición de mundos virtuales se peude hacer sin tener ninguna idea (aunque no es recomendable) de VRML como lenguaje. Con este tipo de herramientas las gentes que deseen crear mundos virtuales podrán hacerlo sin necesidad de perder tiempo al aprender un lenguaje o checar los errorcitos de sintaxis inevitables cuando se programa a mano.

Webspace Navigator: Webspace.sgi.som/Webspace/index.html, Webspace Author: Webspace.sgi.com/WebspaceAuthor/index.html

Bibliografía: The VRML Sourcebook Andrea L. Ames, David R. Nadeau, & John Moreland of SDSC.




El futuro de VRML

Arnulfo Zepeda
El objetivo de VRML ha sido la creación del ciberespacio, en la concepción que ha sido plasmada de manera más imaginativa a través de novelas como Snow Crash de Neal-Stephenson y Neuromancer de William Gibson. Como tal, algunos de los requisitos fundamentales de este ciberespacio es que sea gráfico, multiparticipativo, distribuido e independiente de plataforma.

Para lograr la creación es necesario sobrepasar varios problemas actuales tales como el desempeño gráfico (especialmente en máquinas PC's ya que son la mayoría de la población), la latencia y la velocidad de red, y la creación de un modelo de interacción que con miles de participantes, ¡O incluso millones!.

El siguiente paso importante hoy en día para VRML es la creación de uin marco que permita comportamientos, entendido a estos como a cambio en el mundo tridimensional a través del tiempo y la posibilidad del usuario de causar o ser afectado por dichos cambios. Dichos cambios podrían ser activados por interacción del usuario, el paso del tiempo, y otros objetos. Por simplicidad de diseño los comportamientos se han clasificado en simples (un usuario con su ambiente) y en complejos (multiusuario). VRML 2.0 tiene como meta la implementación de comportamientos simples, dejando como siguiente paso lógico los complejos. La propuesta de la versión dos implementa:

  1. Fondos gráficos.

  2. Cámaras con campos de distancia.

  3. Información de colisión.

  4. Sonidos espaciales.

  5. Sistemas de elevación (elevation guide).

  6. Luces de ambiente y niebla.

  7. General ?????? nuevo nodo y familia de formas derivadas.

  8. Información de navegador.

  9. Sensores de proximidad.

  10. Información de título y documento.

Las propuestas actuales para una definición de VRML 2.0 son:

  1. Active VRML (Microsoft-Conal Elliot)

  2. Moving Worlds (Mitra/Sony-Y. Honda/SGI-??? Carey)

  3. y algunos modelos propuestos por ???? Waterloo (B.Roehl) y por la compañía BESoft.

Un ejemplo de VRML 2.0 en el marco de Moving Worlds es el siguiente:

; A cube that changes color when picked
DEF CLICKSENSOR ClickSensor {
   DEF MATERIAL Material { }
   Cube { }
   DEF LOGIC Logic {
      eventIn SFBool isBeingClicked
      eventOut SFColor color
      script "processEvents(EventList events) {
         Color outputColor;
         for (int i=0; i< events.getlenght(); i++) {
            BoolEvent event = (BoolEvent) events[i];
            if (event.isTrue())
               outputColor = Color(1,0,0);
            else
               outputColor = Color(0,1,0);
         }
      SEND_COLOR_EVENT (\"color\",outputColor);
      }"
   }
   ROUTE LOGIC.color[] > MATERIAL.setDifuseColor
   ROUTE CLICKSENSOR.isActive[] > LOGIC.isBeingClicked
}

Un ejemplo de ActiveVRML es:

; Bouncing Ball
ball, ballMin, ballMax = import("ball.wrl");
rawBox, boxMin, boxMax = import("box.wrl");
box = opacity3(0.2)(rawBox);
bounce1(min,max,accel,pos0,vel0)= 
let
// Describe one pahse of behaivor and transition to next, given
// starting position and velocity
   bouncePhase(newPos0,newVel0) =
   let
   // Start velocity at newVel0, and acceletare 
   vel = newVel + integral(accel);
   // Start position at newPos, and grow with velocity
   pos = newPos0 + integral(vel);
   // Bounce event. Hits min descending or max ascending.
   bounce = predicate ( ( pos <= min and vel < 0)
                        or (pos >= max and vel > 0))
   in
// Follow this position phase until a bounce. Then snapshot the
// position and the reversed, reduced velocity to get the nex
// starting position and velocity, repeat.
   pos until
   snapshot ((pos, 0.9 * vel),bounce) => bouncePhase
in
   bouncePhase(pos0,vel0);

Uno de los puntos aún por resolver para lograr la creación del ciberespacio es encontrar un modelo para distribución de objetos a través de Internet. Algunos de los modelos explorados han sido COBRA/ILU/IDL (que resulta demasiado pesado), un esquema de objetos centralizados (que no resuleve el problema) y están explorando esquemas nuevos de objetos distribuidos, sin llegar aún a un consenso de modelo a adoptar.

En el futuro cercano (Feb 96) se esta esperando que se cierre la recepción de propuestas para VRML 2.0 para pasar a un proceso de discusión y refinación y tener para 1996 su definición final. Ademas, pioneros del campo como Mark Pesce han propuesto la creación de un consorcio que regule la evolución de VRML tal y como ocurre con el consorcio X para X Windows y muchos otros.


VRML (Virtual Reality Modeling Language) el estandard emergente para crear aplicaciones de realidad virtual distribuidas sobre Internet será presentado! Veremos desde una introducción al VRML, viewers y convertidores para VRML, herramientas autoria para VRML, ActiveVRML (propuesta para VRML 2.0 de Microsoft), y los avances esperados de VRML para 1996 (VRML 2.0, Comportamientos, Simulaciones).

 


ŠTodos los derechos reservados, se prohibe la reproducción salvo permiso por escrito del autor.
ŠAll rights reserved, any copying or duplication of this material is prohibited without written authorization by its author.