Landscape of the week 2 - technical description
About two years ago i started an experiment to have landscape scenes randomly created with POV-Ray.
The system was focused on the landscape geometry and the main problem which led me to stop this project in the end was that they rendered too slow to be generated on a weekly basis.
I meanwhile have improved the techniques and can also make use of several interesting tools developed by others, particularly Jaime's LightSys and Gilles Tran's Makeclouds. So i decided to revive this project.
One difficulty was to find good ranges for the different parameters. As described in the original landscape of the week technical description the system of automatically set up scenes is based on various parameters in the scenes that are chosen randomly. For example the sun position is based on two random parameters, the azimuth and altitude. The difficulty is to choose parameter ranges that lead to an interesting variety of scenes but at the same time avoid completely uninteresting ones. With the about 60 parameters in the current system it is next to impossible to do this perfectly so i decided to use a concept known from optimization techniques - evolution strategies.
The idea behind evolution strategies is to find the optimal combination of parameters of a complex system through an evolution like process. Since i don't want to find one best scene but create a sequence of good looking but different images the system is designed to converge very slowly.
The evolution like development of the parameters works the following way:
More information on this technique can be found on:
The use of evolution strategies for this purpose is of course highly experimental, i am not sure how the quality of the scenes will evolve in the future. It might be necessary to restart the whole thing with different simulation parameters.
To be able to render the 20 test scenes of every generation i decided to render them without the plants at a fairly low quality (512x384, no aa). A copy of the source code of these scenes is written to a separate file while the scene is generated and this code is made available with the images so you can render a larger version of any image.
I am planning to render the highest rated image of every generation in better quality including some automatically placed plants. A few test renders of such scenes i made while developing the project can be found below: