Commit Graph

78173 Commits

Author SHA1 Message Date
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
Antonio Vazquez
00eb6a56aa GPencil: Fix tooltip error
The tooltip was copied by error from Lattice modifier.
2020-07-10 13:30:21 +02:00
Jacques Lucke
8fd65a2252 Functions: use new is-equal and hash function of CPPType 2020-07-10 12:57:28 +02:00
Jacques Lucke
3edd2832b2 Functions: make generic types hashable 2020-07-10 12:57:28 +02:00
Jacques Lucke
f62204718b BLI: initial hash function for Color4b and float4x4 2020-07-10 12:57:28 +02:00
Jacques Lucke
8f6c0f2242 Functions: make generic types equality comparable 2020-07-10 12:57:28 +02:00
Jacques Lucke
52636c3059 Cleanup: various cleanups in for CPPType 2020-07-10 12:57:28 +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
Jacques Lucke
77a646279d Cleanup: structure CPPType according to code style guide 2020-07-10 12:04:49 +02:00
Bastien Montagne
9c25731781 LibOverride: Fix improper tagging of more of the backward pointers in RNA nodetrees. 2020-07-10 11:53:11 +02:00
Campbell Barton
582a0b7e5a Fix T78756: White UV drawing is displayed as Dashed 2020-07-10 19:02:18 +10:00
Campbell Barton
7a9028cad1 Fix UV rip failing to disable proportional edit-mode 2020-07-10 18:58:36 +10:00
Campbell Barton
a148c4676b Cleanup: spelling 2020-07-10 16:04:09 +10:00
Campbell Barton
03f5acd445 Cleanup: clang-format 2020-07-10 16:03:12 +10:00
Campbell Barton
8b660ea0ec Fix UV path redo in vert/edge mode
Redo was only working in some situations,
some options were also not being forwarded.
2020-07-10 13:41:51 +10:00
Campbell Barton
96068324cd Fix BM_loop_at_index_find lookup 2020-07-10 13:35:44 +10:00
Campbell Barton
89cb41faa0 UV: allow ripping face-regions
This changes the behavior of rip when entire faces are selected.
Now face regions are isolated and moved instead of ripping the edge-loop
extracted from the selection boundary.

This is a convenient alternative to separate selection & move.
Resolves T78751.
2020-07-10 13:01:46 +10:00
Campbell Barton
3fdd092649 Cleanup: face-center mesh calculation
Loop over faces and calculate their centers instead of zeroing the
face center array and accumulating all faces vertex corners.

Move subsurf face center extraction into it's own loop since it works
differently.
2020-07-10 12:44:42 +10:00
Campbell Barton
b0378440ce Fix missing adjacent UV check for recent UV path select
Path selection could cross UV islands if the destination element was
on an island boundary.
2020-07-10 12:19:30 +10:00
Campbell Barton
8f24ec2e26 Cleanup: add BLI_linklist_find_last
This makes adding to the end of a linked list simpler,
In most cases we avoid this in favor of BLI_linklist_append.

For one off operations it's OK.
2020-07-10 12:14:32 +10:00
Campbell Barton
3dd460aa7f Cleanup: spelling 2020-07-10 11:49:46 +10:00
Campbell Barton
a0d3b60015 Cleanup: use FLT_MAX for the maximum path selection cost
A large number below FLT_MAX was used to avoid overflow,
however this doesn't cause any problems.
2020-07-10 11:49:46 +10:00
Campbell Barton
0b77e2f4c4 Cleanup: variable names, use define for maximum path cost 2020-07-10 11:49:46 +10:00
Campbell Barton
92bc277950 Cleanup: undeclared warnings 2020-07-10 11:49:46 +10:00
Jacques Lucke
3623db7784 BLI: add more operator overloads for float2 2020-07-09 19:04:47 +02: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
Jacques Lucke
1e3247c078 Fix: add missing extern "C" 2020-07-09 18:19:39 +02:00
Pablo Dobarro
6778949e01 Fix repeated Face Sets IDs when joining meshes
As Face Sets IDs start from 0 and increase by 1 each time a new face set
is created in a mesh, when joining multiple meshes it could happen that
the same ID is used by several unrelated areas in multiple objects. This
checks the Face Sets IDs when joining meshes and ensures that they are
not repeated between different objects when joining them, so in the
resulting mesh all previous face sets will have different IDs.

