G3DKit.info - renderer questions

Brent Gulanowski <[email protected]> Wed, 30 Oct 2002 16:20:38 -0500
Newsgroups gmane.comp.gnu.3dkit.general
Message-ID <[email protected]>
> When traversing/rendering a scene graph, an render engine is passed. 
> This
>   engine uses a render action which processes state handling, attribute
>   evaluation etc. Concrete engines and actions are not provided by the
>   RenderKit itself but by separate bundles.

This is a little unclear to me. I can't tell what's doing what. When 
the renderer is loaded, I'm guessing some object from RK holds a 
reference to it: maybe some kind of overall manager for RK (main point 
of contact for the application?). For DRAW/CULL/UPDATE/ISECT actions, 
the renderer is passed to the graph itself, or to some graph manager? 
When you say "engine uses a render action", do you mean that a render 
action method exposed by the renderer protocol, is implemented by the 
renderer, and is called by RK? That sounds like what you mean. But I 
might have it completely backwards...
>
>   Each renderer maps actions to tasks, if possible. Otherwise a default
>   fallback task is performed (on the respective category).
>
>   Tasks interface with a low level rendering API such as OpenGL while
>   renderers should be implemented in a generic way.

This approach I like, except I would have used the words in exactly the 
opposite way. An action is specific, while a task is general (sometimes 
even abstract) -- different actions can be used to accomplish the same 
task. E.g.: drawing is a task, while submitting triangles to OpenGL is 
an action. The same task can be accomplished by a very different 
action, such as a person sketching on a piece of paper.


--
Brent Gulanowski				[email protected]

http://inkubator.idevgames.com/
Working together to make great software.