Commit Graph

15002 Commits

Author SHA1 Message Date
Sergey Sharybin
72863eb036 Remove direct shape key drivers evaluaiton in object update
This is now hanbdled by the nodes in dependency graph.
2019-01-31 14:31:41 +01:00
Jacques Lucke
b5e93b02c9 Fix T60996: Dyntopo flood fill fails due to missing ob->imat
Reviewers: brecht

Differential Revision: https://developer.blender.org/D4285
2019-01-31 12:42:51 +01:00
Jacques Lucke
f4c0dacde7 Fix: allow curve of driver to be evaluated individually
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
2019-01-31 12:19:33 +01:00
Brecht Van Lommel
83f8f44791 Fix T59495, T59992, T59904, T59178, T60598: broken keyframed value editing.
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
2019-01-31 12:04:57 +01:00
Brecht Van Lommel
7400aa7e59 Depsgraph: remove features incompatible with new system.
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
2019-01-31 12:03:05 +01:00
Campbell Barton
c454db2746 Fix T61047: Undo editmesh separate crashes
Favour G_MAIN in functions that might free it.
2019-01-31 15:07:47 +11:00
Campbell Barton
51bba03b31 Undo System: add Main argument to encode/decode
Needed since we don't always have the context,
and avoids adding G_MAIN into undo callbacks.
2019-01-31 12:07:13 +11:00
Campbell Barton
e08156d799 Fix default material using zero alpha 2019-01-30 23:54:07 +11:00
Bastien Montagne
534573f6b9 Fix T60957: ASSERT when reloading double-linked file.
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.
2019-01-30 11:46:49 +01:00
Bastien Montagne
e074204d2f Cleanup: use proper bitflag operators. 2019-01-30 11:38:13 +01:00
Campbell Barton
fbfe360cb1 Fix T60974: Dyntopo crash on undo after object deleted
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.
2019-01-30 20:44:15 +11:00
Sergey Sharybin
33dcf9fa71 Add missing Shader FX remapping to library query 2019-01-29 15:41:24 +01:00
Campbell Barton
475a07cd0c Fix duplicate brushes from recent startup files
Default versioning caused duplicates when the startup was re-saved.

See c305759762
2019-01-29 23:53:37 +11:00
Campbell Barton
964a3f1097 Revert "3D Text: avoid checking null character's text on path"
This reverts commit 8a379e3460.

Caused T58284
2019-01-29 22:50:55 +11:00
Campbell Barton
78719abc01 Fix T60809: Crash undoing object rename in edit-mode
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).
2019-01-29 15:29:22 +11:00
Campbell Barton
59a0a143dd Library: tag memfile undo for writing after rename
Needed for T60809 fix.
2019-01-29 14:28:55 +11:00
Campbell Barton
957b4547ae Cleanup: Remove unused MTex.texflag 2019-01-29 09:11:05 +11:00
Sergey Sharybin
a8c0a57fc3 Fix T60599: Multires crash after doing dyntopo sculpt 2019-01-28 16:14:30 +01:00
Sergey Sharybin
2e3433c1f7 Fix T60127: Particles texture mapping coordinates objects
Part of the issue was a missing relation. Other part wes
aboud object's inverse matrix never being updated.
2019-01-28 12:19:25 +01:00
Campbell Barton
c0f88ed8a8 Cleanup: sort forward declarations of enum & struct
Done using:
  source/tools/utils_maintenance/c_sort_blocks.py
2019-01-28 21:17:58 +11:00
Brecht Van Lommel
0b28a9a446 Fix build error after recent cleanup. 2019-01-26 15:38:49 +01:00
Campbell Barton
f20dbc293f Cleanup: blank lines over doxy headers 2019-01-26 21:43:24 +11:00
Campbell Barton
1e4aab36c2 Cleanup: remove redundant BKE/BLI/BIF headers 2019-01-26 21:20:25 +11:00
Campbell Barton
b8467273b8 Cleanup: redundant defines
Comment or remove unused defines.
2019-01-26 19:15:30 +11:00
Bastien Montagne
a42441d145 ShapeKey: add utils to say whether given ID type supports shapekeys.
Those kind of checks are handy to have for generic processing...
2019-01-25 17:46:09 +01:00
Sergey Sharybin
693721cc7e Fix T55462: Ungroup in Node editor crash Blender
If ID doesn't want to do user counting it shouldn't be in main.
2019-01-25 16:49:40 +01:00
Sergey Sharybin
e198c5a175 Fix crash happening with hair step
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.
2019-01-25 14:02:31 +01:00
Campbell Barton
da13a3bdee Fix texture paint accessing freed memory
Part of T60660
2019-01-25 23:53:53 +11:00
Campbell Barton
8e8fb1520c Depsgraph: use specific tag to update shading 2019-01-25 23:11:58 +11:00
Campbell Barton
05ebdc2b71 Fix texture paint showing pink texture on load 2019-01-25 17:25:49 +11:00
Brecht Van Lommel
6d58339973 Fix smoke clipping being ignored by Cycles and not being editable after baking.
The value worked in 2.7, but not with copy-on-write in 2.8.
2019-01-24 19:47:01 +01:00
Bastien Montagne
7446c76187 Fix T59175: Compress file isn't working when Load UI is disabled.
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.
2019-01-24 16:13:37 +01:00
Sergey Sharybin
f15a5440a1 Multires reshape: correct grids level allocation
Similar to masking grids, need to also check existing grid level.

