[Bf-blender-cvs] [dd446142e21] temp_cryptomatte: Merge branch 'master' of git.blender.org:blender into temp_cryptomatte
Stefan Werner
noreply at git.blender.org
Mon Jul 9 13:19:07 CEST 2018
Commit: dd446142e219f1b7f9231fce060c2282be7701b5
Author: Stefan Werner
Date: Mon Jul 9 13:19:02 2018 +0200
Branches: temp_cryptomatte
https://developer.blender.org/rBdd446142e219f1b7f9231fce060c2282be7701b5
Merge branch 'master' of git.blender.org:blender into temp_cryptomatte
# Conflicts:
# intern/cycles/blender/addon/properties.py
# intern/cycles/blender/blender_sync.cpp
# intern/cycles/device/device_cpu.cpp
# intern/cycles/kernel/geom/geom_object.h
# intern/cycles/kernel/kernel_path_branched.h
# intern/cycles/kernel/kernel_types.h
# intern/cycles/render/buffers.cpp
# intern/cycles/render/film.cpp
# intern/cycles/render/integrator.cpp
# intern/cycles/render/object.cpp
# intern/cycles/render/osl.cpp
# intern/cycles/render/osl.h
# intern/cycles/render/scene.cpp
# intern/cycles/render/shader.cpp
# intern/cycles/render/svm.cpp
# intern/cycles/render/svm.h
# release/scripts/startup/nodeitems_builtins.py
# source/blender/editors/include/UI_interface.h
# source/blender/editors/interface/interface_eyedropper.c
# source/blender/makesdna/DNA_scene_types.h
# source/blender/render/extern/include/RE_engine.h
# source/blender/render/intern/source/render_result.c
# source/blenderplayer/bad_level_call_stubs/stubs.c
===================================================================
===================================================================
diff --cc intern/cycles/blender/addon/properties.py
index c5bf6daf83f,4484dcfbfd7..5dca05d0e13
--- a/intern/cycles/blender/addon/properties.py
+++ b/intern/cycles/blender/addon/properties.py
@@@ -1195,6 -1242,25 +1248,24 @@@ class CyclesRenderLayerSettings(bpy.typ
default=False,
update=update_render_passes,
)
+ cls.pass_debug_render_time = BoolProperty(
+ name="Debug Render Time",
+ description="Render time in milliseconds per sample and pixel",
+ default=False,
+ update=update_render_passes,
+ )
+ cls.use_pass_volume_direct = BoolProperty(
+ name="Volume Direct",
+ description="Deliver direct volumetric scattering pass",
+ default=False,
+ update=update_render_passes,
+ )
+ cls.use_pass_volume_indirect = BoolProperty(
+ name="Volume Indirect",
+ description="Deliver indirect volumetric scattering pass",
+ default=False,
+ update=update_render_passes,
+ )
-
cls.use_denoising = BoolProperty(
name="Use Denoising",
description="Denoise the rendered image",
diff --cc intern/cycles/blender/blender_sync.cpp
index b53f1b06f10,a08089118d5..282a9afc825
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@@ -547,118 -546,77 +546,130 @@@ 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,
+ const SessionParams &session_params)
{
- array<Pass> passes;
- Pass::add(PASS_COMBINED, passes);
+ PassSettings passes;
+ PointerRNA crp = RNA_pointer_get(&b_srlay.ptr, "cycles");
- if(!session_params.device.advanced_shading) {
- return passes;
- }
+ if(session_params.device.advanced_shading) {
+ /* loop over passes */
+ BL::RenderLayer::passes_iterator b_pass_iter;
- /* 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)
+ passes.add(pass_type);
+ }
-
+
- if(pass_type == PASS_MOTION && scene->integrator->motion_blur)
- continue;
- if(pass_type != PASS_NONE)
- Pass::add(pass_type, passes);
- }
+ int crypto_depth = std::min(16, get_int(crp, "pass_crypto_depth")) / 2;
+ scene->film->use_cryptomatte = crypto_depth;
- PointerRNA crp = RNA_pointer_get(&b_srlay.ptr, "cycles");
- if(get_boolean(crp, "denoising_store_passes") &&
- get_boolean(crp, "use_denoising"))
- {
- 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());
- }
+ 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};
++ 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(), 2);
+ }
+ scene->film->use_cryptomatte |= CRYPT_OBJECT;
+ }
-
++
+ 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};
++ 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(), 2);
+ }
+ scene->film->use_cryptomatte |= CRYPT_MATERIAL;
+ }
+
+ if(get_boolean(crp, "use_pass_crypto_asset")) {
+ for(int i = 0; i < crypto_depth; ++i) {
+ string passname = string_printf("uCryptoAsset%02d", i);
- AOV aov = {ustring(passname), 9999, AOV_CRYPTOMATTE};
++ 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(), 2);
+ }
+ scene->film->use_cryptomatte |= CRYPT_ASSET;
+ }
+ if(get_boolean(crp, "pass_crypto_accurate")) {
+ scene->film->use_cryptomatte |= CRYPT_ACCURATE;
+ }
+
+ PointerRNA crp = RNA_pointer_get(&b_srlay.ptr, "cycles");
+ if(get_boolean(crp, "denoising_store_passes") &&
- get_boolean(crp, "use_denoising")) {
- b_engine.add_pass("Denoising Normal", 3, "XYZ", b_srlay.name().c_str(), 0);
++ get_boolean(crp, "use_denoising")) {
++ b_engine.add_pass("Denoising Normal", 3, "XYZ", b_srlay.name().c_str(), 0);
+ b_engine.add_pass("Denoising Normal Variance", 3, "XYZ", b_srlay.name().c_str(), 0);
- b_engine.add_pass("Denoising Albedo", 3, "RGB", b_srlay.name().c_str(), 0);
++ b_engine.add_pass("Denoising Albedo", 3, "RGB", b_srlay.name().c_str(), 0);
+ b_engine.add_pass("Denoising Albedo Variance", 3, "RGB", b_srlay.name().c_str(), 0);
- b_engine.add_pass("Denoising Depth", 1, "Z", b_srlay.name().c_str(), 0);
- b_engine.add_pass("Denoising Depth Variance", 1, "Z", b_srlay.name().c_str(), 0);
- b_engine.add_pass("Denoising Shadow A", 3, "XYV", b_srlay.name().c_str(), 0);
- b_engine.add_pass("Denoising Shadow B", 3, "XYV", b_srlay.name().c_str(), 0);
- b_engine.add_pass("Denoising Image", 3, "RGB", b_srlay.name().c_str(), 0);
- b_engine.add_pass("Denoising Image Variance", 3, "RGB", b_srlay.name().c_str(), 0);
++ b_engine.add_pass("Denoising Depth", 1, "Z", b_srlay.name().c_str(), 0);
++ b_engine.add_pass("Denoising Depth Variance", 1, "Z", b_srlay.name().c_str(), 0);
++ b_engine.add_pass("Denoising Shadow A", 3, "XYV", b_srlay.name().c_str(), 0);
++ b_engine.add_pass("Denoising Shadow B", 3, "XYV", b_srlay.name().c_str(), 0);
++ b_engine.add_pass("Denoising Image", 3, "RGB", b_srlay.name().c_str(), 0);
++ b_engine.add_pass("Denoising Image Variance", 3, "RGB", b_srlay.name().c_str(), 0);
+ }
#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(), 0);
+ 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(), 0);
+ passes.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(), 0);
+ passes.add(PASS_BVH_INTERSECTIONS);
+ }
+ if(get_boolean(crp, "pass_debug_ray_bounces")) {
+ b_engine.add_pass("Debug Ray Bounces", 1, "X", b_srlay.name().c_str(), 0);
+ passes.add(PASS_RAY_BOUNCES);
+ }
#endif
+ }
+ if(get_boolean(crp, "pass_debug_render_time")) {
- b_engine.add_pass("Debug Render Time", 1, "X", b_srlay.name().c_str());
- Pass::add(PASS_RENDER_TIME, passes);
++ b_engine.add_pass("Debug Render Time", 1, "X", b_srlay.name().c_str(), 0);
++ passes.add(PASS_RENDER_TIME);
+ }
+ if(get_boolean(crp, "use_pass_volume_direct")) {
- b_engine.add_pass("VolumeDir", 3, "RGB", b_srlay.name().c_str());
- Pass::add(PASS_VOLUME_DIRECT, passes);
++ b_engine.add_pass("VolumeDir", 3, "RGB", b_srlay.name().c_str(), 0);
++ passes.add(PASS_VOLUME_DIRECT);
+ }
+ if(get_boolean(crp, "use_pass_volume_indirect")) {
- b_engine.add_pass("VolumeInd", 3, "RGB", b_srlay.name().c_str());
- Pass::add(PASS_VOLUME_INDIRECT, passes);
++ b_engine.add_pass("VolumeInd", 3, "RGB", b_srlay.name().c_str(), 0);
++ passes.add(PASS_VOLUME_INDIRECT);
+ }
- return passes;
+ scene->film->denoising_flags = 0;
+ if(!get_boolean(crp, "denoising_diffuse_direct")) scene->film->denoising_flags |= DENOISING_CLE
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list