|
La instrucción texture
(textura) es un modificador de
objeto que describe la apariencia de la superficie del objeto, es
decir, el material del que está hecho. Las texturas son combinaciones
de pigmentos, normales y acabados. El pigmento (pigment
)
es el color o patrón de colores propio del material. El (o la) normal (normal
)
es un método de simular diversos patrones de bultos, muescas, ondas o
arrugas mediante la alteración del vector normal de la superficie. El
acabado (finish
) describe las propiedades reflexivas del
material.
Nota: en versiones previas del POV-Ray,
la textura contenía también información sobre el interior del objeto.
Esta información ha sido desplazada a un modificador de objeto distinto
llamado interior (interior
). Véase "Interior" para más detalles.
Hay tres clases básicas de texturas: planas, de patrón y a capas. Una textura plana consiste en un único pigmento, una normal opcional y un único acabado. Una textura de patrón combina dos o más texturas usando un bloque de patrón o una función de mezcla. Las texturas de patrón pueden hacerse bastante complejas anidando patrones dentro de patrones. Sin embargo, en los niveles más internos están formadas por texturas planas. Una textura a capas consiste en dos o más texturas semitransparentes dispuestas una sobre otra.
Nota: Aunque la llamemos plana, puede consistir en una textura muy compleja con pigmentos, normales y acabados de patrón. El término plana sólo significa que tiene un único pigmento, un único acabado y una única definición de normal.
La sintaxis de texture
es como sigue:
TEXTURA: TEXTURA_PLANA | TEXTURA_DE_PATRON | TEXTURA_A_CAPAS TEXTURA_PLANA: texture { [IDENTIFICADORES_DE_TEXTURA] [IDENTIFICADORES_PNF...] [ITEMS_PNF...] } IDENTIFICADORES_PNF: IDENTIFICADOR_DE_PIGMENTO | IDENTIFICADOR_DE_NORMAL | IDENTIFICADOR_DE_ACABADO ITEMS_PNF: PIGMENTO | NORMAL | ACABADO | TRANSFORMACION TEXTURA_A_CAPAS: TEXTURA_SIN_PATRON... TEXTURA_DE_PATRON: texture { [ID_TEXTURA_DE_PATRON] [TRANSFORMACIONES...] } | texture { PATTERN_TYPE [TEXTURE_PATTERN_MODIFIERS...] } | texture { tiles TEXTURA tile2 TEXTURA [TRANSFORMACIONES...] } | texture { material_map { TIPO_DE_BITMAP "bitmap.ext" [MOD_MATERIAL...] TEXTURA... [TRANSFORMACIONES...] } } MODIFICADOR_DE_PATRON_DE TEXTURAS: MODIFICADOR_DE_PATRON | LISTA_DE_TEXTURAS | texture_map { CUERPO_DE_MAPA_DE_TEXTURAS }
En la TEXTURA_PLANA, todos los elementos son opcionales, pero si están presentes, IDENTIFICADOR_DE_TEXTURA ha de ser el primero. Si no se sitúa un identificador de una textura previa, POV_Ray crea una copia de la textura por defecto. Véase la sección “La directiva #default” para más detalles.
Después se situarán los elementos opcionales pigmento, normal y/o
acabado, que substituirán totalmente cualquier definición de estos
elementos previa presente en la textura indicada o en la textura por
defecto. Normalmente esto se usa para mantener compatibilidad hacia
atrás, permitiendo cosas como : texture { MiPigmento }
,
donde MiPigmento
es un identificador de pigmento.
Por último, tenemos la opción de situar elementos pigment
, normal
o finish
que modifiquen los que se especifican en el
identificador. Si no se especifica un identificador de textura, los
elementos pigment
, normal
y finish
modifican los valores por defecto que sean válidos en ese momento. Esta
sería una textura plana típica:
texture { pigment { MiPigmento } normal { MiNormal } finish { MiAcabado } scale AsiDeGrande rotate Tanto translate AsiDeLejos }
Las TRANSFORMACIONES pueden ser interpuestas entre los elementos de pigmento, normal o acabado, pero habitualmente se especifican al final. Si son interpuestas, se aplican sólo a las partes de la textura ya especificada. Por ejemplo:
texture { pigment { MiPigmento } scale AsiDeGrande //sólo afecta al pigmento normal { MiNormal } rotate Tanto //afecta al pigmento y al elemento normal finish { MiAcabado } translate AsiDeLejos // el acabado no es transformable de ninguna forma. // por tanto sólo afecta al pigmento y al elemento normal }
Los identificadores de texturas pueden declararse para hacer los archivos de escena más legibles y para parametrizar escenas de forma que, cambiando una sencilla declaración, puedan cambiarse muchos valores. Un identificador se declara como sigue.
DECLARACION_DE_TEXTURA: #declare IDENTIFICADOR = TEXTURA | #local IDENTIFICADOR = TEXTURA
Donde IDENTIFICADOR es el nombre del identificador, de
hasta 40 caracteres de largo, y TEXTURA es una construcción texture
válida. Véase el apartado "#declare
vs. #local" para información sobre el ámbito de los identificadores.
Las próximas secciones describen todas las opciones disponibles en "Pigment", "Normal", y "Finish" que configuran la parte principal de las texturas planas. También hay secciones independientes para "Texturas de Patrón" y "Texturas a Capas" que están compuestas de texturas planas.
Nota: las texturas con teselado ( tiles
) y mapa de
materiales ( material_map
) con patrón están obsoletas y sólo se mantienen por compatibilidad con
versiones anteriores.
|
|