Age | Commit message (Collapse) | Author |
|
Object to be instanced should not be modified.
|
|
Part of D4277 by @sobakasu
|
|
|
|
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.
|
|
Was missing synchronization of current frame to the original one,
which is one of the issues why point cache does not properly reset
on edits.
Also clear recalc flag on original particle system.
Ideally we need to get rid of recalc on a particle system, since
that is not really covered by tagging system of dependency graph.
|
|
This is now hanbdled by the nodes in dependency graph.
|
|
Reviewers: brecht
Differential Revision: https://developer.blender.org/D4285
|
|
This is necessary when adding a new keyframe to a fcurve
that also has a driver.
Reviewers: brecht, campbellbarton
Differential Revision: https://developer.blender.org/D4278
|
|
This removes a bunch of animation/driver evaluations and recalc flags that
should be redundant in the new depsgraph, and were incorrectly affecting
the evaluated scene in a permanent way.
Still two cases that could be removed if the depsgraph is improved, in
BKE_object_handle_data_update and BKE_cachefile_update_frame.
For physics subframe interpolation there are also still calls to
BKE_object_where_is_calc that should ideally be removed as well, though
they are not known to cause keyframing bugs.
Differential Revision: https://developer.blender.org/D4274
|
|
Some features are incompatible with multithreading and reliable evaluation
of dependencies. We are now removing them as part of a bigger cleanup to
fix bugs in keyframing and invalid animation evaluations.
* Dupliframes have been removed. This was a hack added before there were
more powerful features like the array modifier.
* Slow parent has been removed, never worked in 2.8. It was always
unreliable for use in production due to depending on whatever frame was
previously evaluated, which was not always the previous frame.
* Particle instanced objects used to have their transform evaluated at
the particle time. Now it always gets the current time transform.
* Boids can no longer do predictive avoidance of force field objects,
but still for other particles.
Differential Revision: https://developer.blender.org/D4274
|
|
Favour G_MAIN in functions that might free it.
|
|
Needed since we don't always have the context,
and avoids adding G_MAIN into undo callbacks.
|
|
|
|
Kind of funny to see that this has been missing presumably since the
first version of library linking in Blender, and only gets noticed now.
Then again, that was not really a critical issue, iirc write code
ensures all libraries directly used get properly written, even if flags
are incorrect.
|
|
|
|
Add the ability for undo steps to request memfile undo step added after
them, useful for mode switching, where we need the data to exist for
undo to enter the mode.
|
|
|
|
Default versioning caused duplicates when the startup was re-saved.
See c305759762aa3
|
|
This reverts commit 8a379e3460048906306042145052d5d7f3bb859c.
Caused T58284
|
|
Currently names are used for edit-mode undo-steps,
any changes to Main ID names cause lookup failure (crashing).
This commit ensures any undo steps that use ID lookups have the same
mem-file undo state loaded that was used to encode the steps.
Renaming also has an undo push added (last commit).
|
|
Needed for T60809 fix.
|
|
|
|
|
|
Part of the issue was a missing relation. Other part wes
aboud object's inverse matrix never being updated.
|
|
Done using:
source/tools/utils_maintenance/c_sort_blocks.py
|
|
|
|
|
|
|
|
Comment or remove unused defines.
|
|
Those kind of checks are handy to have for generic processing...
|
|
If ID doesn't want to do user counting it shouldn't be in main.
|
|
The issue was caused by the hair step checking whether
particle system needs to have path cache. This was done
in a way which was traversing an entire scene and was
checking every object for particle instance modifier.
Ideally, path cache should be an own operation in the
dependency graph. Or at least, this flag should be set
by dependency graph builder, similar to curve's path.
Since the code was broken already (it was only checking
first particle instance modifier), it is easier to
remove the buggy code, solve the crash and move on for
now.
If this causes an issue, simply set particle system to
be rendered as path.
Fixes crash with playback of Spring scenes.
|
|
Part of T60660
|
|
|
|
|
|
The value worked in 2.7, but not with copy-on-write in 2.8.
|
|
Do not see why flags from loaded file should be skipped when we do not
load UI, this is not related to UI...
Think we can keep flags from file in both cases, should this raise some
other issue we'll just have to fine tune masked flags in each case
separately.
|
|
Similar to masking grids, need to also check existing grid level.
This is because edit mode might leave allocated grid with 0 levels.
|
|
|
|
Treat those vertices as infinitely sharp. This matches the way
how OpenSubdiv's topology is being created.
|
|
This helps to generate cleaner topology and define sharp features for dynamic
topology. Best used on relatively low-poly meshes, it is not needed as much
for high detail areas and has a performance impact.
Differential Revision: https://developer.blender.org/D4189
|
|
This line looks a mistake and it's not needed.
|
|
It seems more predictable, and makes more sense for future multi-object modes.
|
|
Compositor makes a copy of mask before sampling the mask on different
time steps. The copy of layers did not copy falloff Settings.
|
|
The issue was caused by the lack of averaging of normals for
vertices which are on the ptex face boundaries.
|
|
This is more like a band-aid than a real fix actually, real fix would be
to understand why rendering smoke requires auto texspace to be ON
(afaict, this was not the case in 2.7x)...
But I've already spent way too much time on this issue, at least now we
get better situation than before (i.e. smoke with adaptive domain works
well even when orig domain mesh has autospace flag disabled).
|
|
Not sure why that was that way (can't remember any good reason at least,
so assuming this is a dummy mistake from own rB33cbcd73448f), this
should be done in any case.
|
|
Free the BVH tree immediately along with the mesh, otherwise we might access
invalid mesh data.
Differential Revision: https://developer.blender.org/D4201
|
|
After rename is done we need to make sure all copies of
corresponding datablocks are updated in all dependency
graphs: otherwise bone will have a new name, but animation
will still be using an old one.
|
|
The issue was caused by intermediate DerivedMesh being created with
scene's Simplify settings taken into account. This is what happens
when one area makes implicit decisions based on whether passed Scene
pointer is not NULL.
Made it so ignoring simplification serttings is an explicit flag,
which makes it easier to follow what's going on.
|