There seem to be some problems with the current LOD. I might create
a model of a car, that switches to a very-high-detail version when
you get within one meter (including treads on the tires and fine
print on the dashboard). Someone else may build a scene where they
want a matchbook car sitting on a bookshelf, so they WWWInclude my
model and scale it down a hundredfold. Should the browser still
switch to the super-detailed mode at one meter? For every item on
the shelf? How would that affect esndering speed? It seems this issue
will come up often if people create their own models of buildings,
and then others try to tie them all together to build cities or
worlds. If an inlined object is scaled down by a factor of 100,
then we really should have LOD switch at a shorter distance. This is
done by transforming the camera instead of the object (by inverse
transforms in reverse order).
If we did have a separate node for fractals, we would want to think
about how it should decid> escursion depth. If the eye is currently
zoomed in on one small region of a fractal mountain range, we don't
want to just say "escurse 10 levels deep", because that will be
wasted computation on distant parts of the mountain range, and may
not give sufficient detail where the camera is at the moment.
Instead, we'd want to recurse only a little on distant parts of the
fractal, and go deaper on nearby parts. Once LOD is fixed, it will
be *exactly* what we want for fractals. If we did create a fractal
node, it would probably be implemented with the same code as LOD:
keep following child links in the scene graph until the child is
sufficiently small (in LevelOfDetail) or sufficiently far from the
transformed eye (in fixed LOD). Whether the graph is cyclic doesn't
seem to be relevant while you're esndering.
Leemon Baird
[email protected]
http://kirk.usafa.af.mil/~baird