Hello Johannes,
On 08/20/2013 06:20 AM, Johannes Brunen wrote:
> today I have tried to make use of the MultiCore core. Below you can see
> the modified createScenegraph function from the 07materials tutorial.
[SNIP]
> This does not work, i.e. the material is not respected. So either my
> expectation about the MultiCore is wrong or a subtle error is at work.
> So, how do I correctly use the MultiCore core?
this is caused by an "interesting" combination of factors:
- Group::renderEnter() returns status Action::Skip if all children are
culled (this saves calling the leave function Group::renderLeave).
- MaterialGroup calls it's base class's (Group) renderEnter and if that
returns Action::Skip does not bother setting the material - in the
normally correct assumption that there are no children that would use it
anyways.
- your MultiCore node is a leaf and as such the MaterialGroup thinks it
does not need to set the material since there are no children - except
of course that in a MultiCore all but the last core do have "children".
The easy fix is to not do the optimisation in
MaterialGroup::renderEnter, that will fix the bug at the cost of more
nodes being cull tested.
While looking for other Group derived cores that might suffer from the
same problem, I also found what looks like a bug in
ChunkOverrideGroup::renderEnter: This function installs the override
chunks and then does a return Group::renderEnter() - meaning if all
children are culled the overrides are installed, but never removed
because the corresponding renderLeave() is never done :(
Any preferences, other ideas how to fix this?
Cheers,
Carsten
------------------------------------------------------------------------------
Introducing Performance Central, a new site from SourceForge and
AppDynamics. Performance Central is your source for news, insights,
analysis and resources for efficient Application Performance Management.
Visit us today!
http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users