Make `Binding.name` the 'RNA name property' of Action Bindings. This
ensures that the name property is unique (within the Action), and also
used for `action.bindings.keys()` and `action.bindings['BindingName']`.
Remove the assertion in `animrig::assign_animation()` that the passed
Action is a layered Action. The code works equally well for legacy Actions.
No functional changes.
Extract
- Cycles denoiser enum.
- Extensions user preferences UI.
- Node operator poll message from new node function.
Improve
- Split "(Enabled|Disabled) on startup, overriding the preference."
into two messages.
Disambiguate
- "Add" when describing the action of adding something should use the
Operator context.
- "Dimensions", in noise textures.
- "Transform" as a noun, the matrix transform type of Geometry Nodes,
as opposed to the verb to move things in space.
- "Parent" as a noun or verb (the parent of an object, to parent an
object to another).
Some issues reported by Satoshi Yamasaki, deathblood, and Gabriel Gazzán.
Pull Request: https://projects.blender.org/blender/blender/pulls/122969
This PR adds drawing support to the render graph. It adds support for
draw, indirect draw, indexed draw and indexed indirect draw.
Draw commands can only be executed within a rendering scope. Data
transfer commands and dispatch commands cannot be executed within a
rendering scope. Blender can still send in commands in any order and
the render graph needs to find out the best order to minimize context
switches (rendering/begin/end). This is the responsibility of the
scheduler.
The scheduler will push data transfer and dispatch commands outside the
rendering scope:
- data transfer and dispatch commands at the beginning are done before
the rendering begin.
- data transfer and dispatch commands at the end are done after the
rendering end.
- data transfer and dispatches in between draw commands will be pushed
to the beginning if they are not yet being used.
- for all other data transfer and dispatch commands the rendering is
suspenderd and will be continued afterwards.
Within a rendering context it is not allowed to perform synchronization
commands. Any synchronization commands inside a rendering scope will be
performed before the rendering scope begins. Nodes are now organized
in groups to simplify the code around this area.
Pull Request: https://projects.blender.org/blender/blender/pulls/123168
Masks are not updated when edited when using the GPU compositor. That's
because the GPU compositor caches static resources and invalidates them
according to the recalculate flags that the depsgraph flushes to IDs.
The issue is that the flags are not flushed to the evaluated IDs of the
compositor depsgraph, but rather to some other evaluated versions of the
IDs.
To fix this, we make the compositor depsgraph persistent and store it in
the scene runtime. This allows us to reliably track changes to resources
used by the compositor and also reduces the overhead of depsgraph
creation in the compositor job.
Patch originally provided by Sergey.
Fixes#121188.
Pull Request: https://projects.blender.org/blender/blender/pulls/123085
This patch removes the Auto Render option from the compositor. This is
done for the following reason:
- The option didn't really work except in the case of transforming an
object. So it wasn't really reliable.
- It made little sense to use since the introduction of the Viewport
Compositor.
- It had a number of UX issues, including the fact that it can't be used
with animation playback, and the fact that rendering can get in the
way of the UI depending on the preferences for temporary editors.
Pull Request: https://projects.blender.org/blender/blender/pulls/123132
These utiltities aren't really specific to the scrape brush; they're used elsewhere
too. With simpler names it feels better to put them in the common utilities file
so they can be shared more easily.
Pull Request: https://projects.blender.org/blender/blender/pulls/123152
Negative values for the strength should be clamped to 0.0f for this
brush to behave correctly. Without this, holding CTRL and doing a stroke
results in weird deformations.
Pull Request: https://projects.blender.org/blender/blender/pulls/123142
Part of #118145.
Since only multires was supported, this was simpler. The grid iteration has
more boilerplate code than I'd like, but that can be improved later on.
Use of the "proxy" system is unnecessary here (as it is in general) and it's
removed in this commit.
Pull Request: https://projects.blender.org/blender/blender/pulls/123101
Part of #118145.
Like the draw brush, the overall API is still in progress, and in particular
duplication will be reduced in the future. But this brush already reuses
quite a bit of the utilities from the draw brush. A new utility is added for
finding vertex neighbor indices as well.
Overall I found this about 8% faster than the smooth brush in main already.
Pull Request: https://projects.blender.org/blender/blender/pulls/122906
Fixing a bug which was causing forward-slash separators in
skeleton joint paths to be replaced with underscores, resulting in
invalid skeletons.
This was inadevertantly introduced in 9ad2c7df0b. I should
have caught this when I reviewed #122471.
Pull Request: https://projects.blender.org/blender/blender/pulls/123031
This is kind of wrong fix from the perspective of properly maintaining dependencies
of static libraries, but having cyclic dependencies and whole-archive for the test suit
makes it very hard to do things properly.
Pull Request: https://projects.blender.org/blender/blender/pulls/123123
Render border is stored either in the current View3D data (UI data, not
undoable), or in Scene's render data when in camera view (only undoable
case).
This commit removes the `UNDO` flag of the related operators, and
instead manually pushes an undo step when executed in camera view.
Pull Request: https://projects.blender.org/blender/blender/pulls/122767
The VSE timeline strip thumbnail code seems to have at least two issues:
Sometimes the thumbnail would go 1px outside of the right side of the strip
itself. This seems to be caused by floating point inaccuracy where current
thumbnail position is tracked in "fractional timeline frames" instead of some
integers like pixels. The last, often clipped, thumbnail would thus spill over
outside of the strip. Fixed this by making sure the last pixel column of the
strip is not included into thumbnail drawing (pointless to draw there since it
is always covered by strip border).
Another problem was that the first thumbnail of the strip was often incorrectly
clipped and the last pixel from it was removed, and so it was leaving a pixel
gap between first and other thumbnails. This was under "Set the clipping bound
to show the left handle moving" comment, where due to inclusive range check it
was always causing the "clipped" part to be set to true for the first thumb.
Also while trying to untangle all of this, moved variables closer to their
usage. Some of them were only used inside the thumb loop but were declared in
whole function (probably coming from when it was C code).
Pull Request: https://projects.blender.org/blender/blender/pulls/123119
Part of #118145.
Reuse the draw brush code, since the brushes are exactly the same
except with a different offset direction. There may be better ways to
share the code besides defining them in the same file, but it doesn't
really matter either way currently.
Part of #118145.
The inflate brush is also very simple. Compared to the draw brush,
it just uses the normal as an offset instead of a global one calculated
from surrounding vertices.
Part of #118145.
This brush is exactly the same as the fill brush, except with the check
for which side of the brush plane each vertex is on removed. This
commit introduces more duplication than we'll have eventually.
Part of #118145.
These two are almost exactly the same. The difference between them
is just an inverted condition and negating the radius. That can be changed
later, maybe by implementing a more advanced fill algorithm. But for the
purposes of this refactor, mainly keep the duplication. I just shared two
functions as a compromise to not duplicate *everything*. It also shows
the reader that the implementations are currently linked without fully
conflating the two and making future changes harder.
Pull Request: https://projects.blender.org/blender/blender/pulls/123038
7413031dd6 introduced an error and related warning when generating Py API docs:
```
/blender/doc/python_api/sphinx-in/bpy.app.translations.rst:132: ERROR: Unexpected indentation.
...
/blender/doc/python_api/sphinx-in/bpy.app.translations.rst:132: WARNING: Lexing literal_block 'See :func:`pgettext` notes.' as "python3" resulted in an error at token: '`'. Retrying in relaxed mode.
```
Pull Request: https://projects.blender.org/blender/blender/pulls/123097
Currently we have to maintain an array of deformed positions on the
PBVH for historical reasons (once all brushes are refactored it can be
removed). The ported brushes handled it incorrectly though-- they
applied the inverse deformation to the translations applied to the
deformed mesh. Instead we have to apply the inverse deformation
after updating the PBVH's deformed positions.
Pull Request: https://projects.blender.org/blender/blender/pulls/123087