Age | Commit message (Collapse) | Author |
|
Currently, there its a function that sets manually the fully_hidden flag
of the nodes from the visibility operators in paint_hide.c. The undo
code was not updating the flag, so the visibility state of the nodes was
incorrect after preforming undo operations. This sometimes was drawing
fully hidden nodes with empty buffers, causing artifacts in the
geometry.
I added a function to mark nodes which visibility state changed (similar
as we are updating the mask flags and the nodes bounding boxes). This
way, the tools, operators and undo code don't have to update the
visibility flags, making everything much simpler to understand and
maintain.
I did not remove the flag update code from the current visibility
operators in this patch, but after reimplementing them (and all the new
ones) in the new visibility system, all visibility updates should be
done using this method and the BKE_pbvh_node_fully_hidden_set function
should be removed.
Reviewed By: jbakker
Maniphest Tasks: T72721
Differential Revision: https://developer.blender.org/D6767
|
|
|
|
These were the last remaining new sculpt tools that did not support multires.
Performance could be improved still, but it should work.
Fixes T68899
|
|
The other direction is faster.
|
|
This is to be used by the new sculpting tools.
|
|
Makes it easier to initialze adjacency, avoid extra re-allocations during
initialization, reduces memory footprint.
|
|
|
|
Deformation of subdivision surface modifier was using wrong coordinates
for the coarse mesh: as the modifier flow goes the coordinates are to be
taken from the input array of coordinates.
|
|
|
|
T68035 by @luzpaz
|
|
TLS and Settings can be used by other types of parallel 'for loops', so
removing 'Range' from their names.
No functional changes expected here.
|
|
Was a mistake in normals calculation: need to consider all grids for correct
average in the center of the face.
Reviewers: brecht
Reviewed By: brecht
Maniphest Tasks: T66712
Differential Revision: https://developer.blender.org/D5254
|
|
Apply clang format as proposed in T53211.
For details on usage and instructions for migrating branches
without conflicts, see:
https://wiki.blender.org/wiki/Tools/ClangFormat
|
|
The issue was caused by lack of proper accumulation for
averaging. Doing it incrementally introduced a bias.
|
|
|
|
The work data for materials flags was never freed.
|
|
|
|
On CCG side it is done similar to displacement, where we have
a dedicated functor which evaluates displacement. Might be seemed
as an overkill, but allows to decouple SubdivCCG from mesh entirely,
and maybe even free up coarse mesh in order to save some memory.
Some weak-looking aspect is the call to update normals from the
draw manager. Ideally, the manager will only draw what is already
evaluated. But it's a bit tricky to find a best place for this since
we avoid dependency graph updates during sculpt as much as possible.
The new code mimics the old code, this is how it was in 2.7.
Fix shading part of T58307.
|
|
While \file doesn't need an argument, it can't have another doxy
command after it.
|
|
Move \ingroup onto same line to be more compact and
make it clear the file is in the group.
|
|
Needed for clan-format not to wrap onto one line.
|
|
BF-admins agree to remove header information that isn't useful,
to reduce noise.
- BEGIN/END license blocks
Developers should add non license comments as separate comment blocks.
No need for separator text.
- Contributors
This is often invalid, outdated or misleading
especially when splitting files.
It's more useful to git-blame to find out who has developed the code.
See P901 for script to perform these edits.
|
|
|
|
|
|
|
|
Needed for clang formatting to workaround bug/limit, see: T53211
|
|
Display statistics from CCG structure.
This makes values to be different from what is shown in object
mode, since CCG is operating on individual grids, and object
mode will stitch those grids. But on another, those values from
CCG is what sculpt mode is actually "sees" or "uses".
The number of faces should be the same in both sculpt and object
modes.
|
|
|
|
|
|
|
|
|
|
Matches type better, avoiding possible confusion.
|
|
Differential Revision: https://developer.blender.org/D3719
|
|
|
|
|
|
|
|
Makes it so smooth brush works properly, without causing grids
to become disconnected from each other.
This need to optimize the code for brush, to only average edges
and vertices which are adjacent to modified faces.
|
|
Similar to previous commit, but for vertices.
|
|
This information is stored for each non-loose edge.
For each of such edge we store:
- List of CCG faces it is adjacent to.
This way we can easily check whether it is adjacent to
any face which is tagged for update or so.
- List of boundary elements from adjacent grids.
This allows to traverse along the edge and average all
adjacent grids.
|
|
Forgot to free memory used by grid to face mapping array.
|
|
|
|
Use topology refiner where possible, which will make code more
portable and less dependent on all the possibly outdated pointers.
|
|
|
|
Will speed up (or rather bring speed back to what it is supposed to be)
for brushes like smooth.
|
|
|
|
Currently is only working on an "inner" grid boundaries.
Need to implement averaging across face edges.
|
|
This makes it so coordinates and normals for CCG are calculated
with mutires displacement taken into account. This solves issues
with multires displacement being lost when entering sculpt mode.
The missing part is averaging of normals along grid boundaries.
But even then sculpting shows decent results.
The plan to solve that would be to introduce function to stitch
grids, which can also be used by Smooth brush which requires
this.
|
|
|
|
Allows to do re-shaping easier, since we will know for sure
what was the limit surface the CCG is created for.
|
|
|