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-03-31Cleanup: Avoid storing pointers for attribute search callbackHans Goudey
It's better to use some local/stable identifiier to avoid relying on the data not being freed in between creating the search menu and the exec function. This is similar to c473b2ce8bdbf8fa.
2022-03-30Curves: Port resample node to the new data-blockHans Goudey
This commit re-implements the resample curve node to use the new curves type instead of CurveEval. The largest changes come from the need to keep track of offsets into the point attribute arrays, and the fact that the attributes for all curves are stored in a flat array. Another difference is that a bit more of the logic is handled by building of the field network inputs. The idea is to let the field evaluator handle potential optimizations while making the rest of the code simpler. When resampling 1 million small poly curves,the node is about 6 times faster compared to 3.1 on my hardware (500ms to 80ms). This also adds support for Catmull Rom curve inputs. Differential Revision: https://developer.blender.org/D14435
2022-03-30Compositor: Fix Missing output UI for Normal nodeAaron Carlisle
There were multiple issues at hand here: - The default value has been changed to `{0, 0, 1}` see: rB25f1783673de636a6f0ca4457df8c05bc685981a - The output needs the subtype set `PROP_DIRECTION` - The noder properties were missing in `node_composit_set_butfunc` Fixes T96860
2022-03-30Geometry Nodes: Remove soft min from extrude node scaleHans Goudey
Extusion with a negative offset is possible and expected.
2022-03-30Curves: Port curves total length node to the new data-blockHans Goudey
Ref T95443
2022-03-30Curves: Port length node to the new data-blockHans Goudey
Ref T95443
2022-03-30Curves: Port parameter node to the new data-blockHans Goudey
Using the evaluated lengths cache from 72d25fa41d8c575, re-implement the curve parameter node with the new data structure. Conceptually it works the same way, but the code is restructured and cleaned up a bit as well. This also adds support for Catmull Rom curves. Differential Revision: https://developer.blender.org/D14461
2022-03-29Cleanup: use value initialization instead of copying default valueJacques Lucke
Value-initialization has the potential to be more efficient. Also, the code becomes simpler.
2022-03-28Cleanup: use "num" as a suffix in: source/blender/nodesCampbell Barton
2022-03-25Cleanup: Simplify logic, rename variablesHans Goudey
Return the map of gathered attributes directly, use simpler naming for "attributes" and "gathered_attributes".
2022-03-25Cleanup: Further renaming in new curves codeHans Goudey
A follow-up to e253f9f66d6f. Follow the policy from T85728 completely (using "num" as a prefix) and rename another function.
2022-03-25Cleanup: sort cmake file listsCampbell Barton
2022-03-24Cleanup: clang-formatDalai Felinto
2022-03-24Cleanup: Typo, improve variable namesHans Goudey
`accumulate_counts_to_offsets` wasn't just used for the point domain.
2022-03-24Cleanup: Adjust naming in new curves codeHans Goudey
Rename "size" variables and functions to use "num" instead, based on T85728 (though this doesn't apply to simple C++ containers, it applies here). Rename "range" to "points" in some functions, so be more specific. Differential Revision: https://developer.blender.org/D14431
2022-03-23Color Management: support different settings for render and compositing outputBrecht Van Lommel
The Output Properties > Output panel now has a Color Management subpanel to override scene settings. When set to Override instead of Follow Scene, there are settings to: * For OpenEXR, choose a (linear) colorspace for RGBA passes * For other file formats, use different display/view/look/exposure/gamma These settings affect animation render output, image save of renders and the compositor file output node. Additionally, the image save operator and compositor file output nodes also support overriding color management. Includes some layout changes to the relevant panels to accomdate the new settings and to improve consistency. Ideally subpanels would be used to better organize these settings, however nodes and operators don't currently support creating subpanels. Differential Revision: https://developer.blender.org/D14402
2022-03-22Fix: Drag link search doesn't always connect to socketLeon Schittek
Connecting to some sockets of a few nodes via the drag link search would fail and trigger an assert, because the picked socket wasn't available. This was due to some sockets only being available with certain settings. This patch fixes these cases by adding the availability conditions of the socket to the node declaration with the `make_available` method or manually adding a `node_link_gather_search` function. Differential Revision: https://developer.blender.org/D14283
2022-03-22Fix T96308: Mesh to BMesh conversion doesn't calculate vertex normalsHans Goudey
Currently there is a "calc_face_normal" argument to mesh to bmesh conversion, but vertex normals had always implicitly inherited whatever dirty state the mesh input's vertex normals were in. Probably they were most often assumed to not be dirty, but this was never really correct in the general case. Ever since the refactor to move vertex normals out of mesh vertices, cfa53e0fbeed7178c7, the copying logic has been explicit: copy the normals when they are not dirty. But it turns out that more control is needed, and sometimes normals should be calculated for the resulting BMesh. This commit adds an option to the conversion to calculate vertex normals, true by default. In almost all places except the decimate and edge split modifiers, I just copied the value of the "calc_face_normals" argument. Differential Revision: https://developer.blender.org/D14406
2022-03-22Fix T96577: setting curve handles not working correctly with multiple curvesJacques Lucke
Differential Revision: https://developer.blender.org/D14409
2022-03-22Cleanup: refactor passing of color management settings for image saveBrecht Van Lommel
Make a copy of ImageFormatData that contains the effective color management settings, and pass that along to the various functions. This will make it possible to add more complex logic later. For compositing nodes, passing along view and display settings through many functions made it harder to add additional settings, so just get those from the scene now. Differential Revision: https://developer.blender.org/D14401
2022-03-22Fix T96420: Set ID node not working for instancesJacques Lucke
Previously, instances used the point domain, but now there is a special domain for instance attributes that the node has to use.
2022-03-22Cleanup: add proper IMB_openexr.h instead of including file from intern/Brecht Van Lommel
2022-03-21Cleanup: add image_format.cc for functions related to ImageFormatDataBrecht Van Lommel
Also fixes missing code to read/write/free/copy color management settings in various places. This can't be set through the UI currently, but still should be handled consistently.
2022-03-19Make Format ChangesHarley Acheson
Only formatting changes found by running "make format", no functional changes Committed without review, but with verbal approval by Hans Goudey
2022-03-19BLI: move generic data structures to blenlibJacques Lucke
This is a follow up to rB2252bc6a5527cd7360d1ccfe7a2d1bc640a8dfa6.
2022-03-18Curves: Port reverse curves node to the new data-blockHans Goudey
Create a function on CurvesGeometry that can also be used for an edit mode operator in the future. Dealing with CustomData directly means the code is a bit more verbose than would be ideal, but this would be a simple thing to clean up in the future if we get an attribute API here. Also change the reverse node to first work on a read-only geometry component, and only get write access if there is a curve selected. Differential Revision: https://developer.blender.org/D14375
2022-03-18Cleanup: Remove unnecessary namespace usage, use constHans Goudey
2022-03-18Curves: Port fill curve node to the new data-blockHans Goudey
This will mostly just remove the overhead of converting to and from the old curves type, though it also does open some opportunities for multi-threading in the future.
2022-03-18Curves: Port transform node to new data-blockHans Goudey
Make the new curves' translate and transform functions also affect the handle position attributes. Differential Revision: https://developer.blender.org/D14372
2022-03-18BLI: move CPPType to blenlibJacques Lucke
For more detail about `CPPType`, see `BLI_cpp_type.hh` and D14367. Differential Revision: https://developer.blender.org/D14367
2022-03-18Curves: Port handle type selection node to new data-blockHans Goudey
The node's structure isn't changed, it basically still works the same way. The use of virtual arrays could be optimized in the future if necessary.
2022-03-18Curves: Port Bezier Segment node to the new data-blockHans Goudey
Ref T95443
2022-03-18Curves: Port convex hull node to new data-blockHans Goudey
This uses the evaluated positions calculations from 8538c69921662164677.
2022-03-18Cleanup: Remove unused includesHans Goudey
2022-03-18Cleanup: Rename "spline" variables to "curve"Hans Goudey
Ref T95355
2022-03-18Cleanup: Reorganize duplicate elements fileHans Goudey
Use sections to keep all the code for a specific mode together, rather than keeping the attribute duplication separate.
2022-03-18Curves: Port duplicate elements node to new data-blockHans Goudey
Remove the conversion to and from `CurveEval` by supporting the new Curves data-block in the node. This allows for some simplifications to the code, as well as a fix for transfering curve domain attributes when duplicating the curve domain. The performance improvements (obverved through the timings overlay) can be relatively massive with many curves. When duplicating 10000 4-point curves to become 2 million curves, I observed an approximate 150x improvement, from about 3 seconds to about 20ms.
2022-03-18Cleanup: Miscellaneous improvements to duplicate geometry nodeHans Goudey
- Pass less redundant information in function arguments. - Use `IndexRange` more instead of direct offset calculations. - Use specific geometry component types for specialized functions. - Use const arguments. - Declare variables closer to where they are created or used. - Remove some redundant logic. - Simplify the description for the output geometry.
2022-03-17BLI: add probabilistic rounding utilityJacques Lucke
2022-03-16Cleanup: Remove unnecessary namespace specificationHans Goudey
Ever since d5b72fb06cd0405c46, shader nodes have been in the `blender::nodes` namespace, so they don't need to use that to access Blender's C++ types and functions.
2022-03-16Fix: Build error from missing build dependenciesHans Goudey
Somehow exposed after 943b919fe807b5355, linking could fail because bf_nodes was not properly configured as a dependency of bf_nodes_shader. Also add the dependency to the geometry nodes module.
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-16Curves: Port count spline length output to new data-blockHans Goudey
This fixes T96487 in a similar way to 5791835678067b56, and also removes the conversion to old curve type for the "Point Count" output.
2022-03-15Cleanup: correct unbalanced doxy sectionsCampbell Barton
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-14Auto-generate RNA-structs declarations in `RNA_prototypes.h`Julian Eisel
So far it was needed to declare a new RNA struct to `RNA_access.h` manually. Since 9b298cf3dbec we generate a `RNA_prototypes.h` for RNA property declarations. Now this also includes the RNA struct declarations, so they don't have to be added manually anymore. Differential Revision: https://developer.blender.org/D13862 Reviewed by: brecht, campbellbarton
2022-03-12Fix T96229: GN Fillet Node unexpected limit radius behavior for 3 point splinesDilith Jayakody
This commit fixes T96229. The maximum possible radius was being used for 3 point splines, regardless of the current radius. Reviewed By: HooglyBoogly Maniphest Tasks: T96229 Differential Revision: https://developer.blender.org/D14311
2022-03-11Cleanup: Use new enum for NURBS curve knots modesHans Goudey
Move the definition of the enum to `Curves` DNA, since the values will be saved in files, and ongoing development needs to use this.
2022-03-11Fix: Assert in set spline type node after recent commitHans Goudey
My own error when committing 0602852860dda. It appears that the "Endpoint" knots modes should be handled together, otherwise out of bounds array access is possible.
2022-03-11Curve: Improve NURBS knot generation modesLaurynas Duburas
This patch enables all 8 combinations of Nurbs modes: Cyclic, Bezier and Endpoint. Also removes restriction on Bezier Nurbs order. The most significant changes are mode combinations bringing new meaning. In D13891 is a scheme showing NURBS with same control points in a modes, and also further description of each possible case. Differential Revision: https://developer.blender.org/D13891