Revision: 51366
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51366
Author:   blendix
Date:     2012-10-16 13:20:57 +0000 (Tue, 16 Oct 2012)
Log Message:
-----------
Fix object motion blur crash with lamp sampling(?), missed a check.

Motion blur documentation is here:
http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.65/Cycles#Motion_Blur

Modified Paths:
--------------
    trunk/blender/intern/cycles/kernel/kernel_object.h
    trunk/blender/intern/cycles/kernel/kernel_shader.h

Modified: trunk/blender/intern/cycles/kernel/kernel_object.h
===================================================================
--- trunk/blender/intern/cycles/kernel/kernel_object.h  2012-10-16 11:57:46 UTC 
(rev 51365)
+++ trunk/blender/intern/cycles/kernel/kernel_object.h  2012-10-16 13:20:57 UTC 
(rev 51366)
@@ -134,6 +134,9 @@
 
 __device_inline float3 object_location(KernelGlobals *kg, ShaderData *sd)
 {
+       if(sd->object == ~0)
+               return make_float3(0.0f, 0.0f, 0.0f);
+
 #ifdef __OBJECT_MOTION__
        return make_float3(sd->ob_tfm.x.w, sd->ob_tfm.y.w, sd->ob_tfm.z.w);
 #else

Modified: trunk/blender/intern/cycles/kernel/kernel_shader.h
===================================================================
--- trunk/blender/intern/cycles/kernel/kernel_shader.h  2012-10-16 11:57:46 UTC 
(rev 51365)
+++ trunk/blender/intern/cycles/kernel/kernel_shader.h  2012-10-16 13:20:57 UTC 
(rev 51366)
@@ -179,19 +179,22 @@
 #endif
 
        sd->flag = kernel_tex_fetch(__shader_flag, (sd->shader & 
SHADER_MASK)*2);
-       if(sd->object != -1)
+       if(sd->object != -1) {
                sd->flag |= kernel_tex_fetch(__object_flag, sd->object);
 
 #ifdef __OBJECT_MOTION__
-       if(sd->flag & SD_OBJECT_MOTION) {
-               sd->ob_tfm = object_fetch_transform_motion(kg, sd->object, 
time, &sd->ob_itfm);
+               if(sd->flag & SD_OBJECT_MOTION) {
+                       sd->ob_tfm = object_fetch_transform_motion(kg, 
sd->object, time, &sd->ob_itfm);
+               }
+               else {
+                       sd->ob_tfm = object_fetch_transform(kg, sd->object, 
OBJECT_TRANSFORM);
+                       sd->ob_itfm = object_fetch_transform(kg, sd->object, 
OBJECT_INVERSE_TRANSFORM);
+               }
        }
-       else {
-               sd->ob_tfm = object_fetch_transform(kg, sd->object, 
OBJECT_TRANSFORM);
-               sd->ob_itfm = object_fetch_transform(kg, sd->object, 
OBJECT_INVERSE_TRANSFORM);
-       }
 
        sd->time = time;
+#else
+       }
 #endif
 
        /* smooth normal */

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

Reply via email to