Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
When loading a mesh without UVs from a wavefront obj file which also contains
meshes with UVs, we ended up creating an uninitialized UV layer. Detect when
that happens and delete the invaliud layer. We could also check for UVs
before creating the layer, but as this is probably a rather rare occasion
and checking involves looping over the whole mesh we just detect it after the
fact and delete.
|
|
Was failing since 1efc94bb2f7b, probably because some include uses
`std::min()`/`std::max()` which messes with the windows min/max defines.
|
|
Wasn't an issue until 1efc94bb2f7b added a destructor, which would
attempt to destruct variables at uninitialized memory.
|
|
Mistake in 1efc94bb2f7b.
|
|
|
|
|
|
Set the created frame node to be the active node when joining nodes
with the `NODE_OT_join` operator.
This behavior was unintentonaly changed in rB545fb528d5e1 when the
operator's execute function was simplified by utilizing the node tree
topology cache.
Reviewed By: Hans Goudey
Differential Revision: http://developer.blender.org/D16440
|
|
|
|
Function `do_gammacross_effect_float` processed one color channel per
loop iteration instead of whole pixel.
|
|
|
|
The conversion is only able to handle NURBS curves with at least three
points. This commit just avoids the crash for shorter curves. If this
ends up confusing users, an error message could be added in the future.
|
|
|
|
Properly initialize clump curve mapping tables for duplis and other cases
where this was missed by making a generic init/free function instead of
duplicating the same logic in multiple places. Also fold lattice deform
init into this.
|
|
|
|
|
|
|
|
Introduces a new `AssetRepresentation` type, as a runtime only container
to hold asset information. It is supposed to become _the_ main way to
represent and refer to assets in the asset system, see T87235. It can
store things like the asset name, asset traits, preview and other asset
metadata.
Technical documentation:
https://wiki.blender.org/wiki/Source/Architecture/Asset_System/Back_End#Asset_Representation.
By introducing a proper asset representation type, we do an important
step away from the previous, non-optimal representation of assets as
files in the file browser backend, and towards the asset system as
backend. It should replace the temporary & hacky `AssetHandle` design in
the near future. Note that the loading of asset data still happens
through the file browser backend, check the linked to Wiki page for more
information on that.
As a side-effect, asset metadata isn't stored in file browser file
entries when browsing with link/append anymore. Don't think this was
ever used, but scripts may have accessed this. Can be brought back if
there's a need for it.
|
|
- Fix braces initialization warning
- Fixed missing static specifier
- Removed two unused functions
|
|
When the materal slot index on mesh faces exceeds the number of slots, rendering
would use the last material slot while other operations like baking would fall
back to the default material.
Now consistently use the last material slot in such cases, since preserving
backwards compatibility for rendering seems most important. And if there is
one material slot, it's more useful to use that one rather than falling back
to the default material.
|
|
|
|
Correct trim for cyclical curves mentioned in T101379, splitting the
curves if the start/endpoint is at the 'loop point'.
Correct implementation based on comments in D14481, request was made to
use 'foreach_curve_by_type' to computing the point lookups.
Included corrections from D16066 as it may not be a adopted solution.
Exposed selection input by adding it as input to the node.
Note: This is disabled for 3.4 to avoid making UI changes in Bcon3.
Differential Revision: https://developer.blender.org/D16161
|
|
Small change to the text sample used for Korean font previews
See D16428 for details.
Differential Revision: https://developer.blender.org/D16428
Reviewed by Brecht Van Lommel
|
|
|
|
collection
The issue was introduced by the optimization of hidden objects and modifiers
in the f12f7800c296.
The solution here detects that either an object is hidden or the modifier is
disabled and does special tricks to ensure the dependencies are evaluated.
This is done by constructing a separate minimal dependency graph needed for
the object on which the modifier is being applied on. This minimal dependency
graph will not perform visibility optimization, making it so modifier
dependencies are ensured to be evaluated.
The downside of such approach is that some dependencies which are not needed
for the modifier are still evaluated. There is no currently an easy way to
avoid this. At least not without introducing possible race conditions with
other dependency graphs.
If the performance of applying modifiers in such cases becomes a problem the
possible solution would be to create a temporary object with a single modifier
so that only minimal set of dependencies is pulled in the minimal dependency
graph.
Differential Revision: https://developer.blender.org/D16421
|
|
It's better if it just crashes than if it silently fails.
|
|
No functional or performance changes are expected.
Differential Revision: https://developer.blender.org/D16423
|
|
Functions which are local to a translation unit should either be
marked as static, or be in an anonymous namespace.
|
|
When using two transformed compositor results, the transformation of one
of them is apparently in the local space of the other, while it should
be applied in the global space instead.
In order to realize a compositor result on a certain operation domain,
the domain of the result is projected on the operation domain and later
realized. This is done by multiplying by the inverse of the operation
domain. However, the order of multiplication was inverted, so the
transformation was applied in the local space of the operation domain.
This patch fixes that by inverting the order of multiplication in domain
realization.
|
|
The Equalize Handles and Snap Keys operators would allow the user to
invoke them successfully even when they would have no effect due to
there not being any selected control points.
This patch makes it so that an error is displayed when these operators
are invoked with no control points are selected.
The reason this is in the `invoke` function is because it would be too
expensive to run this check in the `poll` function since it requires a
linear search through all the keys of all the visible F-Curves.
Reviewed By: sybren
Differential Revision: https://developer.blender.org/D16390
|
|
libdecor (for window decorations) was crashing on exit with the shader
builder, avoid the crash by calling the "background" system creation
function which doesn't initialize window management under Wayland.
|
|
libdecor (for window decorations) was crashing on exit with the shader
builder, avoid the crash by calling the "background" system creation
function which doesn't initialize window management under Wayland.
|
|
The quaternion calculated are unit length unless the the input matrix is
degenerate. Detect degenerate cases and remove the normalize_qt call.
|
|
|
|
|
|
Quiet warning, suggesting to use attributes with GCC.
|
|
Re-order checks to ensure a zeroed matrix results in a quaternion
without rotation. Also avoid some redundant calculation where the
'trace' was calculated but not used, flip the scaling value early
on instead of negating the quaternion after calculating it.
|
|
|
|
This fixes a bug in the function that determines what properties to show
on the Decimate Keyframes operator.
Before the fix, the "Remove" (i.e., `factor`) slider was visible no
matter what "Mode" was being used. This meant that the slider was
visible and modifiable when it had no effect, creating confusion.
Reviewed By: sybren
Differential Revision: https://developer.blender.org/D16318
|
|
|
|
In anticipation of UV Copy+Paste, we need fast access to indices
of unique UvElements. Can also be used to improve performance and
simplify code for UV Sculpt tools and UV Stitch.
No user visible changes expected.
Maniphest Tasks: T77911
See also: D16278
|
|
|
|
|
|
The issue was caused by refactoring, see 7afcfe111aacc8bc. Function
`SEQ_transform_fix_single_image_seq_offsets` modified offsets after
handle was moved, but this was not done correctly.
Remove function mentioned above and move strip start when moving left
handle of strips that have only single frame of content by design
(image, text, color, ...).
|
|
Motivated by long loading times in T101969, reduces render preparation time from 14sec to 6sec.
Another possible improvement would be to use C++ and template based on OCIO vs. sRGB,
but moving the file to C++ seems nontrivial (and opens up the question whether ocio_capi
makes any sense then or we should just use OCIO directly) so I left it at a direct 1:1
parallelization of the existing code for now.
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D16317
|
|
Simplify API and improve accuracy of uv packing placement
by using pre-translation and double precision internally.
Will protect against future precision problems with UDIM.
No user visible changes expected.
Maniphest Tasks: T68889
Differential Revision: https://developer.blender.org/D16362
|