This is because edit mode might leave allocated grid with 0 levels.
2019-01-24 14:25:06 +01:00
Sergey Sharybin
fa818170e3 Subdiv: Fix wrong orig_index for vertices of a loose edge 2019-01-24 12:13:36 +01:00
Sergey Sharybin
c4be1f861b Fix T60408: Loose edge distort vertex on a surface
Treat those vertices as infinitely sharp. This matches the way
how OpenSubdiv's topology is being created.
2019-01-24 12:13:36 +01:00
Jean Da Costa
b592e34559 Sculpt: add Topology Rake, to align edges along brush while painting.
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
2019-01-23 20:25:14 +01:00
Antonioya
5e3ce0b662 GP: Remove unneeded armature code
This line looks a mistake and it's not needed.
2019-01-23 16:52:25 +01:00
Brecht Van Lommel
22bc6142c3 Fix T59152: dynamic topology constant detail should be in world space.
It seems more predictable, and makes more sense for future multi-object modes.
2019-01-23 16:48:02 +01:00
Sergey Sharybin
44e9fe024b Fix T56877: Enabling mask Motion Blur overrides the Feather Falloff
Compositor makes a copy of mask before sampling the mask on different
time steps. The copy of layers did not copy falloff Settings.
2019-01-23 13:04:32 +01:00
Sergey Sharybin
e6ad4ec3fc Fix T58994: Subdivision modifier generates artifacts with crease=1
The issue was caused by the lack of averaging of normals for
vertices which are on the ptex face boundaries.
2019-01-23 12:17:30 +01:00
Bastien Montagne
3891ad8e03 Fix T58492: smoke flow jitters around flow source when using adaptive domain.
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).
2019-01-22 21:52:15 +01:00
Bastien Montagne
7886db9ba9 Mesh eval: Do not condition clearing of auto texspace to dirty bbox.
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.
2019-01-22 21:52:15 +01:00
Andrew Williams
102631486b Fix potential invalid memory access in surface force field BVH tree.
Free the BVH tree immediately along with the mesh, otherwise we might access
invalid mesh data.

Differential Revision: https://developer.blender.org/D4201
2019-01-22 15:24:06 +01:00
Sergey Sharybin
414ebc68c2 Fix T60686: Renaming an animated bone breaks its animation
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.
2019-01-22 14:50:58 +01:00
Sergey Sharybin
b2a15de887 Fix T60575: Multiresolution Crashes when appliing more subdivisions
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.
2019-01-22 11:57:23 +01:00
Sergey Sharybin
d6d101feca Fix T59395: Subdivision modifier with quality 1 crashes blender
This is actually a workaround for the crash in OpenSubdiv.
Topology refiner will have a crash when special conditions
are met:

- Refiner is configured to use infinitely sharp patches.
- Refinement happens for the level 1 (which we call Quality 1 on
  Blender side).
- Mesh has non-quad faces.

The workaround is to force refinement to happen to level 2 (or
quality 2 on Blender side) when those conditions are met.

Later on with the next OpenSubdiv update we can remove this
workaround, since there was work done on OpenSubdiv side to
deal better with such configurations.

The modifier will now be somewhat slower, but this will be
compensated with upcoming topology cache enabled by default.

The workaround is done when initializing settings, so the
comparison of topology refiner settings is happening without
any extra workarounds there.
2019-01-22 11:57:20 +01:00
Campbell Barton
0d8d26696f Cleanup: trailing space 2019-01-21 10:41:39 +11:00
Campbell Barton
49208a3419 Cleanup: shadow warning, style 2019-01-21 10:05:58 +11:00
Antonioya
6e443b3210 Fix T60677: GP vertex groups get messed up, when deleting a group 2019-01-20 20:31:11 +01:00
Bastien Montagne
482c4d099a Cleanup: remove all BLI_utiledefines' ugly vectorial macros.
Not only were those often making doublons with already existing
BLI_math's stuff, but they were also used to hide implicit type
conversions...

As usual this adds some more exotic inlined vector functions (one of
the rare cases where I really miss C++ and its templates... ;) ).
2019-01-20 16:27:06 +01:00