Force Fields: Fix Texture with both Use Coordinates and 2D enabled.
authorAlexander Gavrilov <angavrilov@gmail.com>
Mon, 18 Apr 2016 15:45:34 +0000 (18:45 +0300)
committerAlexander Gavrilov <angavrilov@gmail.com>
Fri, 6 May 2016 08:40:18 +0000 (11:40 +0300)
commit7ecc159f378e5bddfdb7aae8ac7784d3ca3f87fc
treedce90019fdc45623d02b5260f0f5d6f96eb77907
parent8cc4f3f52ae6b6b2b74cf7a2e3e72221982b317b
Force Fields: Fix Texture with both Use Coordinates and 2D enabled.

From description, Use Coordinates evaluates the texture using
target coordinates in the local space of the force field object.
2D is supposed to ignore the Z coordinate. Thus one would assume
that if both are enabled, the force field effect would move with
the force field object, and Z would be 0.

However, instead first the 2D option projects points onto a plane
passing through the global zero and orthogonal to the local Z,
and only then the resulting point is transformed into local space.
Z is not locked at 0, so procedural textures like Spherical Blend
don't work as expected.

To fix this, apply local transform first, and then just clear Z if 2D.
source/blender/blenkernel/intern/effect.c