Age | Commit message (Collapse) | Author |
|
This is a part of T58609, but work is still needed to properly
support this flag in the draw manager.
|
|
Move all mask-related fields from Object and OperationDepsNode
to Object_Runtime and IDDepsNode. Auto-apply DEG_TAG_GEOMETRY
if the mask changes after DEG rebuild. Update DEG API and all
code that uses it.
This fixes "source mesh data is not ready" errors from Data
Transfer modifier when parameters are changed in the UI after
the recent mesh_get_eval_final fix.
Reviewers: sergey
Differential Revision: https://developer.blender.org/D4025
|
|
It can't be used during modifier evaluation, and rna
enum code should access the evaluated objects.
|
|
This fixes the problem where not all faces got hardened properly
when using a hardening mode in the bevel modifier.
|
|
|
|
When a modifier depends on some other object's position, then it also
depends in its own position, this has to be also told to depsgraph.
Fixes several modifiers where moving target would update the modifier,
while moving modified object itself would not.
|
|
|
|
Missing dependsOnNormal callback, potential usage of NULL mesh
pointer, style...
|
|
Also fixes a few issues (like meshdeform's EM variant not using editmesh
data), and adds a few optimizations (like only generating that source
mesh when we do have a vgroup defined in parameters, for modifiers only
using it to access vgroup)...
|
|
Now that function also takes expected number of vertices, and do the
checks against generated mesh internally.
|
|
Related to T57972.
|
|
Related to T57972.
|
|
Also fixes potential memory leak.
Related to T57972.
|
|
This modifier only uses mesh to get vgroup, which is only needed in case
modified object is indeed a mesh! Building a mesh from curve here is not
only useless and time-consuming, it will also easily fail the assert
about same number of vertices!
Note that surface_project and subsurf option also need more work at some
point, but this is probably not that urgent for now.
Also, use MOD_get_vgroup() helper in modifier code itself and pass
resulting MDeformVert & index to BKE_shrinkwrap's `shrinkwrapModifier_deform()`,
this is simpler and avoids duplicating vgroup handling code.
Related to T57972.
|
|
This modifier only uses mesh to get vgroup, which is only needed in case
modified object is indeed a mesh! Building a mesh from curve here is not
only useless and time-consuming, it will also easily fail the assert
about same number of vertices!
Also, use MOD_get_vgroup() helper in modifier code itself and pass
reluting MDeformVert & index to BKE_curve's curve_deform_verts(),
this is simpler and avoids duplicating vgroup handling code.
Also fixes crash when used on lattice.
Related to T57972.
|
|
This modifier only uses mesh to get vgroup, which is only needed in case
modified object is indeed a mesh! Building a mesh from curve here is not
only useless and time-consuming, it will also easily fail the assert
about same number of vertices!
Also fixes crash when used on lattice.
Related to T57972.
|
|
This commit makes it so that subsurf/multires modifiers will respect
the WITH_OPENSUBDIV option. The WITH_OPENSUBDIV_MODIFIER option is
now gone.
For artists it mean that subsurf modifier will behave same as it is
planned for 2.80. Multires will now support sculpting, but it has some
known limitations. Those will be worked on before the final release.
If OpenSubdiv is disabled, no subsurf/multires functionality will
present.
For the details see:
https://wiki.blender.org/wiki/Reference/Release_Notes/2.80/Modeling#Subsurf.2FMultires
|
|
|
|
D3966 by @kioku w/ edits.
This adds bisect and flip options to mirror modifier.
|
|
Quite usual fix for the caching systems.
|
|
Used wrong Loop variable in this case.
|
|
|
|
|
|
Makes it simpler to make some changes...
Also fix order of some includes (use alphabetical please).
|
|
That kind of implicit includes should really only be done when totally,
absolutely necessary, and ideally only with rather simple 'second-level'
headers.
Otherwise not being explicit with includes always end up biting in
unexpected ways...
|
|
The Nearest Surface Point shrink method, while fast, is neither
smooth nor continuous: as the source point moves, the projected
point can both stop and jump. This causes distortions in the
deformation of the shrinkwrap modifier, and the motion of an
animated object with a shrinkwrap constraint.
This patch implements a new mode, which, instead of using the simple
nearest point search, iteratively solves an equation for each triangle
to find a point which has its interpolated normal point to or from the
original vertex. Non-manifold boundary edges are treated as infinitely
thin cylinders that cast normals in all perpendicular directions.
Since this is useful for the constraint, and having multiple
objects with constraints targeting the same guide mesh is a quite
reasonable use case, rather than calculating the mesh boundary edge
data over and over again, it is precomputed and cached in the mesh.
Reviewers: mont29
Differential Revision: https://developer.blender.org/D3836
|
|
In general prefer API names don't start with adjectives
since it causes grouping of unrelated API's for completion.
|
|
|
|
If the user only needs insertion and removal from top, there is
no need to allocate and manage separate HeapNode objects: the
data can be stored directly in the main tree array.
This measured a 24% FPS increase on a ~50% heap-heavy workload.
Reviewers: brecht
Differential Revision: https://developer.blender.org/D3898
|
|
Only affects internal API, bout could be exposed as an option for
the compatibility reasons with other software.
Is a part of some ongoing development of multires, but might or
might not be used.
|
|
|
|
D3834 by @Allosteric
|
|
Was only used by subsurf in the past years, it is unlikely
other modifiers will every need this any time soon.
|
|
|
|
Those were used for partial updates during edit mode, which will
not be possible anymore with OpenSubdiv.
Optimization for OpenSubdiv would be to re-use topology refiner
if topology does not change. But this is something to be done
for both edit and object modes, no need to have separate code
paths for those.
This commit makes OpenSubdiv to properly work in edit mode.
|
|
|
|
Reverts workaround from last commit.
|
|
- Use smooth normals to displace in Above Surface mode.
- Add an option to align an axis to the normal in the constraint.
I've seen people request the alignment feature, and it seems useful.
For the actual aligning I use the damped track logic.
In order to conveniently keep mesh data needed for normal
computation together, a new data structure is introduced.
Reviewers: mont29
Differential Revision: https://developer.blender.org/D3762
|
|
|
|
|
|
There were a few copies of the same few lines in depsgraph build code,
so it seems to be logical to introduce a function for it, and make it
accessible from C code for completeness.
As an example, register the mask needs of the Data Transfer modifier.
|
|
|
|
DerivedMesh is now removed from edit-mesh modifier evaluation.
|
|
Use BKE_mesh_* prefix for mesh module.
|
|
|
|
Differential Revision: https://developer.blender.org/D3736
|
|
This commit includes several performance, stability, and reliability
improvements to cloth collisions.
Most notably:
* The implementation of a new self-collisions system.
* Multithreading of collision detection.
* Implementation of single sided collisions and normal overrides.
* Replacement of the `plNearestPoints` function from Bullet with a
dedicated solution.
Further, this also includes several bug fixes, and algorithmic
improvements.
Reviewed By: brecht
Differential Revision: http://developer.blender.org/D3712
|
|
Apparently, part of code got lost last minute prior to push.
|
|
|
|
Only active when WITH_OPENSUBDIV_MODIFIER is set to ON.
There is still some work to be done to make that one enabled by
default.
|