Free Web Hosting Provider - Web Hosting - E-commerce - High Speed Internet - Free Web Page
Search the Web








CURSO VRML
por el arquitecto y profesor
Gonzalo Vélez Jahn
(ARQUITECTURA-L)



entrega 16


Curso via Internet
####################
INTRODUCCION AL VRML
####################
         Agosto 1998

Facilitadores:
   - Gonzalo VELEZ JAHN     gvelez@reacciun.ve
   - Manuel VELEZ GIMON

******************************************
MODULO 3- CONSTRUCCION DE MUNDOS VIRTUALES
  Unidad 6- VRML 2.0. Comandos Basicos.
******************************************


OBJETIVO DOCENTE

Al  finalizar   el  estudio  de   esta   Unidad, el  participante debera
hallarse en capacidad de  aplicar  limitadamente  conocimientos básicos
acerca del  VRML 2.0.

ASPECTOS A CUBRIR

Arribamos aqui a la sexta y ultima unidad   de   aprendizaje  basico del
del VRML. Particularmente, esta ultima unidad se concentra en la version
2.0  que es el ultimo conjunto de especificaciones que ha sido publicado
a la fecha sobre el VRML.

6.0-  Acerca de lo transmitido anteriormente.
6.1-  Nuevas potencialidades del VRML 2.0. Cambios habidos.
6.2-  Situacion Actual
6.3-  Estrategia general docente.
6.4-  VRML 2.0- Grupos de Nodos.
6.5-  Conceptos Clave.
6.6-  VRML 2.0- SINTAXIS BASICA.
6.7-  Nodos de AGRUPACION ("PADRES). Consideraciones / Ejercicios.
6.8-  Nodos HIJOS VINCULANTES.
6.9-  Nodos COMUNES. Consideraciones / Ejercicios.
6.10- Nodos GEOMETRICOS. Consideraciones / Ejercicios.
6.11- Nodos.INTERPOLADORES. Consideraciones / Ejercicios.
6.12- Nodos SENSORES. Consideraciones / Ejercicios.
6.13- Nodos de AMARRE. Consideraciones / Ejercicios.
6.14- Incorporacion del JAVA al VRML 2.0.

      CONSIDERACIONES FINALES.

-------------------------------------------------------------------------

6.0- ACERCA DE LO TRANSMITIDO ANTERIORMENTE
-------------------------------------------------------------------------

Nos aprestamos para asomarnos a las promesas del VRML 2.0. Pero antes de
hacerlo es justo que comentemos acerca de lo  transmitido anteriormente.
No quisieramos crear la falsa impresion de que la aparicion del VRML 2.0
invalida o desactualiza radicalmente al VRML 1.0. Debe entenderse que la
gran popularidad inicial del VRML se  debio  en  buena  parte  a  que su
primera version era en esencia sencilla y factible a ser utilizada hasta
por personas con escasa formacion previa en el area informatica.  Con el
VRML 2.0 esta situacion experimenta un cambio. Para alcanzar  un dominio
operativo de las potencialidades de la nueva version es  necesario pagar
un precio y ese precio consiste fundamentalmente en un mucho mayor tiempo
de experimentacion y de la necesidad de que los no especializados  en el
area informatica deban consultar -e idealmente trabajar  en  equipo con-
tecnicos que esten familiarizados con conceptos tales  como programacion
orientada a objeto, C++ y JAVA, por mencionar algunas  areas  de conoci-
miento afines al tema.

Claro esta nos referimos a la pretension de adquirir un conocimiento ope-
rativo DIRECTO del VRML 2.0. Siempre existe la posibilidad de apoyarse en
el uso de aplicaciones  "editoras"  o  "constructoras"  que simplifiquen
parte del trabajo. Pero,  aparte de  reducir el ambito  de participacion
del diseñador de mundos virtuales cuando este depende de ello exclusiva-
mente, presenta la dificultad de que varioss de los  nuevos  conceptos no
observan una correspondencia grafica directa lo cual dificulta el uso de
paletas y recursos de tipo visual incorporados como ayudas predilectas en
los editores.

A los colegas  arquitectos  que  participan  en  el  presente  curso les
comunico que los trabajos de comparacion que adelanto acerca de enfoques
en el uso del VRML 1.0 y el 2.0 se han estrellado ante la casi inexisten-
cia de ejemplos producidos en VRML 2.0.Y los pocos que he podido detectar
hacen uso limitadisimo y de ningun modo representativo de las potenciali-
dades del VRML 2.0. Por lo demas, la  incorporacion  de  nuevos recursos
tales como sensores, detectores de colision,encadenamiento de mundos etc.
exigen un despliegue de creatividad, hasta el momento ausente, que permi-
tan insertar nuevos recursos dinamicos a un mundo tradicionalmente esta-
tico desde un punto de vista interactivo como ha sido hasta la  fecha el
de la representacion de objetos, formas y situaciones arquitectonicas.

Si desean que ilustre lo que puede hacer un poco de creatividad en el uso
de un recurso les recomiendo que accedan a:

http://www-vrl.umich.edu/sel_prj/lathe/

Y se sorprenderan de una aplicacion ingenieril para  TORNEAR objetos tri-
dimensionales ("virtual lathe") utilizando movimiento e interaccion...

No se la pierdan... Es un reto al ingenio...

Tambien es posible que las limitaciones de amplitud de  banda imperantes
en el momento en la WWW hayan contribuido a limitar el entusiasmo  por la
exploracion de nuevas potencialidades del VRML 2.0. Cualquiera que sea la
explicacion la leccion que nos queda es la siguiente:  no  subestimar la
importancia y ventajas que aun mantiene el uso del VRML 1.0 para aquellas
disciplinas que no dependen primordialmente de las bondades del VRML 2.0,
al menos dentro de la optica de lo previsible.

-------------------------------------------------------------------------

6.1-  NUEVAS POTENCIALIDADES DEL VRML 2.0. CAMBIOS HABIDOS.
-------------------------------------------------------------------------

Repasando un poco lo ya expuesto con  anterioridad  en  otra  unidad del
curso podemos decir que el VRML 2.0 aporta:

--> Incorporacion de ANIMACION en los Mundos.

--> Incorporacion de recursos de INTERPOLACION DINAMICA.
    (Posicion, orientacion, coordenadas, normales, escalares, colores).

--> Incorporacion de COMPORTAMIENTOS complejos a partir de GUIONES.
    "Scrips", "Scripting".

--> ENRIQUECIMIENTO DE MUNDOS a partir de nuevos y mas poderosos y versa-
    tiles nodos geometricos.

--> Mayor EFICIENCIA en la construccion de mundos apoyandose en el RE-USO
    de nodos y en su PROTOTIPIFICACION.

--> Incorporacion de recursos de VISUALIZACION en los nodos para guiones
    ("scripting").


LIMITACIONES COMBATIDAS
-----------------------

De esta forma, se contribuye  a  combatir  las  mas  obvias limitaciones
evidenciadas en el VRML 1.0 que eran:

-->  POBREZA DE INTERACCION, con  imposibilidad  para  manipular objetos
     a nivel individual en los mundos creados.

-->  INCAPACIDAD PARA DETECTAR PROXIMIDADES Y COLISIONES.

-->  RESTRICCIONES EXCESIVAS EN LA CONSTRUCCION DIRECTA DE FORMAS.

-->  RESTRICCIONES EN LA CONSTRUCCION DE ESCENARIOS.

-->  AUSENCIA DE COMPORTAMIENTO EN LOS MUNDOS 1.0
     (Al carecer de animacion, nocion del tiempo y de eventos.

-->  POBREZA DE SOPORTE PARA PROTOTIPIZAR NUEVOS NODOS

-->  AUSENCIA DE SOPORTE PARA CINTAS CURVADAS EN 3-D.

-->  AUSENCIA DE SONIDO.


ALTERACIONES PRODUCIDAS
-----------------------
Tres clases de alteraciones han ocurrido en el pase del VRML 1.0 al 2.0:

   a) Eliminacion de nodos y / o comandos existentes en el 1.0
   b) Modificacion y ajuste de nodos existentes en la version 1.0.
   c) Incorporacion de nuevos nodos que aportan nuevas posibilidades.

