Age | Commit message (Collapse) | Author |
|
This adds XYZ symmetry as a property of meshes and updates all modes to
use the mesh symmetry by default to have a consistent tool behavior
between all modes and when switching objects.
Reviewed By: brecht, mano-wii, campbellbarton
Maniphest Tasks: T79785
Differential Revision: https://developer.blender.org/D8587
|
|
This object operator exits and frees the edit data of the
current object and enters the same mode in another one in a single step,
without going through object mode or keeping multiple edit object data
active. It is assigned to the D key.
This solves all conflicts that the right/click select keymap and the
emulate 3 button mouse produces for this operation and it is independent
of the state of Lock object modes.
Also, as the SculptSession is freed, when using Multires objects go
back to their preview resolution level, so it is possible to work on
high vertex count scenes without slowing down the viewport and other
performance problems.
Reviewed By: #user_interface, pablovazquez
Differential Revision: https://developer.blender.org/D7510
|
|
This removes the limitation of the sculpt overlays not being visible
with modifiers active.
Reviewed By: fclem
Maniphest Tasks: T68900
Differential Revision: https://developer.blender.org/D8673
|
|
This implements a new overlay that blends the bakground color over the
objects that are not in the same mode as the active object, making
them fade with the background.
This is especially needed for sculpt mode as there is no other overlay
or indication in the viewport to display which object is active.
This is intended to be used with D7510 in order to have a faster
workflow when sculpting models with multiple objects.
Reviewed By: fclem
Differential Revision: https://developer.blender.org/D8679
|
|
This adds an option for the HDRI rotation to follow the view rotation.
When this option is enabled, this allows EEVEE materials to be used as
matcaps for sculpting and painting.
This has an extra performance cost when orbiting around the model as the
lookdev cache needs to be recalculated, but in my test it is barely
noticeable.
Reviewed By: fclem
Differential Revision: https://developer.blender.org/D8566
|
|
This filter scales the mesh as it was a softbody, producing folds in the
surface. The orientation of the folds can be controlled using the filter
axis and orientation.
This is an example of a cloth filter that uses deform coordinates instead
of forces, but probably it does not make much sense to expose it to the
user in a different way and with different parameters. I'll remove
FilterCache->enabled_force_axis in a later commit and use always
enabled_axis in SCULPT_filter_zero_disabled_axis_components
for both forces and deformation filters, so this function can also be used
in the mesh filter.
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D8661
|
|
The deformation constraints strength were too strong and they were
preventing the cloth effects of the brushes with cloth deformation target
to create folds properly. This lowers the default, making the simulation
follow the deformation in a more relaxed way.
I'll make a separate patch to expose this as a property for certain brushes
and cloth deformers that may need higher values (like boundary with loop
falloff on a low poly mesh), but I think this default will work better for
most use cases.
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D8884
|
|
This commit caused regression on some sculpt paint cursors. A better
approach is being worked on.
This reverts commit 6ade522f277fb74d4691973b7bb55840300043a2.
|
|
This new feature allows to use the strokes as an eraser of any stroke below. This is very handy to open holes in filled areas.
After running some tests, we have decided to keep the additive effect of the holdout color. To get clean holdout areas, just move the color to black to remove any additive effect. To have additive effect can be used in situations like tint slightly a transparent window with blue to simulate the glass.
See T79878 for more details
Differential Revision: https://developer.blender.org/D8932
|
|
Steps to reproduce were:
* Create a marker in the timeline
* With the mouse over the marker region, press Shift+D
The function for moving markers was reused and had handling specific to
tweak events. This is not relevant in case of duplicating markers.
|
|
The hotspot was slighly too large, which could be apparent in cases
where there are multiple superimposed icons.
|
|
When repeat image was active the image was drawn in the foreground
making most uv overlays not visible. This change creates a shared
defined value for repeating and not repeating images.
|
|
We need to make sure the CurveProfile is initialized with the proper
number of segments when switching to profile bevel mode.
|
|
situations
In the situation that the PTCacheEdit is not available (e.g. when
editing unbaked Cloth or Softbody caches - or, as in the report, being
in Cloth or Softbody Editing Type for Hair particles), accesing the
corresponding ParticleSystem or ParticleSystemModifierData would crash.
Now access these later (after PE_start_edit had the chance to return
early on this non-valid situation).
Reviewers: JacquesLucke
Maniphest Tasks: T80900
Differential Revision: https://developer.blender.org/D8941
|
|
These were leftovers from the BGE removal.
Differential Revision: https://developer.blender.org/D8862
|
|
Caused by rB9a7f5f1bb422.
If using Auto IK (or targetless IK and Auto IK together), two temporary
constraints were added.
- from pose_grab_with_ik_add (even for targetless IK)
- from add_pose_transdata (even for Auto IK)
Since both both do similar things, but cannot work in tandem (with
possibly different chainlengths for example), we have to decide which
type to prefer over the other (as in: do not create a constraint for the
other).
It seems better to ignore the 'Auto IK' option on bones that will
have targetless IK set up for them specificallly [e.g. defining special
chainlength]. This way you can still work with 'Auto IK' ON generally
[with interactive chainlength control], but also have specific bones that
need their own custom chainlength.
For now, the most straightforward fix is to
- only add constraints for Auto IK from pose_grab_with_ik_add()
- only add constraints for targetless IK from add_pose_transdata()
Note: this area has some potential for later refactoring:
- move creation of all temporary constraints to a single place
[preferably pose_grab_with_ik_add]
- use only those temporary constraints in transform code [atm. we still
flip CONSTRAINT_IK_AUTO around on the "original" -- unneccesarily, after
rB9a7f5f1bb422 a dedicated temporary constraint is now always available]
- clarify CONSTRAINT_IK_AUTO vs. CONSTRAINT_IK_TEMP
- obeying standard rotation locks on bones in the chain (not just the
the IK locks) is not consistent between targetless IK and Auto IK
Potential candidate for 2.90.1 as well as 2.83 LTS
Maniphest Tasks: T80437
Differential Revision: https://developer.blender.org/D8930
|
|
Regression from {b248ec97769f}. A new parameter was introduced, but the
stub shader macros still had the old number of parametes. This
change adds a new dummy parameter to the stub macros.
|
|
mode
The transform convert of type TC_POSE was not being defined if the mode
was OB_MODE_WEIGHT_GPENCIL.
Maniphest Tasks: T80904
Differential Revision: https://developer.blender.org/D8934
|
|
Assigning window variables relied on notifiers that always used the
active window, no matter the window being assigned.
Pass the current window to the notifier.
|
|
Match edit-mesh behavior.
|
|
|
|
Unmatched ED_image_undo_push_{begin/end},
add doc-strings noting why this is needed.
Thanks to @Baardaap for the initial fix.
|
|
This code had grown overly complicated and hard to understand.
The improvements in this commit:
- Avoid allocating a duplicate of every active panel.
- Instead of complicated logic to calculate each panel's offset,
just keep track of the current offset while iterating through.
- More readable code structure, better comments.
Note that calcuting the X offset here is a relic from pre-2.5 when
panels could be aligned horizontally. I kept this in, but it would
be reasonable to remove it in the future.
|
|
This makes these variable names more consistent with current standards,
mostly by not over-abbreviating already short words. The following commit
will refactor this function.
|
|
Structure switch statements so new missing items cause warnings.
|
|
- UI_collection_color_icon_get -> UI_icon_color_from_collection
- UI_idcode_icon_get -> UI_icon_from_idcode
- UI_library_icon_get -> UI_icon_from_library
- UI_mode_icon_get -> UI_icon_from_object_mode
- UI_rnaptr_icon_get -> UI_icon_from_rnaptr
- UI_alert_image -> UI_icon_alert_imbuf_get
- UI_preview_render_size -> UI_icon_preview_to_render_size
- UI_id_icon_render -> UI_icon_render_id
|
|
Sculpt Mode
When entering scultp mode the visibility from the Face Sets is copied to
the base mesh. This steps was considering that if a vertex belongs to a
face with a visibible Face Set ID, it should be visible. As loose
geometry may not have any faces, those vertex were set to hidden.
Now this function check if a vertex visibility should be modified by the
face sets (by checking the loops), avoiding modifying the visibility of
loose geometry unintentionally.
Reviewed By: sergey
Maniphest Tasks: T80771
Differential Revision: https://developer.blender.org/D8899
|
|
Brushes that target the cloth simulation but are not the cloth brush
affect the entire mesh, so they don't have simulation areas and falloff.
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D8885
|
|
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D8886
|
|
Just converts verts to points and vice versa.
Materials and Attribute layers are preserved (so for example if you set
custom radii on the pointcloud, convert to mesh, then convert back to
pointcloud, this will be preserved).
Also not add a Radius layer by default (it is still added and
filled when adding a pointcloud object from the menu), a global Radius
property that will be used if there is no radius attribute can be added
later. A Radius attribute can also be added in the pointcloud data
properties (and filled via python).
This will also add a new utility function that copies materials between
datablocks: BKE_id_materials_copy
ref T75717
Differential Revision: https://developer.blender.org/D7391
|
|
|
|
|
|
Following rB7a0a60dde8b4, checking for temporary IK constraints in
uiTemplateConstraintHeader is not needed anymore (since the whole panel
will now be skipped earlier for those).
Differential Revision: https://developer.blender.org/D8902
|
|
(e.g. cannot be animated)
An RNA path is mandatory for RNA_path_from_ID_to_property, and for
EffectorWeights, this has to be provided using RNA_def_struct_path_func
(since this struct is shared across ParticleSettings, Modifiers and Rigid
Body World). Without this, the animation system cannot work and e.g.
keyframes cannot be inserted.
The case for Rigid Body World in rna_EffectorWeight_path was missing,
now added.
Rigid Body World Field Weights are capable of being animated, tested
with file from T80131 (e.g. gravity, wind).
Maniphest Tasks: T80131
Differential Revision: https://developer.blender.org/D8713
|
|
This impacts I/O add-ons. OBJ, FBX and Collada have been updated, glTF not yet.
Differential Revision: https://developer.blender.org/D4971
|
|
This is reasonable to do by itself, but it also enables drawing fcurves
outside of this loop, which is useful for D7737.
|
|
|
|
rBf2d26409e83b fixed a serious problem with invalid mesh after an
operation with the extrude manifold.
Since BKE_mesh_validate_arrays is a slow operation, the chosen
interval between versions is relatively small and also only the
mentioned invalid mesh problem is tested.
Differential Revision: https://developer.blender.org/D8898
|
|
|
|
|
|
|
|
The ffmpeg, guardedalloc and blenlib are quite isolated and putting them in
their own executable separate from blender_test is faster for development than
linking the entire blender_tests executable.
For Cycles, this also bundles all the unit tests into one executable.
Ref T79958
Differential Revision: https://developer.blender.org/D8714
|
|
Set flags directly on the target, and use common function for all cases.
This refactoring helps with the next commit for test executables.
Ref D8714
|
|
Bump Blender subversion from 4 to 5, and re-execute some versioning code.
Because of a mistake in the versioning code (corrected in rB1a4fc6dcd67b),
some of the versioning code didn't run in certain cases. This subversion
bump ensures that this code is still run.
|
|
Deprecated in Python 3.7
|
|
Using context overrides in Python caused problems for any operator that
changed the context and require these changes to be read back.
CTX_wm_area_set() for e.g. would set the struct member but future
calls to CTX_wm_area() would still return the value defined by Python
callers context overrides.
This also resolves a mismatch between polling and calling operators
from Python, where poll would override the Python context where calling
only overrode the context when a new context was passed in.
|
|
|
|
Prefer this over an unknown identifier as it gives a useful error.
|
|
Discovered an unused panel runtime flag as well, which this commit
removes.
|
|
While this isn't an issue with the default configuration it's possible
to register extra header types for a single region.
In this case the first header-type to successfully poll is drawn
without drawing other header types.
This issue was raised by T60195.
|