On Tue, Mar 30, 2010 at 11:01 PM, Brecht Van Lommel <[email protected]> wrote:
> Revision: 27865
>          
> http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27865
> Author:   blendix
> Date:     2010-03-30 14:01:17 +0200 (Tue, 30 Mar 2010)

Hi Brecht, was debugging a volume render bug and found an issue in
rayobject.cpp introduced in the above quoted commit.

In that commit it changes the raytrace 'skip' behaviour from checking
multiple bitflags successively, to treating the bitflags like mutually
exclusive options. I don't think this is the original intention of
this code, since in multiple places in the source (eg. rayshade.c and
also the volume render stuff) the is.skip is set to multiple bitflags.

This has the side effect in the case of:
is.skip = RE_SKIP_VLR_RENDER_CHECK | RE_SKIP_VLR_NON_SOLID_MATERIAL;
ignoring the second flag, since (is->skip & RE_SKIP_VLR_RENDER_CHECK) is true.

removing RE_SKIP_VLR_RENDER_CHECK makes this volume code work
properly, but I suspect that may not be what we want - it still seems
dodgy. If these are now meant to be mutually exclusive options, they
should probably be represented that way in the code, rather than
bitflags.

cheers

Matt
_______________________________________________
Bf-committers mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-committers

Reply via email to