viernes, 24 de mayo de 2013



La textura es la posibilidad que se tiene de envolver un objeto con:
·         Una imagen existente, usando el campo ImageTexture.
·         Una película, usando el campo MovieTexture.
·         Una imagen creada pixel a pixel, usando el campo PixelTexture.
A continuación se detallará cada uno de los campos.


Esté indica una textura, referenciada por un URL, así como dos parámetros que dicen si la textura se ha de repetir vertical u horizontalmente a lo largo de todas las caras del objeto.
La sintaxis del nodo ImageTexture es la siguiente:

Shape {
appearance Appearance {
texture ImageTexture {
url [ ... ]
repeatS Valor_lógico
repeatT  Valor_lógico
}
}
geometry ...
}

url [ ]
Define la localización de la imagen. Los formatos aceptados son JPEG, GIF y PNG.

#VRML V2.0 utf8
# Ejemplo de caja con textura de una imagen

Shape {
appearance Appearance {
texture ImageTexture {
url ["Utn.jpg "]
repeatS FALSE
repeatT FALSE
}
}
geometry Box {
size 1.5 2.2 0.5
}
}             

De tal forma que el objeto que se crea tendrá un gráfico como textura en todas sus caras.

Para adicionar texturas a las diferentes caras de un objeto, se sigue un tratamiento diferente así, si se desea hacer una lata se realizaran las siguientes operaciones.
Se define el cilindro con la imagen etiqueta.jpg, pero se anulan las superficies superior (top) e inferior (bottom). A continuación se define otro cilindro idéntico con la imagen fondo.jpg, pero se anula la superficie lateral (side).
Por medio del nodo Group se agrupan ambos cilindros y el resultado es aparentemente un cilindro con imágenes distintas.
Realizando estas operaciones el resultado esta en el Progra26.wrl y es el siguiente:

#VRML V2.0 utf8
       #Progra26.wrl
#Ejemplo del nodo ImageTexture
#imagen Lateral
Shape {
appearance Appearance {
texture ImageTexture {
url [“etiqueta.jpg”]
}
}
#Nodo Cylinder
geometry Cylinder {
height 2
radius 0.6
top FALSE
bottom FALSE
}
}
Shape {
appearance Appearance {
texture ImageTexture {
url [“fondo.jpg”]
}
}
geometry Cylinder {
height 2
radius 0.6
side FALSE
}
}

No hay comentarios:

Publicar un comentario