[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