|
Todas las texturas en POV-Ray se definen en 3 dimensiones. Incluso el mapeo de una imagen plana se hace de esta forma. Sin embargo, algunas veces es deseable tener la textura definida por la superficie del objeto. Esto es especialmente cierto para los parches bicúbicos y las mallas de triángulos, que pueden ser estirados y comprimidos. Cuando el objeto se estira o comprime, sería estupendo que la textura estuviera pegada a la superficie del objeto y siguiera sus deformaciones.
Cuando se usa el mapeado UV, la textura del objeto se mapea usando coordenadas de superficie (U y V) en lugar de coordenadas espaciales (X, Y, y Z). Esto se hace tomando un trozo de la textura 3D del objeto en el plano XY (Z=0) y envolviéndola alrededor de su superficie, siguiendo las coordenadas de superficie del objeto.
Nota: algunas texturas deberán ser rotadas para que el trozo de la textura 3D del objeto encaje en el plano XY.
Sintaxis:
texture { uv_mapping pigment{PIGMENT_BODY} | pigment{uv_mapping PIGMENT_BODY} uv_mapping normal {NORMAL_BODY } | normal {uv_mapping NORMAL_BODY } uv_mapping texture{TEXTURE_BODY} | texture{uv_mapping TEXTURE_BODY) }
El mapeo de superficie está actualmente definido para los siguientes objetos:
Con la palabra clave uv_vectors
se pueden controlar las
coordenadas UV de las esquinas en los parches bicúbicos y en las mallas
de triángulos estándar.
Para los parches bicúbicos, las coordenadas UV se pueden especificar
para cada uno de las cuatro esquinas del parche. Éstas van exactamente
antes de los puntos de control.
La sintaxis es:
uv_vectors <corner1>,<corner2>,<corner3>,
<corner4>
con los valores por defecto
uv_vectors <0,0>,<1,0>,<1,1>,<0,1>
Para las mallas de triángulos estándar (no para mesh2) se pueden
especificar las coordenadas UV para cada uno de los tres vértices uv_vectors
<uv1>,<uv2>,<uv3>
dentro de cada sentencia
triangle. Éstas van justo después de las coordenadas (o las coordenadas
y las normales en los triángulos suavizados) y antes de la textura.
Por ejemplo:
mesh { triangle { <0,0,0>, <0.5,0,0>, <0.5,0.5,0> uv_vectors <0,0>, <1,0>, <1,1> } triangle { <0,0,0>, <0.5,0.5,0>, <0,0.5,0> uv_vectors <0,0>, <1,1>, <0,1> } texture { uv_mapping pigment { image_map { sys "SomeImage" map_type 0 interpolate 0 } } } }
|