forked from bartvdbraak/blender
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
This commit is contained in:
parent
9be4c94204
commit
7680f88f18
@ -134,6 +134,9 @@ __device_inline void object_dir_transform(KernelGlobals *kg, ShaderData *sd, flo
|
||||
|
||||
__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
|
||||
|
@ -179,19 +179,22 @@ __device void shader_setup_from_sample(KernelGlobals *kg, ShaderData *sd,
|
||||
#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);
|
||||
}
|
||||
else {
|
||||
sd->ob_tfm = object_fetch_transform(kg, sd->object, OBJECT_TRANSFORM);
|
||||
sd->ob_itfm = object_fetch_transform(kg, sd->object, OBJECT_INVERSE_TRANSFORM);
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
sd->time = time;
|
||||
#else
|
||||
}
|
||||
#endif
|
||||
|
||||
/* smooth normal */
|
||||
|
Loading…
Reference in New Issue
Block a user