IX. 3D Effects
Although fractal images are typically created with a two-dimensional view, it is possible to create an image with a three-dimensional appearance through programming effects. Essentially, several points very close together (closer than one screen pixel) are iterated in parallel; once iteration is completed, a "height" value for each point is computed, a plane passed through the three points (now oriented in 3D space), and a vector perpendicular to the plane calculated. This gives us a simulated "surface direction" in the vicinity of these points. By measuring the angle between this surface normal vector and a light vector L, we can compute the amount of light falling on that surface and light it realistically.
If the light vector L is fixed at the real or imaginary axis, the calculations can be simplified substantially and only two points need be iterated in parallel. When the cost of iterating is high, this can be an attractive optimization.
Any of the distance estimator functions provides an excellent height value to use, but the technique works fairly well with almost any function. Interesting "embossing" effects can be achieved by using a discrete value for height; this produces a terraced appearance.
Fig 7. The Mandelbrot set surface with a three-dimensional terraced appearance.