[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [51374] trunk/blender/intern/cycles/kernel /osl: Cycles / OSL:

Thomas Dinges blender at dingto.org
Wed Oct 17 00:42:06 CEST 2012


Revision: 51374
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51374
Author:   dingto
Date:     2012-10-16 22:42:05 +0000 (Tue, 16 Oct 2012)
Log Message:
-----------
Cycles / OSL:
* Ray Length is now available in OSL (via get_attribute)

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

Modified: trunk/blender/intern/cycles/kernel/osl/nodes/node_light_path.osl
===================================================================
--- trunk/blender/intern/cycles/kernel/osl/nodes/node_light_path.osl	2012-10-16 17:01:22 UTC (rev 51373)
+++ trunk/blender/intern/cycles/kernel/osl/nodes/node_light_path.osl	2012-10-16 22:42:05 UTC (rev 51374)
@@ -25,7 +25,8 @@
 	output float IsGlossyRay = 0.0,
 	output float IsSingularRay = 0.0,
 	output float IsReflectionRay = 0.0,
-	output float IsTransmissionRay = 0.0)
+	output float IsTransmissionRay = 0.0,
+	output float RayLength = 0.0)
 {
 	IsCameraRay = raytype("camera");
 	IsShadowRay = raytype("shadow");
@@ -34,5 +35,7 @@
 	IsSingularRay = raytype("singular");
 	IsReflectionRay = raytype("reflection");
 	IsTransmissionRay = raytype("refraction");
+
+	getattribute("std::ray_length", RayLength);
 }
 

Modified: trunk/blender/intern/cycles/kernel/osl/osl_services.cpp
===================================================================
--- trunk/blender/intern/cycles/kernel/osl/osl_services.cpp	2012-10-16 17:01:22 UTC (rev 51373)
+++ trunk/blender/intern/cycles/kernel/osl/osl_services.cpp	2012-10-16 22:42:05 UTC (rev 51374)
@@ -459,6 +459,15 @@
 		set_attribute_float3(fval, type, derivatives, val);
 		return true;
 	}
+
+	/* Ray Length */
+	else if (name == "std::ray_length") {
+		float fval[3];
+		fval[0] = sd->ray_length;
+		fval[1] = fval[2] = 0.0;	/* derivates set to 0 */
+		set_attribute_float(fval, type, derivatives, val);
+		return true;
+	}
 	
 	else
 		return false;




More information about the Bf-blender-cvs mailing list