3.9.7  Trabajando con listas de texturas

Si hemos seguido los tutoriales sobre pigmentos simples, debemos saber que hay tres patrones llamados patrones de lista de colores, ya que, en vez de usar un mapa de colores, estos simples pero útiles patrones admiten una lista de colores justo después del identificador del patrón. Hablamos de "checker" (ajedrezado), "hexagon" (hexágono), y "brick" (ladrillo), este último nuevo desde POV-Ray 3.

Naturalmente, también funcionan con pigmentos completos, normales y texturas enteras, igual que el resto de patrones. La única diferencia es que se usa una lista tras el patrón en lugar de un mapa con entradas. He aquí un ejemplo. Quitemos el plano y los pigmentos declarados del último ejemplo, y añadamos lo siguiente a nuestro archivo básico.

  #declare Pigment1 = pigment {
    hexagon
    color Yellow color Green color Grey
    scale .1
  }
  #declare Pigment2 = pigment {
    checker
    color Red color Blue
    scale .1
  }
  #declare Pigment3 = pigment {
    brick
    color White color Black
    rotate -90*x
    scale .1
  }
  box { -5, 5
    pigment {
      hexagon
      pigment {Pigment1}
      pigment {Pigment2}
      pigment {Pigment3}
      rotate 90*x
    }
  }

Empezamos por declarar un ejemplo de cada patrón de lista de colores como pigmentos individuales. Después usamos el patrón hexágono como patrón de lista de pigmentos, simplemente colocando tras él una lista de pigmentos en vez de colores, como habíamos hecho antes. Hay dos sentencias de rotación en este ejemplo, ya que los ladrillos se alinean con el eje z, mientras que los hexágonos lo hacen con el eje y, pero queríamos que todos ellos miraran a la cámara que ya tenemos declarada sobre la dirección negativa de z, para ver bien el efecto de un patrón dentro de otro.

Por supuesto, los patrones de lista de colores solían ser sólo para los pigmentos, pero desde POV-Ray 3, todo lo que funciona con pigmentos también lo hace con normales o con texturas enteras. He aquí unos pocos ejemplos rápidos:

  normal {
    brick
    normal { granite .1 }
    normal { bumps 1 scale .1 }
  }

o...

  texture {
    checker
    texture { Gold_Metal }
    texture { Silver_Metal }
  }