Commit Graph

18405 Commits

Author SHA1 Message Date
Jacques Lucke
f319eec881 Cleanup: disable debug code 2020-07-12 11:05:43 +02:00
Jacques Lucke
30ed51d60a Cleanup: unused debug variable 2020-07-12 12:50:19 +02:00
Jacques Lucke
21b20ae5ec Particles: initial support for forces in simulation node trees
The force node can now be used to control the behavior of particles.
Forces can access particles attributes. Currently, there are three attributes:
`Position` (vector), `Velocity` (vector) and `ID` (integer).

Supported nodes are: Math, Vector Math, Separate Vector, Combine Vector and Value.

Next, I'll have to split `simulation.cc` into multiple files and move
some stuff out of blenkernel into another folder.
2020-07-12 12:38:57 +02:00
Jacques Lucke
ebf9082e1c Nodes: support more implicit conversions in simulation node tree 2020-07-12 12:38:30 +02:00
Jacques Lucke
404486e66c Functions: minor api improvements 2020-07-12 10:01:37 +02:00
Jacques Lucke
c7eada103c Nodes: support implicit conversions and incorrectly linked sockets 2020-07-11 18:02:06 +02:00
Jacques Lucke
06401157a6 Fix: incorrect attribute type in network 2020-07-11 17:59:43 +02:00
Campbell Barton
6e698653df Cleanup: remove unused function 2020-07-11 20:34:17 +10:00
Campbell Barton
651db1b26f Cleanup: spelling 2020-07-11 15:32:59 +10:00
Brecht Van Lommel
3e4f49fe71 Revert "Fix T78296: Performance - Use Binary Search for MDeformWeight"
This reverts commit 39b525e0f0 and
3121015dce as tests are failing.
2020-07-10 18:03:21 +02:00
Antonio Vazquez
d5208c45fa GPencil: Fix unreported Use Falloff curve for active frame not working
For the active frame it was using always a value of 1.0 and it was not using the curve.
2020-07-10 17:56:35 +02:00
Richard Antalik
5372924983 Fix T78579: Proxy produces wrong preview when using Offset or Crop
Make sure that proxy and original images are scaled to same size before
applying offset or crop.

During testing, I discovered, that raw cache will lose information whether
this image was proxy or not. Because of this, proxy images will not create
this cache type. It would be fairly easy to implement this functionality for
cache, but I have decided to not do it now, because I did not want to pass yet
another mostly hard-coded bool flag to cache system. Since image is proxy, it
should be fast to read anyway.

In case of using offset property, code was modified to make sure we scale
image only once. I also tried to make code more readable and streamlined and
cleaned up surrounding functions a bit.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D8203
2020-07-10 16:16:42 +02:00
Jacques Lucke
4d1c3c029e Cleanup: declaration and implementation function signature did not match 2020-07-10 15:48:46 +02:00
Jacques Lucke
26d28ade26 Cleanup: follow code style 2020-07-10 14:40:23 +02:00
Jacques Lucke
60133ff98d Functions: store derived node tree and network in map for future access 2020-07-10 14:23:13 +02:00
Jacques Lucke
7bae599232 Nodes: add redundant name check in debug builds to prevent errors 2020-07-10 14:23:13 +02:00
Jeroen Bakker
3121015dce Fix Crash due to recent changes
{39b525e0f07fa25dcda54226ade789959b642dec} could write in unallocated
space.
2020-07-10 13:38:38 +02:00
Jeroen Bakker
39b525e0f0 Fix T78296: Performance - Use Binary Search for MDeformWeight
Use binary search for querying deform weights.

Spring 02_020_A.anim.blend on Ryzen 1700X goes from 12.4 to 12.7fps.

During profiling it was detected that adding new items to the head was faster than adding to the tail.

Reviewed By: Campbell Barton

