[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