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
2022-09-06Cleanup: Return earlyHans Goudey
2022-09-06Cleanup: Avoid using runtime node flag, use topology cacheHans Goudey
It's easier to keep track of state in these algorithms if it's stored in a central place like a set. Plus, using flags requires clearing them beforehand. For the selected linked operators, using the topology cache means we don't have to iterate over all links.
2022-09-06Cleanup: Move select all nodes code to operatorHans Goudey
This more specific high level functionality isn't needed elsewhere. Move it to the operator and clean it up a bit.
2022-09-06Cleanup: Use more specific function for deselecting all nodesHans Goudey
2022-09-06Fix T100841: Creating a frame node with shortcut doesn't sort nodesHans Goudey
Before 58c650a44c25, the nodes span was rebuilt on every redraw. Now that it's only rebuilt as necessary, we need to tag it dirty when nodes are reordered. Relying on the order of the nodes at all isn't ideal, but it's fairly fundamental in many areas at the moment.
2022-09-06Cleanup: Remove unnecessary node sorting, rename variablesHans Goudey
Changing node colors shouldn't change the output of `node_sort`.
2022-09-06Cleanup: spelling in comments, formatting, move comments into headersCampbell Barton
2022-09-05GPU: convert 'GPU_SHADER_2D_IMAGE_COLOR' to 3DGermano Cavalcante
3D shaders work in both 2D and 3D viewports. This shader is a good candidate to be exposed in Python.
2022-09-05GPU: remove 'GPU_SHADER_2D_UNIFORM_COLOR'Germano Cavalcante
The only real difference between `GPU_SHADER_2D_UNIFORM_COLOR` and `GPU_SHADER_3D_UNIFORM_COLOR` is that in the vertex shader the 2D version uses `vec4(pos, 0.0, 1.0)` and the 3D version uses `vec4(pos, 1.0)`. But VBOs with 2D attributes work perfectly in shaders that use 3D attributes. Components not specified are filled with components from `vec4(0.0, 0.0, 0.0, 1.0)`. So there is no real benefit to having two different shader versions. This will simplify porting shaders to python as it will not be necessary to use a 3D and a 2D version of the shaders. In python the new name for '2D_UNIFORM_COLOR'' and '3D_UNIFORM_COLOR' is 'UNIFORM_COLOR', but the old names still work for backward compatibility. Differential Revision: https://developer.blender.org/D15836
2022-09-05Cleanup: make formatBrecht Van Lommel
2022-09-05IDMAnagement: Add owner ID pointer to embedded ones.Bastien Montagne
Add a dedicated `owner_id` pointer to ID types that can be embedded (Collections and NodeTrees), and modify slightly come code to make handling those more safe and consistent. This implements first part of T69169. Reviewed By: brecht Differential Revision: https://developer.blender.org/D15838
2022-09-04Cleanup: Clarify multi-socket input sortingHans Goudey
The multi-socket input sorting was used for two purposes: moving links to the proper positions when dragging a new link, and resetting the multi-input indices on the links when removing a link. They are now separated into two functions, and the sorting when making a group node that didn't accomplish anything is removed (in that case a proper implementation would copy the indices from the original exterior sockets).
2022-09-04Cleanup: Replace recursive quadratic node link mute operationHans Goudey
The previous implementation iterated over all links multiple times recursively. Instead, use the node tree topology cache, only iterate over all links once, and use a stack to propagate the mute upsteam and downstream.
2022-09-03Cleanup: Deduplicate node link intersection testHans Goudey
2022-09-03Cleanup: Refactor node add reroute operatorHans Goudey
Use C++ Map that supports the duplication natively. Use vectors instead of linked lists, and adjust naming. Also remove combination of reroutes for input sockets, which doesn't make sense since a reroute isn't allowed to combine multiple input links into one output.
2022-09-03Cleanup: Return earlyHans Goudey
2022-09-03Cleanup: use more standard variable name for node socketsHans Goudey
2022-09-03Cleanup: Use separate variables for node socket locationsHans Goudey
This will help if the locations are moved out of DNA and require slightly more complicated access.
2022-09-03Cleanup: Avoid using node socket locationHans Goudey
The location of a reroute node and its sockets should be the same, only stored in different coordinate spaces. Because the node's location is the ground truth, use that for finding whether the mouse is hovering.
2022-09-03Cleanup: Use references and const in node editorHans Goudey
2022-09-03Cleanup: Use new node topology cache for sorting multi input socketsHans Goudey
Assuming the cost of building the cache is ammortized, this may be be helpful because it removes some quadratic behavior.
2022-09-03Cleanup: Return earlyHans Goudey
2022-09-02Merge branch 'blender-v3.3-release'Hans Goudey
2022-09-02Fix T100767: Geometry nodes viewer node placed incorrectlyHans Goudey
See explanation in comment. Differential Revision: https://developer.blender.org/D15864
2022-09-02Cleanup: Deduplicate node link points evaluation functionsHans Goudey
2022-09-02Cleanup: Further split of node link Bezier calculation functionHans Goudey
Now dragged handles are handled separately, and the function returns a statically sized array by value. The functions are also renamed to be more consistent with curve naming elsewhere in Blender.
2022-09-02Fix: Ensure topology cache exists when drawing nodesHans Goudey
This was missed in 58c650a44c251a41c89375d697efdf07153016e0.
2022-09-02Cleanup: Split node link draw culling to separate functionHans Goudey
This was only really used in one place, so better to just do it there rather than requiring another argument for the handle calculation.
2022-09-02Cleanup: Return earlyHans Goudey
2022-09-02Cleanup: Remove unnecessary struct keyword usage in node editorHans Goudey
2022-09-02Cleanup: Remove unused structHans Goudey
Unused after 217d0a15243d12da070e8a68c2603bab73be2164
2022-09-02Cleanup: Use C++ vector types in node editorHans Goudey
2022-09-02Nodes: Use existing nodes span cacheHans Goudey
Use cache from 25e307d725d0b924f rather than creating a new vector on every redraw.
2022-09-01Node Editor: Visual tweaks to node linksLeon Schittek
Several visual tweaks to node links to make them overall fit in better with the look of the node editor: - Change the link thickness with the zoom level to a certain degree. - Remove the fuzziness of the node link and its shadow/outline. - The link outline color can now be made transparent. - Add circles at the end of dragged links when connecting to sockets. - Improve the banding of the color interpolation along the link. - Adjust the spacing of dashes along straight node links. Reviewed By: Pablo Vazquez, Hans Goudey Differential Revision: http://developer.blender.org/D15036
2022-08-31Nodes: move NodeTreeRef functionality into node runtime dataJacques Lucke
The purpose of `NodeTreeRef` was to speed up various queries on a read-only `bNodeTree`. Not that we have runtime data in nodes and sockets, we can also store the result of some queries there. This has some benefits: * No need for a read-only separate node tree data structure which increased complexity. * Makes it easier to reuse cached queries in more parts of Blender that can benefit from it. A downside is that we loose some type safety that we got by having different types for input and output sockets, as well as internal and non-internal links. This patch also refactors `DerivedNodeTree` so that it does not use `NodeTreeRef` anymore, but uses `bNodeTree` directly instead. To provide a convenient API (that is also close to what `NodeTreeRef` has), a new approach is implemented: `bNodeTree`, `bNode`, `bNodeSocket` and `bNodeLink` now have C++ methods declared in `DNA_node_types.h` which are implemented in `BKE_node_runtime.hh`. To make this work, `makesdna` now skips c++ sections when parsing dna header files. No user visible changes are expected. Differential Revision: https://developer.blender.org/D15491
2022-08-31Node: Mix nodeCharlie Jolly
This patch is a response to T92588 and is implemented as a Function/Shader node. This node has support for Float, Vector and Color data types. For Vector it supports uniform and non-uniform mixing. For Color it now has the option to remove factor clamping. It replaces the Mix RGB for Shader and Geometry node trees. As discussed in T96219, this patch converts existing nodes in .blend files. The old node is still available in the Python API but hidden from the menus. Reviewed By: HooglyBoogly, JacquesLucke, simonthommes, brecht Maniphest Tasks: T92588 Differential Revision: https://developer.blender.org/D13749
2022-08-29Fix T98968: Node reroute tool doesn't add to framesPratik Borhade
If reroute node lies in side the frame node boundaries then set frame node as the parent of reroute. Differential Revision: https://developer.blender.org/D15739
2022-08-29Fix T98968: Node reroute tool doesn't add to framesPratik Borhade
If reroute node lies in side the frame node boundaries then set frame node as the parent of reroute. Differential Revision: https://developer.blender.org/D15739
2022-08-29I18n: translate newly created node group socketsDamien Picard
Translate: - new group socket names - default names Input and Output - on connecting a link from another node - new geometry nodes input and output socket names Reviewed By: mont29 Differential Revision: https://developer.blender.org/D15763
2022-08-27Cleanup: pass notifiers as constCampbell Barton
2022-08-24Merge branch 'blender-v3.3-release'Philipp Oeser
2022-08-24Fix T100590: Crash when changing active image texture nodePhilipp Oeser
Mistake in own rBc76d7f7bde35. Happened when no image was set in the Image Editor already (which is now checked for). Maniphest Tasks: T100590 Differential Revision: https://developer.blender.org/D15761
2022-08-23Merge branch 'blender-v3.3-release'Philipp Oeser
2022-08-23Fix T99493: better syncing between Node Editor and Image EditorPhilipp Oeser
Since {rBb0cb0a785475}, changing the active texture in the Node Editor would also change the current image in the Image Editor. While this was an overall improvement, this was not desired when the image currently looked at was a `Render Result` or a `Viewer Node` (artists usually want to keep focus on these). With this patch, syncing the active texture change from the Node Editor to the Image Editor will now only happen if the Image Editor's current image is not a Render Result or a Viewer Node. NOTE: Syncing the active paint slot to the Image Editor still happens (even if the Image Editor's current image is not a Render Result or a Viewer Node), behavior was not changed since this is a much more explicit action while texture painting and probably desired in that case. Maniphest Tasks: T99493 Differential Revision: https://developer.blender.org/D15749
2022-08-23Merge branch 'blender-v3.3-release'Jacques Lucke
2022-08-23Fix T100579: internal links are drawn when sockets are hiddenJacques Lucke
2022-08-21Fix T100430: Restore larger node socket snap hitboxLeon Schittek
Restore old hitbox for connecting links to sockets. Commit rBd9d97db018d2 improved the node socket snapping when nodes are close together by decreasing the tolerance around the cursor when checking for nodes in front, that might occlude the socket. In doing so it also reduced the hitbox of the node socket itself that extended outside of the node. This commit restores the old node socket hitbox while keeping the improved behavior when nodes are close together with the following changes: 1) When looking for the socket under the cursor, iterate through the nodes front to back, which prioritizes node sockets in the foreground. 2) Instead of checking for another node underneath the cursor it checks if the socket is actually occluded by another node. The way the occlusion test for sockets is tweaked you can now connect to sockets that are only partially occluded, which is a bit more forgiving than previously. Reviewed By: Hans Goudey Differential Revision: http://developer.blender.org/D15731
2022-08-21Fix T100430: Restore larger node socket snap hitboxLeon Schittek
Restore old hitbox for connecting links to sockets. Commit rBd9d97db018d2 improved the node socket snapping when nodes are close together by decreasing the tolerance around the cursor when checking for nodes in front, that might occlude the socket. In doing so it also reduced the hitbox of the node socket itself that extended outside of the node. This commit restores the old node socket hitbox while keeping the improved behavior when nodes are close together with the following changes: 1) When looking for the socket under the cursor, iterate through the nodes front to back, which prioritizes node sockets in the foreground. 2) Instead of checking for another node underneath the cursor it checks if the socket is actually occluded by another node. The way the occlusion test for sockets is tweaked you can now connect to sockets that are only partially occluded, which is a bit more forgiving than previously. Reviewed By: Hans Goudey Differential Revision: http://developer.blender.org/D15731
2022-08-17Merge branch 'blender-v3.3-release'Hans Goudey
2022-08-17Fix: Node editor context path for curves objectsHans Goudey
The object data path item wasn't added properly. Also remove some of the unnecessary variables and forward declarations.