7.6.8.8.2 Ripetizione
Il warp 'ripetizione' (repeat)
fa sì che una parte del pattern venga ripetuta all'infinito. Taglia
una 'fetta' del pattern e ne crea copie multiple affiancate. Questo tipo
di warp ha molti usi, ma è stato originariamente concepito per riprodurre
l'effetto tipico dell'impiallacciatura. L'impiallacciatura si ottiene ricavando
fette di legno molto sottili da un tronco e incollandole su un altro materiale
di supporto. L'effetto è quello di un motivo di anelli affiancati,
ma ogni componente è in realtà spesso circa 8/10 di millimetro.
La sintassi per il warp repeat
è la seguente :
warp { repeat VETTORE offset VETTORE flip
VETTORE }
Il vettore repeat
specifica la direzione in cui il vettore si ripete e la larghezza dell'area
che viene ripetuta. Questo vettore deve essere su un asse. In altre
parole, due delle sue tre componenti devono essere uguali a zero. Ad esempio :
pigment {
wood
warp {repeat 2*x}
}
significa che da x=0 ad x=2 hai il
pattern come è normalmente, ma da x=2 a x=4 ottieni lo stesso pattern,
spostato di due unità nella direzione +x. Sfortunatamente si ottengono
copie esatte e ciò non è molto realistico. Il vettore offset,
facoltativo, trasla il pattern ogni volta che esso si ripete. Per esempio:
pigment {
wood
warp {repeat x*2 offset z*0.05}
}
significa che otteniamo la prima copia
del pattern, da x=0 a x=2, con il pattern preso a z=0, ma tra x=2 e x=4
POV-Ray lo calcola per z=0.05. Nell'intervallo da x=4 a x=6 viene calcolato
per z=0.10 ecc. In questo modo ogni copia del pattern è leggermente
diversa dalla precedente. Non ci sono restrizioni sul vettore offset.
Infine, il vettore flip
(capovolgi) fa ribaltare il pattern nella direzione specificata.
La prima copia del pattern nella direzione positiva non è ribaltata,
mentre della seconda e di tutte le copie 'pari' otterremo l'immagine speculare.
Il vettore flip
è un vettore a tre componenti booleane, cioè ogni componente
specifica se il pattern deve essere capovolto lungo un dato asse. Per esempio :
pigment {
wood
warp {repeat 2*x flip <1,1,0>}
}
significa che ogni copia 'pari' del
pattern sarà capovolta rispetto agli assi x e y ma non rispetto
all'asse z. Tutti i valori diversi da zero significano che il pattern deve
essere capovolto.