diff options
author | Thomas Dinges <blender@dingto.org> | 2013-08-01 01:18:23 +0400 |
---|---|---|
committer | Thomas Dinges <blender@dingto.org> | 2013-08-01 01:18:23 +0400 |
commit | 34009da32efcea87e80c6205c9a152ad3f30bbb7 (patch) | |
tree | 080443584b4fe17c02fceff07d06fc0d98ec5cfd /intern/cycles/kernel/kernel_object.h | |
parent | 6d9720ef63c540d533207aded1114da862377d32 (diff) |
Cycles / Vector Transform node:
* Add a note to convert a Vector, Point or Normal between World <=> Camera <=> Object coordinate space.
Documentation: http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/More#Vector_Transform
Part of my GSoC 2013 project, SVN merge of r57599, r57670, r57918, r57919, r58245 and r58775.
Diffstat (limited to 'intern/cycles/kernel/kernel_object.h')
-rw-r--r-- | intern/cycles/kernel/kernel_object.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/intern/cycles/kernel/kernel_object.h b/intern/cycles/kernel/kernel_object.h index bb5ed50c995..3cd7738f6b8 100644 --- a/intern/cycles/kernel/kernel_object.h +++ b/intern/cycles/kernel/kernel_object.h @@ -154,6 +154,16 @@ __device_inline void object_dir_transform(KernelGlobals *kg, ShaderData *sd, flo #endif } +__device_inline void object_inverse_dir_transform(KernelGlobals *kg, ShaderData *sd, float3 *D) +{ +#ifdef __OBJECT_MOTION__ + *D = transform_direction(&sd->ob_itfm, *D); +#else + Transform tfm = object_fetch_transform(kg, sd->object, OBJECT_INVERSE_TRANSFORM); + *D = transform_direction(&tfm, *D); +#endif +} + __device_inline float3 object_location(KernelGlobals *kg, ShaderData *sd) { if(sd->object == ~0) |