|
From: | Brent Gulanowski |
Subject: | [Gnu3dkit-discuss] G3DKit.info - renderer questions |
Date: | Wed, 30 Oct 2002 16:20:38 -0500 |
When traversing/rendering a scene graph, an render engine is passed. Thisengine 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 address@hidden http://inkubator.idevgames.com/ Working together to make great software.
[Prev in Thread] | Current Thread | [Next in Thread] |