ESTRUCTURA DE LOS DOCUMENTOS VRML
VRML
es un lenguaje de descripción de escenas en el que cada escena se compone de un
número de objetos. Los objetos pueden ser formas sólidas 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 escenarios de
realidad virtual se utilizan ficheros de texto, cuya extensión será siempre
.wrl o wrz, los cuales pueden ser desarrollados mediante cualquier editor o
procesador de textos.
Además, existe la posibilidad de
utilizar programas de diseño gráfico, los cuales generan automáticamente
ficheros en formato VRML.
En líneas
generales, un documento VRML contiene los siguientes elementos:
·
Línea de cabecera.
·
Comentarios al código.
·
Nodos.
Líneas de Cabecera
Todo
documento VRML debe comenzar necesariamente con la siguiente línea:
#VRML V2.0 utf8
Con esta
línea inicial se hace la declaración de que el estándar empleado es el VRML
2.0. El identificativo utf8 sirve para permitir el uso de caracteres
internacionales.
No se debe
dejar ningún espacio en blanco antes del comienzo de la línea (antes del
símbolo #), pues en caso contrario
el visualizador no la reconocería, y daría error al interpretar o ejecutar el
documento VRML.
Comentarios al código
En todos
los lenguajes se utilizan comentarios, no visibles en la pantalla, que son muy
útiles como recordatorio de lo realizado, facilitando los cambios futuros.
En este
lenguaje los comentarios se escriben en una sola línea que comienza con el
símbolo #. Ejemplo:
# Este es un comentario al
código
Nodos
Los nodos
son bloques de información que definen las características de un objeto
concreto (su forma, su apariencia, etc.), o la relación entre distintos
objetos. Sirven también para crear sonidos, el panorama de fondo, enlaces a
otros escenarios o a páginas Web, etc.
Es decir,
son las unidades básicas que forman el escenario virtual, y pueden ser afinadas
hasta el detalle deseado.
La
sintaxis (reglas para la correcta escritura) de los nodos, desde un punto de
vista general es:
Nombre {
campo1 x y
z
campo2 x
...
}
· El nodo es un bloque de información que
tiene un Nombre (Box, Cone, etc.). Obsérvese que comienzan siempre por una
letra mayúscula.
- Englobados entre los símbolos { y } el nodo tiene
uno o varios campos (size para el nodo Box, height y bottomRadius para el
nodo Cylinder, etc.). Los campos son los atributos variables del nodo.
Obsérvese que comienzan con una letra minúscula.
- A continuación está el valor que le asigna a ese
campo, que es un número (o conjunto de números) Estos números se escriben
con punto flotante (es decir, con decimales).
En
ocasiones, en lugar de colocar como valor un número (o conjunto de números) se
coloca todo un nodo. Esta noción, que puede parecer confusa de momento, se verá
con detalle más adelante.
NODOS PRIMITIVOS
NODOS PRIMITIVOS
Los nodos son los bloques de información básicos con
los que se construye un escenario virtual. Ahora se verá la sintaxis de los
nodos, partiendo de los más sencillos, los nodos de geometría primitiva, o
nodos primitivos, que son:
·
Box caja
·
Cone cono
·
Cylinder cilindro
·
Sphere esfera
Con estas
figuras geométricas básicas, agrupándolas y modificándolas convenientemente se
pueden construir formas de gran detalle.
Para
formas realmente complejas, hay otros procedimientos para crear objetos,
partiendo de puntos, líneas o caras.
La
estructura más general de este nodo es:
Box {
size anchura altura profundidad
}
·
Se escribe el nombre del nodo, en este
caso Box, seguido del símbolo de apertura {.
- Luego se escribe el campo, que es un atributo del
nodo que se puede cambiar a voluntad, poniendo los valores que se desee.
En este caso servirá para establecer las dimensiones de la caja, como se
verá a continuación.
- Posteriormente se escribe el símbolo de cierre }.
Con
respecto a los nombres, y en general cualquier otro comando usado en este
lenguaje, se debe tener muy en cuenta que son sensibles a las mayúsculas y
minúsculas, es decir, se debe escribir Box y no box, o fontStyle y no
fontstyle, etc.
Sustituyendo
ahora los campos que define este nodo, que es size (tamaño) con sus valores
correspondientes (las dimensiones), queda el nodo completo de esta forma:
Box { size 2 0.5 3 }
Los
números representan respectivamente la anchura, la altura y el fondo. Son
dimensiones abstractas, pero es conveniente, aunque no obligatorio, suponer que
son metros. El nodo, por tanto, define una caja de 2 m de ancho, 0.5 m de alto
y 3 m de fondo.
Se ha
escrito el nodo en una sola línea, debido a su sencillez y a que sólo tiene un
campo, pero se podría haber escrito de esta otra forma:
Box {
size 2 0.5
3
}
Sintaxis:
Cone {
height altura
bottomRadius radio_de_la_base
bottom valor_lógico
side valor_lógico
}
Mediante
los campos bottom y side se indican si se desea dibujar la base y la superficie
lateral respectivamente. Por defecto estos campos toman el valor TRUE, lo cual indica que se dibuja el
cono completo.
Un ejemplo
de este nodo, que define la geometría de un cono:
Cone {
height 3
bottomRadius
0.75
}
Como se
puede observar, tiene dos campos: height (altura), a la que se le ha puesto el
valor de 3, y bottomRadius (radio de la base) el de 0.75. Con estos dos valores
queda perfectamente definido el cono.
Sintaxis:
Cylinder {
height altura
radius radio
bottom valor_lógico
side valor_lógico
top valor_lógico
}
Mediante
los campos bottom, side y top se indica si se desea dibujar la base inferior,
la superficie 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
del nodo que define un cilindro:
Cylinder {
height 3
radius 1.5
}
Tiene sus
dos campos: height (altura) y radius (radio)
Sintaxis:
Sphere {
radius radio
}
Ejemplo
del nodo que define una esfera:
Sphere {
radius 2
}
Tiene un
solo campo, radius (radio) este es suficiente para definir con él una esfera.
Estos
cuatro nodos de geometría primitiva, no se pueden utilizar directamente ellos
solos, sino que son parte de otro nodo más general, el nodo Shape (forma).
El motivo
de esto es que, definen únicamente la geometría de estos cuerpos, pero no dan
ninguna indicación de cuál deberá ser su apariencia, es decir, su color,
textura, iluminación, etc.
El nodo
Shape se encarga de ambas cosas, ya que tiene dos campos: la apariencia y la
geometría, en donde utiliza precisamente estos nodos que se acaba de ver, es
decir, estos nodos irán incrustados (o como parte) en el nodo Shape.
No hay comentarios:
Publicar un comentario