Age | Commit message (Collapse) | Author |
|
This patch adds the base code needed to make the full-frame system work for both current tiled/per-pixel implementation of operations and full-frame.
Two execution models:
- Tiled: Current implementation. Renders execution groups in tiles from outputs to input. Not all operations are buffered. Runs the tiled/per-pixel implementation.
- FullFrame: All operations are buffered. Fully renders operations from inputs to outputs. Runs full-frame implementation of operations if available otherwise the current tiled/per-pixel. Creates output buffers on first read and free them as soon as all its readers have finished, reducing peak memory usage of complex/long trees. Operations are multi-threaded but do not run in parallel as Tiled (will be done in another patch).
This should allow us to convert operations to full-frame in small steps with the system already working and solve the problem of high memory usage.
FullFrame breaking changes respect Tiled system, mainly:
- Translate, Rotate, Scale, and Transform take effect immediately instead of next buffered operation.
- Any sampling is always done over inputs instead of last buffered operation.
Reviewed By: jbakker
Differential Revision: https://developer.blender.org/D11113
|
|
|
|
* `Node` -> `Group`
* `Item` -> `Node`
Differential Revision: https://developer.blender.org/D10804
|
|
|
|
Differential Revision: https://developer.blender.org/D10740
|
|
This patch adds the ability to mute individual wires in the node editor.
This is invoked like the cut links operator but with a new shortcut.
Mute = Ctrl + Alt
Cut = Ctrl
Dragging over wires will toggle the mute state for that wire.
The muted wires are drawn in red with a bar across the center.
Red is used in the nodes context to indicate invalid links, muted links and internal links.
When a wire is muted it exposes the original node buttons which are normally hidden when a wire is connected.
Downstream and upstream links connected using reroute nodes are also muted.
Outside scope of patch:
- Add support for pynodes e.g. Animation Nodes
- Requires minor change to check for muted links using the `is_muted` link property or the `is_linked` socket property.
Maniphest Tasks: T52659
Differential Revision: https://developer.blender.org/D2807
|
|
Previously the colors were on the right for outputs, but this is now
unecessary because of the organization in separate panels after
rBb1d1a58c77fb1658.
|
|
Revert was done in 2771dfd, ref T84669
|
|
In some operators that previously allowed duplicating the selected data-block,
the operator would not be available now. 2250b5cefee7 split the "new" operators
into "new" and "delete" to allow clearly differentiating between the two. But I
apparently didn't amend all affected data-block selectors to use the added
"duplicate" operators.
I went over all operators that were split now and made sure all affected
data-block selectors are updated.
|
|
|
|
The name should be the same as when the modifier is created in the
modifier tab of the properties editor.
|
|
This allows users to create new modifiers directly from the
Geometry Nodes Editor.
|
|
This is the initial merge from the geometry-nodes branch.
Nodes:
* Attribute Math
* Boolean
* Edge Split
* Float Compare
* Object Info
* Point Distribute
* Point Instance
* Random Attribute
* Random Float
* Subdivision Surface
* Transform
* Triangulate
It includes the initial evaluation of geometry node groups in the Geometry Nodes modifier.
Notes on the Generic attribute access API
The API adds an indirection for attribute access. That has the following benefits:
* Most code does not have to care about how an attribute is stored internally.
This is mainly necessary, because we have to deal with "legacy" attributes
such as vertex weights and attributes that are embedded into other structs
such as vertex positions.
* When reading from an attribute, we generally don't care what domain the
attribute is stored on. So we want to abstract away the interpolation that
that adapts attributes from one domain to another domain (this is not
actually implemented yet).
Other possible improvements for later iterations include:
* Actually implement interpolation between domains.
* Don't use inheritance for the different attribute types. A single class for read
access and one for write access might be enough, because we know all the ways
in which attributes are stored internally. We don't want more different internal
structures in the future. On the contrary, ideally we can consolidate the different
storage formats in the future to reduce the need for this indirection.
* Remove the need for heap allocations when creating attribute accessors.
It includes commits from:
* Dalai Felinto
* Hans Goudey
* Jacques Lucke
* Léo Depoix
|
|
Contributed by @povmaniaco with minor changes by me.
Differential Revision: https://developer.blender.org/D9263
|
|
Multiple related issues:
* `view_zoomdrag_exec()` required `view_zoomdrag_init()` to be called first to
set up data. Can now easily be done in the `_exec()` function as well though.
* Because of that the operators could not be called in an `EXEC_` context (e.g.
`EXEC_REGION_WIN`).
* With "Zoom to Mouse Position" enabled, zooming from a menu or script would
zoom to the mouse position. That should only happen if the operators are
called directly in the editor.
|
|
Cleanup old tracker task format to the new. e.g: [#34039] to T34039
Ref D8718
|
|
Currently, the search operator in the node add menu NODE_MT_add is drawn
even if no node categories exists. This patch only draws the operator if
at least one node category passes the poll.
This patch is needed because some add-ons use custom search operator and
do not register node categories. In this case, it is undesirable to have
a search operator drawn that do nothing and is not used. One such add-on
is Animation Nodes.
Reviewed By: Jacques Lucke
Differential Revision: https://developer.blender.org/D8576
|
|
Small tweaks to make labels and texts more correct, consistent and
polished.
Reviewed by: Aaron Carlisle, Julian Eisel
Differential Revision: https://developer.blender.org/D8346
|
|
Fixes T78346.
The shortcut display and change code is context sensitive. To make it
work correctly the context needs to be set properly.
When executing operators from the dropdowns, the active region is the
header, but the shortcut handlers are set for the main region. So make
sure that is used instead.
This also sets the main region active for context menu operators, where
this issue shouldn't be present. Doing it anyway shouldn't hurt though
and fixes this issue in case somebody displays the context menu in the
header as dropdown too.
|
|
This adds an embedded node tree to the simulation data block dna.
The UI in the `Simulation Editor` has been updated to show a list
of simulation data blocks, instead of individual node trees.
The new `SpaceNodeEditor.simulation` property wraps the existing
`SpaceNodeEditor.id` property. It allows scripts to get and set
the simulation data block that is being edited.
Reviewers: brecht, mont29
Differential Revision: https://developer.blender.org/D7301
|
|
Only the volume object is exposed in the user interface. It is based on OpenVDB
internally. Drawing and rendering code will follow in another commit.
https://wiki.blender.org/wiki/Source/Objects/Volume
https://wiki.blender.org/wiki/Reference/Release_Notes/2.83/Volumes
Hair and PointCloud object types are hidden behind a WITH_NEW_OBJECT_TYPES
build option. These are unfinished, and included only to make it easier to
cooperate on development in the future and avoid tricky merges.
https://wiki.blender.org/wiki/Source/Objects/New_Object_Types
Ref T73201, T68981
Differential Revision: https://developer.blender.org/D6945
|
|
|
|
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D6375
|
|
We should have that consistently everywhere the operation is available.
|
|
Assign, select, deselect buttons added when in edit mode to complete the functionality
of the shader editor vs. the properties panel.
Reviewed by: brecht
Differential Revision: https://developer.blender.org/D5768
|
|
Part of T65393
|
|
These panels were using the old names, but now they are not grease pencil, but annotations.
Also removed old Tools panel. This must be replaced with new Toolbar
|
|
|
|
Disable relative imports for UI scripts.
|
|
|
|
Check once as and then re-use
|
|
- Move Auto Render into Options panel in sidebar
- Move Pin to the right and remove emboss
- Move Background to the right and use greying out to avoid jumping UI elements
Also remove emboss from pin toggle in Image Editor for consistency
|
|
|
|
|
|
|
|
This follows the 3D view, adding an "Options" tab.
|
|
This one is usually a verb/action one in menus' labels,
hence we give it the Operator default context.
Part of T43295.
|
|
If it's members need to be aligned the template can handle it.
|
|
Quiet's pylint W0613 warning, also remove some unused args.
|
|
Each space had separate operators, duplicating logic.
Use RNA properties instead so adding the ability to toggle other
region types (floating redo region for eg) doesn't need to have an
extra operator per space type.
It's also nicer to show a check-box for something which can be toggled.
|
|
These were missing from the UI previously.
|
|
D4583 by @HooglyBoogly
|
|
Material was already there. Implementation was changed so it's just a
single line of code to adapt a panel to the node editor.
|
|
|
|
Confusing to call a menu a panel when subclasses need to define
panel specific variables.
Avoid having bl_ui depend on bl_operator module too.
Since this isn't an operator, add utils modules for shared types.
|
|
In keeping with convention to match code & UI naming.
- No user visible changes.
- Include 'menu' in the name since context is an overloaded term.
- While a few of these are panels, from a user perspective they are
still context menus.
|
|
|
|
|
|
|
|
Also remove special case when no items are selected,
since this only has one or two menu items, one being the add menu
which can be better accessed from the header or add shortcut.
If the no-selection case is to have it's own alternate menu - it should
be more complete before enabling.
|