Age | Commit message (Collapse) | Author |
|
|
|
The multi-function network system was able to compose multiple
multi-functions into a new one and to evaluate that efficiently.
This functionality was heavily used by the particle nodes prototype
a year ago. However, since then we only used multi-functions
without the need to compose them in geometry nodes.
The upcoming "fields" in geometry nodes will need a way to
compose multi-functions again. Unfortunately, the code removed
in this commit was not ideal for this different kind of function
composition. I've been working on an alternative that will be added
separately when it becomes needed.
I've had to update all the function nodes, because their interface
depended on the multi-function network data structure a bit.
The actual multi-function implementations are still the same though.
|
|
This branch merges all branches from soc2021 porting modifiers to nodes
into one. The branche is mainly used to make a testbuild.
|
|
soc-2021-porting-modifiers-to-nodes
# Conflicts:
# release/scripts/startup/nodeitems_builtins.py
# source/blender/blenkernel/BKE_node.h
# source/blender/geometry/CMakeLists.txt
# source/blender/makesrna/RNA_enum_types.h
# source/blender/modifiers/CMakeLists.txt
# source/blender/nodes/NOD_static_types.h
|
|
soc-2021-porting-modifiers-to-nodes
# Conflicts:
# release/scripts/startup/nodeitems_builtins.py
# source/blender/blenkernel/BKE_node.h
# source/blender/blenkernel/intern/node.cc
# source/blender/nodes/CMakeLists.txt
# source/blender/nodes/NOD_geometry.h
# source/blender/nodes/NOD_static_types.h
# source/blender/nodes/geometry/nodes/node_geo_remesh_voxel.cc
|
|
soc-2021-porting-modifiers-to-nodes
# Conflicts:
# release/scripts/startup/nodeitems_builtins.py
# source/blender/blenkernel/BKE_node.h
# source/blender/geometry/CMakeLists.txt
# source/blender/makesrna/intern/rna_nodetree.c
|
|
soc-2021-porting-modifiers-to-nodes
# Conflicts:
# source/blender/blenkernel/BKE_node.h
# source/blender/makesrna/RNA_enum_types.h
|
|
soc-2021-porting-modifiers-to-nodes
# Conflicts:
# release/scripts/startup/nodeitems_builtins.py
# source/blender/blenkernel/BKE_node.h
|
|
soc-2021-porting-modifiers-to-nodes
# Conflicts:
# release/scripts/startup/nodeitems_builtins.py
# source/blender/blenkernel/BKE_node.h
# source/blender/bmesh/intern/bmesh_mesh.c
# source/blender/bmesh/intern/bmesh_mesh.h
|
|
Node that extrudes vertices, edges and Faces. Uses the
corresponding bmesh operator.
I renamed D12108, which was previously named Mesh Extrude to Mesh Inset,
because that uses the bmesh inset operators.
NOTE: This requires an update of the attribute interpolation to work,
that is not yet in master.
Part of the GSOC 2021
Differential Revision: https://developer.blender.org/D12224
|
|
# Conflicts:
# source/blender/blenkernel/BKE_node.h
|
|
# Conflicts:
# source/blender/blenkernel/BKE_node.h
# source/blender/modifiers/CMakeLists.txt
|
|
# Conflicts:
# source/blender/blenkernel/BKE_node.h
|
|
# Conflicts:
# source/blender/blenkernel/BKE_node.h
|
|
|
|
# Conflicts:
# source/blender/blenkernel/BKE_node.h
# source/blender/editors/asset/ED_asset_temp_id_consumer.h
|
|
# Conflicts:
# source/blender/blenkernel/BKE_node.h
# source/blender/geometry/intern/solidify_nonmanifold.c
# source/blender/nodes/NOD_static_types.h
|
|
|
|
Just like the "Select by Material" node, this node outputs a
boolean attribute for control points that have a matching handle
type. By default left and right handles are considered, but it's
possible to only check one side with the toggle in the node.
Differential Revision: https://developer.blender.org/D12135
|
|
This node sets the selected (or all) splines in curve to a chosen target
spline type. Poly, Bezier, and NURB splines can be converted to any of
the other types. This is meant to be a building block node, useful in
many procedural situations.
In the future the node could be optimized with multi-threading, or by
avoiding copying in many cases, either by retrieving the curve for write
access or by passing the raw vectors to the new splines where possible.
With edits from Hans Goudey (@HooglyBoogly)
Differential Revision: https://developer.blender.org/D12013
|
|
|
|
Differential Revision: https://developer.blender.org/D12108
|
|
This simplifies changing how geometry nodes handles different socket types
without affecting other systems.
|
|
# Conflicts:
# source/blender/blenkernel/BKE_node.h
|
|
This node takes a curve and a point selection and allows you to set the
specified (or all) points left/right or both handles to a given type.
Differential Revision: https://developer.blender.org/D11992
|
|
This node implements shortening each spline in the curve based on
either a length from the start of each spline, or a factor of the
total length of each spline, similar to the "Start & End Mapping"
panel of curve properties.
For Bezier curves, the first and last control points are adjusted
to maintain the shape of the curve, but NURB splines are currently
implicitly converted to poly splines.
The node is implemented to avoid copying where possible, so it outputs
a changed version of the input curve rather than a new one.
Differential Revision: https://developer.blender.org/D11901
|
|
Replaces current ID Mask node Anti-Aliasing operation by SMAA
operations with default settings as proposed by Jeroen Bakker.
SMAA produces smoother edges.
Reviewed By: manzanilla
Differential Revision: https://developer.blender.org/D11881
|
|
# Conflicts:
# source/blender/blenkernel/BKE_node.h
|
|
# Conflicts:
# source/blender/blenkernel/BKE_node.h
|
|
|
|
This node takes a curve and a point selection and allows you to set the
specified (or all) points left/right or both handles to a given type.
Differential Revision: https://developer.blender.org/D11992
|
|
|
|
This node implements shortening each spline in the curve based on
either a length from the start of each spline, or a factor of the
total length of each spline, similar to the "Start & End Mapping"
panel of curve properties.
For Bezier curves, the first and last control points are adjusted
to maintain the shape of the curve, but NURB splines are currently
implicitly converted to poly splines.
The node is implemented to avoid copying where possible, so it outputs
a changed version of the input curve rather than a new one.
Differential Revision: https://developer.blender.org/D11901
|
|
|
|
|
|
Replaces current ID Mask node Anti-Aliasing operation by SMAA
operations with default settings as proposed by Jeroen Bakker.
SMAA produces smoother edges.
Reviewed By: manzanilla
Differential Revision: https://developer.blender.org/D11881
|
|
# Conflicts:
# release/scripts/startup/nodeitems_builtins.py
# source/blender/blenkernel/BKE_node.h
# source/blender/blenkernel/intern/node.cc
# source/blender/blenkernel/intern/solidify_nonmanifold.c
# source/blender/nodes/CMakeLists.txt
# source/blender/nodes/NOD_geometry.h
# source/blender/nodes/NOD_static_types.h
|
|
# Conflicts:
# source/blender/blenkernel/BKE_node.h
|
|
This patch adds a Remesh Voxel node (compared to Remesh Blocks)
The node uses the BKE function for voxel remeshing used in the modifier as well.
Part of the GSOC 2021
Differential Revision: https://developer.blender.org/D11907
|
|
# Conflicts:
# source/blender/blenkernel/BKE_node.h
|
|
- Moved Dualcon Remesh to BKE
- Used new BKE_mesh_remesh_blocks in modifier and node.
|
|
This commit adds a curve primitive node for creating squares,
rectangles, trapezoids, kites, and parallelograms. It also includes
a mode where the four points are just vector inputs.
Differential Revision: https://developer.blender.org/D11665
|
|
# Conflicts:
# release/scripts/startup/nodeitems_builtins.py
# source/blender/blenkernel/BKE_node.h
|
|
# Conflicts:
# release/scripts/startup/nodeitems_builtins.py
# source/blender/blenkernel/BKE_node.h
# source/blender/blenkernel/intern/node.cc
|
|
Rename the mesh circle to "Mesh Circle", mesh line to "Mesh Line",
and mesh subdivide to "Mesh Subdivide". Previously they looked exactly
the same in the search menu, and the nodes themselves had the same
label. This is a "deep" rename that also renames internal defines and
function names to match the UI.
|
|
This node is quite similar to the curve to points node, but creates
points for only the start and end of each spline. This is a separate
node because the sampling from the curve to points node don't apply,
and just for ease of use.
All attributes from the curves are copied, including the data for
instancing: tangents, normals, and the derived rotations. One simple
use case is to make round caps on curves by instancinghalves of a
sphere on each end of the splines.
Differential Revision: https://developer.blender.org/D11719
|
|
# Conflicts:
# source/blender/blenkernel/BKE_node.h
# source/blender/blenkernel/intern/node.cc
# source/blender/nodes/CMakeLists.txt
# source/blender/nodes/NOD_geometry.h
# source/blender/nodes/NOD_static_types.h
|
|
|
|
The menu lists all socket types that are valid for the node tree.
Changing a socket type updates all instances of the group and keeps
existing links to the socket.
If changing the socket type leads to incorrect node connections the
links are flagged as invalid (red) and ignored but not removed. This is
so users don't lose information and can then fix resulting issues.
For example: Changing a Color socket to a Shader socket can cause an
invalid Shader-to-Color connection.
Implementation details:
The new `NODE_OT_tree_socket_change_type` operator uses the generic
`rna_node_socket_type_itemf` function to list all eligible socket types.
It uses the tree type's `valid_socket_type` callback to test for valid
types. In addition it also checks the subtype, because multiple RNA
types are registered for the same base type. The `valid_socket_type`
callback has been modified slightly to accept full socket types instead
of just the base type enum, so that custom (python) socket types can be
used by this operator.
The `nodeModifySocketType` function is now called when group nodes
encounter a socket type mismatch, instead of replacing the socket
entirely. This ensures that links are kept to/from group nodes as well
as group input/output nodes. The `nodeModifySocketType` function now
also takes a full `bNodeSocketType` instead of just the base and subtype
enum (a shortcut `nodeModifySocketTypeStatic` exists for when only
static types are used).
Differential Revision: https://developer.blender.org/D10912
|
|
# Conflicts:
# source/blender/blenkernel/BKE_node.h
# source/blender/nodes/NOD_geometry.h
|