Differential Revision: https://developer.blender.org/D8127
2020-07-10 12:09:40 +02:00
Campbell Barton
a148c4676b Cleanup: spelling 2020-07-10 16:04:09 +10:00
Pablo Dobarro
03a00bda2b Sculpt: Make Sculpt Vertex Colors features experimental
This disables all Sculpt Vertex Colors tools, operators, panels and rendering capabilities and puts them under the "Use Sculpt Vertex Colors" experimental option.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D8239
2020-07-09 18:24:50 +02:00
Bastien Montagne
7b1c406b54 Implement T77959: Never duplicate linked data during deep-copy.
Note that this behavior is enforced on user level for now, but on code
side it is controlled with a flag, which should make it easy to refine
that behavior if needed.

Only exception is when we duplicate a linked ID directly (then we assume
user wants a local deep-copy of that linked data, and we always also
duplicate linked sub-data-blocks).

Note that this commit also slightly refactor the handling of actions of
animdata, by simplifying `BKE_animdata_copy_id_action()` and adding an
explicit new `BKE_animdata_duplicate_id_action()` to be used during ID
duplication (deep copy).

This also allows us to get rid of the special case for liboverrides.
2020-07-09 17:56:05 +02:00
Pablo Dobarro
78b629a98f Sculpt: Skip fully hidden nodes in sculpt tools
As tools iterators skip not visible vertices, fully hidden nodes can
also be skipped and considered as masked.

Reviewed By: sergey

Differential Revision: https://developer.blender.org/D8244
2020-07-09 17:51:09 +02:00
Pablo Dobarro
1fb667da01 Fix wrong upate flag when updating the PBVH visibility
This function was using the wrong flag to update the visibility state of
the nodes, so I assume that most of the partially visible optimizations
were not working.

Reviewed By: sergey

Differential Revision: https://developer.blender.org/D8243
2020-07-09 17:50:10 +02:00
Pablo Dobarro
e5ebaa9fd6 Fix T78664: Implement Mesh and Face Set boundary automasking in Multires
This implements the SCULPT_vertex_is_boundary and SCULPT_vertex_has_unique_face_set functions for PBVH_GRIDS, which makes features such as automasking now work in multires. It also fixes some other face sets related features in multires, like face set boundary smoothing.

This uses the BKE_subdiv_ccg_coarse_mesh_adjacency_info_get function to get the vertex indicies in the base mesh from multires. This way the API functions can get topology or face set information directly from it. In the future, these vertex indices can be used to get any other information from the base mesh from multires, like seams, sharp edges, disconnected elements IDs...

Reviewed By: sergey

Maniphest Tasks: T78664

Differential Revision: https://developer.blender.org/D8227
2020-07-09 17:48:24 +02:00
Jacques Lucke
580d50091c Particles: Create a simulation state for every Particle Simulation node
Every Particle Simulation node has a name (or a path when it is in a node group).
This name has to be used in the Simulation modifier on a point cloud to see
the particles.

Caching has been disabled for now, because it was holding back development
a bit. To reset the simulation, go back to frame 1.

Currently, there is no way to influence the simulation. There are just some
randomly moving points. Changing that is the next step.
2020-07-09 15:40:27 +02:00
Bastien Montagne
8ddf7556a5 Fix T78718: Crash when deleting particle system modifier with the X Shortcut.
Duplication and deletion code of modifiers was totally wrong for
particle system, that special weird thing needs its own custom
management.

Note that for now I chose not to duplicate the particle settings ID when
duplicating the modifier...
2020-07-09 11:46:28 +02:00
Jacques Lucke
31bc76ea4e Cleanup: remove unnecessary calls to as_span
This uses the new implicit conversions and constructors
that have been committed in the previous commit.

I tested these changes on Linux with gcc and on Windows.
2020-07-08 22:30:23 +02:00
Jacques Lucke
4990e4dd01 Nodes: Generate multi-function network from node tree
This adds new callbacks to `bNodeSocketType` and `bNodeType`.
Those are used to generate a multi-function network from a node
tree. Later, this network is evaluated on e.g. particle data.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D8169
2020-07-07 18:23:33 +02:00
Campbell Barton
0c58970da7 Cleanup: spelling 2020-07-07 12:49:13 +10:00
Germano Cavalcante
12817083ec Cleanup: Use the BLI_edgehash API in the sewing simulation of cloths
Also remove the code in the ghash that is no longer used.

