Re: How do RenderKit and Renderer communicate?

Philippe C.D. Robert <[email protected]> Fri, 24 Jan 2003 16:55:44 +0100
Newsgroups gmane.comp.gnu.3dkit.general
Message-ID <[email protected]>
On Friday, January 17, 2003, at 10:44  Uhr, Brent Gulanowski wrote:
> On Friday, January 17, 2003, at 02:47  PM, Philippe C.D. Robert wrote:
>
>>> Have you specified or assumed a very strict flow of commands for 
>>> various data transformations from the application, through 
>>> RenderKit, and then into the renderer? Can we define different 
>>> categories of such transformations to help us define current and 
>>> future Actions, and how they are similar or different (depending 
>>> upon when the actions' effects come into play)?
>>>
>>> Should we provide a sharp contrast between transformations which 
>>> affect the world geometry and those which only affect the way the 
>>> geometry is rendered? I can't see where to draw such a line, but if 
>>> it exists, it seems essential to recognize it and incorporate it. 
>>> Viewing the world orthographically doesn't affect the world per se, 
>>> but it is a result of a camera. Perhaps camera qualities like ortho, 
>>> depth of field, angle of view and such are a special case.
>>
>> Sorry, but I am not sure I exactly understand what you actually don't 
>> know here - try to ask questions more precise so that we can provide 
>> good answers in the future...
>>
>> With respect to your geometry problem from above, transformations are 
>> applied using a stack, so every vertex is transformed - while 
>> rendered - by the current transformation on the stack (accumulated). 
>> There is no such thing as 'world geometry', only local and world 
>> coordinate systems (the camera setup (projection type, frustum, ...) 
>> has nothing to do with that).
>
> Hmmm, well I think you are misunderstanding that my questions are not 
> exactly technical in nature. What I am talking about are conceptual 
> distinctions between various ways of interpreting data, not about 
> matrices and projections. When I say, "World geometry" I only mean 
> "objects in the scene". But in a file, there is nothing but raw data. 
> A rendering of this data as a 3D drawing is just one way of 
> representing information. I'm talking about -interpretation-, not 
> transformation, I guess. There are many choices to made, and they 
> arise at different times in the process of rendering.
>>
>> To understand how a scene graph is being rendered means understanding 
>> state machines (and common gfx pipelines) - I thus suggest you read 
>> some documentation ie. about the GL pipeline, I assume this would 
>> give you some answers.
>
> Erm, yeah, I've read lots of these things, and while I'm no expert, I 
> understand what is involved well enough, I think. I simply want to 
> find out where the interpretation of the scene data begins, and if 
> there is a distinction between a viewer interpretation (embodied in a 
> camera) and an application interpretation (as set up by the user of 
> the application). To me, they are different, and I would expect this 
> difference to show up in the software. Sure, at the pipeline the 
> differences disappear, but I'm arguing that some of the 
> interpretations originate within RenderKit, and others are never seen 
> by RenderKit -- perhaps being integral to the Renderer, and perhaps 
> being part of the Renderer but controlled by the application.
>
> Scene->RenderKit(Camera)->Renderer->Pipeline
> User->Application->Renderer->Pipeline
>
> If, in fact, you believe that these distinctions are NOT meaningful, 
> OK. I'll ask you to forget what I wrote and just think in terms of 
> where certain rendering decisions are made -- in RenderKit, in the 
> Renderer, or in the application.
>
> My question is this: Can an application affect the rendering process 
> directly through the Renderer without the knowledge of RenderKit, and 
> if so, should we distinguish between the kinds of affects which can be 
> done in this way and those that cannot ... or not?

An app can either affect the rendering by setting renderer specific 
options or by providing a special purpose renderer (ie. an OpenGL 
renderer which draws everything in cartoon style instead of 
"realistic").

-Phil
--
Philippe C.D. Robert
http://www.nice.ch/~phip