The syntax for a repeat warp is
The repeat vector specifies the direction in which the pattern repeats and the width of the repeated area. This vector must lie entirely along an axis. In other words, two of its three components must be 0. For example
which means that from x=0 to x=2 you get whatever the pattern usually is. But from x=2 to x=4 you get the same thing exactly shifted two units over in the x-direction. To evaluate it you simply take the x-coordinate modulo 2. Unfortunately you get exact duplicates which isn't very realistic. The optional offset vector tells how much to translate the pattern each time it repeats. For example
means that we slice the first copy from x=0 to x=2 at z=0 but at x=2 to x=4 we offset to z=0.05. In the 4 to 6 interval we slice at z=0.10. At the n-th copy we slice at 0.05 n z. Thus each copy is slightly different. There are no restrictions on the offset vector.
Finally the flip vector causes the pattern to be flipped or mirrored every other copy of the pattern. The first copy of the pattern in the positive direction from the axis is not flipped. The next farther is, the next is not, etc. The flip vector is a three component x, y, z vector but each component is treated as a boolean value that tells if you should or should not flip along a given axis. For example
means that every other copy of the pattern will be mirrored about the x- and y- axis but not the z-axis. A non-zero value means flip and zero means do not flip about that axis. The magnitude of the values in the flip vector doesn't matter.
works exactly the same as
The turbulence is always first. A better example of this limitation is with uneven turbulence and rotations.
The results will be the same either way even though you'd think it should look different.
We cannot change this basic behavior in POV-Ray now because lots of scenes would potentially render differently if suddenly the order transformation vs turbulence suddenly mattered when in the past, it didn't.
However, by specifying our turbulence inside warp statement you tell POV-Ray that the order in which turbulence, transformations and other warps are applied is significant. Here's an example of a turbulence warp.
The significance is that this
produces different results than this...
You may specify turbulence without using a warp statement. However you cannot control the order in which they are evaluated unless you put them in a warp.
The evaluation rules are as follows:
1) | First any turbulence not inside a warp statement is applied regardless of the order in which it appears relative to warps or transformations. |
2) | Next each warp statement, translate, rotate, scale or matrix one-by-one, is applied in the order the user specifies. If you want turbulence done in a specific order, you simply specify it inside a warp in the proper place. |
For example:
A map_type 0 gives the default planar mapping already described.
A map_type 1 gives a spherical mapping. It assumes that the object is a sphere of any size sitting at the origin. The y-axis is the north/south pole of the spherical mapping. The top and bottom edges of the bitmap just touch the pole regardless of any scaling. The left edge of the bitmap begins at the positive x-axis and wraps the pattern around the sphere from west to east in a -y-rotation. The pattern covers the sphere exactly once. The once keyword has no meaning for this type.
With map_type 2 you get a cylindrical mapping. It assumes that a cylinder of any diameter lies along the y-axis. The bump pattern wraps around the cylinder just like the spherical map but remains one unit tall from y=0 to y=1. This band of the pattern is repeated at all heights unless the once keyword is applied.
Finally map_type 5 is a torus or donut shaped mapping. It assumes that a torus of major radius 1 sits at the origin in the x-z-plane. The pattern is wrapped around similar to spherical or cylindrical maps. However the top and bottom edges of the map wrap over and under the torus where they meet each other on the inner rim.
Types 3 and 4 are still under development.
For example:
Although interpolate is legal in material maps the color index is interpolated before the texture is chosen. It does not interpolate the final color as you might hope it would. In general, interpolation of material maps serves no useful purpose but this may be fixed in future versions.
There are currently two types of interpolation:
Bilinear - interpolate 2 Normalized Distance - interpolate 4
For example:
Default is no interpolation. Normalized distance is the slightly faster of the two, bilinear does a better job of picking the between color. Normally bilinear is used.
If your map looks jaggy, try using interpolation instead of going to a higher resolution image. The results can be very good.