La discusion detallada de cada una de estas sirtuaciones escapa al alcan-
ce del presente curso.

-------------------------------------------------------------------------

6.2-  SITUACION ACTUAL
-------------------------------------------------------------------------

Posterior a la version inicial de VRML 2.0 se introdujeron en 1997 algu-
nas modificaciones menores que aquellos participantes del curso  que asi
lo deseen podran consultar via Internet en:

http://www.vrml.org/Specifications/VRML97/

-------------------------------------------------------------------------

6.3-  ESTRATEGIA GENERAL DOCENTE.
-------------------------------------------------------------------------

Simplificando el enfoque utilizado para transmitir el  VRML 1.0  en este
curso introductorio reduciremos el aprendizaje del VRML 2.0, aparte de la
descripcion de conceptos clave  para  la  comprension  del  mismo,  a la
descripcion de las nuevas opciones que ofrece apoyandonos en  el  uso de
ejemplos sencillos que permitan que ustedes puedan  operarlos facilmente
si poseen un buen browser para ello(entre otros WorldView o Cosmo Player)
De esta forma el curso se hara mucho mas experimental y posiblemente mas
atractivo para muchos. Para lograr este cometido, nos apoyaremos  en dos
excelentes documentos: La version oficial  de  especificaciones  para el
VRML 2.0 aparecida en agosto del 96, que puede consultarse en:

