Previously raw images were not cached if image wasn't preprocessed.
This caused issue, that image had to be read from disk on every redraw.
Effect strips must be excluded, because this would cause problem with
invalidation. Effect strips can use preprocessing however. This is
mainly to allow usimg modifiers on them.
This change should follow rBf448ff2afe7a77, but I have wrongly assumed,
that it has been implemented already.
ref T80278
This is part two of the fix for T84459.
Issue appears to be caused by AMD graphics driver later than 20.11.1 and
affects older GPUs (Polaris/FIJI cards). Drawing normals in edit mode
uses the same OpenGL data type for storing normals that is known to be
faulty.
This change fixes the face dot normals by using GPU_COMP_I16.
Issue appears to be caused by AMD graphics driver later than 20.11.1 and
affects older GPUs (Polaris/FIJI cards). Wireframe drawing uses the same
OpenGL data type for storing normals what is known to be faulty.
This patch enabled storing the normals using GPU_COMP_I16. It also
solves the normals drawing in edit mode for vertex and loop normals.
The start of the text was stepped over without subtracting it's length
(introduced in fad80a95fd).
Replace this logic with BLI_string_join_array to simplify construction.
The incremental snap was always operating in the local space, which in most
cases is the VIEW type orientation.
Use only local space when the operation is affected by constraint.
Differential Revision: https://developer.blender.org/D10052
This commit replaces the two-column list for editing node group inputs
and outputs with a cleaner solution with two panels. The new layout
has several benefits:
- It uses the vertical space in the node editor sidebar better.
- It should be more familiar because of similarity with other UI lists.
- It should look better with consistent alignment and icons.
Note that displaying the "Name" property outside of the list itself is
a bit inconsistent and could possibly be removed in the future.
Differential Revision: https://developer.blender.org/D9683
If scene strip has no scene assigned, leave source string empty.
Same goes for all other strips, that use ID datablocks.
Reviewed By: ISS
Differential Revision: https://developer.blender.org/D10058
Error handling added in 512a23c3d6 caused that reading header of new
file failed, since it is empty.
Don't attempt to read header if file is empty. If header can not be read
anyway, try to delete the file. Add asserts, as this should never
happen.
Reviewed By: sybren
Differential Revision: https://developer.blender.org/D9954
The nodes were selected in new node groups because they are by default,
but there's no particular reason for them to be selected, and it can
be distracting.
Previously, it was only forbidden to delete the last scene. This can
lead to the situation where a .blend file only contains linked scenes.
This is problematic, because linked data might not always be available
or can be removed from a .blend file without having an additional check
for remaining scenes.
Now there always has to be at least one local scene.
Reviewers: mont29
Differential Revision: https://developer.blender.org/D10049
The pointer allocated to the `TransData` was being incorrectly incremented,
causing misalignment and consequently `heap-buffer-overflow`.
Because of this, `TD_NOTCONNECTED` was being set in a strange way that did
not correspond to other types of `TransData`.
The solution is to not increment the `TransData` pointer and set
`TD_NOTCONNECTED` only for "unconnected" segments.
The code was also a bit deduplicated.
Was reported for meshes, but was true for any type.
Now add appropriate notifier to refresh the Outliner.
Maniphest Tasks: T84475
Differential Revision: https://developer.blender.org/D10030
This was reported for the Triangulate geometry node, but was also true
for the triangulate modifier and in exporters.
Note the modifier was introduced with "Ngon Method" in rBa7b44c82e5b9 but
was renamed to "Polygon Method" in rBf4762eb12ba5.
Since quads are also polygons (and quads have their own method), the
term "N-gon" is more appropriate here and is also described in the
glossary https://docs.blender.org/manual/en/2.92/glossary/
index.html#term-N-gon
Docs have been updated in rBM7539 (partially - the method would also
have to be renamed once this patch lands).
Note this also fixes the wrong enum used for the alembic exporter.
Fixes T83907
Maniphest Tasks: T83907
Differential Revision: https://developer.blender.org/D10022
Currently such triangles are effectively already excluded, because
the calculated forces are not applied to pinned vertices. However
these forces are still being computed, which is inefficient.
This adds an early check for triangles where all vertices are
pinned during BVH overlap detection, which significantly speeds
up certain use cases with big fully pinned areas that happen to
overlap a collider. In case of self collision both triangles must
be fully pinned to exclude safely, because the computation is
symmetric and handles two triangles at the same time.
Differential Revision: https://developer.blender.org/D10041
Using malloc to allocate a temporary array for each vertex,
which most commonly contains just 4 elements, is not efficient.
Checking the mode with a switch is also better.
Differential Revision: https://developer.blender.org/D10040
Linux does not report the driver version. It does report the OpenGL
version. This change will check the OpenGL version to enable the HQ
normal work around.
Adjust default cache settings for all files to store raw and final
images.
All settings are still available when developer extras option is
enabled in user preferences.
This is part of design task T80278
Differential Revision: https://developer.blender.org/D9745
The cause for this was quite simple-- a misplaced bitwise operation
before passing a value to the function that grayed out buttons based on
their state, caused by refactoring in rB933bf62a611f before committing.
What makes the situation a little more confusing is that the theme colors
are overridden for list buttons in UI lists, necessitating a second
call to `ui_widget_color_disabled()`. Ideally that wouldn't be necessary.
There is no need to first copy weights to a separate array,
or create the data layer if it doesn't exist. The threaded
code can retrieve the weight directly from the layer.
Differential Revision: https://developer.blender.org/D10015
Instances are created with an "index" parameter used for persistence over
time through animation. Currently the geometry nodes instancer passes
the index in the array for this value, but the arrays created by the
"Point Distribution" node aren't necessarily stable in this way when
the input mesh is deformed. In D9832 we already mostly solved this
problem with an `id` attribute. The solution here is to create instances
with this attribute as well.
It's important to note that deforming the instanced points *after*
distribution will usually be a better solution for this problem. This
solution is likely still important though.
Differential Revision: https://developer.blender.org/D10024
The hair mirroring code seems to expect that hair is emitted from faces.
The PE_mirror_x contains the following expression: mirrorfaces[pa->num * 2].
This only makes sense when pa->num is a face index.
The simplest short term solution is to disable the mirror operator when
the particles haven't been emitted from faces.
Diffferential Revision: https://developer.blender.org/D10002
Changing which node group a group node references needs a depsgraph
relations update in some cases.
Differential Revision: https://developer.blender.org/D10018
- Use the name "Point Cloud" instead of "Pointcloud"
- Fix a typo in UV_OT_smart_project.
- Use the name "Install Light" to for the installation
operator for MatCaps, HDRIs, and Studio Lights.
Fixes T83585, T65291, and T54921
Differential Revision: https://developer.blender.org/D9867