Empezando

VRML - Virtual Reality Modelling Language (Lenguaje Para el Modelado de la Realidad Virtual). Parece bastante nuevo, y realmente lo es. Muchas personas dicen que está muerto, y lo cierto es que no se usa mucho. Sin embargo, es el formato mas popular para exponer contenido en 3 dimensiones via Internet, y desde luego es el mejor candidato para este proposito.

En este tutorial, voy a enseñarte cómo crear tus propios mundos virtuales. Sin embargo, no puedo enseñarte absolutamente todo, por lo que voy a asumir un poco de conocimiento básico de tu parte. Encontraras este tutorial bastante fácil si tienes un conocimiento básico de lo siguiente:

Si no sabes nada sobre esas cosas, no te preocupes, pero puedes necesitar preguntar a alguien en algun momento qué significa tal o cual cosa. Quizas con una cierta frecuencia... Bueno, como ya dije, podríamos tirarnos la vida si quisiera enseñártelo todo. OK, suficiente. Ahora comenzemos.

¡VRML 1.0, 2.0, 97, AAAAAAAGH!

Bien, ¿De modo que quieres programar en VRML, es eso? Bien, realmente no es tan duro. ¿Te confunde qué clase de VRML escribir? Hay dos versiones de VRML, pero una de éstas tiene dos nombres. Simple. Hagamos un poco de Historia sobre el VRML. Había un VRML, originalmente, la versión 1.0. Éste fue el primer esfuerzo hacia un idioma de modelado en 3D para Internet, y después de un tiempo se revisó, apareciendo el VRML 2.0, que cambió la estructura de los archivos, y añadió muchos nuevos rasgos, como la animación. VRML 1.0 era bueno, pero se ha reemplazado, por lo que no me voy a molestar con él. VRML 2.0 se sometió entonces al ISO/IEC para su aprobación y estandarización. VRML97 es el resultado de ese proceso, y es una norma de ISO/IEC. VRML97 es prácticamente idéntico a VRML 2.0, con un par de cambios menores en detalles muy pequeños. Voy a enseñarte VRML97 en este tutorial, porque ése es el material de referencia que yo tengo cubierto. Es prácticamente idéntico a VRML 2.0, de modo que puedes asumir que son la misma cosa. Bien, ahora que sabemos de que estamos hablando, podemos continuar.

Los navegadores

Lo primero que necesitas es un navegador de VRML para poder ver tus mundos, así como los de los demás. Yo uso el Cosmo Player de Cosmo Software (Win95/NT). Hay otros disponibles. Comprueba los vinculos para más información. La mayoría de los navegadores de VRML operarán como plugins para Netscape o Internet Explorer. Hay también navegadores disponibles para la mayoría de los otros sistemas operativos. Echa una ojeada en las compañías de software o en el VRML repository. Una vez que tengas instalado el plugin, sólo tendrás que cargar el archivo VRML y podrás verlo como una página web.

Edición

Lo siguiente que necesitas hacer es crear tus propios mundos. Hay dos maneras de hacer esto. Primero, podrías usar una de las muchas herramientas de autoría de VRML o modeladores de 3D. Para más información, mira el VRML repository de nuevo. El modo en que yo lo hago es codificarlo a mano. Es lo que se enseña en este tutorial, y es el método en que me concentraré aqui. Todo que necesitas para esto es un editor del texto, como el notepad o el wordpad. Yo recomendaría el VrmlPad que, a mi jucio, es un editor muy bueno. Simplemente teclea el código, y sálvalo como archivo.wrl. ¡Luego puedes cargar el archivo en tu navegador y ver como ha quedado! Una unica cosa: ¡asegúrate de guardar el archivo como texto sin formato, nada más!

Trabajar con VRML en crudo está muy bien, pero puede ser difícil crear objetos complejos. Para hacer esto, necesitarás, o usar una herramienta de autoría de VRML, o un programa de modelado 3D. Si vas por la última opción, probablemente necesitarás algún programa de conversión de archivos para convertir del formato del modelador al VRML. Un conversor gratuíto muy bueno es Crossroads. Las herramientas de VRML de mayor nivel están disponibles en muchas compañías. Echa una ojeada en estos vinculos para ver algunos de ellos.

Compresión, MIME, y Publicación

La extensión normal para los archivos de VRML es .wrl, aunque de vez en cuando se usa .wrz para VRML comprimido. Los navegadores pueden leer archivos de VRML que están comprimidos con GZIP. Estos archivos comprimidos pueden ser .wrz, .wrl.gz, o el habitual .wrl. GZIP está muy extendido para UNIX, pero puedes hacerte con una versión para PC o Mac si la buscas. Una manera buena de comprimir tus archivos es usar Chisel, que es un verificador y optimizador de VRML que puede salvar VRML comprtarás preocuparte por esto, pero simplemente por información, el tipoimido mediante GZIP. Ésta es una buena herramienta para poner a punto tu código, porque nadie escribe VRML perfecto desde el primer dia.

