Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/intern
diff options
context:
space:
mode:
authorlazydodo <github@lazydodo.com>2016-12-09 18:28:04 +0300
committerlazydodo <github@lazydodo.com>2016-12-09 18:28:04 +0300
commit5a8b5a0377781b5d03b39543a58175d8f4bc2bab (patch)
tree1a3c7ef2ab0c70de328671eafcfa92a3daced4cf /intern
parent1846a7884974a3cde5ce62ee1faaa8295647398d (diff)
Land D2339 by bliblu bli
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/device/device.cpp2
-rw-r--r--intern/cycles/device/device.h10
-rw-r--r--intern/cycles/kernel/kernel_types.h3
-rw-r--r--intern/cycles/render/session.cpp1
-rw-r--r--intern/cycles/render/shader.cpp3
5 files changed, 18 insertions, 1 deletions
diff --git a/intern/cycles/device/device.cpp b/intern/cycles/device/device.cpp
index ff9387b0a8a..31c99f49d6d 100644
--- a/intern/cycles/device/device.cpp
+++ b/intern/cycles/device/device.cpp
@@ -64,6 +64,8 @@ std::ostream& operator <<(std::ostream &os,
<< string_from_bool(requested_features.use_integrator_branched) << std::endl;
os << "Use Patch Evaluation: "
<< string_from_bool(requested_features.use_patch_evaluation) << std::endl;
+ os << "Use Transparent Shadows: "
+ << string_from_bool(requested_features.use_transparent) << std::endl;
return os;
}
diff --git a/intern/cycles/device/device.h b/intern/cycles/device/device.h
index 988ad10607d..ccee25ae34e 100644
--- a/intern/cycles/device/device.h
+++ b/intern/cycles/device/device.h
@@ -117,6 +117,9 @@ public:
/* Use OpenSubdiv patch evaluation */
bool use_patch_evaluation;
+
+ /* Use Transparent shadows */
+ bool use_transparent;
DeviceRequestedFeatures()
{
@@ -133,6 +136,7 @@ public:
use_volume = false;
use_integrator_branched = false;
use_patch_evaluation = false;
+ use_transparent = false;
}
bool modified(const DeviceRequestedFeatures& requested_features)
@@ -148,7 +152,8 @@ public:
use_subsurface == requested_features.use_subsurface &&
use_volume == requested_features.use_volume &&
use_integrator_branched == requested_features.use_integrator_branched &&
- use_patch_evaluation == requested_features.use_patch_evaluation);
+ use_patch_evaluation == requested_features.use_patch_evaluation &&
+ use_transparent == requested_features.use_transparent);
}
/* Convert the requested features structure to a build options,
@@ -189,6 +194,9 @@ public:
if(!use_patch_evaluation) {
build_options += " -D__NO_PATCH_EVAL__";
}
+ if(!use_transparent) {
+ build_options += " -D__NO_TRANSPARENT__";
+ }
return build_options;
}
};
diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h
index a6c31d4a518..fd961836ec9 100644
--- a/intern/cycles/kernel/kernel_types.h
+++ b/intern/cycles/kernel/kernel_types.h
@@ -192,6 +192,9 @@ CCL_NAMESPACE_BEGIN
#ifdef __NO_PATCH_EVAL__
# undef __PATCH_EVAL__
#endif
+#ifdef __NO_TRANSPARENT__
+# undef __TRANSPARENT_SHADOWS__
+#endif
/* Random Numbers */
diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp
index 8e902243211..33721048722 100644
--- a/intern/cycles/render/session.cpp
+++ b/intern/cycles/render/session.cpp
@@ -636,6 +636,7 @@ DeviceRequestedFeatures Session::get_requested_device_features()
BakeManager *bake_manager = scene->bake_manager;
requested_features.use_baking = bake_manager->get_baking();
requested_features.use_integrator_branched = (scene->integrator->method == Integrator::BRANCHED_PATH);
+ requested_features.use_transparent &= scene->integrator->transparent_shadows;
return requested_features;
}
diff --git a/intern/cycles/render/shader.cpp b/intern/cycles/render/shader.cpp
index 06b6dd969d8..335edcbe609 100644
--- a/intern/cycles/render/shader.cpp
+++ b/intern/cycles/render/shader.cpp
@@ -571,6 +571,9 @@ void ShaderManager::get_requested_graph_features(ShaderGraph *graph,
if(node->has_surface_bssrdf()) {
requested_features->use_subsurface = true;
}
+ if(node->has_surface_transparent()) {
+ requested_features->use_transparent = true;
+ }
}
}