|
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?
- Independencia de plataforma.
- Extensibilidad.
- 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:
- Esta bien documentado.
- Contiene descripciones de objetos tridimensionales bastante
completas.
- Muchos modelos disponibles, convertidores fáciles de
escribir.
- Muchos modeladores disponibles.
- 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:
- Fondos gráficos.
- Cámaras con campos de distancia.
- Información de colisión.
- Sonidos espaciales.
- Sistemas de elevación (elevation guide).
- Luces de ambiente y niebla.
- General ?????? nuevo nodo y familia de formas derivadas.
- Información de navegador.
- Sensores de proximidad.
- Información de título y documento.
Las propuestas actuales para una definición de VRML 2.0 son:
- Active VRML (Microsoft-Conal Elliot)
- Moving Worlds (Mitra/Sony-Y. Honda/SGI-??? Carey)
- 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.
|