[Bf-blender-cvs] [33a98c19f7f] cycles_procedural_api: Merge branch 'master' into arcpatch-D8544
Kévin Dietrich
noreply at git.blender.org
Thu Nov 5 18:57:50 CET 2020
Commit: 33a98c19f7f0e157acf70bacba3d982705408ad2
Author: Kévin Dietrich
Date: Sat Oct 31 18:29:39 2020 +0100
Branches: cycles_procedural_api
https://developer.blender.org/rB33a98c19f7f0e157acf70bacba3d982705408ad2
Merge branch 'master' into arcpatch-D8544
===================================================================
===================================================================
diff --cc intern/cycles/blender/blender_light.cpp
index 6c9f61e6caa,6f95821e31e..ff4ecc5a3f9
--- a/intern/cycles/blender/blender_light.cpp
+++ b/intern/cycles/blender/blender_light.cpp
@@@ -39,10 -39,10 +39,10 @@@ void BlenderSync::sync_light(BL::Objec
BL::Light b_light(b_ob.data());
/* Update if either object or light data changed. */
- if (!light_map.add_or_update(scene, &light, b_ob, b_parent, key)) {
+ if (!light_map.add_or_update(&light, b_ob, b_parent, key)) {
Shader *shader;
- if (!shader_map.add_or_update(scene, &shader, b_light)) {
+ if (!shader_map.add_or_update(&shader, b_light)) {
- if (light->is_portal)
+ if (light->get_is_portal())
*use_portal = true;
return;
}
@@@ -176,21 -176,21 +176,21 @@@ void BlenderSync::sync_background_light
Light *light;
ObjectKey key(b_world, 0, b_world, false);
- if (light_map.add_or_update(scene, &light, b_world, b_world, key) || world_recalc ||
+ if (light_map.add_or_update(&light, b_world, b_world, key) || world_recalc ||
b_world.ptr.data != world_map) {
- light->type = LIGHT_BACKGROUND;
+ light->set_light_type(LIGHT_BACKGROUND);
if (sampling_method == SAMPLING_MANUAL) {
- light->map_resolution = get_int(cworld, "sample_map_resolution");
+ light->set_map_resolution(get_int(cworld, "sample_map_resolution"));
}
else {
- light->map_resolution = 0;
+ light->set_map_resolution(0);
}
- light->shader = scene->default_background;
- light->use_mis = sample_as_light;
- light->max_bounces = get_int(cworld, "max_bounces");
+ light->set_shader(scene->default_background);
+ light->set_use_mis(sample_as_light);
+ light->set_max_bounces(get_int(cworld, "max_bounces"));
/* force enable light again when world is resynced */
- light->is_enabled = true;
+ light->set_is_enabled(true);
int samples = get_int(cworld, "samples");
if (get_boolean(cscene, "use_square_samples"))
diff --cc intern/cycles/blender/blender_particles.cpp
index 6f9a0da9d67,e5eab1ae62b..ca221b229b4
--- a/intern/cycles/blender/blender_particles.cpp
+++ b/intern/cycles/blender/blender_particles.cpp
@@@ -53,12 -53,10 +53,11 @@@ bool BlenderSync::sync_dupli_particle(B
ParticleSystem *psys;
bool first_use = !particle_system_map.is_used(key);
- bool need_update = particle_system_map.add_or_update(
- scene, &psys, b_ob, b_instance.object(), key);
+ bool need_update = particle_system_map.add_or_update(&psys, b_ob, b_instance.object(), key);
/* no update needed? */
- if (!need_update && !object->geometry->need_update && !scene->object_manager->need_update)
+ if (!need_update && !object->get_geometry()->is_modified() &&
+ !scene->object_manager->need_update)
return true;
/* first time used in this sync loop? clear and tag update */
diff --cc intern/cycles/render/geometry.cpp
index e73234240b8,9457d5e0205..0c45ef2c8e5
--- a/intern/cycles/render/geometry.cpp
+++ b/intern/cycles/render/geometry.cpp
@@@ -1260,7 -1249,10 +1260,10 @@@ void GeometryManager::device_update_pre
}
}
- if (geom->need_update_rebuild && geom->geometry_type == Geometry::VOLUME) {
+ /* Re-create volume mesh if we will rebuild or refit the BVH. Note we
+ * should only do it in that case, otherwise the BVH and mesh can go
+ * out of sync. */
- if (geom->need_update && geom->type == Geometry::VOLUME) {
++ if (geom->is_modified() && geom->geometry_type == Geometry::VOLUME) {
/* Create volume meshes if there is voxel data. */
if (!volume_images_updated) {
progress.set_status("Updating Meshes Volume Bounds");
diff --cc intern/cycles/render/session.cpp
index 7560511f97d,3e12e183771..a60542259f6
--- a/intern/cycles/render/session.cpp
+++ b/intern/cycles/render/session.cpp
@@@ -1067,11 -1161,11 +1157,12 @@@ void Session::render(bool need_denoise
task.get_cancel = function_bind(&Progress::get_cancel, &this->progress);
task.update_tile_sample = function_bind(&Session::update_tile_sample, this, _1);
task.update_progress_sample = function_bind(&Progress::add_samples, &this->progress, _1, _2);
+ task.get_tile_stolen = function_bind(&Session::get_tile_stolen, this);
task.need_finish_queue = params.progressive_refine;
- task.integrator_branched = scene->integrator->method == Integrator::BRANCHED_PATH;
+ task.integrator_branched = scene->integrator->get_method() == Integrator::BRANCHED_PATH;
- task.adaptive_sampling.use = (scene->integrator->sampling_pattern == SAMPLING_PATTERN_PMJ) &&
+ task.adaptive_sampling.use = (scene->integrator->get_sampling_pattern() ==
+ SAMPLING_PATTERN_PMJ) &&
scene->dscene.data.film.pass_adaptive_aux_buffer;
task.adaptive_sampling.min_samples = scene->dscene.data.integrator.adaptive_min_samples;
task.adaptive_sampling.adaptive_step = scene->dscene.data.integrator.adaptive_step;
diff --cc intern/cycles/render/volume.cpp
index 77a8db7aa9b,a8edc04f8a9..547d0fa0d94
--- a/intern/cycles/render/volume.cpp
+++ b/intern/cycles/render/volume.cpp
@@@ -584,7 -582,8 +584,8 @@@ void GeometryManager::create_volume_mes
volume->clear();
volume->reserve_mesh(vertices.size(), indices.size() / 3);
- volume->used_shaders.push_back(volume_shader);
- volume->need_update = true;
+ volume->used_shaders.push_back_slow(volume_shader);
++ volume->tag_modified();
volume->need_update_rebuild = true;
for (size_t i = 0; i < vertices.size(); ++i) {
More information about the Bf-blender-cvs
mailing list