On Sunday, March 23, 2003, at 12:37 PM, Philippe C.D. Robert wrote:
On Sunday, March 23, 2003, at 05:04 Uhr, Brent Gulanowski wrote:
For me, the issue then is, how do I not waste the work done by
compilation? Can the system leverage that in some other way? What
form ought one to compile a sub-tree into? (What forms are there?)
BTW, I'm asking these q's out loud, not asking you to answer them.
>>> :)
What do you mean by "not wasting work done by compilation"?
The creation of the optimized rep. It has to be performed every time
the scene is loaded, and definitely each time the application is
run. What if the optimization work is time-consuming? A parametric
object getting converted into polygons? Hundreds of such
conversions? How do you save the results of work done by the
renderer? Would you rather something that involved be done by the
application? Is it enough to say that, if the application wants to
preserve the results of any calculations, then it has to do such
calculations itself, for the sake of consistency and simplicity?
You can of course imagine both scenarios, on one side the core 3DKit
which optimises structural scene graph data at runtime and on the
other side applications which perform scene optimisations at a higher
level. Both are valid and powerful techniques and both are required.
It will furthermore be possible to optimise a scene graph and encode
it afterwards (in this optimised state) for later usage.
OK, great, that's sort of what I was getting at, in my way. :\ What
will do the encoding and decoding -- RenderKit or the application? If
the renderer does the optimization (the former case), how does this
get recovered? The renderer could store this compiled data back in the
scene graph. (I though I saw methods for this, but can't find them
now.)
Nodes I suppose are made aware that that has been done (so that they
know to call drawObject: instead of traversing through their
children). Thus when the scene graph is re-encoded, it stores the
optimized version. This is done via an action I presume.
(G3DEncodeAction? Have we talked about this? I can't find anything
about it in the mailing list archives.) Can it store both compiled and
uncompiled versions or one or the other?