viernes, 24 de mayo de 2013

ESTRUCTURA DE LOS DOCUMENTOS VRML


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


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