diff options
author | Thomas Dinges <blender@dingto.org> | 2013-06-11 01:16:29 +0400 |
---|---|---|
committer | Thomas Dinges <blender@dingto.org> | 2013-06-11 01:16:29 +0400 |
commit | cae7c6da533a0f33c1e6ca0b278f5be285320eab (patch) | |
tree | 0f28690b2ee2c8bf7dc27420d9d820a94be60113 /intern/cycles/blender/blender_shader.cpp | |
parent | ad2509b20d95ccdce83fd17a63bf0e6af06e0ce4 (diff) | |
parent | c03e638cf310cde57ede10d3d9c90aecce007b15 (diff) |
SVN merge r57320-57365 into soc-2013-dingto
Diffstat (limited to 'intern/cycles/blender/blender_shader.cpp')
-rw-r--r-- | intern/cycles/blender/blender_shader.cpp | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index fc388f4bbef..a9db10b21d7 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -708,10 +708,13 @@ static void add_nodes(Scene *scene, BL::BlendData b_data, BL::Scene b_scene, Sha graph->add(proxy); } } - else if (b_node->is_a(&RNA_ShaderNodeGroup)) { + else if (b_node->is_a(&RNA_ShaderNodeGroup) || b_node->is_a(&RNA_NodeCustomGroup)) { - BL::NodeGroup b_gnode(*b_node); - BL::ShaderNodeTree b_group_ntree(b_gnode.node_tree()); + BL::ShaderNodeTree b_group_ntree(PointerRNA_NULL); + if (b_node->is_a(&RNA_ShaderNodeGroup)) + b_group_ntree = BL::ShaderNodeTree(((BL::NodeGroup)(*b_node)).node_tree()); + else + b_group_ntree = BL::ShaderNodeTree(((BL::NodeCustomGroup)(*b_node)).node_tree()); ProxyMap group_proxy_input_map, group_proxy_output_map; /* Add a proxy node for each socket @@ -895,8 +898,8 @@ void BlenderSync::sync_world(bool update_all) graph->connect(closure->output("Background"), out->input("Surface")); } - /* AO */ if(b_world) { + /* AO */ BL::WorldLighting b_light = b_world.light_settings(); if(b_light.use_ambient_occlusion()) @@ -905,6 +908,17 @@ void BlenderSync::sync_world(bool update_all) background->ao_factor = 0.0f; background->ao_distance = b_light.distance(); + + /* visibility */ + PointerRNA cvisibility = RNA_pointer_get(&b_world.ptr, "cycles_visibility"); + uint visibility = 0; + + visibility |= get_boolean(cvisibility, "camera")? PATH_RAY_CAMERA: 0; + visibility |= get_boolean(cvisibility, "diffuse")? PATH_RAY_DIFFUSE: 0; + visibility |= get_boolean(cvisibility, "glossy")? PATH_RAY_GLOSSY: 0; + visibility |= get_boolean(cvisibility, "transmission")? PATH_RAY_TRANSMIT: 0; + + background->visibility = visibility; } shader->set_graph(graph); |