POV-Ray Development Techniques.

Master Images

   I use what a "Master Image" technique for developing POV-Ray
   projects. This technique saves a lot of rendering time. I create a
   "Master Image" in BMP format (I use Microsoft PaintBrush), which is
   usually kept open during development. When making small changes or
   adding detail to specific objects, I render a small area around the
   change and then copy/paste the resulting change into the Master
   Image. This allows me to have an up-to-date view of what the final
   image will look like, without needing to re-render the entire image
   for every little change. It also allows me to "mark up" the image
   with potential changes, such as "add mountain here" or "add texture
   to hills. Then, I can later replace them with something "real" as I
   get around to developing them. Whenever I re-render the entire scene,
   I copy the resulting image into the Master Image, replacing the
   "incomplete" one.

Inline Flags

   I find it useful to insert "Flags" at important locations in the
   source code, so I could easily find what I was looking for. So, Flags
   like "/House", "/Sky", "/Cam" and "/Here" help me locate important
   sections more easily. I keep the Flags in the Final Source File.

Enhanced Textures 

   I also discovered an interesting technique when using textures. If
   you take a simple pigment (Granite, for instance), apply it to a 3-D
   object, add some normals, crand and roughness, this will create a
   more complex and "rich" texture. Then, you can use the new texture in
   place of the original one.

   Another interesting technique is to use an Image as both a Texture
   and a Normal. If the same transformations are used for both, the
   Normal reinforces the Texture and makes it even more realistic.

Pigment and Texture Mixing

   When using an image to create a pigment to apply to an object, there
   is a "blurring" effect that can occur. This is most noticable when
   applying an image pigment to a sphere - the edges of the sphere have
   a blurred effect caused by pixelation. I call this
   "edge-blur-syndrome". It occurs because an image pigment is
   "2-dimensional" and should normally be viewed from a specific vantage
   point. To see this effect, try applying a flat image to a sphere and
   then viewing the resulting render from the left side instead of
   head-on. I created the macros Mix_Pigment and Mix_Texture, which
   creates a true "3-dimensional" pigment or texture from the
   2-dimensional version. It does this by averaging several
   pigments/textures while rescaling and rotating them around various
   axes. The result is a texture that can be applied to any object,
   regardless of orientation, without having to deal with
   "edge-blur-syndrome".

Miscellaneous

   Adding "self-normals" to an image multiple times can produce
   interesting new textures.

James A. Coons

