[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45602] trunk/blender/intern/cycles: Cycles: add render layer use environment option to disable world lighting on

Brecht Van Lommel brechtvanlommel at pandora.be
Fri Apr 13 14:58:12 CEST 2012


Revision: 45602
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45602
Author:   blendix
Date:     2012-04-13 12:58:12 +0000 (Fri, 13 Apr 2012)
Log Message:
-----------
Cycles: add render layer use environment option to disable world lighting on
individual render layers.

Modified Paths:
--------------
    trunk/blender/intern/cycles/blender/addon/ui.py
    trunk/blender/intern/cycles/blender/blender_shader.cpp
    trunk/blender/intern/cycles/blender/blender_sync.cpp
    trunk/blender/intern/cycles/blender/blender_sync.h
    trunk/blender/intern/cycles/render/background.cpp
    trunk/blender/intern/cycles/render/background.h
    trunk/blender/intern/cycles/render/scene.h
    trunk/blender/intern/cycles/render/shader.cpp

Modified: trunk/blender/intern/cycles/blender/addon/ui.py
===================================================================
--- trunk/blender/intern/cycles/blender/addon/ui.py	2012-04-13 12:51:26 UTC (rev 45601)
+++ trunk/blender/intern/cycles/blender/addon/ui.py	2012-04-13 12:58:12 UTC (rev 45602)
@@ -181,6 +181,8 @@
         col.label(text="Material:")
         col.prop(rl, "material_override", text="")
 
+        col.prop(rl, "use_sky", "Use Environment")
+
         col = split.column()
         col.prop(rl, "layers", text="Layer")
         col.label(text="Mask Layers:")

Modified: trunk/blender/intern/cycles/blender/blender_shader.cpp
===================================================================
--- trunk/blender/intern/cycles/blender/blender_shader.cpp	2012-04-13 12:51:26 UTC (rev 45601)
+++ trunk/blender/intern/cycles/blender/blender_shader.cpp	2012-04-13 12:58:12 UTC (rev 45602)
@@ -728,6 +728,7 @@
 
 	PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles");
 	background->transparent = get_boolean(cscene, "film_transparent");
+	background->use = render_layer.use_background;
 
 	if(background->modified(prevbackground))
 		background->tag_update(scene);

Modified: trunk/blender/intern/cycles/blender/blender_sync.cpp
===================================================================
--- trunk/blender/intern/cycles/blender/blender_sync.cpp	2012-04-13 12:51:26 UTC (rev 45601)
+++ trunk/blender/intern/cycles/blender/blender_sync.cpp	2012-04-13 12:58:12 UTC (rev 45602)
@@ -207,6 +207,7 @@
 			render_layer.layer = render_layer.scene_layer;
 			render_layer.holdout_layer = 0;
 			render_layer.material_override = PointerRNA_NULL;
+			render_layer.use_background = true;
 			return;
 		}
 	}
@@ -224,6 +225,7 @@
 			render_layer.holdout_layer = get_layer(b_rlay->layers_zmask());
 			render_layer.layer |= render_layer.holdout_layer;
 			render_layer.material_override = b_rlay->material_override();
+			render_layer.use_background = b_rlay->use_sky();
 		}
 
 		first_layer = false;

Modified: trunk/blender/intern/cycles/blender/blender_sync.h
===================================================================
--- trunk/blender/intern/cycles/blender/blender_sync.h	2012-04-13 12:51:26 UTC (rev 45601)
+++ trunk/blender/intern/cycles/blender/blender_sync.h	2012-04-13 12:58:12 UTC (rev 45602)
@@ -107,7 +107,8 @@
 	struct RenderLayerInfo {
 		RenderLayerInfo()
 		: scene_layer(0), layer(0), holdout_layer(0),
-		  material_override(PointerRNA_NULL)
+		  material_override(PointerRNA_NULL),
+		  use_background(true)
 		{}
 
 		string name;
@@ -115,6 +116,7 @@
 		uint layer;
 		uint holdout_layer;
 		BL::Material material_override;
+		bool use_background;
 	} render_layer;
 };
 

Modified: trunk/blender/intern/cycles/render/background.cpp
===================================================================
--- trunk/blender/intern/cycles/render/background.cpp	2012-04-13 12:51:26 UTC (rev 45601)
+++ trunk/blender/intern/cycles/render/background.cpp	2012-04-13 12:58:12 UTC (rev 45602)
@@ -35,6 +35,8 @@
 	ao_factor = 0.0f;
 	ao_distance = FLT_MAX;
 
+	use = true;
+
 	transparent = false;
 	need_update = true;
 }
@@ -57,7 +59,10 @@
 	kbackground->ao_distance = ao_distance;
 
 	kbackground->transparent = transparent;
-	kbackground->shader = scene->shader_manager->get_shader_id(scene->default_background);
+	if(use)
+		kbackground->shader = scene->shader_manager->get_shader_id(scene->default_background);
+	else
+		kbackground->shader = scene->shader_manager->get_shader_id(scene->default_empty);
 
 	need_update = false;
 }
@@ -69,6 +74,7 @@
 bool Background::modified(const Background& background)
 {
 	return !(transparent == background.transparent &&
+		use == background.use &&
 		ao_factor == background.ao_factor &&
 		ao_distance == background.ao_distance);
 }

Modified: trunk/blender/intern/cycles/render/background.h
===================================================================
--- trunk/blender/intern/cycles/render/background.h	2012-04-13 12:51:26 UTC (rev 45601)
+++ trunk/blender/intern/cycles/render/background.h	2012-04-13 12:58:12 UTC (rev 45602)
@@ -32,6 +32,8 @@
 	float ao_factor;
 	float ao_distance;
 
+	bool use;
+
 	bool transparent;
 	bool need_update;
 

Modified: trunk/blender/intern/cycles/render/scene.h
===================================================================
--- trunk/blender/intern/cycles/render/scene.h	2012-04-13 12:51:26 UTC (rev 45601)
+++ trunk/blender/intern/cycles/render/scene.h	2012-04-13 12:58:12 UTC (rev 45602)
@@ -158,6 +158,7 @@
 	int default_light;
 	int default_background;
 	int default_holdout;
+	int default_empty;
 
 	/* device */
 	Device *device;

Modified: trunk/blender/intern/cycles/render/shader.cpp
===================================================================
--- trunk/blender/intern/cycles/render/shader.cpp	2012-04-13 12:51:26 UTC (rev 45601)
+++ trunk/blender/intern/cycles/render/shader.cpp	2012-04-13 12:58:12 UTC (rev 45602)
@@ -272,6 +272,17 @@
 		scene->shaders.push_back(shader);
 		scene->default_holdout = scene->shaders.size() - 1;
 	}
+
+	/* default empty */
+	{
+		graph = new ShaderGraph();
+
+		shader = new Shader();
+		shader->name = "default_empty";
+		shader->graph = graph;
+		scene->shaders.push_back(shader);
+		scene->default_empty = scene->shaders.size() - 1;
+	}
 }
 
 CCL_NAMESPACE_END




More information about the Bf-blender-cvs mailing list