Age | Commit message (Collapse) | Author |
|
|
|
|
|
also remove CDDM_Check, theres no need for it.
|
|
to tessellate).
The main idea is to store (during tessellation) or recreate (during tessdata update) a tessfaceverts-to-loops mapping, and then update all tessdata
in one pass, instead of calling `BKE_mesh_loops_to_mface_corners` repeatedly for all tfaces!
Differential Revision: https://developer.blender.org/D226
Reviewed by Campbell, thanks a lot!
|
|
|
|
|
|
|
|
|
|
|
|
Issue seems to be caused by thread-unsafe IMB_freeImBuf.
Now use generic BKE_image_release_ibuf to de-reference
image buffer which was acquired from image datablock.
|
|
reflect that. Previous name GPU_Buffers was very similar to GPU_Buffer,
renamed to GPU_PBVH_Buffers
|
|
|
|
modification. In that case no pbvh needs to be freed and recreated and
we can get away just with draw buffer update (all of them for now. When
pbvh nodes get logged for undo we will be able to only update the
affected ones).
|
|
|
|
* Support for symmetry in lasso masking
* Optimize away symmetry multiplication of gravity vector if no gravity
active
* Move flip_v3_v3 to paint_utils (used in masking as well)
* Use OpenMP for mask flood fill too.
|
|
sculpted object if last sculpt stroke ends outside the mesh.
Code here used the last true location which is invalid in that case,
just reuse the average stroke location instead.
|
|
Also fix previous commit original coordinate change for proxy calculation
(broke all non-anchored brushes -facepalm-) and cache the gravity support
result.
|
|
This must be an ancient bug, almost as old as anchored brushes
themselves. Code did not do sphere node intersection against original
bounding boxes if an anchored brush required it. In practice this was
not easy to see because vertices were displaced inside brush radius most
of the time. However in the provided report file, displacement was far
away from the brush sphere, making the issue apparent.
Also added original check in proxy combination code (might cause issues
with dyntopo but quick test did not show any) and did some style int ->
bool style changes.
|
|
Turns out we didn't properly free node proxies that gravity did use and
strokes ended up accessing previous data. Also deactivated gravity when
a smooth brush is used. It is kind of distracting to get the mesh
gravitated while smoothing.
|
|
This is now always enabled, when you want to paint on a individual faces you
can use face selection masking instead.
Fixes T37855.
|
|
Summary:
Issue here most probably is that the start point in ray-casting is too
far away from the mesh. As a result the triangle intersection code can
sometimes miss the ray intersection. To solve this, we project the ray
segment to the boundary of the root node.
Reviewers: brecht, sergey, campbellbarton
Reviewed By: brecht
Maniphest Tasks: T37177
Differential Revision: http://developer.blender.org/D115
|
|
|
|
Summary:
Behaves very much the same as cache for Movie Clip datablock:
- Image now have `MovieCache *cache` field which replaced
legacy `ListBase ibufs`.
This allows image datablock to easily keep of image
buffers which are owned by itself. This field isn't
saved to the file and getting restored on undo steps.
However, cache limit is global for movies, sequences
and image datablocks now. So overall cached image buffers
size will not go above cache limit size in user
preferences.
- Image buffers which are marked as BITMAPDIRTY will never
be freed from the cache.
- Added utility function to iterate over image buffers
saved in movie cache.
- Movie cache cleanup check callback now have ImBuf argument
which can be used in a condition of cleanup.
- Added some utility functions which replaces legacy ibufs
iterations with image cache iteration which happens from
inside a lock.
- Fixed `image_mem_size()` which was only counting one of
the buffers if both float and byte buffer present.
Additional notes:
- `BKE_image_get_first_ibuf()` is rather stupid, but direct
access to ibufs->first was also the same stupid idea.
Would consider avoid this function is another project.
- There are some places which doesn't look threadsafe, but
they already were not so much threadsafe anyway before.
So think not a big deal with solving this later.
Finally solves infinite memory usage by image sequences! :)
Reviewers: brecht, campbellbarton
Reviewed By: brecht
CC: sebastian_k
Differential Revision: http://developer.blender.org/D95
|
|
|
|
* world to object matrix is calculated for view vector as well, reuse
that.
* if no orientation exists use world negative axis instead of object
negative axis for gravity.
there's also the issue of mirroring, it may be wise to invert the
gravity effect there but it may be better to have artist feedback on
that.
|
|
Reviewers: sergey, brecht, campbellbarton, jwilkins
Differential Revision: http://developer.blender.org/D89
|
|
This API function lets original data loop over its derived data,
Use for vertex paint, replacing custom function.
|
|
|
|
|
|
* Move symmetry options to the paint struct (where all paint systems can
make use of it)
* Rename draw_pressure to stroke_active. This is what is really checked
on those occasions that this is used. Also move turning on/off of this
option to the stroke level and avoid doing it on every stroke system.
* Rename BRUSH_RESTORE_MESH to BRUSH_DRAG_DOT. In image painting this
won't restore any mesh, so better have a name that is directly linked to
what the flag actually does.
|
|
sculpt struct has at least dyntopo subdivision turned on.
|
|
an undo if we are in image paint mode and use the paint undo stack. Also added missing GPU update.:
|
|
Summary:
Seems to be known TODO in the code, but no idea why it
was never solved, especially since tweak is so much easy.
It might be arguable that we need to support painting
color space, but it's still much better to convert to
sRGB space. It's gonna to cover 90% of cases anyway.
Reviewers: campbellbarton, brecht
Reviewed By: brecht
Maniphest Tasks: T37670
Differential Revision: http://developer.blender.org/D65
|
|
|
|
also add BLI_memarena_calloc to be used when calloc isnt enabled for the arena.
|
|
as well
This allows you to choose between subdivide edges, collapse and both. Being able to
only collapse edges can be useful to simplify meshes with accidentally introducing
more detail.
Reviewed By: psy-fi, carter2422
Differential Revision: http://developer.blender.org/D15
|
|
rename change/is_change/is_changed/modified -> changed
also use bools over int/short/char and once accidental float.
|
|
|
|
|
|
Current redraw options also did an unnecessary normal recalculation on
updated nodes.
Also, for the box and lasso mask only push an undo node if any vertex
has actually been influenced.
|
|
Now box masking will take the symmetry options into account.
|
|
|
|
|
|
|
|
OPERATOR_CANCELLED.
|
|
also quiet warning without openmp.
|
|
of lasso enclosing rectangle.
|
|
Thanks to Campbell for the advice!
|
|
|
|
for now.
Used to be ultra terrible but with threading (openmp) there is slightly
better performance
and is ready for testing. To use press shift-ctrl-lclick. Still no
ability to
remove mask. Coming soon.
Also make box selection threaded (openmp) and comment fix.
|