SPD
Current
Legacy
Requires LightWave 6.0 or later.
SPD (Standard Procedural Databases) is a collection of scenes designed to test the performance and correctness of raytracing programs and rendering hardware. It was written by Eric Haines, who wrote an article about it that appeared in the November 1987 IEEE CG&A (the SPD sphereflake, second from the left in the images below, was on the cover). In its original form, SPD is a set of command line programs distributed as C source code. For more information about it, see Eric's SPD page and the original CG&A article.
My plug-in version creates the geometry in Modeler and optionally saves a LightWave scene file to store the light, camera, and background color settings.
Notes
You probably won't want to crank up the Complexity and Tesselation settings before experimenting carefully with their effects. Raising the complexity of the sphereflake from 2 to 4, for example, generates over half a million polygons. But in most cases you will want to allow the plug-in to merge points, since SPD generates the equivalent of an unwelded mesh.
The scene file generated by the plug-in doesn't contain the object. You'll need to add that yourself after loading the scene.
The scene file turns on raytracing of shadows and reflection, since most of the objects were designed to test those operations. A few, e.g. Mountain, were also designed to test refraction (the mountain is viewed through transparent spheres), but you'll need to turn on raytraced refraction by hand for those.
Changes
Although the plug-in was written to preserve as much as possible of SPD's original functionality, the plug-in differs from the original SPD in several significant ways.
- Each
main()
in the object programs was converted to a function that's called from the plug-in's user interface. - Code for writing to files (and there was a lot of it) was removed. The SPD output has been glued to a small number of Modeler commands.
- All of the output is polygonal. SPD supports higher order geometry descriptions, but they don't correspond directly to anything Modeler supports.
Command Line
The plug-in can be invoked, with arguments, by other Modeler plug-ins using the CMDSEQ
command. The command string (the second argument to CMDSEQ
) is of the following
form:
objectName complexity tesselation mergeFlag [sceneFile]
The objectName
is the name of the SPD object as it appears in the dropdown
list on the plug-in's user interface, and the complexity
and tesselation
are the integers you'd enter there. The mergeFlag
should be 1 (true) if you want
Merge Points to be called, or 0 (false) if not. And the optional sceneFile
is the
name of a LightWave scene file where the plug-in will write the object's scene settings.
If no scene filename is specified, the scene file isn't created. For example,
Sphereflake 2 3 1 Scenes\SPD\sphereflake.lws
creates a sphereflake of complexity 2 and tesselation level 3. Merge Points is applied,
and the scene data is stored in sphereflake.lws
. The scene filename is optional.
If it's omitted, no scene is stored.