Previous:Transforming Patterns Main Index Next:Waveforms

#### Frequency and Phase

The `frequency` and `phase` modifiers act as a type of scale and translate modifiers for various blend maps. They only have effect when blend maps are used. Blend maps are `color_map`, `pigment_map`, `normal_map`, `slope_map`, `density_map`, and `texture_map`. This discussion uses a color map as an example but the same principles apply to the other blend map types.

The `frequency` keyword adjusts the number of times that a color map repeats over one cycle of a pattern. For example `gradient` covers color map values 0 to 1 over the range from x=0 to x=1. By adding `frequency 2.0` the color map repeats twice over that same range. The same effect can be achieved using `scale 0.5*x` so the frequency keyword isn't that useful for patterns like gradient.

However the radial pattern wraps the color map around the +y-axis once. If you wanted two copies of the map (or 3 or 10 or 100) you'd have to build a bigger map. Adding `frequency 2.0` causes the color map to be used twice per revolution. Try this:

      pigment {

        radial

        color_map{[0.5 color Red][0.5 color White]}

        frequency 6

      }

The result is six sets of red and white radial stripes evenly spaced around the object.

The float after `frequency` can be any value. Values greater than 1.0 causes more than one copy of the map to be used. Values from 0.0 to 1.0 cause a fraction of the map to be used. Negative values reverses the map.

The `phase` value causes the map entries to be shifted so that the map starts and ends at a different place. In the example above if you render successive frames at `phase 0` then `phase 0.1`, `phase 0.2`, etc. you could create an animation that rotates the stripes. The same effect can be easily achieved by rotating the `radial` pigment using `rotate y*Angle` but there are other uses where phase can be handy.

Sometimes you create a great looking gradient or wood color map but you want the grain slightly adjusted in or out. You could re-order the color map entries but that's a pain. A phase adjustment will shift everything but keep the same scale. Try animating a `mandel` pigment for a color palette rotation effect.

These values work by applying the following formula

New_Value = fmod ( Old_Value * Frequency + Phase, 1.0 ).

The `frequency` and `phase` modifiers have no effect on block patterns `checker`, `brick`, and `hexagon` nor do they effect `image_map`, `bump_map` or `material_map`. They also have no effect in normal statements when used with `bumps`, `dents`, `quilted` or `wrinkles` because these normal patterns cannot use `normal_map` or `slope_map`.

They can be used with normal patterns `ripples` and `waves` even though these two patterns cannot use `normal_map` or `slope_map` either. When used with `ripples` or `waves`, `frequency` adjusts the space between features and `phase` can be adjusted from 0.0 to 1.0 to cause the ripples or waves to move relative to their center for animating the features.

Previous:Transforming Patterns Main Index Next:Waveforms