http://cosmosoftware.com/developer/moving-worlds/spec/index.html

y el libro titulado:

         "THE VRML 2.0 SOURCEBOOK"    (1997)
De: Andrea L. Ames, David R. Nadeau y John L. Moreland
              ISBN 0-471-16507-7

y del cual han sido tomados la mayor parte de los  modelos utilizados en
esta unidad. Estos mundos, y muchos otros ejemplos  los  pueden conseguir
los participantes de este curso directamente en la Internet en:

http://holodeck.st.usm.edu/classes/vrml20/unix/cover/cover.htm

No se los pierdan ! Valen la pena....

-------------------------------------------------------------------------

6.4-  VRML 2.0- GRUPOS DE NODOS.
-------------------------------------------------------------------------

La totalidad de los nodos aparecidos en esta primera version oficial del
VRML 2.0 incluye, divididos en 9 grupos:

A- Nodos de AGRUPACION    B- GRUPOS ESPECIALES       C- NODOS COMUNES
   ("Grouping nodes")        ("Special Groups")         ("Common Nodes")

   - Anchor                  - Inline                  - AudioClip
   - Billboard               - LOD                     - DirectionalLight
   - Collision               - Switch                  - PointLight
   - Group                                             - Script
   - Transform                                         - Shape
                                                       - Sound
                                                       - SpotLight
                                                       - WorldInfo

D- SENSORES               E- GEOMETRIA        F- PROPIEDADES GEOMETRICAS

   ("Sensors")               ("Geometry")        ("Geometric Properties")

   - CylinderSensor          - Box                     - Color
   - PlaneSensor             - Cone                    - Coordinate
   - ProximitySensor         - Cylinder                - Normal
   - SphereSensor            - ElevationGrid           - TextureCoordinate
   - TimeSensor              - Extrusion
   - TouchSensor             - IndexedFaceSet
   - VisibilitySensor        - IndexedLineSet
                             - PointSet
                             - Sphere
                             - Text

G- APARIENCIA           F- INTERPOLADORES            N- NODOS DE AMARRE

    ("Appearance")          ("Interpolators")          ("Bindable Nodes")

    - Appearance            - ColorInterpolator          - Background
    - FontStyle             - CoordinateInterpolator     - Fog
    - ImageTexture          - NormalInterpolator         - Navigationinfo
    - Material              - OrientationInterpolator    - Viewpoint
    - MovieTexture          - PositionInterpolator
    - PixelTexture          - ScalarInterpolator
    - TextureTransform

De estos,solo analizaremos los mas representativos del VRML 2.0. Se asume
que aquellos nodos no mencionados en este  trabajo  forman  parte  de un
nivel más avanzado que el contemplado por la naturaleza introductoria del
presente curso o, en su defecto han sido ya descritos muy aproximadamente
en el módulo correspondiente al VRML 1.0.

-------------------------------------------------------------------------

6.5-  CONCEPTOS CLAVE.
-------------------------------------------------------------------------

--> CAPACIDADES
    ---------
El VRML 2.0 es capaz de representar objetos estaticos y/o animados. Puede
soportar hipervinculos que lo enlacen con otros medios tales como sonido,
peliculas e imagenes.  Existen  numerosos  "browsers"  y  herramientas de
autoria que  pueden  contribuir  a  agilizar  y  facilitar  la  labor del
diseñador participante.

El VRML 2.0 soporta un modelo de extensibilidad que permite la definicion
de nuevos objetos y un proceso de registro que  permite el  desarrollo de
extensiones interoperables con respecto al estandar de base.

--> FICHERO VRML 2.0

Un fichero VRML 2.0 es una descripcion textual de un mundo virtual. Como
tal, contiene texto que puede ser creado con cualquier editor de texto o
procesador de palabras y comunicado a traves de redes utilizando  correo
electronico. Tambien  puede  construirse  dicha  descripcion  utilizando
aplicaciones (editores o constructores) que  permitan  editar  el  mundo
tridimensional o utilidades que traduzcan  otros  formatos  de  ficheros
graficos a VRML 2.0.Un fichero de VRML 2.0 esta en capacidad  de  alojar
descripciones de formas tridimensionales, su ubicacion dentro del  mundo
virtual creado,  colores,  efectos  visuales,  movimiento,  colisiones y
otros. Se lo identifica mediante la terminacion .wrl (world).

--> BROWSER DE VRML

Es una aplicacion que permite construir un mundo virtual a partir de  la
lectura del fichero correspondiente escrito en vrml 2.0. Y, a medida que
el participante se desplaza dentro del mundo virtual, el browser procede
a apoyar graficamente el mundo  virtual  y  los  cambios  que  acontecen
debido a tal desplazamiento.

--> UNIDADES DE MEDICION
    --------------------
El VRML no provee capacidad para definir unidades de medida.En consecuen-
cia y como convencion, se asume que todas las distancias lineales  estan
en metros y los angulos en radianes. Por su parte, las unidades de tiempo
se especifican en el espacio de color RGB (Red-Green-Blue)  y  estan res-
gidos al rango 0 a 1.

--> SISTEMAS DE COORDENADAS Y TRANSFORMACIONES
    -----------------------------------------

