Realidad Virtual
información adicional
jaume ferrer i rosera
3. PROTO. No duplicar descripciones
geomètricas innecesariamente
Sobre la atracción de Las
Tazas Locas de la Práctica 2:
Es muy importante evitar el error de modelar tantas tazas y platos como tendrá
la aplicación, generar otros tantos archivos wrl y incorporarlos a nuestro
mundo VRML de forma directa o mediante el nodo INLINE. Se trata de analizar
primero la geometría de los objetos a utilizar y identificar cuantas
tipologías distintas tendremos. Luego se construye un PROTO, un objeto
genérico, para cada tipología y finalmente se crean instancias
de estos objetos, tantas como necesitemos, y adaptamos sus características
superficiales si es necesario.
La forma de usar PROTO y de crear instancias está explicada en el capítulo 9 del tutorial de VRML del Dr. Narcís Parés, por lo que no me extenderé aquí en los detalles y plantearé sólo el guión de actuación:
Supongamos que nuestra atracción está formada por 9 tazas con plato, 3 platos grandes para grupos de 3 tazas y una base. Puesto que, en principio, todas las tazas serán iguales entre sí a nivel estructural y posiblemente sólo variaremos su color o textura, y lo mismo pasa con los platos, en realidad nuestra atracción tendrá tres tipologías de objetos: taza con plato, plato grande y base.
Se trata de modelar estos tres tipos con un programa de modelaje 3D (como 3DStudioMax, por ejemplo) y exportarlos. Obtenemos tres archivos wrl.
Entramos en el código de cada archivo y metemos la descripción geométrica dentro de un PROTO. Además, podemos substituir los colores o texturas concretos por campos que definiremos al principio del código del PROTO. Esto nos permitirá luego conseguir que distintas instancias de un mismo PROTO tengan colores y texturas distintas.
En un archivo wrl aparte podemos definir el aspecto e interactividad de nuestro mundo, usando el nodo INLINE para recuperar los PROTOS definidos en archivos aparte, o bien podemos cortar y pegar para que todo el código esté en un mismo archivo. Esto dependerà de la cantidad de código a tratar, de su complejidad y de la forma de trabajar de cada uno. La idea aquí es crear instancias de cada proto y situarlas en las posiciones adecuadas, dotándolas de nombres, colores y texturas individualizadas para cada instancia.
Es posible que sea más óptimo crear nuevas jerarquías de objetos en función de la complejidad de la aplicación, esto depende de como se plantee el comportamiento de los objetos y su capacidad de interacción.
Explicar una sola vez la descripción de una geometría que luego usaremos en diversos objetos aporta diversas ventajas, entre ellas la de que nos ahorra trabajo y la de que resulta más facil entender el código y gestionar los cambios.