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-29Cleanup: Simplify code and remove duplicationsAntonio Vazquez
This commit simplify the previous fix for T101455 f6c2f1c65e146bf20b9182f275b67c747d9e2990
2022-09-29GPencil: Remove Fill `use_collide_only` optionAntonio Vazquez
After a lot of testing, this option is not required and now this is managed by stroke_collsion. If the stroke_collision is enabled, only collide strokes are used.
2022-09-29GPencil: Fix missing Fill stroke cross detectionAntonio Vazquez
If the cross point was in the extreme of the stroke the collision was not detected because it could be outside of the bbox. Removed the bbox check because now it is not necessary.
2022-09-29Fix T101455: GPencil Gizmo in wrong location when using Active ElementAntonio Vazquez
The gizmo was not set when this option was selected. By design, in grease pencil the active element option uses the object origin as pivot point.
2022-09-29Fix: Spline Parameter node produces NaN when curve is a single pointJacques Lucke
Issue found in file from T101256.
2022-09-29Nodes: fix missing update when input of muted node changesJacques Lucke
2022-09-29Viewport: Remove unnecassary assertJoseph Eagar
2022-09-29Fix T101410: ignore dangling reroute inputsJacques Lucke
For consistency with other node systems in Blender and older versions of geometry nodes, dangling reroute inputs should not affect the output. When an input socket is linked to dangling reroutes, its own value should be used instead.
2022-09-29Nodes: fix missing updates with muted nodes and reroutesJacques Lucke
Muted nodes and reroutes can potentially affect the output when they are linked to an input socket and don't have any inputs on their own. The issues was that previously "logically linked sockets" where used which hide reroutes and muted nodes away. The solution is to work with the directly linked sockets instead and handle reroutes etc explicitly.
2022-09-29Sculpt: Reset automask cache on non-color non-mask undo stepsJoseph Eagar
2022-09-29UI: Nodes typo in "distribute points in volume" nodeDalai Felinto
Distribute Points In Volume → Distribute Points in Volume.
2022-09-29Fix T101451: curve attribute overlay disappears when origin is out of viewJacques Lucke
The core issue seems to be that `BKE_curve_minmax` does not create the correct bounding box for `Curve` data passed to the render engine. That's because this `Curve` object does not contain the legacy curve data structure. Fixing this will likely require some more consideration, so this fix just avoids the culling check for now, which is actually also done in `OVERLAY_extra_wire` using the same approach.
2022-09-29Sculpt: fix draw face sets not updating on first strokeJoseph Eagar
2022-09-29Fix T94441: fix crash parenting object to a boneAndrew Oates
This crash occurs when the bone is newly created. In certain circumstances the depsgraph data for the armature is not updated, causing `pchan_eval` to be NULL when the parent is updated. This causes a segfault in `ED_object_parent_set` when the flags are updated. This change fixes the underlying depsgraph bug, and also adds both an assertion and NULL pointer check to `ED_object_parent_set` to better handle this scenario if it recurs via another path. Maniphest Tasks: T94441 Differential Revision: https://developer.blender.org/D16065
2022-09-29Sculpt: fix missing nullptr check in pbvh drawJoseph Eagar
This time it was face sets.
2022-09-29Cleanup: Address format-security warningSergey Sharybin
2022-09-29Cleanup: Set but unused variableSergey Sharybin
2022-09-29Cleanup; Warning about missing override for virtual functionSergey Sharybin
2022-09-29Cleanup: quiet warnings (unused arg & trailing fullstop)Campbell Barton
2022-09-29Cleanup: run clang-format in sculpt codeJoseph Eagar
2022-09-29Cleanup: Use c++-style unused paramter form in automasking code.Joseph Eagar
Also renamed shadowed variable in sculpt_filter_mesh.c
2022-09-29Sculpt: fix missing nullptr check in pbvh drawJoseph Eagar
Check for nullptr when building mask vbos.
2022-09-29Sculpt: Normal-based automasking modesJoseph Eagar
Two new normal-based automasking modes. The first mode, "brush", compares vertex normals with the initial normal at the beginning of the brush stroke. The second, "view", compares vertex normals with the view normal. If "occlusion" is on then rays will be shot from each vertex to test if it is occluded by other geometry (note: this can be very slow).\ Only geometry inside the sculpt mesh is considered. Each mode has an associated angular limit and a falloff. Reviewed by: Julien Kaspar and Jeroen Bakker Differential Revision: https://developer.blender.org/D15297 Ref D15297
2022-09-29Cleanup: Remove more unused CustomData API functionsHans Goudey
Due to increased usage of typed arrays in C++ and name/offset based access for BMesh, these are unlikely to be used again, and haven't been used in many years.
2022-09-29Cleanup: Deduplicate logic in CustomData access functionsHans Goudey
Also remove comments that just restated what the next line was doing, often incorrectly.
2022-09-29Cleanup: Remove unused BMesh functionHans Goudey
2022-09-29Cleanup: remove '.' from the end of descriptionsCampbell Barton
Quiet warnings at startup & build time.
2022-09-29Cleanup: simplify storage when uv island packingChris Blackbourn
Refactor ahead of upcoming packing changes. Differential Revision: https://developer.blender.org/D16096
2022-09-29Fix wrong version bump to 3.4.1, we are still on 3.4.0Brecht Van Lommel
The patch levels are reserved for bugfix releases.
2022-09-29Cleanup: use doxy-sections in anim_channels_edit.cCampbell Barton
2022-09-29Cleanup: spelling in commentsCampbell Barton
2022-09-29Cleanup: quiet deprecated copy warningCampbell Barton
2022-09-29Cleanup: replace UNUSED() with commented argumentsCampbell Barton
This is the conventional way of dealing with unused arguments in C++. Also quiet enum conversion warnings.
2022-09-29Cleanup: formatCampbell Barton
2022-09-29Cleanup: fix unused variable warnings in draw_pbvh.ccJoseph Eagar
2022-09-29Sculpt: New Cavity Automasking ModeJoseph Eagar
Add new cavity automasking mode based on local mesh curvature. Cavity masking is a great way to quickly add detail in crevices and the like. It's meant to be used with the Paint brush in color attribute mode. It does work with other brushes but the results can be unpredictable. {F13131497} The old "dirty mask" operator has been replace with a new "mask from cavity" operator that shares the same code with cavity automasking. Differences from the sculpt-dev implementation: * It uses the word "cavity." When I first implemented this I wasn't aware this feature existed in other software (and other paint modes in Blender), and for reasons that escape me today I initially decided to call it a concave or concavity mask. * The cavity factor works a bit differently. It's no longer non-linear and functions as a simple scale around 0.5f. * Supports custom curves. * Supports blurring. Reviewed By: Julian Kaspar, Jeroen Bakker and Campbell Barton Differential Revision: https://developer.blender.org/D15122 Ref D15122
2022-09-29Cleanup: remove duplicate declarationJoseph Eagar
Also got rid of ATTR_NO_OPT macro.
2022-09-29Sculpt: Rewrite PBVH drawJoseph Eagar
Rewrite PBVH draw to allocate attributes into individual VBOs. The old system tried to create a single VBO that could feed every open viewport. This required uploading every color and UV attribute to the viewport whether needed or not, often exceeding the VBO limit. This new system creates one VBO per attribute. Each attribute layout is given its own GPU batch which is cached inside the owning PBVH node. Notes: * This is a full C++ rewrite. The old code is still there; ripping it out can happen later. * PBVH nodes now have a collection of batches, PBVHBatches, that keeps track of all the batches inside the node. * Batches are built exclusively from a list of attributes. * Each attribute has its own VBO. * Overlays, workbench and EEVEE can all have different attribute layouts, each of which will get its own batch. Reviewed by: Clement Foucault Differential Revision: https://developer.blender.org/D15428 Ref D15428
2022-09-29Cleanup: Typo in forward declarationHans Goudey
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-28Mesh: Add C++ implementaiton of topology mappingsHans Goudey
Because they are friendlier to use in C++ code than the existing mesh mapping API, these mappings from one domain to another were often reimplemented in separate files. This commit moves some basic implementations to a `mesh_topology` namespace in the existing mesh mapping header file. These is plenty of room for performance improvement here, particularly by not using an array of Vectors, but that can come later. Split from D16029
2022-09-28GPencil: Avoid infinite loop in Fill debug modeAntonio Vazquez
If the internal flag is set to debug and the Ctrl key is used the program keeps running endless.
2022-09-28GPencil: Disable Fill visual aids if use InvertedAntonio Vazquez
When the inverted mode is used, the visual aids must not be displayed.
2022-09-28GPencil: Extend Fill lines when visual aids are disabledAntonio Vazquez
When the visual aids are disabled, but the extend factor is > 0, the lines must be extended, but not displayed. Also, some variables renamed to clarify.
2022-09-28GPencil: Change property text for Fill Visual AidsAntonio Vazquez
2022-09-28GPencil: Fix unreported memory leak in Fill inverseAntonio Vazquez
There was a memory leak when use inverted fill.
2022-09-28Geometry Nodes: viewport previewJacques Lucke
This adds support for showing geometry passed to the Viewer in the 3d viewport (instead of just in the spreadsheet). The "viewer geometry" bypasses the group output. So it is not necessary to change the final output of the node group to be able to see the intermediate geometry. **Activation and deactivation of a viewer node** * A viewer node is activated by clicking on it. * Ctrl+shift+click on any node/socket connects it to the viewer and makes it active. * Ctrl+shift+click in empty space deactivates the active viewer. * When the active viewer is not visible anymore (e.g. another object is selected, or the current node group is exit), it is deactivated. * Clicking on the icon in the header of the Viewer node toggles whether its active or not. **Pinning** * The spreadsheet still allows pinning the active viewer as before. When pinned, the spreadsheet still references the viewer node even when it becomes inactive. * The viewport does not support pinning at the moment. It always shows the active viewer. **Attribute** * When a field is linked to the second input of the viewer node it is displayed as an overlay in the viewport. * When possible the correct domain for the attribute is determined automatically. This does not work in all cases. It falls back to the face corner domain on meshes and the point domain on curves. When necessary, the domain can be picked manually. * The spreadsheet now only shows the "Viewer" column for the domain that is selected in the Viewer node. * Instance attributes are visualized as a constant color per instance. **Viewport Options** * The attribute overlay opacity can be controlled with the "Viewer Node" setting in the overlays popover. * A viewport can be configured not to show intermediate viewer-geometry by disabling the "Viewer Node" option in the "View" menu. **Implementation Details** * The "spreadsheet context path" was generalized to a "viewer path" that is used in more places now. * The viewer node itself determines the attribute domain, evaluates the field and stores the result in a `.viewer` attribute. * A new "viewer attribute' overlay displays the data from the `.viewer` attribute. * The ground truth for the active viewer node is stored in the workspace now. Node editors, spreadsheets and viewports retrieve the active viewer from there unless they are pinned. * The depsgraph object iterator has a new "viewer path" setting. When set, the viewed geometry of the corresponding object is part of the iterator instead of the final evaluated geometry. * To support the instance attribute overlay `DupliObject` was extended to contain the information necessary for drawing the overlay. * The ctrl+shift+click operator has been refactored so that it can make existing links to viewers active again. * The auto-domain-detection in the Viewer node works by checking the "preferred domain" for every field input. If there is not exactly one preferred domain, the fallback is used. Known limitations: * Loose edges of meshes don't have the attribute overlay. This could be added separately if necessary. * Some attributes are hard to visualize as a color directly. For example, the values might have to be normalized or some should be drawn as arrays. For now, we encourage users to build node groups that generate appropriate viewer-geometry. We might include some of that functionality in future versions. Support for displaying attribute values as text in the viewport is planned as well. * There seems to be an issue with the attribute overlay for pointclouds on nvidia gpus, to be investigated. Differential Revision: https://developer.blender.org/D15954
2022-09-28Cleanup: Rename variablesAntonio Vazquez
2022-09-28GPencil: Fix unreported bug for fill closing strokesAntonio Vazquez
The extend lines were included in render by error when the only collide option was ON.
2022-09-28GPencil: Fix compiler warningAntonio Vazquez