Reviewed By: sergey

Differential Revision: https://developer.blender.org/D8224
2020-07-09 17:56:56 +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
Pablo Dobarro
bd84b2cbcc Fix Sculpt Vertex Colors sample color changing brush alpha
It is not practical to change the alpha of the paint color with the
color picker as with the current brush design alpha is the main strength
control for the brush.

Reviewed By: sergey

Differential Revision: https://developer.blender.org/D8208
2020-07-09 17:42:27 +02:00
Pablo Dobarro
13b1374497 Fix crash when using Mask by Color in Multires
Reviewed By: sergey

Differential Revision: https://developer.blender.org/D8207
2020-07-09 17:41:14 +02:00
Szymon Ulatowski
9de09220fc EEVEE: Implement the missing Sky texture
I'm not sure if the Sky was deliberately left out or was just waiting for a
better moment, but so many I was disappointed that Sky in EEVEE is
completely white.

There are already 2 implementations (osl and gpu) so this is the third one.
Looking at other cases it seems that we are not supposed to share sources
between cycles and the rest? So the new util_sky_model files are just
copies of what is already in cycles, except that the data file uses the RGB
variant of the Hosek/Wilkie model, because we output RGB anyway (but can be
easily changed to XYZ if desired - the results are nearly identical).
I am not sure if it is okay to pass 3*9 float values as 3 mat4 uniforms (I
wanted to use mat3 but it does not work).
Also, should I cache the sky model data between renders if the parameters
do not change?

Reviewed By: fclem, brecht

Differential Revision: https://developer.blender.org/D7108
2020-07-09 17:31:36 +02:00
Jacques Lucke
42c99ec15b BLI: rename rand.c to rand.cc 2020-07-09 16:37:44 +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
Jacques Lucke
31ad43a3c7 Blenloader: make BLO_read_data_address work in C++ 2020-07-09 15:29:25 +02:00
Brecht Van Lommel
544c435fdd Fix T78745: Cycles error baking with multiple materials 2020-07-09 12:28:33 +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
Campbell Barton
ea5fe7abc1 UV: path selection support
This adds support for path selection for vertex edge & face selection
modes, matching mesh editing behavior, useful with the UV rip tool.

Region select & edge tagging are currently not supported,
although they could be added eventually.
2020-07-09 18:43:23 +10:00
Campbell Barton
0b8221683f BMesh: add utility functions
- BM_edge_uv_share_vert_check
- BM_face_uv_calc_center_median_weighted
- BM_loop_at_index_find
2020-07-09 18:23:16 +10:00
Campbell Barton
0b3bf69d3c Cleanup: move BMesh UV queries into their own file 2020-07-09 13:33:15 +10:00
Campbell Barton
754c5d6a14 Cleanup: clang-format 2020-07-09 13:29:48 +10: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
403384998a BLI: improve constructors and conversions to span
This allows us to avoid many calls to `as_span()` methods. I will
remove those in the next commit. Furthermore, constructors
of Vector and Array can convert from one type to another now.

I tested these changes on Linux with gcc and on Windows.
2020-07-08 22:27:25 +02:00
Jacques Lucke
4b85ed819d Cleanup: remove unused function
This is not necessary in C++17 anymore.
2020-07-08 20:41:00 +02:00
Jacques Lucke
f7d5d4ee3b Cleanup: use c++17 helper variable templates 2020-07-08 20:39:20 +02:00
Bastien Montagne
e4926c167b Fix T78718: Crash when deleting particle system modifier with the X Shortcut.
Again those backward pointers not properly flagged in RNA, hence
generating infinite loops.
2020-07-08 18:08:08 +02:00