When setting the number of cavity samples to a high number blender could
write out of bounds.
This patch will harmonize the number of iterations in the same way how
it is done during execution.
Reviewed By: Clément Foucault
Differential Revision: https://developer.blender.org/D7425
The root cause is that viewport can draw cached version of themself but
the scene can have been updated and the pointed curvemapping could have
been freed.
To workaround this we just keep a copy of the curvemap at the viewport
level.
- Change the default cache method to replay
- Change the default resolution to 32 (The same as old smoke)
which have a speedup of about 4x (~4 FPS vs. ~16 FPS on initial
playback)
Peformance was tested with 3700x and RTX 2070
Differential Revision: https://developer.blender.org/D6853
Fixes T73799
Caused by rB2bf4c74130ff.
For undo, the ImageUser's scene should be NULL (see D7022 for
discussion).
PaintTiles were already doing it beforehand in ED_image_paint_tile_push,
but Image ops [scale/invert] are calling
ED_image_undo_push_begin_with_image directly.
Now actually set the UndoImageHandle iuser.scene to NULL (rather than
asserting)
ref T75675
Maniphest Tasks: T75675
Differential Revision: https://developer.blender.org/D7435
While review the behaviour was changed accidentally.
Now Solidify just crashes everytime.
This is the fix for that.
Reviewed By: mont29
Differential Revision: https://developer.blender.org/D7434
Can use existing layout features for right-alignment instead.
Differential Revision: https://developer.blender.org/D6549
Reviewed by: William Reynish, Julian Eisel
Round the corners of the splash screen image according to the theme's
User Interface > Menu Back > Roundness preference.
Previously the rounding was added to the image itself, which was fiddly
to do. The rounded corners of the popup background would not match
the one of the image if the preference was changed.
The current splash image will likely be updated to not include rounded
corners in a separate commit.
Differential Revision: https://developer.blender.org/D6847
Reviewed by: Julian Eisel (with some changes)
After the previous commit by Harley Acheson, scaling can be handled at
runtime so we don't need to have two splash screen image variants
anymore.
Also removes the `splash_scale.sh` script used to create the down-scaled
variant.
Always nice to get rid of some binary files from the repository :)
Previously, there had to be two splash images to deal with different
DPI settings and hiDPI screens. The larger version was simply downscaled
in an external program for the small one. When up-scaled, the images
would look rather badly.
We now handle scaling completely at runtime. The results should look
pretty much identical for most cases. When up-scaled it should look
better though.
New bundled splash images should have a width of 1000px or more (used to
be 1002px).
More details with screenshots and comparisons in D6999.
Reviewed By: William Reynish, Julian Eisel
Differential Revision: https://developer.blender.org/D6999
After recent changes, simple solidify modifier would crash with Fill Rim
turned off and Bevel Convex emabled.
Also fixes that simple solidify would not set the bevel weight flag so the
next modifier could use the bevel weights.
Simple cleanup with do_rim is also included.
Reviewed By: mont29
Differential Revision: https://developer.blender.org/D7428
- Menu drawing function used first instance instead of last.
- Menu hash function checked for the character without first
checking UI_BUT_HAS_SEP_CHAR was enabled.
Fix from 8a5a306a83 caused tweaking to fail in the clip editor,
as it wasn't using same convention of other selection operators that
returned the pass-through flag to allow tweaking too.
Use a regular context menu as a fallback for the outliner.
If there are no specific actions for the item under the cursor,
fall through to opening a regular menu.
This lets menu search find the context menu items which were previously
unavailable as menu search wont run operators.
The Layer brush was in Blender before 2.81, when the sculpt API was
introduced. It had a huge amount of bugs and glitches which made it
almost unusable for anything but the most trivial cases. Also, it needed
some hacks in the code just to support the persistent base.
The brush was completely rewritten using the Sculpt API. It fulfills the
same use case as the old one, but it has:
- All previous artifacts fixed
- Simpler code
- Persistent base now works with multires thanks to the sculpt API
- Small cursor widget to preview the layer height
- More controllable and smoother strength and deformation
- More correct masking support
- More predictable invert support. When using persistent base, the brush invert mode resets to layer height 0, instead of jumping from +1 to -1. The brush can still be inverted in the brush direction property.
Reviewed By: jbakker
Differential Revision: https://developer.blender.org/D7147
This mesh filter sharpens and smooths the mesh based on its curvature,
resulting in pinching hard edges and polishing flat surfaces. It fixes
most of the artifacts of the voxel remesher and those produced when
sculpting hard surfaces and stylized models with creasing and flattening
brushes.
It needs and accumulate_displacement step before each filter iteration which
can't be multithreaded in an easy way (it would need something to sync the
threads when modifying the data of neighbors in a different node), but this
does not affect performance in a significant way.
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D7335
When using the shift-smooth mode, sculpt_update_cache_invariants is
changing the brush datablock of the paint session if it finds a brush
named "Smooth" (which is a huge hack the brush management project should
try to solve). This is done after the PaintStroke data in the modal
operator is created, which holds a reference to the active brush in the
paint session that was active when the operator started. Because of
this, the StrokeCache was getting the correct smooth brush values but
the paint modal operator was applying the wrong ones from the previous
brush. This was causing the smooth brush behaves unpredictably depending
on the current active brush.
This patch updates the brush in PaintStroke on each modal callback, so
it always gets the values from the current active brush in the Paint
Session.
The way brush switching works and a way to make it more flexible needs
to be discussed in the future as part of the brush management project.
The default smooth brush parameters and curves will probably need to
be updated after this change, as previously they were set using an
incorrect behavior.
Reviewed By: jbakker
Differential Revision: https://developer.blender.org/D7354
All tools should now use the API function to get the active face set
directly from the face under the cursor.
Reviewed By: jbakker
Differential Revision: https://developer.blender.org/D7362
The operator was disabled when it was added because Face Sets were not
supported in Multires.
Reviewed By: jbakker
Differential Revision: https://developer.blender.org/D7312
This solution involves adding a uniform to each fragment shader that is
used by gizmo drawing and use the framebuffer state to set this uniform
accordingly.
This solution can also be carried to external shaders (addons).
A single line of code would then be enough to fix the issue.
The only trickery here is the dummy define:
`#define srgb_to_framebuffer_space(a)`
This is in order to avoid breaking other DRW shaders that use the same
fragment shader code but do not need the tranformation.
Related to T74139
Reviewed By: brecht, campbellbarton
Differential Revision: https://developer.blender.org/D7261
Geometry that was just added to sculpt mode has the SCULPT_FACE_SET_NONE
assigned, so it was hidden by default. By doing this when entering
sculpt mode a new visible face set is created for it, making it easier
to isolate it again if you want to do further tweaking with the sculpt
tools.
Also, this also fixes the issue that may happen when changing the mesh
visibility in edit mode. Now visibility changes done outside sculpt mode
are stored in the face sets when entering sculpt mode, so mesh
visibility should stay the same.
Reviewed By: jbakker
Maniphest Tasks: T75104
Differential Revision: https://developer.blender.org/D7249
mouse over
Caused by rB5929dd7129f6.
Above commit would reset the gizmo highlight on node mouseover.
This would also assert in gizmo_rect_pivot_from_scale_part() and stop
the drag.
So now, only reset the gizmo when we are not in EVT_GIZMO_UPDATE,
allowing for starting the tweak outside a node and then travelling
'inside' while still preventing to use it over a node when starting a
tweak there.
Maniphest Tasks: T75535
Differential Revision: https://developer.blender.org/D7383
Issue was with setting of frame to load from an image sequence,
synchronization was not done properly at some point, leading to
generation of an invalid final filepath to be read.
Use a single color by object in grease pencil is not practical because is necessary to see all layers.
To tint by layer, the layer tint parameter is used and not the material color as is done in other modes.
This function has been backported from 2.82 because was removed in the 2.83 refactor.
Add an option to solidify complex which will make faces which have thickness
controlled by vertex weights flat/even, and parallel to their original face.
For each face it uses the minimal weight assigned to its vertices to control
the thickness.
This will help users for example in architecture or basic CAD design by finally
making solidify work there at all if altering thickness is needed.
Differential Revision: https://developer.blender.org/D7340
Reviewed and minor cleanups by Batien Montagne (@mont29).
Adds a slider to solidify which allows the user to add bevel weight on the outside
or remove bevel weight from the inside.
Also includes a very small improvment for working with subsurface modifier where
the rim edge in complex solidify will now also have a chance to get a crease if
there is only two adjacent edges.
Differential Revision: https://developer.blender.org/D7334
Reviewing and minor cleanups: Bastien Montagne (@mont29).
The problem was that in direct_link_id_restore_recalc, recalc_undo_accumulated
should contain the changes from the target state to the current state. However
it had already been cleared at that point, to start accumulating changes up to
the next undo push.
Delaying the clear of this flag seems like the obvious solution, but it's hard
to find the right place for that (if there is one). Instead this splits up the
flag into two separate variables.
Reviewed By: mont29
Differential Revision: https://developer.blender.org/D7402
- Show dimmed text for the menu entries leading up to the menu item.
- Show icons between the menu text and menu item.
- Use unicode right pointing triangle instead of arrow.
The idea is to push both base mesh geometry and PBVH coordinates
so it is possible to undo everything without loosing data which was
not flushed from sculpt session to base mesh.
It is possible do memory optimization to avoid push custom data
layers which are not touched by operator, but before doing that
better to ensure this is a correct and working approach.
Differential Revision: https://developer.blender.org/D7381