Fix T59339: Particle render without baking issues
authorSergey Sharybin <sergey.vfx@gmail.com>
Thu, 31 Jan 2019 15:53:19 +0000 (16:53 +0100)
committerSergey Sharybin <sergey.vfx@gmail.com>
Thu, 31 Jan 2019 15:53:19 +0000 (16:53 +0100)
commitd2f3378249902cdc093c54c41afb1b48ae8357c3
tree411ef779ae0d71b0ff54f33c7a713eb5e00f9a3e
parent0d2b977c3b1d0c382a9ba09bead5289d387bda33
Fix T59339: Particle render without baking issues

The issue was caused by dependency graph resetting particles
when evaluating copy-on-write version of object. Solved by
only doing reset from dependency graph on user edits.

Other issue was caused by modifier itself trying to compare
topology and reset particles when number of vertices or faces
changed. This isn't reliable, since topology might change even
with same number of elements. But also, since copy-on-written
object initially always have those fields zero-ed the reset
was happening on every F12.

The latter issue is solved by moving reset from modifier stack
to places where we exit edit/paint modes which might be changing
topology.

There is still weird issue of particles generated at some
weird location after tapping tab twice, but this is not a new
issue in 2.8 branch and is to be looked separately.
source/blender/blenkernel/BKE_particle.h
source/blender/blenkernel/intern/particle_system.c
source/blender/depsgraph/intern/builder/deg_builder_relations.cc
source/blender/editors/object/object_edit.c
source/blender/editors/sculpt_paint/sculpt.c
source/blender/modifiers/intern/MOD_particlesystem.c