6.2.4  La Directiva #default

Al comenzar el proceso, POV-Ray define una textura por defecto. Puedes cambiar esta textura tal como se describe a continuación.

Cada vez que especificas una sentencia texture, POV-Ray crea una copia de la textura por defecto. Cualquier cosa que incluyas en la sentencia de textura sobreescribe los ajustes por defecto. Si añades un pigmento (pigment), normal (normal), o acabado ( finish) a un objeto sin la sentencia de textura, POV-Ray comprueba si ya se había añadido una textura anteriormente. Si la había, este pigmento, normal o acabado modificará la textura existente. Si no hubiera una textura anterior, se copia la textura por defecto y el pigmento, normal o acabado modificará esta textura.

Puedes cambiar el pigmento, normal o acabado de la textura por defecto usando la directiva #default , que tiene la siguiente sintaxis:

DIRECTIVA_DEFAULT:
    #default {ITEM_POR_DEFECTO }
ITEM_POR_DEFECTO:
    TEXTURE | PIGMENT | NORMAL | FINISH

Por ejemplo:

 #default {
   texture {
     pigment { rgb <1,0,0> }
     normal { bumps 0.3 }
     finish { ambient 0.4 }
   }
 }

cambiaría la textura por defecto a un rojo abollado con un ambiente de acabado ligeramente alto. Observa también que puedes cambiar sólo parte de la textura:

 #default {
  pigment {rgb <1,0,0>}
 }

Esto cambiaría el pigmento de la textura por defecto. En cualquier momento, sólo existe una textura por defecto, consistente en el pigmento, normal y acabado por defecto. El ejemplo anterior no crea un pigmento por defecto.

Nota: las texturas especiales tiles y material_map, o texturas con texture_map, no pueden usarse en una textura por defecto.

Puedes cambiar la textura por defecto tantas veces como quieras. Las sentencias #default nuevas parten siempre con los valores por defecto existentes en ese momento. Si quieres volver al valor por defecto original de POV-Ray, puedes guardarla primero de la siguiente forma:

 //Al principio del archivo:
 #declare Original_Default = texture {}

Después de cambiar la textura por defecto puedes recuperarla de la siguiente forma:

 #default {texture {Original_Default}}

Si no especificas la textura de un objeto, se utilizará la textura por defecto cuando el objeto aparezca en la escena, no cuando se declare. Por ejemplo:

 #declare Mi_Objeto =
  sphere{ <0,0,0>, 1 } // no se aplica la textura por defecto...
  object{ My_Object }  // ...se aplica ahora

Puedes forzar el que se añada la textura por defecto usando una sentencia de textura vacía:

 #declare My_Objeto =
  sphere { <0,0,0>, 1 texture {} } // Se aplica la textura por defecto

Los valores originales por defecto de cada ítem de textura se citan en las secciones respectivas de este manual.