forked from bartvdbraak/blender
Cycles: fix AO pass not rendering with AO enabled for world, and make mask
layers work more like blender internal.
This commit is contained in:
parent
dcfd1dd7e2
commit
8a76aa2e47
@ -179,6 +179,7 @@ class CyclesRender_PT_layers(CyclesButtonsPanel, Panel):
|
||||
col.prop(scene, "layers", text="Scene")
|
||||
col.label(text="Material:")
|
||||
col.prop(rl, "material_override", text="")
|
||||
col.prop(rl, "use_zmask");
|
||||
|
||||
col = split.column()
|
||||
col.prop(rl, "layers", text="Layer")
|
||||
|
@ -700,14 +700,12 @@ void BlenderSync::sync_world()
|
||||
if(b_world) {
|
||||
BL::WorldLighting b_light = b_world.light_settings();
|
||||
|
||||
if(b_light.use_ambient_occlusion()) {
|
||||
if(b_light.use_ambient_occlusion())
|
||||
background->ao_factor = b_light.ao_factor();
|
||||
background->ao_distance = b_light.distance();
|
||||
}
|
||||
else {
|
||||
else
|
||||
background->ao_factor = 0.0f;
|
||||
background->ao_distance = 0.0f;
|
||||
}
|
||||
|
||||
background->ao_distance = b_light.distance();
|
||||
}
|
||||
|
||||
shader->set_graph(graph);
|
||||
|
@ -204,7 +204,8 @@ void BlenderSync::sync_render_layers(BL::SpaceView3D b_v3d, const char *layer)
|
||||
render_layer.name = b_rlay->name();
|
||||
render_layer.scene_layer = get_layer(b_scene.layers());
|
||||
render_layer.layer = get_layer(b_rlay->layers());
|
||||
render_layer.holdout_layer = get_layer(b_rlay->layers_zmask());
|
||||
render_layer.holdout_layer = (b_rlay->use_zmask())? ~get_layer(b_rlay->layers_zmask()): 0;
|
||||
render_layer.layer |= render_layer.holdout_layer;
|
||||
render_layer.material_override = b_rlay->material_override();
|
||||
}
|
||||
|
||||
|
@ -18,6 +18,7 @@
|
||||
|
||||
#include "background.h"
|
||||
#include "device.h"
|
||||
#include "integrator.h"
|
||||
#include "graph.h"
|
||||
#include "nodes.h"
|
||||
#include "scene.h"
|
||||
@ -74,6 +75,7 @@ bool Background::modified(const Background& background)
|
||||
|
||||
void Background::tag_update(Scene *scene)
|
||||
{
|
||||
scene->integrator->tag_update(scene);
|
||||
need_update = true;
|
||||
}
|
||||
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include "camera.h"
|
||||
#include "device.h"
|
||||
#include "film.h"
|
||||
#include "integrator.h"
|
||||
#include "scene.h"
|
||||
|
||||
#include "util_algorithm.h"
|
||||
@ -255,6 +256,7 @@ bool Film::modified(const Film& film)
|
||||
|
||||
void Film::tag_update(Scene *scene)
|
||||
{
|
||||
scene->integrator->tag_update(scene);
|
||||
need_update = true;
|
||||
}
|
||||
|
||||
|
@ -152,13 +152,13 @@ void Scene::device_update(Device *device_, Progress& progress)
|
||||
|
||||
if(progress.get_cancel()) return;
|
||||
|
||||
progress.set_status("Updating Integrator");
|
||||
integrator->device_update(device, &dscene);
|
||||
progress.set_status("Updating Film");
|
||||
film->device_update(device, &dscene);
|
||||
|
||||
if(progress.get_cancel()) return;
|
||||
|
||||
progress.set_status("Updating Film");
|
||||
film->device_update(device, &dscene);
|
||||
progress.set_status("Updating Integrator");
|
||||
integrator->device_update(device, &dscene);
|
||||
|
||||
if(progress.get_cancel()) return;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user