Al principio... |
Ahora vamos a cubrir tipos de nodo básicos en un archivo VRML, el nodo WorldInfo, y el nodo Shape.
WorldInfo
OK, ahora comenzaremos a agregar información al archivo. El primer nodo a cubrir es el nodo WorldInfo. Este nodo contiene la información general sobre el mundo, es como un título para el mundo. Este se despliega en la barra del título de la ventana del navegador, igual que la etiqueta <TITLE> en HTML. WorldInfo también puede contener mas información sobre el archivo. Puedes poner lo que desees aqui, como las palabras claves para los motores de búsqueda, o cualquier cosa. Una muestra del nodo WorldInfo se muestra debajo:
WorldInfo { title "Floppy's VRML97 Tutorial Example 1" info ["(C) Copyright 1999 Vapour Technology" "guide@web3dguide.org.uk"] }
Se pueden tener múltiples cadenas de texto en el campo info, siempre colocandolos entre corchetes. Un archivo de VRML puede tener tantos WorldInfo como gustes, pero sólo se analizará el primero . El resto se ignorará.
Las Formas básicas
¡Muy bien, esto esta todo muy lindo, pero nada bueno por el momento, porque por ahora no tenemos nada para ver! Agreguemos un objeto simple a la escena. Vamos a colocar un objeto Box, con los valores predefinidos, pero solo para que te puedas hacer una idea de cómo va la estructura de todo esto. Hay un par de nodos requeridos como el Appearance y otros; pero de momento ignoralos, son para otro capítulo. Simplemente recuerda, si no especificas un valor para un campo, usará el valor por defecto. Así que éste usará los valores predefinidos. Ahora agregaremos un nodo Shape al mundo, como se muestra debajo.
Shape { appearance Appearance { material Material { } } geometry Box { } }
Dentro del nodo Shape existen dos campos para describir al objeto. Éstos son appearance y geometry que describen la apariencia y forma del objeto respectivamente. Éstos se cubrirán en el tutorial más adelante. Por ahora, esto es suficiente como para tener un Box con los valores y colores predefinidos en nuestro mundo.
Reusar un Objeto
Si tienes muchos objetos idénticos, seria ridículo escribir muchas veces objetos del mismo tipo exacto. Por consiguiente, puedes reusar las definiciones anteriores. Usando nuestra caja, podríamos definirla con el nombre FBOX. Entonces, siempre que querramos usar esa caja de nuevo, simplemente podemos teclear USE FBOX en lugar de la definición completa. Veamos el ejemplo debajo.
DEF FBOX Shape { appearance Appearance { material Material { } } geometry Box { } } USE FBOX
Piensa que este es un ejemplo tonto, ya que las dos cajas se crearían en exactamente el mismo lugar. No es normalmente lo que desearias. Usualmente, utilizarás USE en alguna parte del codigo que sea mas significativo. Puedes utilizar DEF/USE con cualquier tipo de nodo. Por ejemplo, si quisieras reusar el nodo Appareance de un objeto, podrias hacerlo.
Shape { appearance DEF APP1 Appearance { material Material { } } geometry Box { } } Shape { appearance USE APP1 geometry Box { } }
De nuevo, no vas a ver nada espectacular en este ejemplo, ya que la caja estará en la misma posición. Pero seguro que has cogido la idea.
Otra manera de reusar el código de VRML es usar los nodos Inline. Éstos toman los datos de un archivo externo y lo insertan en tu archivo. Entonces, si tuvieses un archivo llamado chair.wrl lo podrías insertar en la escena de este modo:
Inline { url "silla.wrl" }
El archivo que estás incluyendo de esta manera con Inline, tiene que ser VRML válido, debe tener la cabecera y todo lo que un archivo VRML normal tiene que tener. Si no puedes cargarlo en un navegador por la vía legal, entonces no podras insertar el inline.
Bocados Finales
El código completo de todo lo expuesto hasta ahora se muestra aquí. Nota que aunque nosotros tenemos DEFinida la caja llamada FBOX, no la hemos usado en ninguna parte. Eso es porque nosotros sólo queremos una caja por el momento. Emplearemos USE con la caja proximamente cuando aprendamos a posicionar los objetos alrededor del mundo.
Puedes comenzar a ver como luce (no particularmente impresionante todavía)
para comenzar a darte una idea de lo que quiero decir. Puedes utilizar
esto para acostumbrarte a moverte en tu navegador, y usar los diferentes
tipos de movimiento.
Tutorial Mundo 1
Eso concluye el tutorial para los elementos esenciales absolutos, con una caja gris en, por ahora, un mundo vacío. Emocionante, ¿no es asi?. No importa, luego conseguiremos realizar cosas más complejas. Hay PointSets, Backgrounds, Animación, Sensores, Luces, Cámaras y todo. ¡Ya lo verás! Realmente esto se pondra mucho mas interesante, confía en mí.