Age | Commit message (Collapse) | Author |
|
Following the most widely used convention for including todo's in
the code, that is: `TODO(name):`, `FIXME(name)` ... etc.
|
|
|
|
Expanded objects with children immediately after a colored collection
would have the color applied to their hierarchy lines as well. The fix
is to reset the collection color to `COLLECTION_COLOR_NONE` for each
open subtree.
|
|
Oversight that should have been in rB6f3c279d9e70
|
|
Based on http://jcgt.org/published/0008/01/03/
This is a simple trick that does *not* have a huge performance impact but
does work pretty well. It just modifies the Fresnel term to account for
the multibounce energy loss (coloration).
However this makes the shader variations count double. To avoid this we
use a uniform and pass the multiscatter use flag inside the sign of f90.
This is a bit hacky but avoids many code duplication.
This uses the simplification proposed by McAuley in
A Journey Through Implementing Multiscattering BRDFs and Area Lights
This does not handle area light differently than the IBL case but that's
already an issue in current implementation.
This is related to T68460.
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D8912
|
|
This add basic null safe handling for this operation.
|
|
The search should check if a panel is active before changing its
expansion, otherwise it sets the expansion for all of the region's
panels, even invisible ones in other tabs.
|
|
This was causing flashing colors in the node editor grid.
This is because in some cases the flat color is only set on the provoking
vertex which is the last of the primitive by default.
|
|
This makes wide line supported on MacOS and other implementation that
does not support wide line by default.
This workaround works for all Line types but only if using one of the 5
default shaders.
The workaround is completely isolated and invisible to the outside. It has
no side effect.
Note: This does not affect the GPUBatch drawing.
|
|
This is not an exhaustive change, just for the 2D cursor and
UDIM grid properties. Also vertically align the "UV Vertex"
buttons like in the 3D view panels.
|
|
Checking for the layout alignment is not a reliable way to filter out
which items need the additional icon/text offset. Instead check if the
buttons are icon-only (which we rarely do, e.g. for collection colors in
the Outliner context menu).
|
|
Unused variables, missing include for declaration, missing 'static'
specifier. Also rename function to match naming convention.
|
|
For example you can now start entering text in the Properties or
Outliner search, and press the 'x' while the button is still in
text-edit mode.
This way you don't have to exit text editing first, before being able to
quickly clear the string with a mouse click. So this is a small
improvement for convenience.
It also works for the eyedropper (change to picking an object while text
editing) or the '+' and '-' icons in the file saving dialog.
|
|
E.g. the 'x' icons or eyedropper icons in text buttons. They didn't use
to have any mouse over feedback, now we dim the icon until hovered.
This kind of feedback helps users see that the icons are interactive,
and if they are within their interaction hotspot.
|
|
I think this wasn't allowed before because the section of a curve was
built in multiple parts. But since rBe34d3e32dda7, the whole slice
of a curve is built in one piece, so we can easily support curve
caps for all geometry types, including the new custom profile option.
Note that this also allows "caps" when the fill type is not full.
They could easily be disabled by checking for "Full" fill type
if that was preferred in the future.
See the patch for images.
Differential Revision: https://developer.blender.org/D8911
|
|
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
|