[Bf-blender-cvs] [3824f08ce72] temp_cryptomatte: Merge branch 'master' of git.blender.org:blender into temp-cryptomatte
Stefan Werner
noreply at git.blender.org
Fri Nov 3 21:10:03 CET 2017
Commit: 3824f08ce7257520744966180c2e95bbd400b728
Author: Stefan Werner
Date: Tue Jun 20 13:33:34 2017 +0200
Branches: temp_cryptomatte
https://developer.blender.org/rB3824f08ce7257520744966180c2e95bbd400b728
Merge branch 'master' of git.blender.org:blender into temp-cryptomatte
# Conflicts:
# intern/cycles/blender/blender_session.cpp
# intern/cycles/blender/blender_sync.cpp
# intern/cycles/blender/blender_sync.h
===================================================================
===================================================================
diff --cc intern/cycles/blender/addon/ui.py
index 453626fe85e,38a39e19003..43bec8ae073
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@@ -566,33 -531,18 +566,33 @@@ class CyclesRender_PT_layer_passes(Cycl
col.prop(rl, "use_pass_environment")
if context.scene.cycles.feature_set == 'EXPERIMENTAL':
- col.separator()
- sub = col.column()
- sub.active = crl.use_denoising
- sub.prop(crl, "denoising_store_passes", text="Denoising")
+ col.separator()
+ sub = col.column()
+ sub.active = crl.use_denoising
+ sub.prop(crl, "denoising_store_passes", text="Denoising")
if _cycles.with_cycles_debug:
- col = layout.column()
- col.prop(crl, "pass_debug_bvh_traversed_nodes")
- col.prop(crl, "pass_debug_bvh_traversed_instances")
- col.prop(crl, "pass_debug_bvh_intersections")
- col.prop(crl, "pass_debug_ray_bounces")
+ col = layout.column()
+ col.prop(crl, "pass_debug_bvh_traversed_nodes")
+ col.prop(crl, "pass_debug_bvh_traversed_instances")
+ col.prop(crl, "pass_debug_bvh_intersections")
+ col.prop(crl, "pass_debug_ray_bounces")
+ crl = rl.cycles
+ layout.label("Cryptomatte:")
+ row = layout.row(align=True)
+ row.prop(crl, "use_pass_crypto_object", text="Object", toggle=True)
+ row.prop(crl, "use_pass_crypto_material", text="Material", toggle=True)
+ row = layout.row(align=True)
+ row.prop(crl, "pass_crypto_depth")
+
+ layout.label("AOVs:")
+ row = layout.row()
+ row.template_list("CyclesAOVList", "", crl, "aovs", crl, "active_aov")
+ sub = row.column(align=True)
+ sub.operator("scenerenderlayer.aov_add", icon='ZOOMIN', text="")
+ sub.operator("scenerenderlayer.aov_delete", icon='ZOOMOUT', text="")
+
class CyclesRender_PT_views(CyclesButtonsPanel, Panel):
bl_label = "Views"
diff --cc intern/cycles/blender/blender_session.cpp
index 9d142578fe8,2b5dd5eadea..a9709587ee7
--- a/intern/cycles/blender/blender_session.cpp
+++ b/intern/cycles/blender/blender_session.cpp
@@@ -398,9 -398,9 +398,8 @@@ void BlenderSession::render(
BL::RenderLayer b_rlay = *b_single_rlay;
- sync->sync_film(b_rlay, *b_layer_iter, session_params.device.advanced_shading);
-
- /* add passes */
- array<Pass> passes = sync->sync_render_passes(b_rlay, *b_layer_iter, session_params);
- buffer_params.passes = passes;
++ sync->sync_film(b_rlay, *b_layer_iter, session_params);
+ buffer_params.passes = scene->film->passes;
PointerRNA crl = RNA_pointer_get(&b_layer_iter->ptr, "cycles");
bool use_denoising = !session_params.progressive_refine && get_boolean(crl, "use_denoising");
diff --cc intern/cycles/blender/blender_sync.cpp
index 47c87a3b76f,3a00384458a..dae50a5138b
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@@ -552,115 -552,65 +552,116 @@@ int BlenderSync::get_denoising_pass(BL:
return -1;
}
-array<Pass> BlenderSync::sync_render_passes(BL::RenderLayer& b_rlay,
- BL::SceneRenderLayer& b_srlay,
- const SessionParams &session_params)
+void BlenderSync::sync_film(BL::RenderLayer& b_rlay,
+ BL::SceneRenderLayer& b_srlay,
- bool advanced_shading)
++ const SessionParams &session_params)
{
- array<Pass> passes;
- Pass::add(PASS_COMBINED, passes);
-
- if(!session_params.device.advanced_shading) {
- return passes;
- }
+ PassSettings passes;
-
- PointerRNA crl = RNA_pointer_get(&b_srlay.ptr, "cycles");
++ PointerRNA crp = RNA_pointer_get(&b_srlay.ptr, "cycles");
- if(advanced_shading) {
- /* loop over passes */
- BL::RenderLayer::passes_iterator b_pass_iter;
++ if(session_params.device.advanced_shading) {
+ /* loop over passes */
+ BL::RenderLayer::passes_iterator b_pass_iter;
- for(b_rlay.passes.begin(b_pass_iter); b_pass_iter != b_rlay.passes.end(); ++b_pass_iter) {
- BL::RenderPass b_pass(*b_pass_iter);
- PassType pass_type = get_pass_type(b_pass);
+ for(b_rlay.passes.begin(b_pass_iter); b_pass_iter != b_rlay.passes.end(); ++b_pass_iter) {
+ BL::RenderPass b_pass(*b_pass_iter);
+ PassType pass_type = get_pass_type(b_pass);
- if(pass_type == PASS_MOTION && scene->integrator->motion_blur)
- continue;
- if(pass_type != PASS_NONE)
- Pass::add(pass_type, passes);
- }
+ if(pass_type == PASS_MOTION && scene->integrator->motion_blur)
+ continue;
+ if(pass_type != PASS_NONE)
+ passes.add(pass_type);
+ }
- PointerRNA crp = RNA_pointer_get(&b_srlay.ptr, "cycles");
- if(get_boolean(crp, "denoising_store_passes") &&
- get_boolean(crp, "use_denoising") &&
- !session_params.progressive_refine) {
- b_engine.add_pass("Denoising Normal", 3, "XYZ", b_srlay.name().c_str());
- b_engine.add_pass("Denoising Normal Variance", 3, "XYZ", b_srlay.name().c_str());
- b_engine.add_pass("Denoising Albedo", 3, "RGB", b_srlay.name().c_str());
- b_engine.add_pass("Denoising Albedo Variance", 3, "RGB", b_srlay.name().c_str());
- b_engine.add_pass("Denoising Depth", 1, "Z", b_srlay.name().c_str());
- b_engine.add_pass("Denoising Depth Variance", 1, "Z", b_srlay.name().c_str());
- b_engine.add_pass("Denoising Shadow A", 3, "XYV", b_srlay.name().c_str());
- b_engine.add_pass("Denoising Shadow B", 3, "XYV", b_srlay.name().c_str());
- b_engine.add_pass("Denoising Image", 3, "RGB", b_srlay.name().c_str());
- b_engine.add_pass("Denoising Image Variance", 3, "RGB", b_srlay.name().c_str());
- }
+ /* make Crypto passes appear before user defined AOVs
- * that way, their indices are known */
++ * that way, their indices are known */
+
- int crypto_depth = std::min(16, get_int(crl, "pass_crypto_depth")) / 2;
++ int crypto_depth = std::min(16, get_int(crp, "pass_crypto_depth")) / 2;
+ scene->film->use_cryptomatte = crypto_depth;
-
- if(get_boolean(crl, "use_pass_crypto_object")) {
++
++ if(get_boolean(crp, "use_pass_crypto_object")) {
+ for(int i = 0; i < crypto_depth; ++i) {
+ string passname = string_printf("uCryptoObject%02d", i);
+ AOV aov = {ustring(passname), 9999, AOV_CRYPTOMATTE};
+ passes.add(aov);
+ passname = "AOV " + passname;
+ b_engine.add_pass(passname.c_str(), 4, "RGBA", b_srlay.name().c_str());
+ }
+ scene->film->use_cryptomatte |= CRYPT_OBJECT;
+ }
+
- if(get_boolean(crl, "use_pass_crypto_material")) {
++ if(get_boolean(crp, "use_pass_crypto_material")) {
+ for(int i = 0; i < crypto_depth; ++i) {
+ string passname = string_printf("uCryptoMaterial%02d", i);
+ AOV aov = {ustring(passname), 9999, AOV_CRYPTOMATTE};
+ passes.add(aov);
+ passname = "AOV " + passname;
+ b_engine.add_pass(passname.c_str(), 4, "RGBA", b_srlay.name().c_str());
+ }
+ scene->film->use_cryptomatte |= CRYPT_MATERIAL;
+ }
+
- RNA_BEGIN(&crl, b_aov, "aovs") {
++ RNA_BEGIN(&crp, b_aov, "aovs") {
+ bool is_color = RNA_enum_get(&b_aov, "type");
+ string name = get_string(b_aov, "name");
+ AOV aov = {ustring(name), 9999, is_color ? AOV_RGB : AOV_FLOAT};
+ passes.add(aov);
+ string passname = string_printf("AOV %s", name.c_str());
+ b_engine.add_pass(passname.c_str(), is_color ? 3 : 1, is_color ? "RGB" : "X", b_srlay.name().c_str());
+ } RNA_END
+
- if(get_boolean(crl, "denoising_store_passes")) {
++ if(get_boolean(crp, "denoising_store_passes") &&
++ get_boolean(crp, "use_denoising") &&
++ !session_params.progressive_refine) {
+ b_engine.add_pass("Denoising Normal", 3, "XYZ", b_srlay.name().c_str());
+ b_engine.add_pass("Denoising Normal Variance", 3, "XYZ", b_srlay.name().c_str());
+ b_engine.add_pass("Denoising Albedo", 3, "RGB", b_srlay.name().c_str());
+ b_engine.add_pass("Denoising Albedo Variance", 3, "RGB", b_srlay.name().c_str());
+ b_engine.add_pass("Denoising Depth", 1, "Z", b_srlay.name().c_str());
+ b_engine.add_pass("Denoising Depth Variance", 1, "Z", b_srlay.name().c_str());
+ b_engine.add_pass("Denoising Shadow A", 3, "XYV", b_srlay.name().c_str());
+ b_engine.add_pass("Denoising Shadow B", 3, "XYV", b_srlay.name().c_str());
+ b_engine.add_pass("Denoising Image", 3, "RGB", b_srlay.name().c_str());
+ b_engine.add_pass("Denoising Image Variance", 3, "RGB", b_srlay.name().c_str());
+ }
#ifdef __KERNEL_DEBUG__
- if(get_boolean(crp, "pass_debug_bvh_traversed_nodes")) {
- b_engine.add_pass("Debug BVH Traversed Nodes", 1, "X", b_srlay.name().c_str());
- Pass::add(PASS_BVH_TRAVERSED_NODES, passes);
- }
- if(get_boolean(crp, "pass_debug_bvh_traversed_instances")) {
- b_engine.add_pass("Debug BVH Traversed Instances", 1, "X", b_srlay.name().c_str());
- Pass::add(PASS_BVH_TRAVERSED_INSTANCES, passes);
- }
- if(get_boolean(crp, "pass_debug_bvh_intersections")) {
- b_engine.add_pass("Debug BVH Intersections", 1, "X", b_srlay.name().c_str());
- Pass::add(PASS_BVH_INTERSECTIONS, passes);
- }
- if(get_boolean(crp, "pass_debug_ray_bounces")) {
- b_engine.add_pass("Debug Ray Bounces", 1, "X", b_srlay.name().c_str());
- Pass::add(PASS_RAY_BOUNCES, passes);
- }
+ if(get_boolean(crp, "pass_debug_bvh_traversed_nodes")) {
+ b_engine.add_pass("Debug BVH Traversed Nodes", 1, "X", b_srlay.name().c_str());
- Pass::add(PASS_BVH_TRAVERSED_NODES, passes);
++ passes.add(PASS_BVH_TRAVERSED_NODES);
+ }
+ if(get_boolean(crp, "pass_debug_bvh_traversed_instances")) {
+ b_engine.add_pass("Debug BVH Traversed Instances", 1, "X", b_srlay.name().c_str());
- Pass::add(PASS_BVH_TRAVERSED_INSTANCES, passes);
++ Pass::add(PASS_BVH_TRAVERSED_INSTANCES);
+ }
+ if(get_boolean(crp, "pass_debug_bvh_intersections")) {
+ b_engine.add_pass("Debug BVH Intersections", 1, "X", b_srlay.name().c_str());
- Pass::add(PASS_BVH_INTERSECTIONS, passes);
++ pas
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list