CURSO VRML |
|
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
|
|