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-02-11Cleanup: clang-formatCampbell Barton
2022-02-11Cleanup: Clang tidyHans Goudey
Mismatched parameter names and else after return.
2022-02-10Fix: Incorrect size used for reading curves dataHans Goudey
Copy and paste mistake in fe1816f67fbc6aaf383ec
2022-02-10Merge branch 'blender-v3.1-release'Hans Goudey
2022-02-10Fix T95613: remove anonymous attributes when converting objectJacques Lucke
This is the same behavior as when applying a geometry nodes modifier that adds anonymous attributes.
2022-02-10Refactor: Move PBVH update tag out of MVertHans Goudey
This is part of the project of converting `MVert` into `float3`. (more details in T93602), The pbvh update flag is removed and replaced with a bitmap stored in the PBVH structure. This patch is similar to D13878. This is mainly setup for an eventual performance improvement by removing the extra data from mesh vertices, but if it's consistent with testing in the other patch doing the same thing for another "temp tag", then it may actually increase the speed of sculpt code slightly, since less memory needs to be loaded when checking/changing the flags. Differential Revision: https://developer.blender.org/D14000
2022-02-10Merge branch 'blender-v3.1-release'Jacques Lucke
2022-02-10Fix T95624: video texture not refreshing when changing offset in nodeJacques Lucke
The main issue is that the image and image user is not updated correctly in `rna_ImageUser_update`. `BKE_image_user_frame_calc` does not set the correct frame, because the image is null. Also `IMA_GPU_REFRESH` is not set for the same reason. When gpu materials are first created, it is expected that the frame is set correctly, and the flag is set if necessary. Therefore, somewhere during depsgraph evaluation, those have to be updated. The depsgraph node to do the update existed already. Now there is a new relation so that it is executed when the node tree changed, not only when the frame changed.
2022-02-10Minor cleanup: Use `ID_IS_LINKED`.Bastien Montagne
2022-02-10Fix T95334: Crash with no vertex normals in multires bakeHans Goudey
This is partially caused by a stupid mistake in cfa53e0fbeed7178c78 where I missed initializing the `vert_normals` pointer in `MResolvePixelData`. It's also caused by questionable assumptions from DerivedMesh code that vertex normals would be valid. The fix used here is to create a temporary mesh with the data necessary to compute vertex normals, and ensure them here. This is used because normal calculation is only implemented for `Mesh` and edit mesh, not `DerivedMesh`. While this might not be great for performance, it's potentially aligned with future refactoring of this code to remove `DerivedMesh` completely. Since this is one of the last places the data structure is used, that would be a great improvement. Differential Revision: https://developer.blender.org/D13960
2022-02-10Fix (unreported) over-resync from RNA detection code in linked cases.Bastien Montagne
While applying liboverrides on linked data, RNA code (in `rna_property_override_check_resync`) would detect a lot of false positive regarding IDs needing resync, because the temporary ID used to apply overrides was always local, breaking the libraries comparison check. NOTE: that whole 'apply liboverrides' code could use some refreshment, it did not change much from initila version several years ago, we now have better tools and control over non-main data. But for now the 'trick' in that commit should do the job, ultimately those temps IDs should never be put in Main at all.
2022-02-10Merge branch 'blender-v3.1-release'Sergey Sharybin
2022-02-10Fix T95666: Crash when attempting multires linear subdivideSergey Sharybin
The crash was happening when the mesh had loose edges. Loose edges are not part of OpenSubdiv topology and hence should not be communicated to the refiner. Pass ta boolean flag indicating whether an edge is loose or not in the mesh foreach routines, which seems to be the easiest way.
2022-02-10LibOverride: Fix/improve handling of hierarchy root in tagged creation.Bastien Montagne
Decouple the reference (linked) root ID and the hierarchy (override) root ID. Previous code was assuming that the reference ID was always also tagged for override creation, which is true in current master, but cannot be assumed in general (and won't be true with partial resync anymore). Also add asserts to validate conditions that the reference/hierarchy_root variables must meet.
2022-02-10Merge branch 'blender-v3.1-release'Sergey Sharybin
2022-02-10Fix T95664: missing update after changing active output nodeJacques Lucke
2022-02-10GPencil: Update-on-write using update cacheFalk David
This implements the update cache described in T95401. The cache is currently only used for drawing strokes and sculpting (using the push brush). **Note: Making use of the cache throughout grease pencil will have to be done incrementally in other patches. ** The update cache stores what elements have changed in the original data-block since the last time the eval object was updated. Additionally, the update cache can store multiple updates to the data and minimizes the number of elements that need to be copied. Elements can be tagged using `BKE_gpencil_tag_full_update` and `BKE_gpencil_tag_light_update`. A full update means that the element itself will be copied but also all of the content inside. E.g. when a layer is tagged for a full update, the layer, all the frames inside the layer and all the strokes inside the frames will be copied. A light update means that only the properties of the element are copied without any of the content. E.g. if a layer is tagged with a light update, it will copy the layer name, opacity, transform, etc. When the update cache is in use (e.g. elements have been tagged) then the depsgraph will not trigger a copy-on-write, but an update-on-write. This means that the update cache will be used to determine what elements have changed and then only those elements will be copied over to the eval object. If the update cache is empty or the data block was tagged with a full update, we always fall back to a copy-on-write. Currently, the update cache is only used by the active depsgraph. This is because we need to free the update cache after an update-on-write so it's reset and we need to make sure it is not freed or read by other depsgraphs. Co-authored-by: @yann-lty This patch was contributed by The SPA Studios. Reviewed By: sergey, antoniov, #dependency_graph, pepeland, mendio Maniphest Tasks: T95401 Differential Revision: https://developer.blender.org/D13984
2022-02-10Cleanup: Clang tidy, unused variabel warningsHans Goudey
2022-02-10Cleanup: copyright in headers, spelling in commentsCampbell Barton
- Order year consistently. - Minor consistency (case, double-spacing). - Correct typos.
2022-02-09Merge branch 'blender-v3.1-release'Hans Goudey
2022-02-09Fix T95620: Crash When Entering Edit Mode on a CurveHans Goudey
Under some circumstances, simply adding a curve object and going to edit mode would cause a crash. This is because the evaluated `CurveEval` was accessed but also freed by the dependency graph. The fix reverts the part of b76918717dbfd8363f that uses the `CurveEval` for the curve object bounds. While this isn't ideal, it was the previous behavior, and some unexpected behavior with object bounds is much better than a crash. Plus, given the plans of using the new "Curves" data-block for evaluated curves, this situation will change relatively soon anyway.
2022-02-09Cleanup: make file headers more consistentCampbell Barton
Also some descriptive text into doc-strings.
2022-02-09Cleanup: Better naming in lib_remap.Jeroen Bakker
Renames is_never_null to violates_never_null.
2022-02-09Added a "Sharpen Less" kernel for the Filter Compositor nodeColin Basnett
Added a new "Sharpen Less" kernel to the filter compositor node. The intent here is to provide a much less aggressive sharpening filter that can't simply be solved by toning down the factor on the existing sharpen filter. The existing "Sharpen" filter uses a "box" kernel: ``` -1 -1 -1 -1 9 -1 -1 -1 -1 ``` The new "Sharpen Less" filter uses a "diamond" kernel: ``` 0 -1 0 -1 5 -1 0 -1 0 ``` The difference between the two is clear to see in the following side-by-side: {F12847431} Below shows the difference between the filtering kernels as applied to a B&W render of Suzanne with the UV grid as a texture. The left side of the render using the existing "Sharpen" filter, and the right side showing the new "Sharpen Less" filter. Notice that the left side is more aggressive in accentuating localized contrasts across the image. This can lead to what appears to be aliasing or striations in the resulting image: {F12847429} https://developer.blender.org/T95275 https://blender.community/c/rightclickselect/57Kq/?sorting=hot {F12847428} Reviewed By: #compositing, jbakker Differential Revision: https://developer.blender.org/D14019
2022-02-09Cleanup: move file descriptions into doxygen file sectionCampbell Barton
Continuation of 19100aa57d847699d17527b76c2fab1f4ab88885.
2022-02-09Cleanup: move file descriptions into doxygen file sectionCampbell Barton
Also other minor corrections & reformat particle system copyright.
2022-02-09Cleanup: use consistent copyright location, move descriptionsCampbell Barton
Order copyright immediately after the license block, this was done almost everywhere with a few exceptions. Remove authors from a few files (we had already removed "Contributors" section however with old patches being applied this gets added back in). Also move descriptive text into the doxygen comment block under \file. In some cases remove the text as it was accidentally copied.
2022-02-08Fix T91253: Slow pose bone selection with many bonesCampbell Barton
Viewport cull bones during selection to avoid depth-picking reading the depth buffer for bones that aren't in the viewport. Files with thousands of bones could hang blender for seconds while selecting. The issue could still happen with overlapping bones or when zoomed out so all bones are under the cursor, however in practice this rarely happens. Now files with many bones select quickly. Related changes include: - Split `BKE_pchan_minmax` out of `BKE_pose_minmax`. - Add `mat3_to_size_max_axis` to return the length of the largest axis (used for scaling the radius). Reviewed By: sybren Maniphest Tasks: T91253 Ref D13990
2022-02-08Merge branch 'blender-v3.1-release'Jacques Lucke
2022-02-08Fix T95570: missing task isolation when computing normalsJacques Lucke
2022-02-08LibOverride: Use new 'hierarchy root' info in relevant override code.Bastien Montagne
This new info simplifies greatly the handling of resync and deleting liboverride hierarchies, and makes those operations more robust to complex dependencies cases between different hierarchies. Related to T95283.
2022-02-08LibOverride: Add 'hierarchy root ID' info.Bastien Montagne
This change will make handling of liboverrides hierarchies (especially resyncing) much easier and efficient. It should also make it more resilient to 'degenerate' cases, and allow proper support of things like parenting an override to another override of the same linked data (e.g. a override character parented to another override of the same character). NOTE: this commit only implements minimal changes to add that data and generate it for existing files on load. Actual refactor of resync code to take advantage of this new info will happen separately.
2022-02-08LibOverride: Add 'hierarchy root ID' info.Bastien Montagne
This change will make handling of liboverrides hierarchies (especially resyncing) much easier and efficient. It should also make it more resilient to 'degenerate' cases, and allow proper support of things like parenting an override to another override of the same linked data (e.g. a override character parented to another override of the same character). NOTE: this commit only implements minimal changes to add that data and generate it for existing files on load. Actual refactor of resync code to take advantage of this new info will happen separately.
2022-02-08Merge branch 'blender-v3.1-release'Hans Goudey
2022-02-08Fix T95573: Incorrect bounding box of evaluated curveHans Goudey
Account for `CurveEval`, which stores the proper deformed and procedurally created data, unlike the `nurb` list, which has always just meant a copy of the original curve. Also account for the case when the curve is empty by using a -1, 1, fallback bounding box in that case, just like mesh objects.
2022-02-07Curves: Rename "Hair" types, variables, and functions to "Curves"Hans Goudey
Based on discussions from T95355 and T94193, the plan is to use the name "Curves" to describe the data-block container for multiple curves. Eventually this will replace the existing "Curve" data-block. However, it will be a while before the curve data-block can be replaced so in order to distinguish the two curve types in the UI, "Hair Curves" will be used, but eventually changed back to "Curves". This patch renames "hair-related" files, functions, types, and variable names to this convention. A deep rename is preferred to keep code consistent and to avoid any "hair" terminology from leaking, since the new data-block is meant for all curve types, not just hair use cases. The downside of this naming is that the difference between "Curve" and "Curves" has become important. That was considered during design discussons and deemed acceptable, especially given the non-permanent nature of the somewhat common conflict. Some points of interest: - All DNA compatibility is lost, just like rBf59767ff9729. - I renamed `ID_HA` to `ID_CV` so there is no complete mismatch. - `hair_curves` is used where necessary to distinguish from the existing "curves" plural. - I didn't rename any of the cycles/rendering code function names, since that is also used by the old hair particle system. Differential Revision: https://developer.blender.org/D14007
2022-02-07Merge branch 'blender-v3.1-release'Jacques Lucke
2022-02-07Fix T95543: incorrect handling of implicit field inputs in uiJacques Lucke
2022-02-07Nodes: Dynamic node class for Map Range nodeCharlie Jolly
This patch makes it possible to set the UI color of a node's header bar and override the default from the node's typeinfo. Currently the color is taken from the `.nclass` member of the node's bNodeType->TypeInfo struct. This is created once when registering the node. The TypeInfo is used for both UI and non-UI functionality. Since the TypeInfo is shared, the header bar for the node can't be changed without changing all nodes of that type. The Map Range node is shown as a `Converter` or blue color by default. This patch allows this to be changed dynamically to `Vector` or purple. This is done by adding a `ui_class` callback to node typeinfo struct. Reviewed By: HooglyBoogly Differential Revision: https://developer.blender.org/D13936
2022-02-07VSE: Add filter method to strip transformDimitry Kaplin
Previously, nearest interpolation filter was used for preview, because it offered good performance and bilinear was used for rendering. This is not always desirable behavior, so filter method can now be chosen by user. Chosen method will be used for preview and for rendering. Reviewed By: ISS Differential Revision: https://developer.blender.org/D12807
2022-02-04Fix: Remove incorrect assert in mesh modifier evaluationHans Goudey
Since we have a node that sets a mesh's auto smooth angle (unfortunately, in retrospect), we generally can't assume at all that value is the same as whatever input mesh. Similar asserts were removed previously in 8216b759e9557c786. While the attempt at assertions to clarify assumptions is noble, this one doesn't make sense anymore. I found this while investigating T95479. Differential Revision: https://developer.blender.org/D14009
2022-02-04Cleanup: Remove unused "init" node tree flagHans Goudey
The value of this flag was set, but not used anywhere. Differential Revision: https://developer.blender.org/D13519
2022-02-04Fix: Remove incorrect assert in mesh modifier evaluationHans Goudey
Since we have a node that sets a mesh's auto smooth angle (unfortunately, in retrospect), we generally can't assume at all that value is the same as whatever input mesh. Similar asserts were removed previously in 8216b759e9557c786. While the attempt at assertions to clarify assumptions is noble, this one doesn't make sense anymore. I found this while investigating T95479. Differential Revision: https://developer.blender.org/D14009
2022-02-04Attributes: Infrastructure for generic 8-bit integer data typeHans Goudey
This commit adds infrastructure for 8 bit signed integer attributes. This can be useful given the discussion in T94193, where we want to store spline type, Bezier handle type, and other small enums as attributes. This is only exposed in the interface in the attribute lists, so it shouldn't be an option in geometry nodes, at least for now. I expect that this type won't be used directly very often, it should mostly be cast to an enum type. However, with support for 8 bit integers, it also makes sense to add things like mixing implementations for consistency. Differential Revision: https://developer.blender.org/D13721
2022-02-04Cleanup: Removed Object type specific 'make_local' callback.Bastien Montagne
This callback was only needed to allow specific handling of proxies, now that theses have been removed the generic `BKE_lib_id_make_local_generic` code works for objects as well.
2022-02-04Cleanup: remove unused LOG declarationSybren A. Stüvel
No functional changes.
2022-02-04Remove internal proxy code, and deprecate related DNA data.Bastien Montagne
Part of T91671. Not much else to say, this is mainly a massive deletion of code. Note that a few cleanups possible after this proxy removal were kept out of this commit to try to reduce a bit its size. Reviewed By: sergey, brecht Maniphest Tasks: T91671 Differential Revision: https://developer.blender.org/D13995
2022-02-04Cleanup: spelling in commentsCampbell Barton
Also update viewport comments.
2022-02-04Cleanup: Clang tidy, use bracesHans Goudey
Braces missed in b73d3b80fdcb72446
2022-02-03Cleanup: Add comment about unsed custom data typeHans Goudey
Since f59767ff97295404d, these hair layer types are unused. Since DNA compatibility was broken with any files that would contain them, the indices can be reused to avoid growing custom data's typemap.