Discussion:
[Opensg-users] Bugfix ShadowStage
Michael Raab
2015-03-11 13:40:34 UTC
Permalink
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
Carsten Neumann
2015-03-11 14:30:03 UTC
Permalink
Hello Michael,
I've fixed a bug in ShadowStage.cpp. If the light core of a certain
light node of the stage was changed (e.g. switching from point light to
directional light), the shadow handling was not updated.
thank you for the patch! The first hunk:

@@ -334,8 +334,12 @@ Action::ResultE ShadowStage::renderEnter(Action
*action)
// fprintf(stderr, "ShadowStage::renderEnter\n");

if(pData->getRunning() == true)
- return returnValue;
+ {
+ if(getShadowOn() == false)
+ pData->setRunning(false);

+ return returnValue;
+ }

pData->setRunning(true);

looks incorrect though. IIRC the purpose here is to avoid clobbering the
ShadowStageData of a running stage when tree traversal happens to
encounter the same stage a second time (e.g. because of the use of
VisitSubTree cores). If the shadow is off setRunning(false) is called
around line 463.
I've applied the other parts of the patch. Thanks again,

Cheers,
Carsten

PS: I know there is another patch by you pending, apologies for the very
long delay on it, I'm just now getting some spare cycles for OpenSG again.
Loading...