[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60320] branches/soc-2013-dingto/intern/ cycles/kernel: Branch maintenance:

Thomas Dinges blender at dingto.org
Mon Sep 23 02:16:41 CEST 2013


Revision: 60320
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60320
Author:   dingto
Date:     2013-09-23 00:16:40 +0000 (Mon, 23 Sep 2013)
Log Message:
-----------
Branch maintenance:
* Bring the brach in sync with hair bsdf and ao_alpha code from trunk, somehow didn't work in r60244.

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60244

Modified Paths:
--------------
    branches/soc-2013-dingto/intern/cycles/kernel/kernel_path.h
    branches/soc-2013-dingto/intern/cycles/kernel/osl/osl_closures.cpp
    branches/soc-2013-dingto/intern/cycles/kernel/shaders/stdosl.h

Modified: branches/soc-2013-dingto/intern/cycles/kernel/kernel_path.h
===================================================================
--- branches/soc-2013-dingto/intern/cycles/kernel/kernel_path.h	2013-09-23 00:03:24 UTC (rev 60319)
+++ branches/soc-2013-dingto/intern/cycles/kernel/kernel_path.h	2013-09-23 00:16:40 UTC (rev 60320)
@@ -233,6 +233,7 @@
 			float3 ao_bsdf = shader_bsdf_ao(kg, &sd, ao_factor, &ao_N);
 			float3 ao_D;
 			float ao_pdf;
+			float3 ao_alpha = make_float3(0.0f, 0.0f, 0.0f);
 
 			sample_cos_hemisphere(ao_N, bsdf_u, bsdf_v, &ao_D, &ao_pdf);
 
@@ -250,7 +251,7 @@
 				light_ray.dD = differential3_zero();
 
 				if(!shadow_blocked(kg, &state, &light_ray, &ao_shadow))
-					path_radiance_accum_ao(L, throughput, ao_bsdf, ao_shadow, state.bounce);
+					path_radiance_accum_ao(L, throughput, ao_alpha, ao_bsdf, ao_shadow, state.bounce);
 			}
 		}
 #endif
@@ -661,6 +662,7 @@
 			float3 ao_bsdf = shader_bsdf_ao(kg, &sd, ao_factor, &ao_N);
 			float3 ao_D;
 			float ao_pdf;
+			float3 ao_alpha = shader_bsdf_alpha(kg, &sd);
 
 			sample_cos_hemisphere(ao_N, bsdf_u, bsdf_v, &ao_D, &ao_pdf);
 
@@ -683,7 +685,7 @@
 #else
 				if(!shadow_blocked(kg, &state, &light_ray, &ao_shadow))
 #endif
-					path_radiance_accum_ao(&L, throughput, ao_bsdf, ao_shadow, state.bounce);
+					path_radiance_accum_ao(&L, throughput, ao_alpha, ao_bsdf, ao_shadow, state.bounce);
 			}
 		}
 #endif
@@ -1138,6 +1140,7 @@
 			float ao_factor = kernel_data.background.ao_factor;
 			float3 ao_N;
 			float3 ao_bsdf = shader_bsdf_ao(kg, &sd, ao_factor, &ao_N);
+			float3 ao_alpha = shader_bsdf_alpha(kg, &sd);
 
 			for(int j = 0; j < num_samples; j++) {
 				float bsdf_u, bsdf_v;
@@ -1162,7 +1165,7 @@
 					light_ray.dD = differential3_zero();
 
 					if(!shadow_blocked(kg, &state, &light_ray, &ao_shadow))
-						path_radiance_accum_ao(&L, throughput*num_samples_inv, ao_bsdf, ao_shadow, state.bounce);
+						path_radiance_accum_ao(&L, throughput*num_samples_inv, ao_alpha, ao_bsdf, ao_shadow, state.bounce);
 				}
 			}
 		}

Modified: branches/soc-2013-dingto/intern/cycles/kernel/osl/osl_closures.cpp
===================================================================
--- branches/soc-2013-dingto/intern/cycles/kernel/osl/osl_closures.cpp	2013-09-23 00:03:24 UTC (rev 60319)
+++ branches/soc-2013-dingto/intern/cycles/kernel/osl/osl_closures.cpp	2013-09-23 00:16:40 UTC (rev 60320)
@@ -54,6 +54,7 @@
 #include "closure/bsdf_ward.h"
 #include "closure/bsdf_westin.h"
 #include "closure/bsdf_toon.h"