El VRML utiliza un sistema cartesiano  de  coordenadas,  tridimensional y
diestro (eje-X crece hacia la derecha / eje-Y crece hacia  arriba / eje-Z
crece hacia delante. Las escenas pueden contener un numero  arbitrario de
sistemas de coordenadas locales, definiidos por los campos de transforma-
cion en los nodos Transform y Billboard.

Conceptualmente, el VRML 2.0 posee tambien un sistema de  coordenadas de
referencia del Mundo. Merced a este recurso, las  diferentes transforma-
ciones a nivel de coordenadas locales  "mapean"  objetos  al  sistema de
coordenadas locales que es donde se ensambla la escena, en funcion de la
jerarquia prevista para su estructuracion y construccion, de abajo hacia
arriba.

--> COMPONENTES DE UN FICHERO VRML 2.0
    ----------------------------------

Un fichero VRML 2.0 puede contener cuatro tipos de componentes:

   - ENCABEZADO ("header")
   - PROTOTIPOS.
   - FORMAS, INTERPOLADORES, SENSORES Y GUIONES ("Scripts")
   - RUTAS.

No todos los ficheros deben contener todos estos componentes.  De hecho,
el unico obligatoriamente requerido es el encabezado.

Por otra parte, y a nivel mas desagregado,  un  fichero  VRML  2.0 puede
contener: comentarios, nodos y sus nombres, campos y sus valores.

--> NODOS DE AGRUPACION ("PADRES") Y NODOS "HIJOS"
    ---------------------------------------------
Desde el punto de vista de su dependencia y subordinacion, los  nodos del
VRML 2.0 pueden dividirse en dos grupos: 1) Aquellos que poseen  la capa-
cidad de subordinar a los demas y  hacerlos  depender  jerarquicamente de
ellos. Reciben el nombre de Nodos de Agrupacion ("Grouping"). 2) Aquellos 
que poseen la capacidad de subordinarse a los Nodos de Agrupacion confor-
mando subconjuntos de nodos cuyos parametros estan condicionados interna-
memte dentro del grupo del cual forman parte. Reciben el nombre  de Nodos
"Hijos" ("Children Nodes). Este concepto es vital para concebir y ordenar
las estructuras programaticas que privan en el VRML 2.0.

Son NODOS DE AGRUPACION: Anchor, Billboard, Collision,  Group y Transform.

Por su parte, constituyen NODOS "HIJOS":  Anchor,  Background, Billboard,
Collision,   ColorInterpolator,  CoordinateInterpolator, CylinderSensor,
DirectionalLight,    Fog,    Group,    Inline,    LOD, NavigationInfo,
NormalInterpolator,   OrientationInterpolator,   PlaneSensor, PointLight,
PositionInterpolator,    PROTO'd child nodes,   ProximitySensor, Script,
ScalarInterpolator,   Shape,   Sound,  SphereSensor,   SpotLight, Switch,
TimeSensor, TouchSensor, Transform, Viewpoint, VisibilitySensor,WorldInfo.

--> NODOS HIJOS VINCULANTES  ("Bindable children nodes)
Los nodos BACKGROUND  ("fondo"),  FOG  ("niebla");  VIEWPOINT  ("punto de
vista") poseen el comportamiento unico, de que cada uno de ellos puede ser
"activo" (es decir, poseen  capacidad  para  afectar  la  experiencia del
participante) en cualquier punto en el tiempo.

    -----------------------
--> NODOS INTERPOLADORES
    --------------------
    Los nodos interpoladores han sido concebidos para apoyar secuencias de
animacion cuadro-a-cuadro. es decir, establecen imagenes de transformación
entre dos detereminadas posiciones para un determinado lapso.

--> INSTANCIACION ("Instancing"; "sharing"; "aliasing")
    -------------
Un nodo puede estar referenciado muchas veces dentro de un fichero VRML. A
esta cualidad se la denomina INSTANCIACION por la mayoria de  los autores
de   documentos  referidos  a  VRML  pero  existen  otras  modalidades de
referencia. La instanciacion se logra mediante el uso de las instrucciones
DEF y USE. La palabra DEF permite definir el nombre de un nodo y  crea un
nodo de ese tipo. La palabra USE indica  que  una  referencia  a  un nodo
previamente nombrado debe ser insertada en el grafo escena  (scene graph).
Esto origina el efecto de compartir un nodo para mas  de  una determinada
ubicacion en la escena. Si ese nodo es luego  modificado,  entonces todas
las referencias a ese nodo seran modificadas.

-------------------------------------------------------------------------

6.6-  VRML 2.0- SINTAXIS BASICA.
-------------------------------------------------------------------------

--> ENCABEZADO DE PROGRAMAS EN VRML 2.0
    -----------------------------------
Todo programa en VRML 2.0 debe iniciarse de la siguiente forma:

#VRML V2.0 utf8

--> REGLAS PARA DENOMINACION DE CAMPOS Y EVENTOS
    -------------------------------------------

Las   reglas   para   nombrar   campos  ( "fields" ) ,   campos expuestos
("ExposedFields"), salidas de eventos ("eventOuts") y entradas de eventos
("EventsIns") para nodos construidos son las siguientes:

     - Todos  aquellos nombres  que  contienen  multiples  palabras deben
       iniciarse con letra minuscula y la primera letra  de  cada palabra
       subsiguiente se escribira con mayuscula (p.ej.bboxCenter),  con la
       excepcion hecha de get_ y _changed, descritas mas adelante.

     - Todos aquellos "eventIns" obedeceran al  prefijo  "set_" -  con la
       excepcion    de   aquellos    conocidos    como   "addChildren" y
       "removeChildren".

     - A todos los eventos del tipo "eventOuts" se le  añadira  el sufijo
      "_changed", con excepcion de aquellos eventos  del  tipo  SFBool. En
       ese caso los eventos Booleanos deberan  iniciarse  con  la palabra
      "is" para mayor legibilidad.

     - Todos aquellos "eventIns" y "eventOuts" del tipo SFTime no deberan
       utilizar el preffijo"set_" o el sufijo "_changed".


                                                                ...sigue


Siguiente entrega.
Indice del CURSO VRML.