This change simplifies the existing code.

Differential Revision: https://developer.blender.org/D8219
2020-07-06 14:44:30 -03:00
Bastien Montagne
ee3eba902a Runtime cache preservation during undo: add support for nodes and embedded IDs. 2020-07-06 16:55:38 +02:00
Sybren A. Stüvel
bfc644dcfb Reduce DupliObject::persistent_id from 16 to 8 items
For historical reasons, `DupliObject::persistent_id` was of size
`2*MAX_DUPLI_RECUR`. These reasons are now gone, and the persistent ID
always gets exactly one array element for every dupli-recursion.

Differential Revision: https://developer.blender.org/D8222

Reviewed by: brecht
2020-07-06 16:52:28 +02:00
Bastien Montagne
0b07f9b717 Fix T78608: Memory leak in Material properties: "Data from SCE".
Caused by recent own refactor of cache presevation handling in readfile,
EEVEE's lightcache are weird birds that can also be saved in .blend
files, need a special handling for those 'persistent' caches...
2020-07-06 15:09:39 +02:00
Campbell Barton
99feb10b8b Cleanup: warning, spelling 2020-07-06 23:07:18 +10:00
Campbell Barton
dbe171fb26 Cleanup: spelling, comments 2020-07-06 21:03:45 +10:00
Campbell Barton
4f3045999d Cleanup: warnings, spelling 2020-07-06 17:35:41 +10:00
Antonio Vazquez
9168ea8aab Cleanup: Fix small typo error 2020-07-04 11:15:11 +02:00
Antonio Vazquez
17603816f2 GPencil: Cleanup some comments typo 2020-07-04 11:04:21 +02:00
Sybren A. Stüvel
d2db481dc7 Cleanup: Blendkernel, Clang-Tidy else-after-return fixes (incomplete)
This addresses warnings from Clang-Tidy's `readability-else-after-return`
rule in the `source/blender/blenkernel` module. Not all warnings are
addressed in this commit.

No functional changes.
2020-07-03 18:18:16 +02:00
Bastien Montagne
1bdabd7b4f Move MovieClip to new undo cache management system. 2020-07-03 17:01:21 +02:00
Hans Goudey
53d41e1a6f UI: Use sliders and [0, 1] ranges in ocean modifier
The ocean modifier has two properties that use a [0, 10] hard min and
hard max. The values act as factors though, so it makes more sense to
use sliders and a 0 to 1 range.

This commit also bumps the file subversion to avoid repeatedly applying
the change to the properties' range.

Differential Revision: https://developer.blender.org/D8186
2020-07-03 10:28:13 -04:00
Bastien Montagne
3a59c184b9 Move Scene's cache management during undo to new system. 2020-07-03 16:10:33 +02:00
Hans Goudey
19ff145e66 Clang-Tidy: Enable readability-redundant-control-flow 2020-07-03 09:41:55 -04:00
Bastien Montagne
c9975088a9 Move volume to new cache management system for undo. 2020-07-03 15:28:09 +02:00
Jacques Lucke
2633683b52 Clang-tidy: enable readability-container-size-empty warning
Reviewers: sergey

Differential Revision: https://developer.blender.org/D8197
2020-07-03 14:59:27 +02:00
Jacques Lucke
395b294b61 Cleanup: use nested namespaces 2020-07-03 14:25:20 +02:00
Jacques Lucke
d64803f63b Cleanup: Use trailing underscore for non-public data members
This makes the code conform better with our style guide.
2020-07-03 14:16:02 +02:00
Antonio Vazquez
dfbb13b593 GPencil: Cleanup more comments (cont) 2020-07-03 13:52:04 +02:00
Bastien Montagne
aab41401f9 Move bSound cache handling during undo to new system. 2020-07-03 12:56:21 +02:00
Bastien Montagne
ae5529c848 Cleanup: do not use magic values for enums... 2020-07-03 12:56:21 +02:00