If the option is enabled, the output is clamped to the target range.
The target range is [To Min, To Max]. The option is enabled by default.
The clamp option is implemented in EEVEE by linking to the `clamp_value`
GLSL function. And it is implemented in Cycles using a graph expand
function.
Reviewers: brecht, JacquesLucke
Differential Revision: https://developer.blender.org/D5477
This patch adds a new node that clamps a value between a maximum and
a minimum values.
Reviewers: brecht
Differential Revision: https://developer.blender.org/D5476
The calls to `BKE_animsys_evaluate_all_animation()` and
`BKE_mask_evaluate_all_masks()` used the wrong timecode to evaluate the
animation system. This happened:
- Sequencer in scene A was rendered at frame X.
- Scene strip for scene B which should be evaluated at frame Y.
- BKE_animsys_evaluate_all_animation() was called with frame Y, which
also re-evaluated the animation data in scene A.
- Other sequencer strips with animated values were then evaluated for
frame Y and not frame X.
Since the depsgraph for rendering the scene strip is already OK and does
its job, it's no longer necessary to re-evaluate all the animation in
this way.
Removed `BKE_mask_evaluate_all_masks()` because it's no longer used.
Reviewers: sergey, brecht, iss
Differential Revision: https://developer.blender.org/D5394
This patch adds a new Map Range node that linearly remaps an input
value from a range to another. This node is similar to the compositor's
Map Range node.
Reviewers: brecht, JacquesLucke
Differential Revision: https://developer.blender.org/D5471
In some rare cases it is convenient to store a short array value
as a custom property, e.g. a vector or color. For example, it may
be helpful when importing/exporting certain formats that support
custom or nonstandard attributes on objects.
The custom property storage already can handle arrays in order to
support properties defined via python. The only thing missing is
UI support (and some bugs), and this patch fixes that:
- Allow editing short array properties via Custom Properties panel.
- Fix a UI layout sizing bug triggered by the previous item.
- Fix a dependency graph bug with drivers using such properties.
- Make RNA_*_get_default_array code robust in case of size mismatch.
- Support custom default values for array properties, allowing
both an array and a scalar value.
Reviewers: campbellbarton
Differential Revision: https://developer.blender.org/D5457
i18n code does not work from threads on some plaforms, so it is disabled
in Blender when called from non-main thread.
Means that we have to go to a slightly different approach, with dirty
tag and generating string on request for UI.
Note: Also had to update the `info` string size, to fit with expensive
asiatic scripts in utf-8... Using mem for that kind of runtime data is
not really nice, but for now it will have to do.
Make the transforms section of the properties panel consistent with
the transforms section of the side-bar, and to expose some currently
hidden BBone properties in the Bendy Bone section.
- Object transformations were not consistent with Pose Bone
transformations in that they did not use single-column layout.
- Even in Pose Bone transformations,
the rotation mode option was after Scale.
- Edit Bone Transforms panel included "Tail Radius" and
"Envelope Deform Distance", neither of which belong there. See T65670.
- Expose bbone_x and bbone_z.
D5454 by @Mets
Not even in append case. If those objects are already part of a
collection, we can now leave them fully un-instantiated in any scene,
since user can easily do it themselves as they need to.
merge/dissolve distance is actually a maximum, not a minimum
Reviewers: campbellbarton
Maniphest Tasks: T66922
Differential Revision: https://developer.blender.org/D5462
Some brush tools were being executed too often when using devices with high polling rates, causing performance issues. This should improve the performance of brushes that don't need those updates.
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D5429
This fixes inconsistencies in materials between objects and obdata
due to placeholders generation for missing libdata.
Note that we cannot do that when generating the obdata placeholder,
as not all objects using it might be already loaded...
So this has to be done near the end of the reading/linking process.
Reported here by Blender Studio.
Reviewers: brecht
Subscribers: jbakker, zeddb
Tags: #datablocks_and_libraries
Differential Revision: https://developer.blender.org/D5428
'cached' particles (for paths actually) are only generated for some kind
(hair, keyed, and baked system afaik), not for all.
Note that we could probably just use directly `totpart` and `totchild`,
but keeping code as close to what it was as possible, for now...
- Grey out the option when factory settings have been loaded.
- Note it it's tool-top that it's ignored when factory settings
have been loaded.
Suggestions by @JulienKaspar
Change the default drawing method of vector sockets to use a column layout.
This allows more interactive use of nodes and avoids the one or two clicks
needed to edit vector sockets in the old default component layout.
Developers may still use the component layout by flaging the socket with the
`SOCK_COMPACT` socket flag. For now, we choose to draw the SSS scale vector
of the Principled and SSS nodes in a compact form because they don't require
much interactivity.
Reviewers: brecht, JacquesLucke
Differential Revision: https://developer.blender.org/D5458
Before, the length variable was reused for Sample and Merge Simplify. Now, the Merge has its own distance property and variable in the modifier struct.
See Design task T68277, and patch D5423.
This commit includes edits by @ideasman42 to patch in
branch temp-D5423-update, plus responses to his comments.
The Shear transform operator is now disallowed in the timeline and
dopesheet editors.
Reviewers: campbellbarton
Differential Revision: https://developer.blender.org/D5440
The old text, "Save modified preferences on exit" suggests that only the
modified preferences are saved. This is not the case: all preferences
are saved at once. This distinction is especially important after having
loaded factory default settings.
As discussed with @campbellbarton and @JulienKaspar.