graphics : arise
spd
The Standard Procedural Database was originally devised by
Eric Haines to provide scenes to
benchmark and validate renderers. I've added export support for Arise's SDL and
run tests with the various databases. At right is your basic teapot - an
animation used to illustrate how varying the size factor changes the output.
There are similar results for the balls,
jacks and mountain databases as well
as the rings, sierpinski gasket and
tree databases.
The timings from rendering these different scenes are inputs to a process to
optimise Arise's performance (particularly that of the octree) by understanding
how the concentrations and distributions of the primitives affect performance.
The graph below gives an example of some timings, and shows how for most of the
databases the scaling is fairly good however, there is room for improvement with
tree and tetra databases.
The particularly sparse filling of the octrees with
these two databases points to the octree cell traversal algorithms being a
potential source of pain - the octree traversal method according to Samet was
considered optimal when originally implemented however, there are more recent,
faster methods that could be implemented. The impact of changes to the
subdivision criteria also need investigation - the octree is quite sensitive to
the leaf threshold parameter (the number of objects in a node required to
further subdivide) and the optimal value varies from scene to scene - so the
software requires more sophisticated sub-division criteria beyond the object
count.