[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [51094] trunk/blender/intern/cycles/kernel : Fix part of cycles/osl light pass rendering, transmission still not correct.
Brecht Van Lommel
brechtvanlommel at pandora.be
Fri Oct 5 19:17:19 CEST 2012
Revision: 51094
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51094
Author: blendix
Date: 2012-10-05 17:17:19 +0000 (Fri, 05 Oct 2012)
Log Message:
-----------
Fix part of cycles/osl light pass rendering, transmission still not correct.
Modified Paths:
--------------
trunk/blender/intern/cycles/kernel/osl/osl_shader.cpp
trunk/blender/intern/cycles/kernel/svm/svm_types.h
Modified: trunk/blender/intern/cycles/kernel/osl/osl_shader.cpp
===================================================================
--- trunk/blender/intern/cycles/kernel/osl/osl_shader.cpp 2012-10-05 17:07:02 UTC (rev 51093)
+++ trunk/blender/intern/cycles/kernel/osl/osl_shader.cpp 2012-10-05 17:17:19 UTC (rev 51094)
@@ -139,15 +139,27 @@
float sample_weight = fabsf(average(weight)) * albedo;
sc.sample_weight = sample_weight;
- sc.type = CLOSURE_BSDF_ID;
/* scattering flags */
- if (scattering == OSL::Labels::DIFFUSE)
+ if (scattering == OSL::Labels::DIFFUSE) {
sd->flag |= SD_BSDF | SD_BSDF_HAS_EVAL;
- else if (scattering == OSL::Labels::GLOSSY)
+ sc.type = CLOSURE_BSDF_DIFFUSE_ID;
+ }
+ else if (scattering == OSL::Labels::GLOSSY) {
sd->flag |= SD_BSDF | SD_BSDF_HAS_EVAL | SD_BSDF_GLOSSY;
- else
+ sc.type = CLOSURE_BSDF_GLOSSY_ID;
+ }
+ else if (scattering == OSL::Labels::STRAIGHT) {
sd->flag |= SD_BSDF;
+ sc.type = CLOSURE_BSDF_TRANSPARENT_ID;
+ }
+ else {
+ /* todo: we don't actually have a way to determine if
+ * this closure will reflect/transmit. could add our own
+ * own scattering flag that do give this info */
+ sd->flag |= SD_BSDF;
+ sc.type = CLOSURE_BSDF_GLOSSY_ID;
+ }
/* add */
sd->closure[sd->num_closure++] = sc;
Modified: trunk/blender/intern/cycles/kernel/svm/svm_types.h
===================================================================
--- trunk/blender/intern/cycles/kernel/svm/svm_types.h 2012-10-05 17:07:02 UTC (rev 51093)
+++ trunk/blender/intern/cycles/kernel/svm/svm_types.h 2012-10-05 17:17:19 UTC (rev 51094)
@@ -287,16 +287,18 @@
CLOSURE_BSDF_DIFFUSE_ID,
CLOSURE_BSDF_OREN_NAYAR_ID,
+ CLOSURE_BSDF_GLOSSY_ID,
CLOSURE_BSDF_REFLECTION_ID,
CLOSURE_BSDF_MICROFACET_GGX_ID,
CLOSURE_BSDF_MICROFACET_BECKMANN_ID,
CLOSURE_BSDF_WARD_ID,
+ CLOSURE_BSDF_ASHIKHMIN_VELVET_ID,
CLOSURE_BSDF_WESTIN_SHEEN_ID,
+ CLOSURE_BSDF_TRANSMISSION_ID,
CLOSURE_BSDF_TRANSLUCENT_ID,
CLOSURE_BSDF_REFRACTION_ID,
CLOSURE_BSDF_WESTIN_BACKSCATTER_ID,
- CLOSURE_BSDF_ASHIKHMIN_VELVET_ID,
CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID,
CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID,
CLOSURE_BSDF_GLASS_ID,
@@ -320,8 +322,8 @@
/* watch this, being lazy with memory usage */
#define CLOSURE_IS_BSDF(type) (type <= CLOSURE_BSDF_TRANSPARENT_ID)
#define CLOSURE_IS_BSDF_DIFFUSE(type) (type >= CLOSURE_BSDF_DIFFUSE_ID && type <= CLOSURE_BSDF_OREN_NAYAR_ID)
-#define CLOSURE_IS_BSDF_GLOSSY(type) (type >= CLOSURE_BSDF_REFLECTION_ID && type <= CLOSURE_BSDF_WESTIN_SHEEN_ID)
-#define CLOSURE_IS_BSDF_TRANSMISSION(type) (type >= CLOSURE_BSDF_TRANSLUCENT_ID && type <= CLOSURE_BSDF_GLASS_ID)
+#define CLOSURE_IS_BSDF_GLOSSY(type) (type >= CLOSURE_BSDF_GLOSSY_ID && type <= CLOSURE_BSDF_WESTIN_SHEEN_ID)
+#define CLOSURE_IS_BSDF_TRANSMISSION(type) (type >= CLOSURE_BSDF_TRANSMISSION_ID && type <= CLOSURE_BSDF_GLASS_ID)
#define CLOSURE_IS_VOLUME(type) (type >= CLOSURE_VOLUME_ID && type <= CLOSURE_VOLUME_ISOTROPIC_ID)
#define CLOSURE_IS_EMISSION(type) (type == CLOSURE_EMISSION_ID)
#define CLOSURE_IS_HOLDOUT(type) (type == CLOSURE_HOLDOUT_ID)
More information about the Bf-blender-cvs
mailing list