Image Description, by The Ostrich
This image was generated using two programs of mine. The first was my tree
generator program, and the second was my new raytracing engine. Neither is
yet complete - The tree generator requires some support for gravitational
constraints and moment sums, and the raytracer needs support for diffuse
interobject lighting and soft shadows.
The tree generator program uses a parameterised stochastic model to generate
the branches and leaf positions/orientations. Once the model has been
generated, the program outputs a script file of primitives (cylinders and
spheres for the branches, and references to a leaf subscene file for the
leaves). This is then read by the raytracer.
The raytracer sorts the scene (in this case about 100,000 primitives) into a
binary hierarchy of bounding spheres, using a minimum sum of surface areas
heuristic to evaluate 10 randomly chosen splitter planes for each split in
the hierarchy. The program the uses a depth rejection technique, where
spheres further away than the closest intersection found so far are rejected
without further evaluation. The image in question is a detail taken from a
2560x1920 top-down render of a tree model, with 9 directional lights, and no
ambient component at all. None of the primitives are textured, a fact which,
combined with the multiple lighting directions, gives the image a somewhat
The only part of the scene that was actually made by hand was the leaf model
(since I don't have a 3D editing package, I just typed the coordinates for
my design into a script file by hand).
For other examples of my work, see my website: