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-07Fix missing header include when using timeit feature.Bastien Montagne
2022-10-06GPencil: Use new icons for Envelope and Outline modifiersAntonio Vazquez
Before both modifiers were using Skin icon.
2022-10-06Fix T101618: Freeze when reloading a library in certain situationPhilipp Oeser
Freeze happened when reloading a library while having an Object property with a custom getter function defined in Python. Just piggybacking on rB62eb21e3ce87, this just applies the same fix (use the BPy_BEGIN/END_ALLOW_THREADS macros) to relading from RNA/py. All credit goes to @brecht and @mont29. Maniphest Tasks: T101618 Differential Revision: https://developer.blender.org/D16167
2022-10-06Curve: increase max of order U/VRedMser
Uses soft and hard max of the resolution properties. Range for order U/V was 2-6, but after testing higher max values with NURB splines and surfaces with many control points, no problems were found. Reviewed By: campbellbarton Ref D13918
2022-10-05I18n: disambiguate a few messagesDamien Picard
- Active Track (NLA vs movie clip) - New (file) - Object Index (loop cut) - Object Index (render pass) - Proxy Storage (sequence) - Rim (Solidify modifier) - Roughness (particle children) - Spaces (text whitespace) - Out (sequencer wipe transition) Also make new asset tag name translatable. Reviewed By: mont29 Differential Revision: https://developer.blender.org/D16067
2022-10-05I18n: extract dynamic enum itemsDamien Picard
These item names and descriptions never got extracted because they're not in the RNA until the proper context occurs, and so the extraction script never even knew about them. The properties are mostly located in the fluids UI. Reviewed By: mont29 Differential Revision: https://developer.blender.org/D15994
2022-10-05Fix T101405: Deleting a baked action results in an error.Bastien Montagne
RNA code to create new actions did not properly remove the extra user set by default, as done in other `new` callbacks of other ID types. NOTE: Mask ID had the same issue, also fixed in this commit. NOTE: At some point this needs to be properly fixed, default super-low level ID creation code should simply not add a 'default' user, this is extremely bad design and forces higher-level code to do all kind of extra work to get rid of it half of the time, in very unclear and confusing ways and places.
2022-10-04Cleanup: replace UNUSED macro with commented args in C++ codeHans Goudey
This is the conventional way of dealing with unused arguments in C++, since it works on all compilers. Regex find and replace: `UNUSED\((\w+)\)` -> `/*$1*/`
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-03Cycles: add option to bake specular from active camera viewpointPhoenix Katsch
Previously it would bake viewed from above the surface. The new option can be useful when the baked result is meant to be viewed from a fixed viewpoint or with limited camera motion. Some effort is made to give a continuous reflection on parts of the surface invisible to the camera, but this is necessarily only a rough approximation. Differential Revision: https://developer.blender.org/D15921
2022-10-03Cleanup: rename IMA_CHAN_FLAG_ALPHA to IMA_CHAN_FLAG_RGBA to match meaningBrecht Van Lommel
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-10-03Cleanup: spelling in commentsCampbell Barton
Also replace "dm" for evaluated mesh in some comments.
2022-10-01Fix T101504: Crash when repeat value is zeroPratik Borhade
Crash triggers due to division by zero fix is to increase minimum limit for `seg_repeat` to 1 Reviewed By: antoniov, frogstomp Maniphest Tasks: T101504 Differential Revision: https://developer.blender.org/D16120
2022-09-30Attribute Node: refactor lookup to remove duplication between engines.Alexander Gavrilov
Currently lookup of Object and Instancer attributes is completely duplicated between Cycles, Eevee and Eevee Next. This is bad design, so this patch aims to deduplicate it by introducing a common API in blenkernel. In case of Cycles this requires certain hacks, but according to Brecht it is planned to be rewritten later for more direct access to internal Blender data anyway. Differential Revision: https://developer.blender.org/D16117
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-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-29Cleanup: run clang-format in sculpt codeJoseph Eagar
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 '.' from the end of descriptionsCampbell Barton
Quiet warnings at startup & build time.
2022-09-29Cleanup: formatCampbell Barton
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-28GPencil: Change property text for Fill Visual AidsAntonio Vazquez
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-28GPencil: Fill Tool - Check if extensions collide with real strokesAntonio Vazquez
This commit is an improvement in the previous fill tool changes in order to improve how the extended strokes are managed. * Now, the algorithm checks if the extend cross a standard stroke, not only extend strokes. * Option to enable or disable the stroke cross checking because this can be slow in very complex scenes. * Added `D` key to toggle stroke cross option. * Option to use only collide strokes to be used as fill limit. If the option to use only collide strokes is enabled, the open extensions are in different color. * Status text now shows mode and the actual extend factor. This commits also contains a refactor of the loops to use arrays as much as possible. Reviewed By: mendio, pepeland Differential Revision: https://developer.blender.org/D16052
2022-09-28Fix T101341: make nodegroups active input/output non-animatablePhilipp Oeser
Active UI list index is usually not animatable. Here specifically, the active list index is oly used for operators acting on a specific (active) socket. Note other props here were already made non-animatable in rB1d3b92bdeabc. Maniphest Tasks: T101341 Differential Revision: https://developer.blender.org/D16077
2022-09-27Gpencil: Time Offset modifier new Chain modeAleš Jelovčan
This patch adds 5th mode to Time offset modifier, which should allow to create time segments list. This will allow users to chain together multiple time ranges in 4 modes: - Forward - Backwards - Pingpong - Reverse Pingpong It also comes with additional Repeat parameter which specifies number of times particular segment should run. The mechanic of it is transforming initial parameters into array of frames which are mapped to existing cfra (current frame) value. Prototype : https://jsfiddle.net/ha2sjw8p/3/ This is also closely aligned to community request: https://blender.community/c/rightclickselect/Txhbbc/ This should allow creation of complex animations like dancing, which consists of repeating loops and transitions to the next. One important side effect of this is dramatically reduced file sizes, as user no longer needs to copy paste keyframes. Reviewed By: antoniov, mendio, pepeland Differential Revision: https://developer.blender.org/D15052
2022-09-27GPencil: New Outline modifierAntonio Vazquez
This modifier converts any stroke (no fill strokes) into perimeter from camera view. Also, it's possible to define an alternative material for the outline. There is an option to include a target object to manipulate the start point of the strokes. The start point will be the nearest point to the target object. Reviewed By: mendio, frogstomp Maniphest Tasks: T100826 Differential Revision: https://developer.blender.org/D15882 Note: Icon will be updated in T101155
2022-09-27Fix T101272: Missing view layer updates handling collections via python.Jeroen Bakker
Fixed by ensuring the view layer is up to date.
2022-09-26UI: add preference to disable touchpad multitouch gesturesrecht Van Lommel
Available on Windows and macOS, where such gestures are supported. For Windows, disabling this option restores touchpad behavior to match Blender 3.2. Ref T97925 Differential Revision: https://developer.blender.org/D16005
2022-09-26Cleanup: use 'u' prefixed integer types for brevity in C codeCampbell Barton
This also simplifies using function style casts when moving to C++.
2022-09-25Cleanup: replace C-style casts with functional casts for numeric typesCampbell Barton
Some changes missed from f68cfd6bb078482c4a779a6e26a56e2734edb5b8.
2022-09-25Cleanup: use 'u' prefixed integer types for brevity & cast styleCampbell Barton
To use function style cast '(unsigned char)x' can't be replaced by 'unsigned char(x)'.
2022-09-25Cleanup: remove redundant double parenthesisCampbell Barton
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-23GPencil: Improve Fill Tool Extend linesAntonio Vazquez
* Improve how the extend lines collision is calculated. * Added `S` key to switch between modes. * Now extend factor does not disable visual aids (thi sis done with checkbox). * Reduce the use of linked list and now memory array is used. * Refactor Radius functions. * Fixed bug of Radius mode when object is rotated. * Cleanup code. Differential Revision: https://developer.blender.org/D16022
2022-09-23Mesh: Move selection flags to generic attributesHans Goudey
Using the attribute name semantics from T97452, this patch moves the selection status of mesh elements from the `SELECT` of vertices, and edges, and the `ME_FACE_SEL` of faces to generic boolean attribute Storing this data as generic attributes can significantly simplify and improve code, as described in T95965. The attributes are called `.select_vert`, `.select_edge`, and `.select_poly`. The `.` prefix means they are "UI attributes",so they still contain original data edited by users, but they aren't meant to be accessed procedurally by the user in arbitrary situations. They are also be hidden in the spreadsheet and the attribute list. Until 4.0, the attributes are still written to and read from the mesh in the old way, so neither forward nor backward compatibility are affected. This means memory requirements will be increased by one byte per element when selection is used. When the flags are removed completely, requirements will decrease. Further notes: * The `MVert` flag is empty at runtime now, so it can be ignored. * `BMesh` is unchanged, otherwise the change would be much larger. * Many tests have slightly different results, since the selection attribute uses more generic propagation. Previously you couldn't really rely on edit mode selections being propagated procedurally. Now it mostly works as expected. Similar to 2480b55f216c Ref T95965 Differential Revision: https://developer.blender.org/D15795
2022-09-23Cleanup: use depsgraph iterator settings in rnaJacques Lucke
Somehow missed this as part of rBb197cd5821f1dfaa5168d31984dd8014f5252456.
2022-09-23Mesh: Move edge crease out of MEdgeHans Goudey
This is very similar to D14077. There are two differences though. First is that vertex creases are already stored in a separate layer, and second is that we can now completely remove use of `Mesh.cd_flag`, since that information is now inherent to whether the layers exist. There are two functional differences here: * Operators are used to add and remove layers instead of a property. * The "crease" attribute can be created and removed by geometry nodes. The second change should make various geometry nodes slightly faster, since the "crease" attribute was always processed before. Creases are now interpolated generically in the CustomData API too, which should help maintain the values across edits better. Meshes get an `edge_creases` RNA property like the existing vertex property, to provide more efficient access to the data in Cycles. One test failure is expected, where different rounding between float the old char storage means that 5 additional points are scattered in a geometry nodes test. Differential Revision: https://developer.blender.org/D15927
2022-09-23Cleanup: use depsgraph iterator settings in rnaJacques Lucke
This was missing in rBe5d4afd5bac71e29ba71ecf091feaa0d70b70260.
2022-09-22UV: add toggle to show the grid over the imageChris Blackbourn
In UV editor, previously unable to see grid and image at same time. Maniphest Tasks: T78391 Differential Revision: https://developer.blender.org/D16038
2022-09-21File Browser: Manual auto-increase name support for output filepathsDalai Felinto
This functionality was present until Blender 2.80. Basically it adds back the "+" and "-" buttons in the file browser when it stores an output filepath. This is useful for someone rendering multiple versions of an animation (or a composition) to compare. At the moment this is used for the render output, and the File Output node in the compositor. Differential Revision: https://developer.blender.org/D15968
2022-09-20Animation: Add redo panel to Dopesheet and NLARedMser
Add the Redo panel to the dopesheet & NLA editors. This also implicitly adds it to the timeline editor, since it's a kind of action editor internally. This feature is needed for changing advanced properties of animation operators, such as select grouped (see D14811). But it can also be useful for existing operators, like precise keyframe position tweaking. Changes are basically the same as in D6286 (which added the redo panel for Graph Editor). Some operators have internal properties that should be hidden. A full list can be found in T98195. These will be fixed in a follow-up patch. Reviewed By: sybren Differential Revision: https://developer.blender.org/D14960
2022-09-20ViewLayer: fix missing sync in object APIs (fixes T101128, T101204)Aras Pranckevicius
Since D15885, most (all?) python based importers are failing with an error like RuntimeError: Error: Object 'Cube' can't be selected because it is not in View Layer, whenever they try to mark just-created objects selected via obj.select_set(True). Happens at least in FBX and (legacy) OBJ importers -- effectively they end up creating just the first imported object before failing with this exception. Looks like BKE_view_layer_synced_ensure calls were missing before BKE_view_layer_base_find in rna_object_api.c. Reviewed By: Campbell Barton Differential Revision: https://developer.blender.org/D16004
2022-09-20UV: extend custom grid sizes to set each axis separatelyChris Blackbourn
For example, allows a custom UV grid size of 4 x 12. TODO: Fix snapping with custom UV grid sizes. Manifest Tasks: T78391 Differential Revision: https://developer.blender.org/D16000
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-19Cleanup: spellingCampbell Barton
2022-09-18Build: fix gtest build flags affecting actual libraryBrecht Van Lommel
Switch to target_ functions to avoid this.
2022-09-18LineArt: Force intersection option.YimingWu
This option allows easier setup of intersection overrides on more complex scene structures. Setting force intersection would allow objects to always produce intersection lines even against no-intersection ones. Reviewed By: Aleš Jelovčan (frogstomp) Antonio Vazquez (antoniov) Differential Revision: https://developer.blender.org/D15978
2022-09-17GPencil: Remove Leak SizeAntonio Vazquez
This value was used to close gaps, but now with the new system is not needed. Internally, still we need to keep a small leak size, but after doing a lot of test a value of 3 is perfect, so it's harcoded.