Re: G3DKit.info - renderer questions
Philippe C.D. Robert <[email protected]> Wed, 30 Oct 2002 23:23:54 +0100
| Newsgroups | gmane.comp.gnu.3dkit.general |
|---|---|
| Message-ID | <[email protected]> |
On Wednesday, October 30, 2002, at 10:20 Uhr, Brent Gulanowski wrote: >> 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... You might want to use 2 camera objects rendering the same scene using 2 different renderers... So if - while traversing - a state change has to be made the traversing tells the active renderer to do so, which in turn will execute the appropriate task depending on the currently active rendering technique. >> 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. My terminology here is: o [action] a highlevel "job" to be performed on the scene graph, ie. culling data for the active frustum. This is thus generic. o [task] a specific low-level "job" performed by the render engine, ie. switching a state (simple) or drawing arbitrary geometry (complex). This is thus specific. Do you think this is a bad choice? I can see both possibilities, as long as it is used consistently...:-) -Phil -- Philippe C.D. Robert http://www.nice.ch/~phip