[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [51366] trunk/blender/intern/cycles/kernel : Fix object motion blur crash with lamp sampling(?), missed a check.
Brecht Van Lommel
brechtvanlommel at pandora.be
Tue Oct 16 15:20:59 CEST 2012
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 */
More information about the Bf-blender-cvs
mailing list