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-04-14Merge branch 'master' into tmp-new-gpu-codegentmp-new-gpu-codegenClément Foucault
2022-04-14Geometry Nodes: show used named attributes in nodesJacques Lucke
This adds a new node editor overlay that helps users to see where named attributes are used. This is important, because named attributes can have name collisions between independent node groups which can lead to hard to find issues. Differential Revision: https://developer.blender.org/D14618
2022-04-14Merge branch 'master' into tmp-new-gpu-codegenClément Foucault
# Conflicts: # source/blender/draw/engines/eevee/shaders/volumetric_frag.glsl
2022-04-14NLA: Keyframe Remap Through Upper StripsWayde Moss
Add a new operator, "Start Tweaking Strip Actions (Full Stack)", which allows you to insert keyframes and preserve the pose that you visually keyed while upper strips are evaluating, The old operator has been renamed from "Start Tweaking Strip Actions" to "Start Tweaking Strip Actions (Lower Stack)" and remains the default for the hotkey {key TAB}. **Limitations, Keyframe Remapping Failure Cases**: 1. For *transitions* above the tweaked strip, keyframe remapping will fail for channel values that are affected by the transition. A work around is to tweak the active strip without evaluating the upper NLA stack. It's not supported because it's non-trivial and I couldn't figure it out for all transition combinations of blend modes. In the future, it would be nice if transitions (and metas) supported nested tracks instead of using the left/right strips for the transitions. That would allow the transitioned strips to overlap in time. It would also allow N strips to be part of the (previously) left and right strips, or perhaps even N strips being transitioned in sequence (similar to a blend tree). Proper keyframe remapping through all that is currently beyond my mathematical ability. And even if I could figure it out, would it make sense to keyframe remap through a transition? //This case is reported to the user for failed keyframe insertions.// 2. Full replace upper strip that contains the keyed channels. //This case is reported to the user for failed keyframe insertions.// 3. When the same action clip occurs multiple times (colored Red to denote it's a linked strip) and vertically overlaps the tweaked strip, then the remapping will generally fail and is expected to fail. I don't plan on adding support for this case as it's also non-trivial and (hopefully) not a common or expected use case so it shouldn't be much of an issue to lack support here. For anyone curious on the cases that would work, it works when the linked strips aren't time-aligned and when we can insert a keyframe into the tweaked strip without modifying the current frame output of the other linked strips. Having all frames sampled and the strip non-time aligned leads to a working case. But if all key handles are AUTO, then it's likely to fail. //This case is not reported to the user for failed keyframe insertions.// 4. When using Quaternions and a small strip influence on the tweaked Combine strip. This was an existing failure case before this patch too but worth a mention in case it causes confusion. D10504 has an example file with instructions. //This case is not reported to the user for failed keyframe insertions. // 5. When an upper Replace strip with high influence and animator keys to Quaternion Combine (Replace is fine). This case is similar to (4) where Quaternion 180 degree rotation limitations prevent a solution. //This case is not reported to the user for failed keyframe insertions.// Reviewed By: sybren, RiggingDojo Differential Revision: https://developer.blender.org/D10504
2022-04-14View 3D: disable object mode selection cycling on first-clickCampbell Barton
Unlike regular selection cycling that is activated when clicking again in the same location, object mode would cycle to another object if the object that was selected happened to already be active. This made it impossible to click-drag to tweak the active object if there were other objects behind it as those would be activated first. Resolves T96752.
2022-04-14Fix T68290: Baked particles don't render in final frameCampbell Barton
Particles baked into memory would never load the final frame because of an off-by-one error calculating the particles `dietime`. This value indicates the frame which the particle ceases to exist but was being set to the end-frame which caused this bug as the scenes end-frame is inclusive. While the last frame was properly written and read from memory, the `dietime` was set to the last frame causing all the particles to be considered dead when calculating the cached particle system.
2022-04-13Merge branch 'master' into tmp-new-gpu-codegenClément Foucault
2022-04-13Cover some DNA files with C++ utility macrosSergey Sharybin
Solves compilation warning with Clang, and moves manipulation with DNA structures to the designed way for C++. The tests and few other places are update to the new code by Jacques. Ref T96847 Maniphest Tasks: T96847 Differential Revision: https://developer.blender.org/D14625
2022-04-13Curves: remove Test1 brushJacques Lucke
This was one of multiple placeholder brushes to simplify development. Having it is not necessary anymore. It was a brush that could add new curves according to a specific density. This functionality will be brought back as a new brush later. Ref T97255.
2022-04-13Updated voxel remesher defaultsJoseph Eagar
Implements T97163 Newly created meshes have all voxel remesher checkboxes aside from Fix Poles enabled. Startup files updated with versioning. Reviewed By @JulianKaspar Differential Revision: https://developer.blender.org/D14608 Ref D14608
2022-04-12Cleanup: use _NUM suffix for space/region type rangesCampbell Barton
- Replace SPACE_TYPE_LAST with SPACE_TYPE_NUM (adding 1). - Rename RGN_TYPE_LEN to RGN_TYPE_NUM This makes it possible to tag space-type/region-type combinations with `bool tag[SPACE_TYPE_NUM][RGN_TYPE_NUM]` which reads more clearly than `bool tag[SPACE_TYPE_LAST + 1][RGN_TYPE_LEN]`.
2022-04-11Cleanup: malformed C-style comment blocks, spellingCampbell Barton
- Missing star prefix. - Unnecessary indentation. - Blank line after dot-points (otherwise doxygen merges with the previous dot-point). - Use back-slash for doxygen commands. - Correct spelling.
2022-04-09UDIM: Move UDIM grid controls to the Overlay panelJesse Yurkovich
This change moves the grid panel UI from the View tab up into the Overlay panel. Reasons to move to the Overlay panel include: - Consistency with the grid options in the 3D viewport - The grid has been drawn as an Overlay for quite some time already Additional changes that now make sense to have: - The grid responds to the main Overlay show/hide toggle - Adds a toggle to show/hide the grid which is consistent with overlays in general As before, these grid controls are only available for active UV edit sessions. Differential Revision: https://developer.blender.org/D11862
2022-04-09Fix: Various fixes and cleanups in new curves codeHans Goudey
- Use "curve" instead of "spline" in comments - Use non-plural variable names - Tag topology dirty after resolution modified rather than positions - Reorder enum values to change which value is zero (and the default) - Remove a duplicate unused variable
2022-04-08Painting: Canvas switcher for painting brushes/tools.Jeroen Bakker
This patch adds color attributes to TexPaintSlot. This allows an easier selection when painting color attributes. Previously when selecting a paint tool the user had to start a stroke, before the UI reflected the correct TexPaintSlot. Now when switching the slot the active tool is checked and immediate the UI is drawn correctly. In the future the canvas selector will also be used to select an image or image texture node to paint on. Basic implementation has already been done inside this patch. A limitation of this patch is that is isn't possible anymore to rename images directly from the selection panel. This is currently allowed in master. But as CustomDataLayers aren't ID fields and not owned by the material supporting this wouldn't be easy. {F12953989} In the future we should update the create slot operator to also include color attributes. Sources could also be extended to use other areas of the object that use image textures (particles, geom nodes, etc... ). Reviewed By: brecht Maniphest Tasks: T96709 Differential Revision: https://developer.blender.org/D14455
2022-04-08Cleanup: Define new curves normal mode in DNAHans Goudey
Don't include the tangent mode for now, since that was never implemented for geometry nodes curves.
2022-04-07GPencil: Add skip option to envelope modifierHenrik Dick
This patch adds an option to only use every n-th segment of the envelope result. This can be used to reduce the complexity of the result. Differential Revision: http://developer.blender.org/D14503
2022-04-07Cleanup: spelling in comments, minor reformatting changesCampbell Barton
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-06Merge branch 'master' into tmp-new-gpu-codegenClément Foucault
# Conflicts: # source/blender/gpu/intern/gpu_codegen.c
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-04-05Curves: fix edit mode detectionKévin Dietrich
This adds missing cases to detect edit mode for Curves objects. Unlike other object types, Curves do not have specific edit data, rather we edit the original data directly, and rely on `Object.mode`. For this, `BKE_object_data_is_in_editmode` had to be modified to take a pointer to the object. This affects two places: the outliner and the dependency graph. For the former place, the object pointer is readily available, and we can use it. For the latter, the object pointer is not available, however since it is used to update edit mode pointers, and since Curves do not have such data, we can safely pass null to the function here. This also fixes the assertion failure that happens when closing a file in edit mode. Differential Revision: https://developer.blender.org/D14330
2022-04-05Curves: Port legacy curve viewport drawing to the new data-blockHans Goudey
Instead of using `CurveEval` to draw the curve wire edges, use the new `Curves` data-block, which is already built as part of an object's evaluated geometry set whenever there is a `CurveComponent`. This means that we can remove `Curve`'s temporary ownership of `CurveEval` for drawing (added in 9ec12c26f16ea3da1e), which caused a memory leak as described in T96498. In my testing this improved performance by around 1.5x during viewport playback, back to the performance of 3.1 before the curve data structure transition started. The next step of using the GPU to do the final curve evaluation for the viewport is described in T96455, but is unrelated. Differential Revision: https://developer.blender.org/D14551
2022-04-05Curves: new Grow/Shrink brushJacques Lucke
This adds a new Grow/Shrink brush which is similar to the Length brush in the old hair system. * It's possible to switch between growing and shrinking by hold down ctrl and/or by changing the direction enum. * 3d brush is supported. * Different brush falloffs are supported. * Supports scaling curves uniformly or shrinking/extrapolating them. Extrapolation is linear only in this patch. * A minimum length settings helps to avoid creating zero-sized curves. Differential Revision: https://developer.blender.org/D14474
2022-04-05Fix T97071: Duplicating strip in locked channel creates overlapping stripsRichard Antalik
Add flag `SEQ_IGNORE_CHANNEL_LOCK` to indicate, that channel lock should not apply to strip. This flag must be cleared after transformation.
2022-04-05Merge branch 'master' into tmp-new-gpu-codegenClément Foucault
2022-04-05Cleanup: use doxygen links to struct membersCampbell Barton
2022-04-04GPUCodegen: Refactor Bump branch derivative supportClément Foucault
The previous implementation was duplicating the branch into 3 copies and created a lot of nodes. This patch introduce (internal, non user visible) ntree sub functions. This allows to wrap a portion of the material tree into a function that can be called multiple times. This is implemented by `GPU_material_split_sub_function()`. With the new isolated function we can now define a macro that can compute the derivatives in an implementation dependent way. This is implemented by `GPU_differentiate_float_function()`. The engine then implements `dF_branch(func, result)` the way it wants. This opens the way to user selectable bump precision per shader. With this new system a lot of implementation specificity is removed from `bNode` and the nodetree system.
2022-04-04UserDef: Add experimental flag for 3d texturing brush.Jeroen Bakker
This only adds a experimental flag to enable the 3d texturing brush, so future developments could check. Currently the flag does nothing as no functionality of the 3d texturing brush has been implemented.
2022-04-04VSE: Add channel headersRichard Antalik
This patch adds channel region to VSE timeline area for drawing channel headers. It is synchronizedwith timeline region. 3 basic features are implemented - channel visibility, locking and name. Channel data is stored in `SeqTimelineChannel` which can be top-level owned by `Editing`, or it is owned by meta strip to support nesting. Strip properties are completely independent and channel properties are applied on top of particular strip property, thus overriding it. Implementation is separate from channel regions in other editors. This is mainly because style and topology is quite different in VSE. But also code seems to be much more readable this way. Currently channels use functions similar to VSE timeline to draw background to provide illusion of transparency, but only for background and sfra/efra regions. Great portion of this patch is change from using strip visibility and lock status to include channel state - this is facilitated by functions `SEQ_transform_is_locked` and `SEQ_render_is_muted` Originally this included changes in D14263, but patch was split for easier review. Reviewed By: fsiddi, Severin Differential Revision: https://developer.blender.org/D13836
2022-04-04Cleanup: Simplify zero-initializing DNA structures in C++Sergey Sharybin
Avoids duplication of type which previously was specified twice in a line.
2022-04-04Cleanup: ensure space after file named in headersCampbell Barton
Add blank lines after file references to avoid them being interpreted as doc-strings the following declarations.
2022-04-04Cleanup: spelling in commentsCampbell Barton
2022-04-02Cycles: Add support for light groupsLukas Stockner
Light groups are a type of pass that only contains lighting from a subset of light sources. They are created in the View layer, and light sources (lamps, objects with emissive materials and/or the environment) can be assigned to a group. Currently, each light group ends up generating its own version of the Combined pass. In the future, additional types of passes (e.g. shadowcatcher) might be getting their own per-lightgroup versions. The lightgroup creation and assignment is not Cycles-specific, so Eevee or external render engines could make use of it in the future. Note that Lightgroups are identified by their name - therefore, the name of the Lightgroup in the View Layer and the name that's set in an object's settings must match for it to be included. Currently, changing a Lightgroup's name does not update objects - this is planned for the future, along with other features such as denoising for light groups and viewing them in preview renders. Original patch by Alex Fuller (@mistaed), with some polishing by Lukas Stockner (@lukasstockner97). Differential Revision: https://developer.blender.org/D12871
2022-04-01Cleanup: Remove unused boundbox flagHans Goudey
This flag hasn't been used for around four years. The convention in this header seems to be commenting out the flag and adding "UNUSED" after it.
2022-03-31Outliner: New "Hierarchies" view mode for Library OverridesJulian Eisel
Adds a dropdown for the Library Overrides display mode that lets users choose between a "Properties" and a "Hierachies" view mode. The former is what was previously there (a mode that displays all overridden properties with buttons to edit the values), the latter is new. It displays the hierarchical relationships between library overridden data-blocks. E.g. to override the mesh of an object inside a linked collection, the entire collection > object > mesh hierarchy needs to be overridden (whereby the former two will be automatically overridden using system overrides). The Hierarchies mode will also show the override hierarchies of data-blocks that were linked and are overridden in the source file. This information is useful to have, especially for debugging scenes. Part of T95802. Differential Revision: https://developer.blender.org/D14440 Reviewed by: Bastien Montagne
2022-03-31Cleanup: spelling, trailing space for comment-blocksCampbell Barton
2022-03-30Cleanup: spelling in commentsCampbell Barton
2022-03-29LibOverride: Add initial System Override flag.Bastien Montagne
This merely adds the flag, exposes it in RMA, and uses it in some of the most common 'is editable' checks (RNA, `BASE_EDITABLE` macro...). Next step: do_version and defining systemoverrides at creation. Ref: {T95707}.
2022-03-29Cover DNA_gpencil_types.h with C++ structure methodsSergey Sharybin
Ref T96847 Maniphest Tasks: T96847 Differential Revision: https://developer.blender.org/D14487
2022-03-29GPencil: Fading for build modifier.YimingWu
Adds fading support for build modifier so it's not a hard cut off Reviewed By: Antonio Vazquez (antoniov), Matias Mendiola (mendio) Differential Revision: https://developer.blender.org/D14309
2022-03-29Cleanup: Use higher level semantic for zeroing DNA objects in C++Sergey Sharybin
Replaces old-style memzero-style of call with zero-initializer. Allows to shorten typical initialization code to a single line: Object foo = blender::dna::shallow_zero_initialize<Object>() This will allow to more easily convert designated initializer which is often used to fill object with zeroes to the explicit function calls: MyDNAStruct foo = {}; will be translated to MyDNAStruct foo = blender::dna::shallow_zero_initialize<MyDNAStruct>(); Differential Revision: https://developer.blender.org/D14486
2022-03-29Cleanup: Remove redundant DNA C++ helper functionSergey Sharybin
Use shallow_copy, no need in copy_memory. The latter appeared as some last minute solution for a compilation warning on Friday.
2022-03-28Cleanup: Move scene.c to C++Hans Goudey
This is meant to allow using C++ data structures in this file as a performance improvement. Particularly `Vector` instead of `ListBase` for `duplilist`. This change builds and passes tests on all platforms on the buildbot.
2022-03-28Cleanup: use "num" as a suffix in: source/blender/modifiersCampbell Barton
Also rename DNA struct members.
2022-03-28Cleanup: use "num" as a suffix in: source/blender/nodesCampbell Barton
2022-03-26Cleanup: move eFileSel_Action from DNA to WM_api.hCampbell Barton
This isn't stored in blend files so it can be moved out of DNA. Also use an enum for `WM_FILESEL_*` members.
2022-03-25Curves: Add a utility to count curves of each typeHans Goudey
This commit adds a utility that returns an array with the number of curves of every type. One use case for this is detecting whether to remove handle or NURBS attributes when changing curve types. It's best to avoid using this when it's not necessary, but sometimes it can't really be avoided, and having a utility at least makes using an optimized version simple. In the future, this information can be cached in the curves runtime. Differential Revision: https://developer.blender.org/D14448
2022-03-25GPencil: Cyclic flag for dot dash modifierYimingWu
Cyclic option per segment, allows interesting "loop" visual effects. Reviewed by: Antonio Vazquez (antoniov) Differential Revision: https://developer.blender.org/D14439
2022-03-25GPencil: Improve smooth operationHenrik Dick
This patch makes the grease pencil smooth operation symmetric. It also increases the performance a lot if strong smoothing is required. Additionally there is an option for the position smooth operation to keep the shape closer to the original for more iterations. Since the result differs from the previous algorithm, versioning is used to change the iterations and factor to match the old result. Differential Revision: http://developer.blender.org/D14325