[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gnu3dkit-discuss] G3DKit.info - renderer questions
From: |
Philippe C . D . Robert |
Subject: |
Re: [Gnu3dkit-discuss] G3DKit.info - renderer questions |
Date: |
Wed, 30 Oct 2002 23:23:54 +0100 |
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