Todos los documentos de internet tienen un tipo de MIME. Esto dice al receptor lo que va a recibir antes de que le llegue. Probablemente no necesi de mime para VRML es el model/vrml. Alternativamente, puede ser x-world/x-vrml, pero está desfasado actualmente.

Una vez que has creado tu mundo, querrás publicarlo en Internet para que otras personas puedan verlo. Para esto necesitas un ISP (Un Proveedor de Servicios de Inernet). Puedes usar el espacio que ofrecen para poner sus archivos en la Web, como harías con un archivo HTML normal.

VRML Propiamente

Bien, ahora podemos empezar propiamente con VRML. Este tutorial va a cubrir el método de crear los mundos VRML picando código. Si quieres crear VRML con herramientas de alto nivel, como algún programa 3D, no necesitas un tutorial de VRML. Necesitas un tutorial sobre cómo usar la herramienta que estás usando. Ése no es el modo en que se hace en este tutorial. Esto es para aquéllos que quieran imbuirse en cosas reales, ensuciando sus manos con código real. ¡si estás listo, allá vamos!

Cabeceras y Comentarios

La primera cosa que debes saber es que todo archivo VRML comienza con una linea de cabecera, que es:

#VRML V2.0 utf8
Esto dice al navegador que está recibiendo un archivo de VRML, y la versión correspondiente del lenguaje. En este caso, es versión 2.0. VRML es sensible a mayusculas y minusculas, por lo que debes asegurarte de escribirlo tal y como esta aquí, incluyendo las mayusculas y minusculas. La parte del utf8 dice al navegador qué standard de cadenas de texto debe emplear. VRML 1.0 usaba ascii o utf8, pero la versión 2 tiene sólo utf8.

Cualquier linea que comience con una almohadilla (#) es un comentario, y sera ignorado por el intérprete VRML, de modo que es lo que usarás para comentar tus códigos. La primera línea es una excepción, y es leida por el navegador, a pesar de que tenga un # en el comienzo. Así que lo siguiente es VRML válido:

#VRML V2.0 utf8
#Archivo VRML de ejemplo del tutorial de Floppy

Vuelvo a recordarte que VRML es sensible a mayúsculas y minúsculas, por lo que debes acostumbrarte a su uso correcto lo antes posible.

Los nodos, Campos y el Grafo de la Escena

Sigamos ahora la estuctura de un archivo VRML. Un mundo VRML está hecho a partir de nodos, que son tipos de objeto. Dentro de estos nodos, encontrarás campos, que son propiedades del objeto. Los campos pueden ser cualquier cosa, desde el tamaño de una caja, a otro nodo dentro del primero. Los nodos se escriben como sigue:

Group {
        children [
        ]
}

Esto muestra el nodo Group. Es el nodo más simple. Lo único que hace es agrupar otros nodos. El nodo se escribe en el archivo poniendo el nombre del nodo (Group), y despues un par de llaves. Dentro de estas llaves tenemos los campos. En este caso, los children, pueden contener otros nodos. De este modo los nodos pueden anidarse entre si, creando un tipo de jerarquía de nodos, a veces llamado el Grafo de la Escena. Se muestran debajo unos ejemplos simples de nodos anidados, usando dos nodos Group, uno dentro del otro.

Group {
   children [
      Group {
      }
   ]
}

Bueno, es un fragmento bastante vacio de VRML, pero muestra cómo agrupar nodos y cómo se anidan. De momento todo va bien, pero es ahora cuando se complica todo un poco. Para comenzar, no se pueden poner nodos en cualquier parte del archivo. Algunos sólo pueden ponerse en ciertos campos, y sólo algunos al nivel de la cima, como Group. Sin embargo, veremos esto después. Por ahora, sólo acostúmbrate a la idea del grafo de la escena, a nodos y a campos.

¡Siguiente!

Algo que debes recordar es que el VRML es sensible a mayúsculas y minúsculas. Los nombres de los nodos comienzan con mayúscula (Group, Transform, IndexedFaceSet), mientras que los de los campos lo hacen con minúscula. Aún así, pueden tener una letra central mayúscula si el nombre es compuesto (children, translation, coordIndex).

Ahora que sabes cómo funciona todo, podemos empezar mirando los diferentes tipos de nodos. El próximo capítulo, cubriremos WorldInfo, y cómo crear una forma en tu mundo.