Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-08-09Fix T88807: crash when there are multiple links between the same socketsJacques Lucke
This commit does two things: * Disallows creating more than one link from one socket to a multi socket input. * Properly count links if there happen to be more than one link between the same sockets. The new link counting should also be more efficient asymptotically. Differential Revision: https://developer.blender.org/D11570
2021-05-28Fix incorrect Denoise node SSE 4.1 warning on macOS IntelBrecht Van Lommel
2021-05-20Fix T87316: No undo push for clicking on attribute nameHans Goudey
Since there is a special callback for assigning the name from the search box, and the callback doesn't call an operator or something else that would do an undo push, I think the solution is to do it manually here. Another option would be adding the button flag "UI_BUT_UNDO", which isn't set by default for search buttons, but that gives us ugly names for the undo steps, so an explicit push is better in this case. Differential Revision: https://developer.blender.org/D11190
2021-04-26Fix T87170 Multi-Input socket activation zone error with lots of inputsFabian Schempp
Calculation of bounding rect for multi-input socket was wrong. Reviewer: Hans Goudey (HooglyBoogly) Differential Revision: https://developer.blender.org/D11077
2021-04-19Fix T87567: Crash adding item in empty attribute searchHans Goudey
The function applying the search used the dummy search info for when the item doesn't exist even when there was no UI data associated with the node at all. A fix is to only add the search menu when there is attribute info stored for the node. This is something I wanted to do anyway, since it makes it look more purposeful when there are no attribute info for a node, less like a bug. Differential Revision: https://developer.blender.org/D11016
2021-04-19Fix incorrect compositor denoise node message about SSE on macOS ArmBrecht Van Lommel
Ref T78710
2021-04-16Cleanup: clang-formatCampbell Barton
2021-04-15Fix T87171: Update multi input socket indicesFabian Schempp
When inserting a node on top of a link, the multi input socket indices weren't updated. This fixes that and keeps the relative order of the links the same. Author: Wannes Malfait Reviewed By: Fabian Schempp Differential Revision: https://developer.blender.org/D10969
2021-04-15Fix T87356 & T87358: Small multi-input socket issuesFabian Schempp
T87356 occured because last_node_hovered_while_dragging_a_link was not set on node_link_init. The assert in T87358 failed because the sorting operation was called even if the drag link contained a link to another socket. A little one frame jump was caused because frame was refreshed after picking a link and before sorting happened. Reviewer: Hans Goudey Differential Revision: https://developer.blender.org/D10940
2021-04-15Spreadsheet: breadcrumbs and node pinningJacques Lucke
This introduces a context path to the spreadsheet editor, which contains information about what data is shown in the spreadsheet. The context path (breadcrumbs) can reference a specific node in a node group hierarchy. During object evaluation, the geometry nodes modifier checks what data is currently requested by visible spreadsheets and stores the corresponding geometry sets separately for later access. The context path can be updated by the user explicitely, by clicking on the new icon in the header of nodes. Under some circumstances, the context path is updated automatically based on Blender's context. This patch also consolidates the "Node" and "Final" object evaluation mode to just "Evaluated". Based on the current context path, either the final geometry set of an object will be displayed, or the data at a specific node. The new preview icon in geometry nodes now behaves more like a toggle. It can be clicked again to clear the context path in an open spreadsheet editor. Previously, only an object could be pinned in the spreadsheet editor. Now it is possible to pin the entire context path. That allows two different spreadsheets to display geometry data from two different nodes. The breadcrumbs in the spreadsheet header can be collapsed by clicking on the arrow icons. It's not ideal but works well for now. This might be changed again, if we get a data set region on the left. Differential Revision: https://developer.blender.org/D10931
2021-04-14Geometry Nodes: Add domain and data type to attribute searchHans Goudey
This patch adds domain and data type information to each row of the attribute search menu. The data type is displayed on the right, just like how the list is exposed for the existing point cloud and hair attribute panels. The domain is exposed on the left like the menu hierarchy from menu search. For the implementation, the attribute hint information is stored as a set instead of a multi-value map so that every item (which we need to point to descretely in the search process) contains the necessary data type and domain information by itself. We also need to allocate a new struct for every button, which requires a change to allow passing a newly allocated argument to search buttons. Note that the search does't yet handle the case where there are two attributes with the same name but different domains or data types in the input geometry set. That will be handled as a separate improvement. Differential Revision: https://developer.blender.org/D10623
2021-04-13Nodes: Tooltip for Group Input propertiesFabian Schempp
With this patch, users can define custom tooltips for the exposed properties of their Geometry Nodes Groups. Currently this custom tooltips are only used in the modifier panel, but its a long term goal to use it in the node editor. Reviewer: Hans Goudey Differential Revision: https://developer.blender.org/D10884
2021-04-12UI/Nodes: Improve feedback when adding node fails (e.g. on drag & drop)Julian Eisel
This is especially useful when trying to add a node group instance, e.g. via drag & drop from the Outliner or Asset Browser. Previously this would just silently fail, with no information why. This is a source of confusion, e.g. earlier, it took me a moment to realize I was dragging a node group into itself, which failed of course. Blender should always try to help the user with useful error messages. Adds error messages like: "Nesting a node group inside of itself is not allowed", "Not a compositor node tree", etc. Adds a disabled hint return argument to node and node tree polling functions. On error the hint is reported, or could even be shown in advance (e.g. if checked via an operator poll option). Differential Revision: https://developer.blender.org/D10422 Reviewed by: Jacques Lucke
2021-04-09Fix T87167: Object dragged from Outliner into Geo Nodes doesn't auto updateCharlie Jolly
Add call to `DEG_relations_tag_update` Differential Revision: https://developer.blender.org/D10928
2021-04-08Spreadsheet: support showing data of specific nodeJacques Lucke
Previously, the spreadsheet editor could only show data of the original and of the final evaluated object. Now it is possible to show the data at some intermediate stages too. For that the mode has to be set to "Node" in the spreadsheet editor. Furthermore, the preview of a specific node has to be activated by clicking the new icon in the header of geometry nodes. The exact ui of this feature might be refined in upcoming commits. It is already very useful for debugging node groups in it's current state though. Differential Revision: https://developer.blender.org/D10875
2021-04-07Cleanup: Various cleanup of node link handling functionsHans Goudey
Use LISTBASE_FOREACH macro, rename variables, comment formatting, simplification of logic, etc.
2021-04-01Nodes: separate node name and display name in bNodeTreePathJacques Lucke
Previously, `node_name` was rarely actually a name of a node. It is set correctly as node name in `ED_node_tree_push`. However, later on it was overwritten by the name of an id data block in `node_draw_space`. Now, the node_name stays the name of the "parent" node. Whereas display_name is the name that will be displayed in the breadcrumbs. With this change, the `node_name` can be used to reconstruct the actual path from the root node tree to the currently visible tree. Differential Revision: https://developer.blender.org/D10874
2021-03-29Compositor: Add Anti-Aliasing nodeHabib Gahbiche
This is an implementation of Enhanced Subpixel Morphological Antialiasing (SMAA) The algorithm was proposed by: Jorge Jimenez, Jose I. Echevarria, Tiago Sousa, Diego Gutierrez This node provides only SMAA 1x mode, so the operation will be done with no spatial multisampling nor temporal supersampling. See Patch for comparisons. The existing AA operation seems to be used only for binary images by some other nodes. Using SMAA for binary images needs no important parameter such as "threshold", so we perhaps can switch the operation to SMAA, though that changes existing behavior. Notes: 1. The program code assumes the screen coordinates are DirectX style that the vertical direction is upside-down, so "top" and "bottom" actually represent bottom and top, respectively. Thanks for Habib Gahbiche (zazizizou) to polish and finalize this patch. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D2411
2021-03-26Nodes: match Multi-input socket activation distanceFabian Schempp
Activation distance for multi input sockets had different length dependend of dpi factor. That caused jumping when activation distance became shorter than snapping distance. Fixed by removing activation distance and using same function which is used to evaluate snapping. Reviewer: Dalai Felinto Differential Revision: https://developer.blender.org/D10809
2021-03-25Fix T86867: Node Editor: Avoid deselect-all triggering on every box-Philipp Oeser
select In 'Set/Replace' mode this is not a problem, but 'Extend' or 'Subtract' modes were useless with the current behavior. The problem here is that 'node.select' fires before 'node.select_box' (which is fine) but deselects immediately on click. This issue has come up before in other editors, see {T70457} {rB395dfff103e1} {rBa8ea1ea1b7d5} Now delay deselection in empty space to mouse release (same as done in before mentioned report). also related: ref T57918 ref T63994 Maniphest Task: T86867 Differential Revision: https://developer.blender.org/D10801
2021-03-25UI: rename node editor sidebar categoriesJacques Lucke
* `Node` -> `Group` * `Item` -> `Node` Differential Revision: https://developer.blender.org/D10804
2021-03-24UI: Use correct property split ratio for node socket buttonsHans Goudey
This makes the buttons drawn on nodes for unconnected string and color sockets draw with the correct 40% ratio for the label split rather than the old 50% ratio not used elsewhere in Blender anymore. The benefit is a cleaner look, because the button edges line up better with others, and a bit more space to type in attribute names.
2021-03-24Fix T86894: Geometry nodes drag and drop creates a duplicate nodeCharlie Jolly
Added a condition to the poll so that it ignores drag and drop on the button. The Paste Name operator is just not implemented. Doesn't work for shading nodes either. Reviewed By: HooglyBoogly Differential Revision: https://developer.blender.org/D10769
2021-03-24Fix T86722: Missing updates after geometry nodes drag and dropCharlie Jolly
Add missing call to ED_node_tag_update_nodetree which solves the missing update on initial drag. Reviewed By: HooglyBoogly Differential Revision: https://developer.blender.org/D10769
2021-03-23FIX: Incorrect link drawing after link cutting toolFabian Schempp
Sorting of links on multi-input sockets where not recalculated after using the knife operator. Added call to resort function before cutting operator finishes. Reviewer: Jacques Lucke Differential Revision: https://developer.blender.org/D10783
2021-03-18Fix T86677: select grouped in node editor crashes without active nodePhilipp Oeser
This was reported for geometry nodes, but was true for all nodetrees (e.g. after deleting the active node). Geometry node trees just made this more obvious since they start without an active node to begin with. Fix provided by @lone_noel, thx! Maniphest Tasks: T86677 Differential Revision: https://developer.blender.org/D10762
2021-03-17Nodes: Add support to mute node wiresCharlie Jolly
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
2021-03-17Geometry Nodes: store domain and data type in attribute hintsJacques Lucke
The information is not exposed in the attribute search yet.
2021-03-16Compositor: Redesign Cryptomatte node for better usabilityJeroen Bakker
In the current implementation, cryptomatte passes are connected to the node and elements are picked by using the eyedropper tool on a special pick channel. This design has two disadvantages - both connecting all passes individually and always having to switch to the picker channel are tedious. With the new design, the user selects the RenderLayer or Image from which the Cryptomatte layers are directly loaded (the type of pass is determined by an enum). This allows the node to automatically detect all relevant passes. Then, when using the eyedropper tool, the operator looks up the selected coordinates from the picked Image, Node backdrop or Clip and reads the picked object directly from the Renderlayer/Image, therefore allowing to pick in any context (e.g. by clicking on the Combined pass in the Image Viewer). The sampled color is looked up in the metadata and the actual name is stored in the cryptomatte node. This also allows to remove a hash by just removing the name from the matte id. Technically there is some loss of flexibility because the Cryptomatte pass inputs can no longer be connected to other nodes, but since any compositing done on them is likely to break the Cryptomatte system anyways, this isn't really a concern in practise. In the future, this would also allow to automatically translate values to names by looking up the value in the associated metadata of the input, or to get a better visualization of overlapping areas in the Pick output since we could blend colors now that the output doesn't have to contain the exact value. Idea + Original patch: Lucas Stockner Reviewed By: Brecht van Lommel Differential Revision: https://developer.blender.org/D3959
2021-03-15Geometry Nodes: Support drag & drop object to create Object Info, Collection ↵Charlie Jolly
Info and Sample Texture nodes See: {T86296} Reviewed By: JacquesLucke Differential Revision: https://developer.blender.org/D10648
2021-03-15Nodes: fix crash after undo after recent multi-input-socket changesJacques Lucke
The issue is that the `last_node_hovered_while_dragging_a_link` pointer is invalidated on undo. The pointer does not have to be on the space runtime data, because it only needs to exist as long as the operator is running. Differential Revision: https://developer.blender.org/D10726
2021-03-11Nodes: Fix drag link from output to already linked Multi-Input SocketFabian Schempp
This patch fixes a visual bug related to connecting an output socket to a Multi-Input Socket, that already has a link to that same output. In this case, the drag link got a new index and snapped to a new position. This path makes the drag link snap to the same position as the first link between the two sockets. Differential Revision: https://developer.blender.org/D10689
2021-03-10Fix T86416: geometry nodes crash choosing a group node link menuPhilipp Oeser
Since rBb279fef85d1a, the nodes properties for geometry nodes using a texture are displayed in the Properties Editor. It was possible to create recursive nodetrees when choosing the 'root' nodegroup in the node link menu though leading to a crash. Now poll if a group node of a particular node could actually be added to the current tree. Also check if the tree types actually match. Maniphest Tasks: T86416 Differential Revision: https://developer.blender.org/D10671
2021-03-10Nodes: Sortable Multi Input SocketsFabian Schempp
This Patch removes the auto sorting from Multi-Input Sockets and allows the links to be sorted by drag and drop instead. As a minor related change, it fixes the drawing of the mute line to connect to the first input instead of the socket's center.
2021-03-10Fix (unreported) geometry node attribute search not working in thePhilipp Oeser
Properties Editor Since rBb279fef85d1a, the nodes properties for geometry nodes using a texture are displayed in the Properties Editor. rB85421c4fab02 added an attribute search button, but this was missing still (gave just the regular text button) if this was displayed in the Properties Editor. ref b279fef85d1a / T86416 / D10671 / D10673 Maniphest Tasks: T86416 Differential Revision: https://developer.blender.org/D10674
2021-03-08Fix T86373: crash picking colors in geometry nodesocketsPhilipp Oeser
Caused by {rB85421c4fab02}. Above commit treated `SOCK_RGBA` and `SOCK_STRING` the same in `std_node_socket_draw`. That would turn a RGBA button into a text button (for attribute search), leading to trouble. Note these were just treated the same prior to above commit because both were doing the layout split. Now just give RGBA sockets their own case. Maniphest Tasks: T86373 Differential Revision: https://developer.blender.org/D10646
2021-03-05Geometry Nodes: Sort attribute search items when menu opensHans Goudey
Because the search didn't run when the menu first opens, the attributes appeared in a different order than after you typed anything into the search field. This commit instead runs the search when the menu is first opened, but it only sorts items without filtering.
2021-03-04Fix T86172: tag relations update when pasting nodesJacques Lucke
Pasting nodes can create new id relations, because nodes can reference IDs. Therefore the depsgraph has to be updated when nodes are pasted. We could somehow check if the pasted nodes referenced IDs, but I'm not sure if this complexity is worth it.
2021-03-04Cleanup: redundant struct declarationsCampbell Barton
2021-03-03Geometry Nodes: Allow clearing an attribute text fieldHans Goudey
Because pressing enter will choose the current search item from the menu, and there was no search item with an empty string, it was impossible to clear the text of an attribute text field. This commit adds a simple "X" icon in the top row when you delete the string.
2021-03-03UI: Allow translation for node error messagesHans Goudey
This commit exposes the strings used in the node error messages for localization. It also changes the message tooltip creation to automatically add the period at the end, to be more consistent with the (arguably bad) design of other tooltips in Blender. Calling `TIP_` directly in the node implementation files allows us to continue using `std::string` concatenation instead of passing variadic arguments. It's also more explicit about which part of the message is translated and which isn't. The files already include the translation header anyway.
2021-03-03Fix crash when dragging nodesHans Goudey
The `bNodeLinkDrag` struct was NULL when dragging a node instead of a link. It is allocated with `calloc` anyway, so this field doesn't need to be explitely cleared.
2021-03-03Fix T85966: Wrong link picked when dragging multi-input socketFabian Schempp
The socket drag operator stored the index of the last picked socket into RNA in case the mouse cursor leaves the link while dragging. This id was not unique which is why sometimes a link from an other node with the same id is picked. This patch changes the way the last picked link is stored and stores a pointer to the link directly into bNodeLinkDrag struct instead. Differential Revision: https://developer.blender.org/D10590
2021-03-02Geometry Nodes: Attribute search drop-downHans Goudey
This commit adds a search for existing attributes when you click on an attribute field. This is useful because otherwise you have to remember which attributes should be available at each node in the tree. The fundamental complication is that this information is not accessible statically. So the search data is only a cache from the previous node tree evaluation. The information is added with `BKE_nodetree_attribute_hint_add`, currently for every input geometry socket for a single node. This is only an initial implementation, and later versions will expose the data type and domain of the attributes. Differential Revision: https://developer.blender.org/D10519
2021-03-02UI: Expose an "is first search" boolean to search button callbacksHans Goudey
Currently when you open an RNA collection search button, like a vertex group selector, the search filter isn't applied until you start typing, in order to display every option at the start. Otherwise they wouldn't be visible, since the search filter would run for the current text. Currently this check happens in one place, but it relies on the `changed` value of `uiBut`. This is fine in the interface directory, but anywhere else it would require exposing `uiBut.changed`, which is probably too low-level to expose. The solution is adding an `is_first` argument to the search callbacks, which is nice for a few reasons: - They work at a higher level of abstraction, meaning they don't have to worry about how exactly to tell if this is the first search. - It makes it easier to do special behavior when the search menu is first opened. - Then, obviously, it makes that state accessible without including `interface_intern.h`. Needed for attribute search: T85658 Differential Revision: https://developer.blender.org/D10528
2021-02-24Cleanup: Remove unused node editor button event definesHans Goudey
These defines seem to be left over from the initial implementation of the node editor. In a few places the values were used in button creation, but the callbacks never checked the value anyway. Node uiBlocks also had a callback what would never do anything since the value it checked for was never used.
2021-02-24UI: Cleanup and fix labels and descriptions in various placesYevgeny Makarov
Changes include using proper and consistent grammar, simplifying phrasing, using correct terminology, and not including python API identifiers in tooltips. Differential Revision: https://developer.blender.org/D9924
2021-02-24UI: Make node virtual sockets more visibleFabian Schempp
This commit tweaks how virtual sockets (unconnected node group input and output sockets) are drawn to make them more recognizable. The outline is changed to a gray color, and they get a dark inner color. Differential Revision: https://developer.blender.org/D10080
2021-02-24Geometry Nodes: Move node UI storage function to BKEHans Goudey
This function will be used in another file with attribute search, so it makes sense to share from the UI storage header.
2021-02-22Merge branch 'blender-v2.92-release'Philipp Oeser