This PR slightly increases the area border padding at the window edges.
The current lack of padding looks awkward when paired with area
highlighting since that line hits the window edges.
Pull Request: https://projects.blender.org/blender/blender/pulls/137925
The [Fix#125024: Bevel offset - eliminate divide by 0] (#126309)
in response to [Bevel Modifier creates unwanted geometries] (#125024)
created "divide by 0" situations when checking for clamp overlap geometry
in the bevel modifier. This PR eliminates this undefined behavior.
Original PR by Rob Blair. Modified by make format and added
a needed include.
Replace Listbase with a VectorList for duplist generation.
Performing one heap allocation for each dupli becomes very costly on
scenes with many instances.
Using a VectorList can make playback up to 15% faster.
Most scenes will have lower performance improvements,
but none of the ones I tested were slower.
VectorLists also have the advantage of being able to query the size of
the duplilist.
Pull Request: https://projects.blender.org/blender/blender/pulls/138947
For paint modes the selection and visibility were encoded in in the W
component of the normals. Separating the normals into a separate vertex
buffer, though it increases memory usage a bit in those paint modes,
means the status doesn't need to be computed outside of paint modes,
and the whole system becomes less convoluted and easier to optimize.
The particular optimization I have in mind is better caching of vertex
buffers, which gets much more complicated when the normals VBO contains
data like selection and visibility and depends on the paint mode.
Internally, a there are now three mesh draw batches that are specific to
the paint overlay. The GPU subdivision normals buffer is now just three
components rather than 4 components.
Pull Request: https://projects.blender.org/blender/blender/pulls/140156
Inlines knots_num() and adds an inlined utility function for computing
the total number of points in a nurbs curve. This should avoid potential
code duplication and allows behavior to be searched for.
Named function 'control_points_num()' to differentiate from the
'points_num' variable (referencing the number of unique points).
Pull Request: https://projects.blender.org/blender/blender/pulls/140248
- Move `gtao_distance` to view layer and rename to
`ambient_occlusion_distance` (API change).
- Remove `gtao_quality` from the RNA (API change).
- Remove `use_gtao` (unused) from the RNA (API change).
- Rename `gtao_focus` to `fast_gi_bias` in the DNA (no API
change).
- Rename `gtao_resolution` to `fast_gi_resolution` in the
DNA (no API change).
Pull Request: https://projects.blender.org/blender/blender/pulls/140298
When quiting Blender the timeline doesn't get updated and an assert is
triggered that the order isn't correct. The order isn't that important
anymore as the mechanism has been tested. The assert was useful during
initial development.
This PR removes the assert as it isn't valid in all cases.
This changes the engine identifier back to `BLENDER_EEVEE`.
We keep the `BLENDER_EEVEE_NEXT` identifier around for
versioning reasons (have to detect when it is the active
engine of a older file).
This also rename a bunch of pannels that were using `next`
in their name.
This is a breaking change for Addons compatibility.
Pull Request: https://projects.blender.org/blender/blender/pulls/140282
How to reproduce:
1. Create a new blend file without a compositing node tree
3. Go to Scripting workspace (node editors should not be visible)
2. In python console type
`bpy.ops.node.new_compositing_node_group`
3. Observe crash
The reason is that `node_composit_poll_rlayers()` fails because the
Render Layers node cannot be added to a non local compositing node
tree. This restriction was removed so the poll should succeed.
Pull Request: https://projects.blender.org/blender/blender/pulls/140222
This is due to missing `make_available` callback for Group ID socket.
Use it to change the mode of the merge layer node so that socket is
available in `connect_available_socket()`
Pull Request: https://projects.blender.org/blender/blender/pulls/140251
This patch removes node init functions that currently exist only for
forward compatibility and moves the logic to the forward compatibility
section of node writing. This is to avoid allocating unused data
throughout the 5.x series.
Pull Request: https://projects.blender.org/blender/blender/pulls/140273
We wouldn't clear the cache we disabled leading to end users needing to
trigger cache refreshes to eventually clear out the cache that they
disabled.
This also fixes a minor issue where the prefetch would try to prefetch
even if there were no caches enabled.
Sometimes we could get into scenarios where the prefetch would stop and
restart endlessly. Now we only stop the prefetch job when we don't want
to continue to prefetch anymore. Before we would exit when there is
currently no more prefetch work to do.
Before this change prefetching would not work correctly with only RAW
caches. The RAW caches wouldn't previously be emptied either if
switching them off while prefetching was turned on.
Now the prefetch will start prefetching from the start frame if it hits
the end frame and still have cache space to spare. This improves
playback when playing loops. It also makes it possible for end users to
define an area to pre-fetch by setting the preview range.
When dropping files onto the player window the animation the player
would restart, freeing everything except for the GHOST_System.
This caused a memory leak in the case of an error, returning without
freeing the system.
Resolve by freeing the system along with everything else.
As panels narrow to extremes the various parts overlap oddly. this PR
improves this by fading out icons as their available space becomes too
narrow to fit. Other items stop displaying under limits.
Pull Request: https://projects.blender.org/blender/blender/pulls/136581
This PR adds snapping to the sizes of various Sidebars, showing only
the category tabs. While in this state you can click a tab to expand
out that panel, click again to hide it.
Pull Request: https://projects.blender.org/blender/blender/pulls/136575
The 2D->2D, 3D->3D, 4D->4D hash functions used in Voronoi node were
using quite an expensive hash function. Switch these to dedicated
2D/3D/4D hash functions (pcg2d, pcg3d, pcg4d) -- these are still very
good quality, but the hash function itself is 3x-4x faster.
Which makes Voronoi node calculation overall be around 2x faster. In
some cases when using OSL, the speedup is even larger.
This visibly changes output of the Voronoi noise however. The actual
noise "behaves" the same, just if someone was depending on the noise
pattern being exactly like it was before, this will change the pattern.
Images, more performance results and details wrt OSL are in the PR.
Pull Request: https://projects.blender.org/blender/blender/pulls/139520
Move panel header, panel background, and sub-panel background color
settings to be global, under `User Interface`, like other widgets.
Remove per-editor panel styling. This way users can edit the panel
colors once, and affect all panels.
See pull request for screenshots and details.
Pull Request: https://projects.blender.org/blender/blender/pulls/140295
It is possible for a mesh to change topology across frames but still be
detected as not needing a topology update.
Until we can make a finer-grained check against the before and after
topology, unconditionally ensure it's updated for now.
Adds a new test that checks a few frames of changing topology that is
similar, but not the same.
Pull Request: https://projects.blender.org/blender/blender/pulls/140253