+#include "closure/bsdf_hair.h"
 #include "closure/volume.h"
 
 CCL_NAMESPACE_BEGIN
@@ -143,6 +144,32 @@
 	CLOSURE_FLOAT_PARAM(MicrofacetBeckmannRefractionClosure, sc.data1),
 BSDF_CLOSURE_CLASS_END(MicrofacetBeckmannRefraction, microfacet_beckmann_refraction)
 
+BSDF_CLOSURE_CLASS_BEGIN(HairReflection, hair_reflection, hair_reflection, LABEL_GLOSSY)
+	CLOSURE_FLOAT3_PARAM(HairReflectionClosure, sc.N),
+	CLOSURE_FLOAT_PARAM(HairReflectionClosure, sc.data0),
+	CLOSURE_FLOAT_PARAM(HairReflectionClosure, sc.data1),
+#ifdef __HAIR__
+	CLOSURE_FLOAT3_PARAM(HairReflectionClosure, sc.T),
+	CLOSURE_FLOAT_PARAM(HairReflectionClosure, sc.offset),
+#else
+	CLOSURE_FLOAT3_PARAM(HairReflectionClosure, sc.N),
+	CLOSURE_FLOAT_PARAM(HairReflectionClosure, sc.data1),
+#endif
+BSDF_CLOSURE_CLASS_END(HairReflection, hair_reflection)
+
+BSDF_CLOSURE_CLASS_BEGIN(HairTransmission, hair_transmission, hair_transmission, LABEL_GLOSSY)
+	CLOSURE_FLOAT3_PARAM(HairTransmissionClosure, sc.N),
+	CLOSURE_FLOAT_PARAM(HairTransmissionClosure, sc.data0),
+	CLOSURE_FLOAT_PARAM(HairTransmissionClosure, sc.data1),
+#ifdef __HAIR__
+	CLOSURE_FLOAT3_PARAM(HairReflectionClosure, sc.T),
+	CLOSURE_FLOAT_PARAM(HairReflectionClosure, sc.offset),
+#else
+	CLOSURE_FLOAT3_PARAM(HairReflectionClosure, sc.N),
+	CLOSURE_FLOAT_PARAM(HairReflectionClosure, sc.data1),
+#endif
+BSDF_CLOSURE_CLASS_END(HairTransmission, hair_transmission)
+
 VOLUME_CLOSURE_CLASS_BEGIN(VolumeIsotropic, isotropic, isotropic)
 	CLOSURE_FLOAT3_PARAM(VolumeIsotropicClosure, sc.N),
 	CLOSURE_FLOAT_PARAM(VolumeIsotropicClosure, sc.data0),
@@ -233,6 +260,11 @@
 	register_closure(ss, "bssrdf_gaussian", id++,
 		closure_bssrdf_gaussian_extended_params(), closure_bssrdf_gaussian_prepare);
 
+	register_closure(ss, "hair_reflection", id++,
+		bsdf_hair_reflection_params(), bsdf_hair_reflection_prepare);
+	register_closure(ss, "hair_transmission", id++,
+		bsdf_hair_transmission_params(), bsdf_hair_transmission_prepare);
+
 	register_closure(ss, "isotropic", id++,
 		volume_isotropic_params(), volume_isotropic_prepare);
 }

Modified: branches/soc-2013-dingto/intern/cycles/kernel/shaders/stdosl.h
===================================================================
--- branches/soc-2013-dingto/intern/cycles/kernel/shaders/stdosl.h	2013-09-23 00:03:24 UTC (rev 60319)
+++ branches/soc-2013-dingto/intern/cycles/kernel/shaders/stdosl.h	2013-09-23 00:16:40 UTC (rev 60320)
@@ -468,6 +468,9 @@
 closure color bssrdf_cubic(normal N, vector radius, float texture_blur, float sharpness) BUILTIN;
 closure color bssrdf_gaussian(normal N, vector radius, float texture_blur) BUILTIN;
 
+closure color hair_reflection(normal N, float roughnessu, float roughnessv, vector T, float offset) BUILTIN;
+closure color hair_transmission(normal N, float roughnessu, float roughnessv, vector T, float offset) BUILTIN;
+
 // Volume
 closure color isotropic(normal N, float Density, float g) BUILTIN;
 




More information about the Bf-blender-cvs mailing list