Inspired by my last scene about crystals, I envisioned a technique to create a cave, and this is the result.
The cave is constructed around a base mesh modeled with Wings3D. I created a structure starting with a cube, subdivided it a few times, and then extruded some faces here and there. Some vertex where crumpled randomly, and then smoothed the whole mesh. Then cuted some triangles to make the cave entrance and a hole on the ceil, and the result roughly looked like a cave when all the faces were inverted.
The next step was to make it more irregular, but this time using POV-Ray. The idea was to throw rocks at the cave-mesh interior walls from all directions, and then add some stalactites on the ceil and stalagmites on the ground. The trace() function was intensively used for this purpose. At first try I used isosurfaces for these objects, but tough it looked great, the render times where too much for my patience.
The solution came from an 8 years old POV-Ray include file by Bill Pragnell, which I missed back on the day, but that I enjoyed very much discovering now. The Meshrelief include file allows to create mesh version of regular POV-Ray objects, with surface displacement applied to them. Using it I created the new version of the rocks, stalactites and stalagmites, which of course render amazingly fast compared to their isosurface counterparts.
As usual, all the scene, except for the cave base mesh modeled with Wings3d, is constructed procedurally with intensive usage of rand() to allow for different configurations by changing a few numbers. The next step is to figure out a method to create the cave base also procedurally, to have a fully procedural scene able to give an infinite number of possible cave shapes.
As a final touch, after struggling to find something interesting to put on the cave (crystals, a treasure, some skeletons?), I just opted to send an speleologist there to see what he can discover… The model is a worker figure by Tim Lee from Archive3d, to which I literally cut off an arm.