Campo texture del Nodo Appearance:
Hasta ahora para definir un objeto lo hacíamos con el Nodo Shape y el Nodo Appearance. Dentro del Nodo Appearance, con el campo material definíamos el color. Vamos a ponerle más vida a estas figuras virtuales a través del campo texture, con el que se define la textura de los objetos.
Cabe preguntarse a qué llamamos textura. La textura es el envoltorio que le damos a un objeto con una imagen existente, usando el campo ImageTexture o con una película, usando el campo MovieTexture. También podríamos hacerlo con una imagen creada por nosotros mismo pixel a pixel, usando el campo pixel Texture, pero en este curso básico nos manejamos con imágenes ya hechas.
Textura con ImageTexture:
Tenemos como figura un cubo, tomemos una imagen como textura para envolver el cubo. Voy a usar como ejemplo una foto de la Isla El Hierro de las Canarias, donde tengo unos ciberamigos fantásticos que son : José y sus alumnos.
Ejercicio Nº 12:
#VRML V2.0 utf8
#Ejemplo de una caja con textura.
Shape {
appearance Appearance {
texture ImageTexture {
url ["vrml_6.jpg"]
}
}
geometry Box {
size 1.5 2.2 0.8
}
}
Al correr el ejercicio en el navegador vemos que las imágenes se reproducen en todas las caras de la figura. También vemos un elemento nuevo el nodo Image Texture tiene el valor url [ "vrml_6.jpg" ], esto supone que la imagen está en el mismo directorio que el mundo virtual. Si no fuera así, debemos colocar entre comillas la ruta o camino completo donde ubicar el archivo de la imagen.
Con otra imagen en este caso un planisferio, vamos a simular, al envolver una esfera, que creamos el planeta tierra.
Ejercicio Nº 13:
#VRML V2.0 utf8
#Ejemplo de un cilindro con textura.
Shape {
appearance Appearance {
texture ImageTexture {
url ["vrml_7.jpg"]
}
}
geometry Sphere { }
}
Más de una imagen en un mismo Objeto:
Imaginemos un cilindro que en la superficie lateral despliegue una imagen y en los fondos o caras superior e inferior, muestre otra imagen o textura distinta, semejando una lata de gaseosa. Para lograr esto el código es el siguiente:
Ejercicio Nº 14:
#VRML V2.0 utf8
#Ejemplo de un cilindro con textura.
Shape {
appearance Appearance {
texture ImageTexture {
url ["vrml_8.gif"]
}
}
geometry Cylinder {
height 2.0
radius 0.6
top FALSE
bottom FALSE
}
}
Shape {
appearance Appearance {
texture ImageTexture {
url ["vrml_9.jpg"]
}
}
geometry Cylinder {
height 2.0
radius 0.6
side FALSE
}
}
Como vemos envolvemos al cilindro con la primera imagen, la textura "naranju" pero anulamos la superficie superior e inferior con la sentencia top FALSE y bottom FALSE (debe estar en mayúsculas). Luego definimos otro cilindro donde cargamos la textura "fondo" pero anulamos la textura de la superficie lateral con side FALSE.
Formatos de las Imágenes:
Los formatos de imagen que soporta el VRML 2.0 para el uso de texturas son : .jpg .gif .png.
Textura con MovieTexture:
En lugar de usar una imagen podemos usar un video, en formato MPEG, haciendo uso del Nodo MovieTexture, en lugar de ImageTexture, como podemos ver en el siguiente ejemplo:
Ejercicio Nº 15:
#VRML V2.0 utf8
Shape {
appearance Appearance {
texture MovieTexture {
loop FALSE
speed 1
url [ "Andrew.mpeg" ]
}
}
geometry Box {}
}
En este ejercicio el valor del campo speed controla la velocidad, 1 es velocidad normal, 2 velocidad doble... Y el valor del campo loopindica si queremos que se repita en un bucle ininterrumpido o no. En este caso le indicamos con FALSE que se ejecute una sola vez.
Ejercicios Opcionales:
Los resultados de la Tarea anterior la pueden bajar de Aquí. Y los ejercicios de esta entrega de Ejercicios5.
Para aquellos que tengan tiempo y ganas de seguir trabajando les propongo estos ejercicios:
Hasta la próxima. Cualquier consulta o comentario [email protected]