[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [52663] trunk/blender/intern/cycles/kernel /osl: Fix cycles motion blur + OSL + object texture coordinates issue.

Brecht Van Lommel brechtvanlommel at pandora.be
Thu Nov 29 17:11:38 CET 2012


Revision: 52663
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52663
Author:   blendix
Date:     2012-11-29 16:11:37 +0000 (Thu, 29 Nov 2012)
Log Message:
-----------
Fix cycles motion blur + OSL + object texture coordinates issue.

Modified Paths:
--------------
    trunk/blender/intern/cycles/kernel/osl/osl_services.cpp
    trunk/blender/intern/cycles/kernel/osl/osl_shader.cpp

Modified: trunk/blender/intern/cycles/kernel/osl/osl_services.cpp
===================================================================
--- trunk/blender/intern/cycles/kernel/osl/osl_services.cpp	2012-11-29 16:06:36 UTC (rev 52662)
+++ trunk/blender/intern/cycles/kernel/osl/osl_services.cpp	2012-11-29 16:11:37 UTC (rev 52663)
@@ -80,7 +80,12 @@
 
 		if (object != ~0) {
 #ifdef __OBJECT_MOTION__
-			Transform tfm = object_fetch_transform_motion_test(kg, object, time, NULL);
+			Transform tfm;
+
+			if(time == sd->time)
+				tfm = sd->ob_tfm;
+			else
+				tfm = object_fetch_transform_motion_test(kg, object, time, NULL);
 #else
 			Transform tfm = object_fetch_transform(kg, object, OBJECT_TRANSFORM);
 #endif
@@ -106,7 +111,11 @@
 		if (object != ~0) {
 #ifdef __OBJECT_MOTION__
 			Transform itfm;
-			object_fetch_transform_motion_test(kg, object, time, &itfm);
+
+			if(time == sd->time)
+				itfm = sd->ob_itfm;
+			else
+				object_fetch_transform_motion_test(kg, object, time, &itfm);
 #else
 			Transform itfm = object_fetch_transform(kg, object, OBJECT_INVERSE_TRANSFORM);
 #endif

Modified: trunk/blender/intern/cycles/kernel/osl/osl_shader.cpp
===================================================================
--- trunk/blender/intern/cycles/kernel/osl/osl_shader.cpp	2012-11-29 16:06:36 UTC (rev 52662)
+++ trunk/blender/intern/cycles/kernel/osl/osl_shader.cpp	2012-11-29 16:11:37 UTC (rev 52663)
@@ -106,6 +106,7 @@
 	globals->dPdu = TO_VEC3(sd->dPdu);
 	globals->dPdv = TO_VEC3(sd->dPdv);
 	globals->surfacearea = (sd->object == ~0) ? 1.0f : object_surface_area(kg, sd->object);
+	globals->time = sd->time;
 
 	/* booleans */
 	globals->raytype = path_flag; /* todo: add our own ray types */




More information about the Bf-blender-cvs mailing list