94aa87dd62
* The problem is that shadow pass is derived from the diffuse pass as shad = shad'/diff, where shad' = shad*diff. In cases where diff is 0 and the division can't be done shad is left as shad' (=0). * This all works just fine until the diffuse color is 0 on just one channel (no red in material color for example). In this case the shadow pass is left as 0 too regardless of the existence of an actual shadow, so the end result is a colored shadow! * The only real solution is to use the original shadow intensity to determine if there actually is a shadow or not. This is now stored in shr->shad[3] from the lamp shadow calculation. Note: The best solution would probably be to calculate the shadow pass on it's own and not to derive it from the diffuse pass, but I didn't dare to start messing up the shading code totally. |
||
---|---|---|
.. | ||
blender | ||
blenderplayer | ||
creator | ||
darwin | ||
gameengine | ||
icons | ||
kernel | ||
CMakeLists.txt | ||
Makefile | ||
SConscript |