[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