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-10-03Cleanup: spelling in commentsCampbell Barton
2021-10-03Geometry Nodes: Add Rotate Euler NodeJarrett Johnson
This commit introduces the Rotate Euler function node which modifies an input euler rotation. The node replaces the "Point Rotate" node. Addresses T91375. Differential Revision: https://developer.blender.org/D12531
2021-10-03Geometry Nodes: Switch Node Fields Updateguitargeek
This update of the Switch node allows for field compatible types to be switched through the node. This includes the following: Float, Int, Bool, String, Vector, and Color The remaining types are processed with the orginal code: Geometry, Object, Collection, Texture, and Material Because the old types require a diffent "switch" socket than the field types, versioning for old files is included to move links of those types to a new switch socket. Once fields of other types are supported, this node can be updated to support them as well. Differential Revision: https://developer.blender.org/D12642
2021-10-03Geometry Nodes: Add side and fill segments to Cone/Cylinder nodesLeon Leno
This commit extends the 'Cone' and 'Cylinder' mesh primitive nodes, with two inputs to control the segments along the side and in the fill. This makes the nodes more flexible and brings them more in line with the improved cube node. Differential Revision: https://developer.blender.org/D12463
2021-10-01Geometry Nodes: Set Handle Type Node Field Updateguitargeek
This update of the Set Handle Type node allows for a bool field to be used as the selection of the affected control point handles for bezier splines. If no bezier splines are provided a info message is shown. Differential Revision: https://developer.blender.org/D12526
2021-10-01Geometry Nodes: Set Spline Type Node Field Updateguitargeek
This update of the Set Spline Type node allows for a bool field to be used as the selection of the affected splines. Differential Revision: https://developer.blender.org/D12522
2021-10-01Geometry Nodes: Spline Length Input Nodeguitargeek
The Spline Length Input node provides a field containing the length of the current evaluated spline to the Point and Spline domains. Differential Revision: https://developer.blender.org/D12706
2021-10-01Geometry Nodes: Curve Subdivide Node with Fieldsguitargeek
The curve subdivide node can now take an int field to specify the number of subdivisions to make at each curve segment. Reviewed by: Hans Goudey Differential Revision: https://developer.blender.org/D12534
2021-10-01Fix T87536: incorrect socket types in reroute nodesJacques Lucke
This refactors and fixes the code that propagates socket types through reroute nodes. In my tests it is faster than the previous code. The difference becomes larger the more reroute nodes there are, because the old code had O(n^2) runtime, while the new code runs in linear time. Differential Revision: https://developer.blender.org/D12716
2021-10-01Fix: Incorrect warning in curve to mesh node with instancesVitor Boschi
The node was setting a warning when used with instances on input, even though it worked fine. Differential Revision: https://developer.blender.org/D12718
2021-09-30Cleanup: Fix unused variable warningHans Goudey
2021-09-30Geometry Nodes: Swap order of geometry proximity inputsHans Goudey
"Target" is the most important, so it goes at the top.
2021-09-30Nodes: Add Float Curve for GN and Shader nodes.Charlie Jolly
Replacement for float curve in legacy Attribute Curve Map node. Float Curve defaults to [0.0-1.0] range. Reviewed By: JacquesLucke, brecht Differential Revision: https://developer.blender.org/D12683
2021-09-30Geometry Nodes: Change default for mesh to points nodeHans Goudey
While "Vertices" may be less useful since mesh vertices are already points, the output is more easily understandable, so it's a better default.
2021-09-30Cleanup: move node_common.c to c++Jacques Lucke
Buildbot compiled without problems.
2021-09-30Fix: Curve to Mesh node outputs original curveJacques Lucke
It should only output the new mesh (and potentially instances that are processed separately).
2021-09-30Fix: wrong field input deduplication with Material Selection nodeJacques Lucke
2021-09-30Fix T91773: improve numerical stability in Curve Spiral nodeJacques Lucke
2021-09-29Geometry Nodes: Expose Bezier handle positions as an attributeHans Goudey
This commit exposes left and right bezier handles as an attribute. Interaction basically works like edit mode. If you move an aligned handle, it also moves the opposite handle of the control point. The difference is that you can't edit "Auto" or "Vector" handles, you have to first use the "Set Handle Type" node. That gives the handle types a bit more meaning in the node tree-- changing them in edit mod is more like a "UI override". The attributes are named `handle_start` and `handle_end`, which is the same name used in the curve RNA API. A new virtual array implementation is added which handles the case of splines that don't have these attributes, and it also calls two new functions on `BezierSpline` to set the handle position accounting for aligned handles. The virtual arrays and attribute providers will be refactored (probably templated) in the future, as a next step after the last built-in curve attribute provider has landed. Differential Revision: https://developer.blender.org/D12005
2021-09-29Cleanup: Compositor: Migrate most converter nodes to new socket builderAaron Carlisle
This migrates most nodes except for the switch view node. This node requires dynamic sockets so its implementation will be more involved.
2021-09-29Nodes: Fix Split View missing identifierAaron Carlisle
Mistake from rB84251acfcc4534059d6ccd6682f8e37d529b9063
2021-09-29Fix T91767: crash when instancing geometry coming from modifierJacques Lucke
The issue was that the `GeometrySet` that comes from the modifier does not have full ownership of the mesh for legacy reasons to avoid copies. Calling `ensure_owns_direct_data` makes sure that the geometry set actually owns the geometry so that it can be instanced.
2021-09-29Geometry Nodes: instance on points in instancesJacques Lucke
For consistency with other nodes, we also want to process all instances in the Points input independently. This allows for more efficient instancing of many objects but also leads to nested instancing. All instances are processed in their local space, so that instances don't have to be realized. Differential Revision: https://developer.blender.org/D12660
2021-09-29UV Editor: Grid and snapping improvementsSiddhartha Jejurkar
Implements T89789, T89792, custom grid (described as dynamic grid in T78389) and UV grid snapping (T78391) Replaces the default UV editor grid with 2 new types of grid : * Custom grid: Allows the user to create an NxN grid, where the value of N is specified by the user. * Subdividing grid: Subdivides the UV editor grid when the user zooms in the viewport and vice versa when zooming out. UV snapping improvements : * Increment snapping: Increment values for snapping are calculated based on which grid type is being used in the UV editor (subdividing or custom). In general the increment value is equal to the distance between 2 visible grid lines. * Absolute grid snap: New toggle added to increment snapping option in the UV editor, allows UV grid snapping during translation. Reviewed By: campbellbarton Ref D12684
2021-09-29Cleanup: Add constructor for AttributeFieldInputHans Goudey
2021-09-29Cleanup: Compositor: Migrate color nodes to new socket builderAaron Carlisle
2021-09-29Nodes: Fix compositor viewer nodes having wrong alpha channelAaron Carlisle
Default should be black image with an alpha value of 1.
2021-09-29Cleanup: Compositor: Migrate most output nodes to new socket builderAaron Carlisle
This migrates most nodes except for the file output node. This node requires dynamic sockets so its implementation will be more involved.
2021-09-29Cleanup: Make formatAaron Carlisle
2021-09-29Cleanup: Compositor: Migrate most input nodes to new socket builderAaron Carlisle
This migrates most nodes except for the image/render layer nodes. These nodes require dynamic sockets so their implementation will be more involved.
2021-09-29Cleanup: sort cmake file listsCampbell Barton
2021-09-29Cleanup: spelling in commentsCampbell Barton
2021-09-28Geometry Nodes: Fields version of attribute proximity nodeHans Goudey
Add a fields-aware implementation of the attribute proximity node. The Source position is an implicit position field, but can be connected with a position input node with alterations before use. The target input and mode function the same as the original node. Patch by Johnny Matthews with edits from Hans Goudey (@HooglyBoogly). Differential Revision: https://developer.blender.org/D12635
2021-09-28Cleanup: convert compositor nodes to c++Aaron Carlisle
- Many cleanups of to use list base - Some variable changes These change is needed to migrate to the new socket builder API Reviewed By: manzanilla Differential Revision: https://developer.blender.org/D12366
2021-09-28Cleanup: Sort node types alphabeticallyHans Goudey
2021-09-28Geometry Nodes: Field version of curve reverse nodeJohnny Matthews
The updated version has a selection input as a field and does not realize instances implicitly. Differential Revision: https://developer.blender.org/D12506
2021-09-28Geometry Nodes: Use factor slider for distribution density factorHans Goudey
Though the factor isn't so useful to adjust by itself, and is mostly useful when used with a field connected, the slider from 0 to 1 can help to make it clear that it's just used as a multiplier for the max density after distribution. Differential Revision: https://developer.blender.org/D12654
2021-09-28Fix VS2017 compile error in String to Curves nodeErik Abrahamsson
Because of a bug in VS2017 codecvt is replaced with Blender BLI functions to convert from UTF8 to UTF32. Differential Revision: https://developer.blender.org/D12655
2021-09-28Geometry Nodes: Mesh Point Cloud Conversion NodesHans Goudey
This commit adds nodes to do direct conversion between meshes and point clouds in geometry nodes. The conversion from mesh to points is helpful to instance once per face, or once per edge, which was previously only possibly with ugly work-arounds. Fields can be evaluated on the mesh to pass them to the points with the attribute capture node. The other conversion, point cloud to mesh vertices, is a bit less obvious, though it is still a common request from users. It's helpful for flexibility when passing data around, better visualization in the viewport (and in the future, cycles), and the simplicity of points. This is a step towards T91754, where point clouds are currently combined with meshes when outputing to the next modifier after geometry nodes. Since we're removing the implicit behavior for realizing instances, it feels natural to use an explicit node to convert points to vertices too. Differential Revision: https://developer.blender.org/D12657
2021-09-28Geometry Nodes: Only show attribute toggle for field inputsHans Goudey
Change the toggle to switch between an attribute and a single value to only display for inputs that are fields, as determined statically by the field inferencing added in rB61f3d4eb7c7db7. This means the field inferencing must be calculated on file load, since it's used in the UI. Differential Revision: https://developer.blender.org/D12623
2021-09-28Geometry Nodes: Run nodes once on unique instance dataHans Goudey
As described in T91672, often it can be much more efficient to run each node only on the unique geometry of the instances, rather than realizing all instances and potentially processing redundant data. Sometimes the performance difference can be completely smooth vs. completely unusable. Geometry nodes used to hide that choice from users by always realizing instances, but recently we have decided to expose it. So this commit makes nodes run once per unique reference in the entire tree of nested instances in their input geometries, continuing the work started in rB0559971ab377 and rBf94164d89629f0d2. For the old behavior, a realize instances node can be added before the nodes, which is done in the versioning code. Differential Revision: https://developer.blender.org/D12656
2021-09-28Geometry Nodes: Move more nodes to legacyHans Goudey
- Curve to Points: Needs output sockets - Curve Endpoitns: Needs the same output sockets - Edge Split: Should have a selection input instead - Subdivision Surface: Should not use "crease" implicitly All new versions of these nodes should also not implicitly realize instances.
2021-09-28Geometry Nodes: don't realize instances in Instance on Points nodeJacques Lucke
Part of T91672.
2021-09-28Geometry Nodes: remove empty mesh component in distribute node outputJacques Lucke
2021-09-28Geometry Nodes: move legacy nodes to separate folderJacques Lucke
Previously, we were moving them one by one. It's a lot easier to just move all files at the same time.
2021-09-27Geometry Nodes: Do not realize instances in the material assign nodeHans Goudey
Only run the node once for every unique geometry set in the input's instance heirarchy. This can massively improve performance when there are many instances, but it will mean that the result is the same for every instance. For the previous behavior, a "Realize Instances" node can be used before this one. This node can be changed without versioning since the old material assign node was already deprecated and replaced.
2021-09-27Fix: Incorrect node socket name after recent refactorHans Goudey
Caused by rBc99cb814520480379
2021-09-27Geometry Nodes: Distribute points once per instance referenceHans Goudey
With this commit, the distribute points on faces node runs only once for every unique mesh in its input. That means if there are 100 instances of the same mesh, it will only run once. This basically reverts rB84a4f2ae68d408301. The optimization there didn't end up being worth it in the end, since it complicates code quite a lot. It's also incompatible with this method of dealing with instances, and it breaks field evaluation for instances, where we would have to make sure to handle each instance transform properly otherwise, evaluating the field separately for every instance. Differential Revision: https://developer.blender.org/D12630
2021-09-27Geometry Nodes: add utility to process all instances separatelyJacques Lucke
This adds a new `GeometrySet::modify_geometry_sets` method that can be used to update each sub-geometry-set separately without making any instances real. Differential Revision: https://developer.blender.org/D12650
2021-09-27Geometry Nodes: new Instance on Points nodeJacques Lucke
This adds a new Instance on Points node that is a replacement for the old Point Instance node. Contrary to the old node, it does not have a mode to instance objects or collections directly. Instead, the node has to be used with an Object/ Collection Info to achieve the same effect. Rotation and scale of the instances can be adjusted in the node directly or can be controlled with a field to get some variation between instances. The node supports placing different instances on different points. The user has control over which instance is placed on which point using an Instance Index input. If that functionality is used, the Instance Geometry has to contain multiple instances that can are instanced separately. Differential Revision: https://developer.blender.org/D12478