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
2021-01-22Cleanup - Point Instance: Use own DNA structDalai Felinto
We will need to expand this node soon to add weight/count for different elements inside the collection. For that it is better to have the node to use its own DNA.
2021-01-22Particles: Fixed thread work size calculation.Stefan Werner
Dividing the workload by number of tasks in float is imprecise and lead in some cases to particles not being calculated at all (example: 20000 particles, 144 tasks). Switching this calculation to integer makes sure we don't lose count. Differential Revision: https://developer.blender.org/D10157
2021-01-22Cleanup: spelling, remove outdated/invalid commentsCampbell Barton
2021-01-21Merge branch 'blender-v2.92-release'Falk David
2021-01-21Geometry Nodes: fix losing data when attribute has incorrect typeJacques Lucke
Differential Revision: https://developer.blender.org/D10165
2021-01-21Geometry Nodes: new Attribute Sample Texture nodeJacques Lucke
This node allows sampling a texture for every vertex based on some mapping attribute. Typical attribute names are the name of a uv map (e.g. "UVMap") and "position". However, every attribute that can be converted to a vector implicitly is supported. It should be noted that as of right now, uv map attributes can only be accessed after a Point Distribute node. Ref T82584. Differential Revision: https://developer.blender.org/D10121
2021-01-21GPencil: Make Layer and Frame duplicate functions more flexibleAntonio Vazquez
Now it's possible to copy only part of the data. This will be used in future operators.
2021-01-21Cleanup: variable rename.Bastien Montagne
Avoid using two or three chars names when it's not absolutely obvious what they mean.
2021-01-21Asset Browser: Enable by default in alpha buildsJulian Eisel
The Asset Browser is still considered an experimental feature right now. But it can be enabled by default for alpha builds, to get further testing and feedback. It will hopefully be a non-experimental feature by the end of bcon1. This is done in agreement with Dalai.
2021-01-21Geometry Nodes: initial support for volumesJacques Lucke
For the most part, this just adds boilerplate code for volume support in geometry nodes: * Add `VolumeComponent` next to `MeshComponent`, etc. * Support `VolumeComponent` in depsgraph object iterator. Furthermore, I added initial volume support in a few nodes: * The Object Info node outputs an object instance when the input is a volume object (that will be the same for mesh objects soonish, to avoid copies). * Support transforming a `VolumeComponent` in the Transform node. * Support the `VolumeComponent` in Join Geometry nodes, but only when just one of the inputs has a volume component for now. Right now, there is no way to create a `VolumeComponent`, because the Object Info node outputs an object instance. The `VolumeComponent` will be necessary for upcoming nodes, which will generate volumes on the fly. Viewport selection does not work correctly with `VolumeComponent`s currently. I don't know why that is. That can be figured out a bit later, once we can actually create new volumes in geometry nodes. Ref T84604. Differential Revision: https://developer.blender.org/D10147
2021-01-21Cleanup: spellingCampbell Barton
2021-01-20Merge branch 'blender-v2.92-release'Sebastian Parborg
2021-01-20Fix T84867: Transform node does not rotate/scale instancesSebastian Parborg
The manipulation of rot/scale was simply not implemented.
2021-01-20Tracking: Fix missing average of track offsetSergey Sharybin
2021-01-20Cleanup: spellingCampbell Barton
2021-01-20Cleanup: remove extra in trailing asteriskCampbell Barton
Comment blocks not conforming to convention.
2021-01-20Merge branch 'blender-v2.92-release'Campbell Barton
2021-01-20CMake: add missing headersCampbell Barton
Resolves 'cmake_consistency_check' reports.
2021-01-20Cleanup: Store runtime space node variables in a separate structHans Goudey
This commit moves runtime-only variables from the `SpaceNode` DNA struct to a private struct in `node_intern.h`. Before, it was hard to tell which data needed to be saved in files, this should make it more clear. Node that the `edittree` field is basically a runtime variable, since it's set from the `treepath` list on read, but moving it would require some more invasive changes that I don't think are worth it right now. Also, not all of the moved variables were explicitly cleared on read-- `aspect` is set at the start of a redraw, `cursor` is set in a region callback, and `recalc` was used as an update flag. Differential Revision: https://developer.blender.org/D10141
2021-01-19Refactor modifier copying code.Bastien Montagne
Things like pointers to particle systems, or softbody data being stored outside of its modifier, make it impossible for internal modifier copy data code to be self-contained currently. It requires extra processing. In existing code this was handled in several different places, in several ways, and alltogether fairly inconsistently. Some cases were even not properly handled, causing e.g. crashes as in T82945. This commit addresses those issues by: * Adding comments about the hackish/unsafe parts `psys` implies when copying some modifier data (since we need to ensure particle system copying and remapping of those pointers separately). * Adding as-best-as-possible handling of those cases to `BKE_object_copy_modifier` (note that it remains fragile, but is expected to behave 'good enough' in any practical usecase). * Remove special handling for specific editor code (`copy_or_reuse_particle_system`). This should never have been accepted in ED code area, and is now handled by `BKE_object_copy_modifier`. * Factorize copying of the whole modifier stack into new `BKE_object_modifier_stack_copy`, now used by both `object_copy_data` and `BKE_object_link_modifiers`. Note that this implies that `BKE_object_copy_modifier` and `BKE_object_copy_gpencil_modifier` are now to be used exclusively to copy single modifiers. Full modifier stack copy should always use `BKE_object_modifier_stack_copy` instead. Fix T82945: Crash when dragging modifiers in Outliner. Maniphest Tasks: T82945 Differential Revision: https://developer.blender.org/D10148
2021-01-19Refactor modifier copying code.Bastien Montagne
Things like pointers to particle systems, or softbody data being stored outside of its modifier, make it impossible for internal modifier copy data code to be self-contained currently. It requires extra processing. In existing code this was handled in several different places, in several ways, and alltogether fairly inconsistently. Some cases were even not properly handled, causing e.g. crashes as in T82945. This commit addresses those issues by: * Adding comments about the hackish/unsafe parts `psys` implies when copying some modifier data (since we need to ensure particle system copying and remapping of those pointers separately). * Adding as-best-as-possible handling of those cases to `BKE_object_copy_modifier` (note that it remains fragile, but is expected to behave 'good enough' in any practical usecase). * Remove special handling for specific editor code (`copy_or_reuse_particle_system`). This should never have been accepted in ED code area, and is now handled by `BKE_object_copy_modifier`. * Factorize copying of the whole modifier stack into new `BKE_object_modifier_stack_copy`, now used by both `object_copy_data` and `BKE_object_link_modifiers`. Note that this implies that `BKE_object_copy_modifier` and `BKE_object_copy_gpencil_modifier` are now to be used exclusively to copy single modifiers. Full modifier stack copy should always use `BKE_object_modifier_stack_copy` instead. Fix T82945: Crash when dragging modifiers in Outliner. Maniphest Tasks: T82945 Differential Revision: https://developer.blender.org/D10148
2021-01-19Merge branch 'blender-v2.92-release'Sebastian Parborg
2021-01-19Volumes: fix calling BKE_volume_load from multiple threadsJacques Lucke
`BKE_volume_is_loaded` uses `grids.filepath` to determine if the grids are already loaded. The issue was that `grids.filepath` was set before the grids were loaded, resulting in incorrect early returns for other threads. Differential Revision: https://developer.blender.org/D10150
2021-01-19Geometry Nodes - Object Info: option to apply obj transform to the geometryDalai Felinto
By design the modified object transformations should still work and affect the geometry nodes results. The current behaviour, however, would make the geometry from the object info to not be affected by the modified object transformations. This patch changes that by default. In a similar fashion the Location, Rotation and Scale sockets outputs should be aware of whether the output should be in the global space or in the space of the nodetree. To solve this, the patch introduces a new transformation space "enum" where users can pick "Original" or "Relative" space. Original -------- Output the geometry relative to the input object transform, and the location, rotation and scale relative to the world origin. Relative -------- Bring the input object geometry, location, rotation and scale into the modified object maintaining the relative position between the two objects in the scene. Relative space violates a bit the design of the nodetree. The geometry in this case is transformed so that moving the modified object doesn't interfere with the geometry. This is particularly useful for the boolean node for instance. "Original" is the default space, but old files are set to "Relative" for backwards compatibility. Differential Revision: https://developer.blender.org/D10124
2021-01-19Fix T74755: Cap of curve doesn't have smooth shadingCampbell Barton
Copy the smooth setting when filling in curve caps. For drawing this doesn't change behavior as a single normal is used for all faces. The difference may be noticed when converting to a mesh or with modifiers applied.
2021-01-19Merge branch 'blender-v2.92-release'Campbell Barton
2021-01-19Fix T84041: Bevel caps have invalid normalsCampbell Barton
Bevel caps always had incorrect normals, causing display glitches in some cases. It seems this never worked properly (at least 2.79 also had this bug). Use the projection vector as the normal.
2021-01-19Cleanup: use 'const' argument for parameter argumentCampbell Barton
2021-01-19UI Code Quality: Use "params" struct for area and region callbacksHans Goudey
These functions with many arguments can be unwieldy. Aside from the obvious issues with rewriting the list of arguments and the opportunities for error and frustration that presents, the long list of arguments make these systems hard to change. So when an argument should be added, someone might skip that and add some hack instead. So, as proposed in T73586#1037210, this patch instead uses a "params" struct for each of these callbacks. - Use param argument for `ARegionType.listener` - Remove unused window field in region listener - Use param argument for `SpaceType.listener` - Use params struct for `ARegionType.message_subscribe` Differential Revision: https://developer.blender.org/D9750
2021-01-18Cleanup: Clang tidy else after returnHans Goudey
2021-01-18Merge branch 'blender-v2.92-release'Alexander Gavrilov
2021-01-18Armature: fix B-Bone deformation blending artifacts with Preserve Volume.Alexander Gavrilov
The double quaternion blending method in addition to the deformation matrix of each bone requires their rest matrices. For ordinary bones this literally should use the bone rest matrix without any ambiguity. However, it was also using the bone rest matrix for all of its B-Bone segments, which is incorrect and causes strange deformation in some cases involving extreme non-uniform scale, especially at boundaries between different B-Bones. There is also a similar known issue that happens with scale at bending joints, and this fix reduces the distortion when both bones are B-Bones. This changes both the Armature modifier and the Armature constraint to use the actual segment rest matrices. Unlike bones, these can have scale even in rest pose, so normalization is required. Differential Revision: https://developer.blender.org/D10003
2021-01-18Tracking: Implement tracks average operatorSergey Sharybin
Average selected tracks into the new one. This can be used to improve stability of tracking on blurry or non-very-sharp feature shapes. Averaging happens for all position, pattern corners and search area. Disabled markers do not take effect on averaging. Keyframed flag is copied from source. Gaps in the source tracks will be linearly interpolated, to reduce result track jump. Note that this only applies to gaps "inbetween". This means that if an input track doesn't have markers in the beginning/end of it, there is nothing to interpolate with and the result track will jump. Available from the Track panel, under the Merge category. Differential Revision: https://developer.blender.org/D6323
2021-01-18Tracking: Add interpolated accessor for markersSergey Sharybin
Allows to get marker position interpolated through out a gap. Currently unused, but is covered with test. Aimed to be used for track average operator.
2021-01-18Tracking: Re-write marker request functionSergey Sharybin
There are two main things. First, remove the marker index caching. Thins makes it possible to safely use function from a threaded environment. Second, replace linear search with binary search, which speeds up random lookup. There is no measurable difference in the stabilization which had a comment about caching nature of track lookup. The random lookup complexity changed from O(N) to O(log N). In practice this also unlikely to be measurable, but thread-safety worth it.
2021-01-16GPencil: Hide layer if the scale is zeroAntonio Vazquez
When scale a layer to zero must be hidden.
2021-01-16GPencil: Add new parameteres to transform layersAntonio Vazquez
When using grease pencil for drawing Storyboards, it's very common to require a transform of the layers. This transform can be done using the offset modifier, but in some cases, the scene requires a lot of modifiers and makes the file hard to work. This new feature adds a transforms Location, Rotation and Scale at Layer level, and allows to transform the layer without using a modifier, keeping the scene more clean. {F9480695} This feature was suggested by @pepeland after receiving feedback from several artists. Also, done some code cleanup and rename some functions to get a better naming. Maniphest Tasks: T83660 Differential Revision: https://developer.blender.org/D9761
2021-01-16Merge branch 'blender-v2.92-release'Jacques Lucke
2021-01-16Fix T84757: feedback loop with when modifying vertex group with nodesJacques Lucke
The issue was that the mesh shared its vertex weights with the original mesh (to reduce memory consumption). The solution is to make a local copy of the vertex weights in this case.
2021-01-15Merge remote-tracking branch 'origin/blender-v2.92-release'Ray Molenkamp
2021-01-15Fix: Build error with MSVC 2017Ray Molenkamp
BKE_cryptomatte_extract_layer_name was using std::isdigit without including <cctype> somehow only MSVC 2017 had a problem with that.
2021-01-15Cleanup: LibOverride: Update comment.Bastien Montagne
2021-01-15Fix (unreported) copying liboverride of mesh breaks overrides of shape keys.Bastien Montagne
Our beloved shapekeys are 'virtual' overrides, they need special snowflake treatment here as well. They do not have any override data, from override perspective they are considered as mere sub-data from their owning ID (mesh, lattice, etc.). Therefore, we should not copy override data from them, but instead properly flag those new IDs as `LIB_EMBEDDED_DATA_LIB_OVERRIDE`. Found while investigating T84373.
2021-01-15Fix (unreported) copying liboverride of mesh breaks overrides of shape keys.Bastien Montagne
Our beloved shapekeys are 'virtual' overrides, they need special snowflake treatment here as well. They do not have any override data, from override perspective they are considered as mere sub-data from their owning ID (mesh, lattice, etc.). Therefore, we should not copy override data from them, but instead properly flag those new IDs as `LIB_EMBEDDED_DATA_LIB_OVERRIDE`. Found while investigating T84373.
2021-01-15Merge branch 'blender-v2.92-release'Hans Goudey
2021-01-15Geometry Nodes: Use a default value in the point scale nodeHans Goudey
This commit adds the ability to provide a default value to `attribute_try_get_for_output` and uses it for the `Point Scale` node, which is important because the node uses multiplication. The idea is to keep "name-specific" functionality in nodes rather than in the attribute API, otherwise the complexity will be hard to keep track of. So this fix doesn't apply to the Attribute Vector Math node, but hopfully that is okay since that's now a lower level node for this purpose anyway. Differential Revision: https://developer.blender.org/D10115
2021-01-15Cleanup: Add const in various places in node codeHans Goudey
Also includes some various other minor cleanups, like using bool instead of int in a couple places.
2021-01-15Geometry Nodes: transfer corner and point attributes in Point Distribute nodeJacques Lucke
If the mesh has any corner or point attributes (e.g. vertex weights or uv maps), those attributes will now be available on the generated points as well. Other domains can be supported as well. I just did not implement those yet, because we don't have a use case for them. Differential Revision: https://developer.blender.org/D10114
2021-01-15Nla: Rename NlaEvalChannel->valid to domainWayde Moss
For term consistency with usage. The clarity is more for consistency with the nla domain() processing function names and the core struct member name it stores the results in, "valid". The name "domain", which implies a function can operate on it, seems more natural than "valid", which implies something is wrong if false. No functional changes. Reviewed by: sybren Differential Revision: http://developer.blender.org/D9692
2021-01-15NLA: Redundant NlaEvalChannel Valid Mask WriteWayde Moss
The field will already be properly written to in (anim_sys.c) nla_eval_domain_action(). It's easier to understand the property's usage after removing the redundancy. No functional changes. Reviewed by: ChrisLend, sybren Differential Revision: http://developer.blender.org/D9689