Land D2339 by bliblu bli
This commit is contained in:
parent
1846a78849
commit
5a8b5a0377
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
};
|
||||
|
|
|
@ -192,6 +192,9 @@ CCL_NAMESPACE_BEGIN
|
|||
#ifdef __NO_PATCH_EVAL__
|
||||
# undef __PATCH_EVAL__
|
||||
#endif
|
||||
#ifdef __NO_TRANSPARENT__
|
||||
# undef __TRANSPARENT_SHADOWS__
|
||||
#endif
|
||||
|
||||
/* Random Numbers */
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue