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-10-10Fix typos & co in UI messages.Bastien Montagne
2022-10-04Geometry Nodes: Rename Control Point Neighbors NodeHans Goudey
Rename the node to "Offset Point in Curve" Since this was committed, more mesh and curve topology nodes have been committed with a different naming scheme (482d431bb6735e82069). Change the name of this node to match "Offset Corner in Face". Because the node was only added recently, it's a full rename, including the ID, so forward compatibility is broken.
2022-10-03Geometry Nodes: Set Curve NormalJohnny Matthews
This node allows for curves to have their evaluated normal mode changed between MINIMUM_TWIST and Z_UP. A selection input allows for choosing which spline in the curves object will be affected. Differential Revision: D16118
2022-10-03Geometry Nodes: new Sample UV Surface nodeJacques Lucke
This node allows sampling an attribute on a mesh surface based on a UV coordinate. Internally, this has to do a "reverse uv lookup", i.e. the node has to find the polygon that corresponds to the uv coordinate. Therefore, the uv map of the mesh should not have overlapping faces. Differential Revision: https://developer.blender.org/D15440
2022-09-29UI: Nodes typo in "distribute points in volume" nodeDalai Felinto
Distribute Points In Volume → Distribute Points in Volume.
2022-09-28Geometry Nodes: Curve and mesh topology access nodesHans Goudey
This patch contains an initial set of nodes to access basic mesh topology information, as explored in T100020. The nodes allow six direct topology mappings for meshes: - **Corner -> Face** The face a corner is in, the index in the face - **Vertex -> Edge** Choose an edge attached to the vertex - **Vertex -> Corner** Choose a corner attached to the vertex - **Corner -> Edge** The next and previous edge at each face corner - **Corner -> Vertex** The vertex associated with a corner - **Corner -> Corner** Offset a corner index within a face And two new topology mappings for curves: - **Curve -> Points** Choose a point within a curve - **Point -> Curve** The curve a point is in, the index in the curve The idea is that some of the 16 possible mesh mappings are more important, and that this is a useful set of nodes to start exploring this area. For mappings with an arbitrary number of connections, we must sort them and use an index to choose a single element, because geometry nodes does not support list fields. Note that the sort index has repeating behavior as it goes over the "Total" number of connections, and negative sort indices choose from the end. Currently which of the "start" elements is used is determined by the field context, so the "Field at Index" and "Interpolate Domain" nodes will be quite important. Also, currently the "Sort Index" inputs are clamped to the number of connections. One important feature that isn't implemented here is using the winding order for the output elements. This can be a separate mode for some of these nodes. It will be optional because of the performance impact. There are several todos for separate commits after this: - Rename "Control Point Neighbors" to be consistent with this naming - Version away the "Vertex Neighbors" node which is fully redundant now - Implement a special case for when no weights are used for performance - De-duplicating some of the sorting logic between the nodes - Improve performance and memory use of topology mappings - Look into caching some of the mappings on meshes Differential Revision: https://developer.blender.org/D16029
2022-09-26Geometry Nodes: Control Point Neighbors NodeJohnny Matthews
This node allows access to the indices of neighboring control points within a curve via an offset. This includes taking into consideration curves that are cyclic. Differential Revision: D13373
2022-09-24Cleanup: typo in static node typeJacques Lucke
2022-09-23Geometry Nodes: Split transfer attribute nodeHans Goudey
This patch replaces the existing transfer attribute node with three nodes, "Sample Nearest Surface", "Sample Index", and "Sample Nearest". This follows the design in T100010, allowing for new nodes like UV sampling in the future. There is versioning so the new nodes replace the old ones and are relinked as necessary. The "Sample Nearest Surface" node is meant for the more complex sampling algorithms that only work on meshes and interpolate values inside of faces. The new "Sample Index" just retrieves attributes from a geometry at specific indices. It doesn't have implicit behavior like the old transfer mode, which should make it more predictable. In order to not change the behavior from existing files, the node has a has a "Clamp", which is off by default for consistency with the "Field at Index" node. The "Sample Nearest" node returns the index of the nearest element on a geometry. It can be combined with the "Sample Index" node for the same functionality as the old transfer node. This node can support curves in the future. Backwards compatibility is handled by versioning, but old versions can not understand these nodes. The warning from 680fa8a523e0 should make this explicit in 3.3 and earlier. Differential Revision: https://developer.blender.org/D15909
2022-09-22Geometry Nodes: Add Self Object NodeHans Goudey
From the nodes' description: "Retrieve the object that contains the geometry nodes modifier currently being executed". This was discussed in the most recent geometry nodes module meeting. Because the node allows you to retrieve the position of the modifier object, it has to add a depsgraph relation to object transform. Expect that modifiers will be reevaluated when moving the object. In the future, better static analysis of node trees could make this check smarter. Differential Revision: https://developer.blender.org/D16037
2022-09-19Geometry Nodes: Distribute Points in VolumeIyad Ahmed
This commit adds a node to distribute points inside of volume grids. The "Random" mode usese OpenVDB's "point scatter" implementation, and there is also a "Grid" mode for uniform distributions. Both methods operate on all of the float grids in the volume, using every voxel with a value higher than the threshold. The random method is not stable as the input volume deforms. Based on a patch by Angus Stanton (@abstanton), which was based on a patch by Kenzie (@kenziemac130). Differential Revision: https://developer.blender.org/D15375
2022-09-18Geometry Nodes: New Face Set Boundaries nodeWannes Malfait
With the recent addition of the UV unwrapping node, there is a need to be able to create seams easily. This node does that by outputting a selection of the boundaries between different input face sets. In the context of UV mapping, one inputs the "patches" you want, and the node gives you the seams needed to make those patches. Differential Revision: https://developer.blender.org/D15423
2022-08-31Merge branch 'blender-v3.3-release'Joseph Eagar
2022-08-31UI: Fix Geometry Nodes "Is Face Planar" nameDalai Felinto
Old name: "Face is Planar" New name: "Is Face Planar" This follows the current convention (Is Shade Smooth, Is Viewport, ...).
2022-08-31UI: Fix Geometry Nodes "Mesh to Volume" name (typo)Dalai Felinto
Old name: "Mesh To Volume" New name: "Mesh to Volume" This is consistent with what we do for the other nodes (Mesh to Curve, Mesh to Points).
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-08Fix: Typo in geometry node tooltipHans Goudey
2022-08-01tweaks & fixes to UI messages.Bastien Montagne
2022-07-27Geometry Nodes: Rename "Field on Domain" to "Interpolate Domain"Hans Goudey
This name doesn't require understanding of fields, and is phrased as an action which is consistent with other nodes. Discussed in the latest geometry nodes sub-module meeting.
2022-07-27Geometry Nodes: Shortest Paths nodesErik Abrahamsson
This adds three new nodes: * `Shortest Edge Paths`: Actually finds the shortest paths. * `Edge Paths to Curves`: Converts the paths to separate curves. This may generate a quadratic amount of data, making it slow for large meshes. * `Edge Paths to Selection`: Generates an edge selection that contains all edges that are part of a path. This can be used with the Separate Geometry node to only keep the edges that are part of a path. For large meshes, this approach can be much faster than the `Edge Paths to Curves` node, because less data is created. Differential Revision: https://developer.blender.org/D15274
2022-07-25Geometry Nodes: Add node descriptions/tooltipsArye Ramaty
This commit adds tooltips to the geometry nodes add menu. Differential Revision: https://developer.blender.org/D15414
2022-07-22Fix T99835: Incorrect title case for two node namesHans Goudey
2022-07-11Fix/Cleanup UI messages.Bastien Montagne
2022-07-08Curves: support deforming curves on surfaceJacques Lucke
Curves that are attached to a surface can now follow the surface when it is modified using shape keys or modifiers (but not when the original surface is deformed in edit or sculpt mode). The surface is allowed to be changed in any way that keeps uv maps intact. So deformation is allowed, but also some topology changes like subdivision. The following features are added: * A new `Deform Curves on Surface` node, which deforms curves with attachment information based on the surface object and uv map set in the properties panel. * A new `Add Rest Position` checkbox in the shape keys panel. When checked, a new `rest_position` vector attribute is added to the mesh before shape keys and modifiers are applied. This is necessary to support proper deformation of the curves, but can also be used for other purposes. * The `Add > Curve > Empty Hair` operator now sets up a simple geometry nodes setup that deforms the hair. It also makes sure that the rest position attribute is added to the surface. * A new `Object (Attach Curves to Surface)` operator in the `Set Parent To` (ctrl+P) menu, which attaches existing curves to the surface and sets the surface object as parent. Limitations: * Sculpting the procedurally deformed curves will be implemented separately. * The `Deform Curves on Surface` node is not generic and can only be used for one specific purpose currently. We plan to generalize this more in the future by adding support by exposing more inputs and/or by turning it into a node group. Differential Revision: https://developer.blender.org/D14864
2022-07-06UI: Adjust and fix shader node descriptionsHans Goudey
The tooltips added for shader nodes in D15309 are very helpful already. This commit makes a few tweaks to make them more consistent, concise, and includes some fixes. Note that this might move some descriptions further away from the wording in the manual. * Make wording more concise * Start fewer new sentences * Use "For Example" slightly less * Avoid repeating the node's name unnecessarily * Spelling/grammar fixes * Don't capitalize some words * Use consistent verb conjugation * Use ASCII characters/more common quote symbols * Corrections to information * Plural/singular corrections * "smoke domains" -> "volume grids" * Fix tooltip for separate and combine color nodes * Refer to color sockets as colors rather than "images" * Avoid "advice" in a few places, which should be left for the manual * Remove information for sockets and could be in their tooltips * Avoid referring to the locations of a property in the UI * Avoid manual newlines (mostly reserve for "Note:") * Leave UI code in control of wrapping, which is more consistent * Add some information * That the UV map and color attribute nodes use a default * That Voronoi is "based on the distance to random points" * Add "(Deprecated)" to old color combine and separate nodes Differential Revision: https://developer.blender.org/D15381
2022-07-02Revert "Start of Bevel V2, as being worked on with task T98674."Howard Trickey
This reverts commit 9bb2afb55e50f9353cfc76cf2d8df7521b0b5feb. Oops, did not intend to commit this to master.
2022-07-02Start of Bevel V2, as being worked on with task T98674.Howard Trickey
This is the start of a geometry node to do edge, vertex, and face bevels. It doesn't yet do anything but analyze the "Vertex cap" around selected vertices for vertex bevel.
2022-06-29Geometry Nodes: UV Unwrap and Pack Islands NodesAleksi Juvani
This commit adds new Unwrap and Pack Islands nodes, with equivalent functionality to the existing Unwrap and Pack Islands operators. The Unwrap node uses generic boolean attributes to determine seams instead of looking at the seam flags in the mesh geometry. Unlike the Unwrap operator, the Unwrap node doesn't perform aspect ratio correction, because this is trivial for the user to implement with a Vector Math node if it is desired. The Unwrap node implicitly performs a Pack Islands operation upon completion, because the results may not be generally useful otherwise. This matches the behaviour of the Unwrap operator. The nodes use the existing Vector socket type, and do not introduce a new 2D Vector type (see T92765). Differential Revision: https://developer.blender.org/D14389
2022-06-29Geometry Nodes: Add Mesh To Volume NodeErik Abrahamsson
This adds a Mesh To Volume Node T86838 based on the existing modifier. The mesh to volume conversion is implemented in the geometry module, and shared between the node and the modifier. Currently the node outputs a grid with the name "density". This may change in the future depending on the decisions made in T91668. The original patch was by Kris (@Metricity), further implementation by Geramy Loveless (@GeramyLoveless), then finished by Erik Abrahamsson (@erik85). Differential Revision: https://developer.blender.org/D10895
2022-06-29UI: add tooltips for nodes to the shader node add menuArye Ramaty
These are based on the descriptions from the manual, with various changes. Differential Revision: https://developer.blender.org/D15309
2022-06-25Geometry Nodes: Field on Domain NodeHans Goudey
As described in T98943, this commit adds a node that can evaluate a field on a separate domain in a larger field context. This is potentially useful in many cases, to avoid relying on a separate capture attribute node, which can make it easier to build reusable fields that don't need geometry inputs. Internally, the node just evaluates the input field in the larger field context and then uses the generic domain interpolation, so the code is simple. One future optimization might be using the input selection to only evaluate part of the input field, but then the selection has to be interpolated as well, and that might not always be worth it. Differential Revision: https://developer.blender.org/D15289
2022-06-25Geometry Nodes: Add Points NodeJohnny Matthews
This node takes a point count,a vector field, and float field and creates a pointcloud with n points at the positions indicated in the vector field with the radii specified in the float field.The node is placed in the "Point" menu. Differential Revision: https://developer.blender.org/D13920 Maniphest Task: https://developer.blender.org/T93044
2022-06-17Geometry Nodes: new Volume Cube nodeChris Clyne
This commit adds a Volume Cube primitive node. It outputs a volume that contains a single "density" float grid. The density per voxel can be controlled with a field that depends on the voxel position (using the existing Position node). Other field inputs are not supported. The density field is evaluated on every voxel. Possible future improvements are listed in D15198. Differential Revision: https://developer.blender.org/D15198
2022-06-06Geometry Nodes: Add Instance Scale Input NodeJohnny Matthews
A field input node for the scale of each top-level instance transform. The scale can be set with the "Scale Instances" node, but previously could not be retrieved. Differential Revision: https://developer.blender.org/D15132
2022-06-06Geometry Nodes: Instance Rotation NodeJohnny Matthews
A field input node for the rotation of each top-level instance transform. The rotation can be set with the "Rotate Instances" node, but previously could not be retrieved. Differential Revision: https://developer.blender.org/D15131
2022-05-20UI: rename Hue/Saturation node to Hue Saturation Value in shaders and texturesDaniel Salazar
This makes it easier to search for and consistent with compositor nodes. Differential Revision: https://developer.blender.org/D14914
2022-05-04Nodes: Add general Combine/Separate Color nodesHallam Roberts
Inspired by D12936 and D12929, this patch adds general purpose "Combine Color" and "Separate Color" nodes to Geometry, Compositor, Shader and Texture nodes. - Within Geometry Nodes, it replaces the existing "Combine RGB" and "Separate RGB" nodes. - Within Compositor Nodes, it replaces the existing "Combine RGBA/HSVA/YCbCrA/YUVA" and "Separate RGBA/HSVA/YCbCrA/YUVA" nodes. - Within Texture Nodes, it replaces the existing "Combine RGBA" and "Separate RGBA" nodes. - Within Shader Nodes, it replaces the existing "Combine RGB/HSV" and "Separate RGB/HSV" nodes. Python addons have not been updated to the new nodes yet. **New shader code** In node_color.h, color.h and gpu_shader_material_color_util.glsl, missing methods hsl_to_rgb and rgb_to_hsl are added by directly converting existing C code. They always produce the same result. **Old code** As requested by T96219, old nodes still exist but are not displayed in the add menu. This means Python scripts can still create them as usual. Otherwise, versioning replaces the old nodes with the new nodes when opening .blend files. Differential Revision: https://developer.blender.org/D14034
2022-04-25Geometry Nodes: Add "Named" to "Remove Attribute" node nameHans Goudey
The goal is to be consistent with the other two nodes that deal with named attributes. Ref T97512
2022-04-07Geometry Nodes: Add "Connected" mode to Merge by Distance nodeAleksi Juvani
Expose the "Connected" mode from the weld modifier in the "Merge by Distance" geometry node. This method only merges vertices along existing edges, but it can be much faster because it doesn't have to build a KD Tree of all selected points. Differential Revision: https://developer.blender.org/D14321
2022-04-07Curves: Hair to Curves rename in Cycles/EEVEE UIHans Goudey
Change uses of "Hair" in Render Settings UI in the property editor and the "Hair Info" node to use the "Curves" name to reflect the design described in T95355, where hair is just a use case of a more general curves data type. While these settings still affect the particle hair system, the idea is that if we have to choose one naming scheme to align with, we should choose the option that aligns with future plans and current development efforts, especially since the particle system is considered a legacy feature. A few notes: - "Principled Hair BSDF" is not affected since it's meant for hair. - Python API property identifiers are not affected. Differential Revision: https://developer.blender.org/D14573
2022-04-05Refactor: Unify vertex and sculpt colors into newJoseph Eagar
color attribute system. This commit removes sculpt colors from experimental status and unifies it with vertex colors. It introduces the concept of "color attributes", which are any attributes that represents colors. Color attributes can be represented with byte or floating-point numbers and can be stored in either vertices or face corners. Color attributes share a common namespace (so you can no longer have a floating-point sculpt color attribute and a byte vertex color attribute with the same name). Note: this commit does not include vertex paint mode, which is a separate patch, see: https://developer.blender.org/D14179 Differential Revision: https://developer.blender.org/D12587 Ref D12587
2022-03-16Geometry Nodes: Remove legacy node codeHans Goudey
This commit removes the implementations of legacy nodes, their type definitions, and related code that becomes unused. Now that we have two releases that included the legacy nodes, there is not much reason to include them still. Removing the code means refactoring will be easier, and old code doesn't have to be tested and maintained. After this commit, the legacy nodes will be undefined in the UI, so 3.0 or 3.1 should be used to convert files to the fields system. The net change is 12184 lines removed! The tooltip for legacy nodes mentioned that we would remove them before 4.0, which was purposefully a bit vague to allow us this flexibility. In a poll in a devtalk post showed that the majority of people were okay with removing the nodes. https://devtalk.blender.org/t/geometry-nodes-backward-compatibility-poll/20199 Differential Revision: https://developer.blender.org/D14353
2022-03-14Geometry Nodes: Add named attribute nodes behind experimental flagHans Goudey
This commit adds three nodes: - `Remove Attribute`: Removes an attribute with the given name - `Named Attribute`: A field input node - `Store Named Attribute`: Puts results of a field in a named attribute They are added behind a new experimental feature flag, because further development of attribute search and name dependency visualization will happen as separate steps. Ref T91742 Differential Revision: https://developer.blender.org/D12685
2022-03-03Cleanup: Rename set handle type node internally to match UIHans Goudey
I've had trouble finding this node a few times now, it's simpler if the file name matches the name in the UI.
2022-02-23Geometry Nodes: Face is Planar NodeJohnny Matthews
This adds a node with a boolean field output which returns true if all of the points of the evaluated face are on the same plane. A float field input allows for the threshold of the face/point comparison to be adjusted on a per face basis. One clear use case is to only triangulate faces that are not planar. Differential Revision: https://developer.blender.org/D13906
2022-02-23Geometry Nodes: Duplicate Elements NodeJohnny Matthews
This adds a node which copies part of a geometry a dynamic number of times. Different parts of the geometry can be copied differing amounts of times, controlled by the amount input field. Geometry can also be ignored by use of the selection input. The output geometry contains only the copies created by the node. if the amount input is set to zero, the output geometry will be empty. The duplicate index output is an integer index with the copy number of each duplicate. Differential Revision: https://developer.blender.org/D13701
2022-02-11File headers: SPDX License migrationCampbell Barton
Use a shorter/simpler license convention, stops the header taking so much space. Follow the SPDX license specification: https://spdx.org/licenses - C/C++/objc/objc++ - Python - Shell Scripts - CMake, GNUmakefile While most of the source tree has been included - `./extern/` was left out. - `./intern/cycles` & `./intern/atomic` are also excluded because they use different header conventions. doc/license/SPDX-license-identifiers.txt has been added to list SPDX all used identifiers. See P2788 for the script that automated these edits. Reviewed By: brecht, mont29, sergey Ref D14069
2022-02-02Compositor: Combine and Separate XYZ NodeAaron Carlisle
We have this node for shader and geometry nodes. Compositor can also work with vectors, and this can help with that. Reviewed By: manzanilla Maniphest Tasks: T95385 Differential Revision: https://developer.blender.org/D12919
2022-01-25Geometry Nodes: Initial merge by distance nodeHans Goudey
This implements a merge by distance operation for point clouds. Besides the geometry input, there are two others-- a selection input to limit the operation to certain points, and the merge distance. While it would be a reasonable feature, the distance does not support a field currently, since that would make the algorithm significantly more complex. All attributes are merged to the merged points, with the values mixed together. This same generic method is used for all attributes, including `position`. The `id` attribute uses the value from the first merged index for each point. For the implementation, most of the effort goes into creating a merge map to speed up attribute mixing. Some parts are inherently single-threaded, like finding the final indices accounting for the merged points. By far most of the time is spend balancing the KD tree. Mesh support will be added in the next commit. Differential Revision: https://developer.blender.org/D13649
2022-01-25Cycles: add Point Info nodeBrecht Van Lommel
With (center) position, radius and random value outputs. Eevee does not yet support rendering point clouds, but an untested implementation of this node was added for when it does. Ref T92573