Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccin
a) Presentacin y contextualizacin:
Los temas que se tratan en la presente unidad temtica, tienen por finalidad que el
estudiante tome conozca el lenguaje VRML El Virtual Reality Modeling Language
es un lenguaje de modelado de mundos virtuales en tres dimensiones al igual que
el HTML.
b) Competencia:
Conoce el lenguaje VRML para desarrollar diferentes tipos de aplicaciones.
c) Capacidades:
1. Reconoce correctamente la sintaxis y comandos de VRML.
2. Conoce el proceso de construccin de formas de texto usando los comandos
adecuados.
3. Aplica los diversos nodos que nos permitan agrupar objetos y construirlos de
manera ms compleja.
4. Emplea los diferentes nodos de agrupacin en aplicaciones de realidad virtual.
d) Actitudes:
Utiliza de manera dinmica el lenguaje VRML.
Muestra perseverancia en el desarrollo del lenguaje VRML.
Introduccin
TEMA 1
a VRML
Competencia:
Reconocer correctamente
comandos de VRML.
la
sintaxis
VISUALIZADORES VRML:
Es posible visualizar archivos VRML mediante dos tipos de aplicaciones diferentes:
Documentos VRML:
Como se ha mencionado anteriormente, VRML es un
lenguaje de descripcin de escenas en el que cada escena
se compone de un nmero de objetos. Los objetos pueden
ser formas slidas situados y orientados de determinada forma u elementos
intangibles que afectan a la escena como luces, sonido y distintos puntos de vista.
Para crear estos mundos de realidad virtual se utilizan archivos de texto, cuya
extensin ser siempre .wrl, los cuales pueden ser desarrollados mediante cualquier
editor o procesador de textos. Adems existe la posibilidad de utilizar programas de
diseo grfico, los cuales generan automticamente archivos en formato VRML.
Los campos pueden ser simples o campos que indiquen a vectores u otros nodos.
Estilo de escritura de los programas:
VRML es un lenguaje sensible a maysculas y minsculas, lo cual ha de ser
tenido en cuenta a la hora de asignar nombres.
Todos los nodos han de comenzar siempre con letra mayscula.
Los campos de los nodos deben comenzar siempre con letra minscula.
Los campos de los nodos deben comenzar siempre con letra minscula.
Los nmeros se escriben en punto flotante.
Utilizar una lnea distinta para cada nodo, para cada campo y
para cada valor de cada campo.
Indentar cada lnea, segn su jerarqua.
Colocar cada smbolo de cierre en el nivel de
indentacin que le corresponda.
Poner las lneas de comentario necesarias al mismo
nivel que lo que se comenta.
Poniendo nombres propios a los nodos.
El campo appearance especifica las propiedades en cuanto a textura, material, etc del
objeto que se describe en el campo geometry. Hablamos de formas primitivas cuando
Shape utiliza nodos geomtricos primitivos para construir una figura. Los nodos
geomtricos primitivos son los siguientes:
Box (Caja)
Cylinder (Cilindro)
Cone (Cono)
Sphere (Esfera)
Box{
Ejemplo:
Cone{
height 3.0
bottomRadius .75
}
Mediante los campos bottom, side y top se indica si se desea dibujar la base
inferior,la superfice lateral y la base superior del cilindro. Por defecto estos campos
toman el valor TRUE, lo cual indica que se dibuja el cilindro completo.
Ejemplo:
Cylinder{
height 2.0
radius 1.5
}
Ejemplo:
Sphere{
Sphere{
radius radio
radius 1.0
Ejemplo:
#VRML V2.0 utf8
Shape{
appearance Appearance{
material Material {}
}
geometry Cylinder{
height 2.0
radius 1.5 }
}
Construccin
de Formas
de Texto
TEMA 2
Competencia:
Conocer el proceso de construccin de formas
de texto usando los comandos adecuados.
En los mundos virtuales ser a menudo necesario utilizar textos para guiar al visitante
Para ello existe un nodo especfico, el nodo Text. Una de las principales
caractersticas de los textos es que son planos, es decir, no tienen profundidad.
Sintaxis:
Text {
string ["linea_texto 1",
"linea_texto 2",
.
.
.
"linea_texto N",]
fontStyle FontStyle {
family "Nombre_Fuente",
style "Estilo_Fuente",
size Tamao_Fuente
spacing espaciado_entre_caracteres
justify "justificacin_del_texto"
}
}
Siempre que aparezca este campo tomar como valor el nodo llamado FontStyle.
NODO FONTSTYLE:
Sintaxis:
FontStyle {
family "Nombre_Fuente",
style "Estilo_Fuente",
size Tamao_Fuente
spacing espaciado_entre_caracteres
justify "justificacin_del_texto"
}
Los posibles valores de los campos del nodo FontStyle son los que se muestran a
continuacin:
family: Determina la fuente que se va a utilizar para el texto. Se puede escoger entre
"SERIF", "SANS" o "TYPEWRITER". Obsrvese que los nombres estn en
maysculas.
style: Se puede escoger entre "BOLD" (negrita), "ITALIC" (cursiva), "BOTH" (negrita y
cursiva) o "NONE" (tipo de letra normal).
Otros: Que pensados para idiomas exticos, como el chino (escritura en vertical), el
rabe (escritura de derecha a izquierda), etc. Para la lista completa, se puede
consultar la RFC 1766.
De igual forma que con los nodos geomtricos primitivos, mediante el nodo Text lo
nico que se consigue es definir la estructura del texto, sin embargo no se puede
visualizar, ya que no hemos indicado como se ha de presentar en el mundo virtual.
Para conseguir esto, se integra en el nodo Shape, de la misma manera que se haca
con los nodos primitivos:
Shape {
appearance ...
geometry Text { ... }
}
Una vez que el texto se encuentra en el mundo virtual se puede manipular como
cualquier otro objeto (girndolo, etc.), ya que lo nico que lo diferencia de los nodos
primitivos es que posee dos dimensiones en lugar de tres.
Ejemplo:
#VRML V2.0 utf8
Shape{
appearance Appearance{
material Material {}
}
geometry Text {
string ["Esta es la primera fila de texto",
"esta es la segunda fila",
"etc."]
fontStyle FontStyle {
family "SERIF",
style "BOLD",
size 1.0
spacing 1.0
justify "BEGIN"
}
}
}
Nodos
TEMA 3
de
Agrupacin
Competencia:
Aplicar los diversos nodos que nos permitan
agrupar objetos y construirlos de manera
ms compleja.
NODO GROUP:
El nodo Group permite unir un conjunto de nodos de forma que acten como una
entidad nica, pero sin efectuar ninguna transformacin en ellos. La principal
caracterstica de este tipo de grupo es que los objetos son creados todos en el mismo
punto (en el centro del escenario de realidad virtual).
Sintaxis:
Group {
children [ ... ]
}
Ejemplo:
Group {
children [
Shape { ... },
Shape { ... },
...
]
}
Ejemplo:
#VRML V2.0 utf8
#Ejemplo de agrupacin de una caja y un cono
Group {
children [
#Aqu empieza la caja:
Shape {
appearance Appearance {
material Material { } }
geometry Box {
size 2.0 0.5 3.0
}
},
#Aqu empieza el cono:
Shape {
appearance Appearance {
material Material { }
}
geometry Cone {
height 3.0
bottomRadius 0.75
}
}
]
}
Sintaxis:
Transform{
translation Eje_X Eje_Y Eje_Z
rotation Eje_X Eje_Y Eje_Z ngulo
scale Eje_X Eje_Y Eje_Z
children[...]
}
II)
Ejemplo:
Transform{
# Ejes: X Y Z ngulo
rotation 0.0 0.0 1.0 0.52
children [...]
}
Con este ejemplo se pretende hacer girar el sistema de coordenadas del grupo sobre
el eje Z 0.52 radianes. Ntese que solamente uno de los ejes puede tomar un valor
(que ha de ser forzosamente la unidad) mientras el resto ha de permanecer a cero. De
esta forma slo hay tres combinaciones posibles con las que rellenar los ejes del
campo rotation:
Rotacin sobre el eje X
Ejemplo:
Transform{
# Ejes: X Y Z
scale 0.5 0.5 0.5
children [...]
}
El ejemplo anterior hace que los ejes del sistema de coordenadas del grupo sean
un50% (0.5) ms pequeo que los ejes del sistema principal y por lo tanto el objeto
diseado en estos ejes reducir su tamao a la mitad. Si se hubiese querido que
fuesen el doble de grandes, el ejemplo hubiese sido el siguiente:
Ejemplo:
Transform{
# Ejes: X Y Z
scale 2 2 2
children [...]
}
II)
Ms
TEMA 4
Nodos
Competencia:
Emplear los diferentes nodos de agrupacin
en aplicaciones de realidad virtual.
Sintaxis:
Switch{
whichChoice 0
choice[...]
...
choice[...]
}
NODO BILLBOARD:
El nodo Billboard permite crear un grupo con un sistema de coordenadas especiales,
ya que a travs del campo axisOfRotation (eje de rotacin) indicamos el eje sobre el
que va de girar el objeto, de forma que, siempre est de cara al espectador:
Sintaxis:
Billboard{
axisOfRotation Eje_X Eje_Y Eje_Z
children[...]
}
Al igual que para el campo rotate del nodo transform, nicamente uno de los ejes
puede tomar como valor la unidad, permaneciendo el resto a cero:
Rotacin sobre el eje X
Shape {
appearance Appearance {
material Material { }
}
geometry Cylinder {
height 2.0
radius 0.5
}
}
Entonces, cada vez que se quiera usar este nodo en otra parte del documento, basta
con poner lo siguiente: En el ejemplo anterior de la caja y el cono, aparece el nodo
Appearance repetido. Vamos a definirlo, en la primera ocasin que se utiliza con el
nombre, "PorDefecto" y la segunda vez que se usa lo invocaremos mediante el
comando USE:
#VRML V2.0 utf8
#Ejemplo de agrupacin de una caja y
un cono,
#haciendo uso de los comandos DEF y
USE.
Group {
children [
Shape {
appearance DEF PorDefecto
Appearance {
material Material { }
}
geometry Box {
En este caso concreto, la simplificacin no ha sido muy grande (slo un par de lneas
menos de cdigo), pero ha servido para ilustrar el concepto.
Lecturas Recomendadas
TUTORIAL VRML
http://www.cse.iitm.ac.in/~vplab/tutorial_vrml.pdf
Actividades y Ejercicios
27
Autoevaluacin
28
10) Cul es el nodo que permite crear un grupo con un sistema de coordenadas
especiales, sobre el que va de girar un objeto?
a.
b.
c.
d.
e.
El nodo billaboard.
El nodo transform.
El nodo group.
El nodo Board.
El noto Text.
29
Resumen
VRML especficos y
en
visualizadores HTML. Para crear estos mundos de realidad virtual se utilizan archivos
de texto, cuya extensin ser siempre .wrl. Todo documento VRML est compuesto por
los siguientes elementos: Cabecera, Comentarios y Nodos. Un nodo es la estructura
mnima indivisible de un archivo VRML y tiene como misin la de definir las
caractersticas de un objeto o bien las relaciones entre distintos objetos.
El nodo text, como en cualquier procesador de textos, se nos permitir indicar el tipo de
fuente, su estilo, su tamao, el espaciado entre caracteres, justificacin de los prrafos,
etc. El nodo Text posee dos campos: string y fontStyle. De igual forma que con los
nodos geomtricos primitivos, mediante el nodo Text lo nico que se consigue es definir
la estructura del texto, sin embargo no se puede visualizar, ya que no hemos indicado
como se ha de presentar en el mundo virtual.
y Nodo Billboard. El nodo Group permite unir un conjunto de nodos de forma que acten
como una entidad nica. Por defecto todos los objetos (Shapes) se construyen en el
centro del escenario virtual.
30