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
path: root/source
AgeCommit message (Collapse)Author
2022-04-14Merge branch 'master' into tmp-new-gpu-codegentmp-new-gpu-codegenClément Foucault
2022-04-14EEVEE: Fix transparent film regressionClément Foucault
2022-04-14GPUMaterial: Fix regression in principled volume nodeClément Foucault
2022-04-14Cleanup: Alembic, use a structure to pass parametersKévin Dietrich
This adds a structure, `ABCReadParams`, to store some parameters passed to `ABC_read_mesh` so we avoid passing too many parameters, and makes it easier to add more parameters in the future without worrying about argument order. Differential Revision: https://developer.blender.org/D14484
2022-04-14Fix T97135: Fix selection issues with parented masks in the MCEPhilipp Oeser
Box, Circle and Lasso select were not taking into account if a mask(point) was parented; selection was only succeeding in the original place. Now check coordinates from evaluated mask (points) instead while setting selection flags and DEG tagging still happens on the original ID. Maniphest Tasks: T97135 Differential Revision: https://developer.blender.org/D14651
2022-04-14Fix T85756: Adjust Last Operation panel is slow.Bastien Montagne
Extremely subttle bug that would only appear in some specific circumstances, would cause memfile undo writing code to falsely detect some ID as changed because it would get the wrong 'starting point' of comparison with existing previous memfile step. See T85756 for detailed explanation and reproducible case.
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-14GPUMaterial: Fix Glass BSDF missing the closure weightsClément Foucault
2022-04-14EEVEE: Fix metal constructorsClément Foucault
2022-04-14EEVEE: Remove incorrect tangent normalizationClément Foucault
2022-04-14GPUMaterial: Fix vector displacement nodeClément Foucault
2022-04-14Fix T95700: Oject Info node does not work with GPU subdivided meshesKévin Dietrich
When GPU subdivision is enabled the mesh objects remain unsubdivided on the CPU side, and subdivision should be requested somewhat manually (via `BKE_object_get_evaluated_mesh`). When referencing an object, the Object Info node calls `bke::object_get_evaluated_geometry_set` which first checks if a Geometry Set is present on the object (unless we have a mesh in edit mode). If so it will return it, if not, the object type is discriminated, which will return a properly subdivided mesh object via `add_final_mesh_as_geometry_component`. The unsubdivided mesh is returned because apparently the check on the Geometry Set always succeeds (as it is always set in `mesh_build_data`). However, the mesh inside this Geometry Set is not subdivided. This adds a check for a MeshComponent in this Geometry Set, and if one exists, calls `add_final_mesh_as_geometry_component` which will ensure that the mesh is subdivided on the CPU side as well. Differential Revision: https://developer.blender.org/D14643
2022-04-14Fix T97262: Crash with specific view layer setupSergey Sharybin
Originally was noticed when using a linked background scene and a scene camera from another (local) scene. The root issue was that relation from view layer to object's base flags evaluation was using wrong view layer. This is because the relation was created between object and currently built view layer, and it only was happening once (since the object-level relations are only built once). Depending on order in which `build_object` was called it was possible that relation from a wrong view layer was used. Now the code is better split to indicate which parts of object relations are built when object comes from a base in the view layer, and which ones are built on indirect linking of object to the dependency graph. This patch makes relations correct in the cases when the same object is used as a base in both active and set scenes. But, the operation which handles object-level flags might not behave correctly as there is no known design of what is the proper thing to do in this case. Making a clear design and implementation of case when object is shared between active and set scene is outside of the scope of this patch. Differential Revision: https://developer.blender.org/D14626
2022-04-14EEVEE: Fix regression in hair shadingClément Foucault
2022-04-14EEVEE: Fix missing Volume attributes loadingClément Foucault
2022-04-14GPUMaterial: Add placeholder hair bsdf codeClément Foucault
This fixes a crash.
2022-04-14Merge branch 'master' into tmp-new-gpu-codegenClément Foucault
# Conflicts: # source/blender/draw/engines/eevee/shaders/volumetric_frag.glsl
2022-04-14Curves: fix some issues with operator to convert to particle systemJacques Lucke
Ref T97171. Differential Revision: https://developer.blender.org/D14637
2022-04-14Metal: GPU_PRIM_LINE_LOOP alternative implementations.Jason Fielder
Prefer using immVertex3f when 3D shaders are used for 2D rendering due to overhead of vertex padding in hardware. CPU overhead is negligible. Authored by Apple: Michael Parkin-White Ref T96261 Reviewed By: fclem Maniphest Tasks: T96261 Differential Revision: https://developer.blender.org/D14494
2022-04-14Metal: GLSL shader compatibility 4th passJason Fielder
MSL follows C++ standard convention, and such variable declarations within switch statements must have their scope localised within each case. Adding braces in all cases ensures correct behaviour and avoids 'case ... bypass initialization of local variable' compilation error. struct initialisation to follow C++ rules for Metal. Implicit constructors replaced with either explicit constructors or list-initialization where appropriate. Ref T96261 Authored by Apple: Michael Parkin-White Reviewed By: fclem Maniphest Tasks: T96261 Differential Revision: https://developer.blender.org/D14451
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-14Metal: GLSL shader compatibility 3rd passJason Fielder
Undefined behaviour for divergent control-flow fixes, replacement for partial vector references, and resolution of a number of calculation precision issues occuring on macOS. Authored by Apple: Michael Parkin-White Ref: T96261 Reviewed By: fclem Differential Revision: https://developer.blender.org/D14437
2022-04-14GPUTexture: Fixed typo where wrong enum was usedEthan-Hall
This patch fixes a typo in commit e59f754c169d which incorrectly uses `GPU_TEXTURE_ARRAY` instead of `GPU_FORMAT_COMPRESSED`. `GPU_FORMAT_COMPRESSED` and `GPU_TEXTURE_ARRAY` both currently evaluate to 16, so this patch does not change anything functionally; however, this patch will prevent issues from arising in the future. Reviewed By: fclem Differential Revision: https://developer.blender.org/D14384
2022-04-14Animation: Select markers before/after current frameColin Basnett
Add operator to select markers left/right of the current frame (including the current frame). `bpy.ops.marker.select_leftright(mode='LEFT', extend=False)` `mode` can be either 'LEFT' or 'RIGHT'. The naming and defaults of the above variables match similar operators (e.g., `bpy.ops.nla.select_leftright`) This also adds a new sub-menu to the Marker menu found in animation editors, exposing both the new `bpy.ops.marker.select_leftright` operator as well as the `bpy.ops.marker.select_all` operator. Despite the name "Before Current Frame" and "After Current Frame", it also selects a marker that falls on the current from for both of the modes. This is to match the behavior found in the `nla.select_leftright` operator. RCS: https://blender.community/c/rightclickselect/OgmG/ Reviewed by: sybren, looch Differential Revision: https://developer.blender.org/D14176
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-14Correct error in 405bff7fd8ed5df8d44a1362763fac7c00e2060bCampbell Barton
Was adding 1 to dietime twice in init_particle_interpolation.
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-14Cleanup: unused argument warningCampbell Barton
2022-04-14Cleanup: Further hair to curves renamingHans Goudey
These were missed in previous passes. Also remove some logic in `draw_hair.c` that was redundant after f31c3f8114616bb8964c8e7.
2022-04-14Curves: Split curve EEVEE/workbench functions from particle hairHans Goudey
The GPU evaluation for curves will have to change significantly from the current particle hair drawing code, due to its more general use cases and support for more curve types. To simplify that process and avoid introducing regressions for the rendering of hair particle systems, this commit splits drawing functions for the curves object and particle hair. The changes are just inlining of functions and copying code where necessary. Differential Revision: https://developer.blender.org/D14576
2022-04-14Fix T96563: tangents artifacts with GPU subdivisionKévin Dietrich
When tangent are computed from generated coordinates, the result for GPU subdivision would be compressed to 16-bit when it shouldn't.
2022-04-14Fix part of T96596: wrong generated coordinates with GPU subdivisionKévin Dietrich
Problem is that the orco layer was not taken care of by the GPU subdivision routines. This only handles the issues for EEVEE/Workbench. For Cycles, this would need to be handled at the wrapper level somehow.
2022-04-14Cleanup: separate format-units for Python argument parsingCampbell Barton
Recent addition to the Python API [0] didn't follow this convention. See [1] for the rationale behind this change. [0]: 9bc678969aaef5e2343d9362648e9a633d1b6e5e [1]: 982aea88e0d74020c62c2054a45eeafa56c8ca30
2022-04-14Keymap: restore key-shortcut to remove from local-viewCampbell Barton
Use Alt-Slash to remove objects from local-view (was M prior to [0]), following the convention of using Alt to perform the reverse of an action. Also remove the confirmation menu as this key as it can be undone and it's not likely to be pressed by accident. This can be useful to quickly subtract items from a complex selection with items that only become visible when entering local-view. The M key was originally used in 2.4x since moving between layers wasn't possible. Now moving between collections is possible in local-view the keys collided. [0]: cf5d582b77fbb7bf392a94248228846bfb774a15
2022-04-14Fix T97053: on cage GPU subdivision shows subdivided edges as actualKévin Dietrich
edges When wireframe mode is turned on, the subdivision edges not originating from coarse edges were also drawn as regular edges, which would confuse users trying to select them. These should not be drawn in edit mode, only in object mode when optimal display is turned off (matching the CPU subdivision case).
2022-04-14Fix T97310: BLF Line Height While Text WrappingHarley Acheson
Fix word-wrapped tooltip text not showing by aligning to pixel grid. See D14639 for more details. Differential Revision: https://developer.blender.org/D14639 Reviewed by Campbell Barton
2022-04-14Cleanup: Make curve deform argument optionalHans Goudey
The "dir" argument to `BKE_where_on_path` was only actually used in a few places. It's easier to see where those are if there isn't always a dummy argument.
2022-04-14Edit Mesh: Parallelize bounds calculation with deform modifiersHans Goudey
When displaying a deform modifier in edit mode, a cached array of positions is used. Parallelizing bounds calculation when that array exists can improve the framerate when editing slightly (a few percent). I observed an improvement of the min/max itself of about 10x (4-5ms to 0.4ms).
2022-04-14Cleanup: Declare variables where initializedHans Goudey
Also adjust comment formatting and use nullptr where the previous commit missed.
2022-04-14Cleanup: Clang tidyHans Goudey
2022-04-14Cleanup: Move three mesh files to C++Hans Goudey
This will allow easier interaction with other areas also using C++ features, and a potential optimization to edit mesh bounding box calculation.
2022-04-14Curves: Avoid duplicating evaluated positions with all poly curvesHans Goudey
If all of the curves are poly curves, the evaluated positions are the same as the original positions. In this case just reuse the original positions span as the evaluated positions.
2022-04-14Fix: Curves: Add missing builtin attribute definitionHans Goudey
2022-04-14Fix: Use consistent type for nurbs order attributeHans Goudey
An 8 bit integer should be enough for now. We can change this if we ever want to allow increasing the order past 256.
2022-04-14Fix: Assert evaluating single point Bezier curveHans Goudey
Just return early in that case to keep the rest of the function simpler.
2022-04-13EEVEE: Fix AOV implementationClément Foucault
2022-04-13Rename Color Attributes domain from "Point" to "Vertex"Joseph Eagar
Addresses T97257, to make it consistent with regular attributes tab Review by: Julian Kaspar Differential Revision: https://developer.blender.org/D14631 Ref D14631
2022-04-13Fix: compilation error with MSVCRay Molenkamp
Similar issue as e22fd7247adc.
2022-04-13EEVEE: Fix volume emissionClément Foucault
2022-04-13EEVEE: Implement back renderpassesClément Foucault