EMAIL: isaackulka@juno.com NAME: Isaac Kulka TOPIC: Complexity COPYRIGHT: I SUBMIT TO THE STANDARD RAYTRACING COMPETITION COPYRIGHT. TITLE: Grassland COUNTRY: USA WEBPAGE: http://www.isaackulka.com/raytracing.html RENDERER USED: PovRay 3.6 TOOLS USED: Background Image Importer from the POV-Ray Cyclopedia http://www.spiritone.com/~english/cyclopedia/background.html RENDER TIME: 9h 52m 47s HARDWARE USED: AMD Sempron 2800+ Processor (2.0 GHz) 2.0 GB RAM Windows XP IMAGE DESCRIPTION: A wide expanse of colorful hills rolling gently through a windswept grassland. This scene attempts to capture the variety and complexity of a living landscape caught in full season. DESCRIPTION OF HOW THIS IMAGE WAS CREATED: When I first noticed that "Complexity" was the theme of this competition, I immediately thought of the natural landscapes which I am continually working on with PovRay, as I find the composition of such scenes to be extremely interesting and extremely complex. The image I've submitted this round is, as required, a brand new image representing the high point of many years of work and effort towards the creation of believable natural landscapes completely by hand. All the code and all the objects in this scene have been written by me by hand, without the use of any external tools, except for a piece of code which I've barrowed to help me import one scene into the background of another. In this sense my Grassland is a combination of four scenes, each one rendered on top of the scene behind it. This "layering" not only greatly speeds up the render time of each individual layer, but it also greatly reduces the amount of memory necessary to render my scene, one piece at a one time. If I had not broken this scene up into layers, then the RAM requirements would have been in excess of five gigabytes, exceeding the theoretical maximum capacity of my humble 32-bit system. THE OBJECTS Concerning the individual objects of my scene, the clouds in the background are generated as layers of semi-transparent pigment patterns covering fifty or so giant hollow spheres. Other than the clouds, all of the objects are mesh objects generated from scratch by my code at render time. The landscape is generated by covering sections of a bumpy, hill-like noise pattern with mesh triangles. The grass, flowers, leaves and berries are all generated primarily by trigonometric functions combined with some natural randomness given to their structure through further use of noise patterns. The trees are created by a recursive macro, of which there are two main varieties: The trees in the background are created by a macro designed to use as few triangles as possible, thus allowing me to reuse the trees hundreds of times without using up too much memory. The trees in the foreground, on the other hand, seem to be designed to use up as much memory as possible… For example, the bark of the foreground trees is “real” in the sense that it is not simply an illusion created by a Normal_Map. Rather the bark is a 3D mesh created by another application of noise patterns. In this way, the Bark manages to use up over a million unique triangles on its own! Not to say anything about the leaves… PLANTING THE SCENE In order to position my objects as naturally as possible throughout the scene, I have turned once again to the use of random noise patterns. These noise patterns (such as “agate”, “granite” and “wrinkles”) are great in the way they allow for infinitely random variation while also maintaining trends within that randomness. In this way I am able to have dense clusters of flowers flowing across the landscape, rather than just randomly-placed individual flowers covering the landscape with the same appeal of static covering a television screen. The positioning of the trees, the windswept feeling of the grass (if its discernable at all after the jpeg blurring of my scene!) and the wrinkles of the leaves are also the product of these noise patterns. All and all, the theme of this scene would have to be the combination of random noise patterns with mesh structures. Without these two key components, this scene, and its future derivatives, would not be possible. Also, I fleetingly mentioned above something about the effect which jpeg compression has had on this image. The effect of jpeg compression has not been slight, and the hammering of this once beautifully “round” image into the square hole of a 250KB file size restriction has, in my option, not failed to leave a mark. An uncompressed 1280x780 bitmap version of this image has been included in the accompanying “grssland.zip” file, if you’re interested. The bitmap is almost 3MB in size, so I understand the need for a smaller file size restriction :) Also, as a small piece of trivia, my calculations put the total number of triangles in this scene at close to 800,000,000, consisting of over 2,000,000 unique triangles. (And remember, the bark of the foreground trees uses over 1,000,000 of those unique triangles!)