Volume Rendering Framework
Hoover is a minimalist library that facilitates the
construction of simple multi-threaded ray-casting volume renderers.
The multi-threading capability (which is optional) is from the
pthread library. Basically, you tell hoover information about
the camera, image, and volume, and then provide it with seven callback
functions, implementing the behavior you want:
- At the beginning and ending of the rendering
- At the beginning and ending of a thread
- At the beginning and ending of a ray
- At each sample point along the ray
After all has been set up, you call hooverRender() and let your
callbacks do the work. Hoover is the basis of the simple
pseudo-volume renderer mrender as well as the mite volume renderer. Mite, for
instance, is basically just a different set of seven callbacks to plug
into hoover. By itself, hoover doesn't actually know
the first thing about volume rendering, it only knows enough geometry
to shoot rays through a volume. Hoover is
also not very flexible: there is no concept of reflection or shadow
rays, and only a simplistic load-sharing scheme. However, it gets the
job done, and is a useful framework for implementing a
proof-of-concept volume renderer.
More information as time permits.