Fix T41219: Cycles backface detection doesn't work properly
authorSergey Sharybin <sergey.vfx@gmail.com>
Wed, 13 Aug 2014 10:19:12 +0000 (16:19 +0600)
committerSergey Sharybin <sergey.vfx@gmail.com>
Wed, 13 Aug 2014 10:35:54 +0000 (16:35 +0600)
commitbfaf4f2d0d4e600f6f8e253033de2b05a93e3ec1
tree3299b51ca6994b30900da058176df1f5c4ef5848
parent8d801c3afd39d66d249c8b7e45249339ad297fcf
Fix T41219: Cycles backface detection doesn't work properly

Root of the issue goes back to the on-fly normals commit and the
latest fix for it wasn't actually correct. I've mixed two fixes
in there.

So the idea here goes back to storing negative scaled object flag
and flip runtime-calculated normal if this flag is set, which is
pretty much the same as the original fix for the issue from me.

The issue with motion blur wasn't caused by the rumtime normals
patch and it had issues before, because it already did runtime
normals calculation. Now made it so motion triangles takes the
negative scale flag into account.

This actually makes code more clean imo and avoids rather confusing
flipping code in mesh.cpp.
intern/cycles/kernel/geom/geom_motion_triangle.h
intern/cycles/kernel/geom/geom_triangle.h
intern/cycles/kernel/kernel_bake.h
intern/cycles/kernel/kernel_light.h
intern/cycles/kernel/kernel_shader.h
intern/cycles/kernel/kernel_types.h
intern/cycles/render/mesh.cpp
intern/cycles/render/object.cpp