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
2020-05-19Merge branch 'blender-v2.83-release'Philipp Oeser
2020-05-19Fix T76689: Armature layers not indicating the existence of bonesSybren A. Stüvel
From what I can see, there are two issues at play in {T76689} and its merged-in report {T76590}: - In Blender ≤ 2.79 the bone layer dots were updated in the draw code. This ensured the info was up to date before drawing. This is no longer possible, as the drawing code uses evaluated objects, and those should not be written to. This has been addressed in rB709f126e8143 by calling the update function explicitly in various places in the code. The problem is that this wasn't added to all necessary spots. - When in edit mode, changes are made to the edit bones but not to the 'actual' bones (this is synced when exiting edit mode). This causes undo to mess up the layer indicators. I think both issues can be addressed by having the dependency graph update the used layer info as part of the armature evaluation. This will make the undo system work properly, and allows the removal of some `BKE_armature_refresh_layer_used()` from various places. There is still the issue that there are two functions (`BKE_armature_refresh_layer_used()` and `ED_armature_edit_refresh_layer_used()`) that are both responsible for updating `bArmature::layer_used`. This is a trickier thing to solve, though, as the definition of the `EditBone` struct resides in the armature editor module. This means that blenkernel can't iterate over edit bones, but on the other hand the dependency graph shouldn't call any editor functions either. This is why I left the `ED_armature_edit_refresh_layer_used()` calls untouched. The downside of recalculating `layer_used` from the dependency graph (at least in the way that I did it now) is that it is called every time a user moves a bone in pose mode. This frequency of updates is not necessary. Differential Revision: https://developer.blender.org/D7709
2020-05-14Fluid: Rename smoke flow forces to fluid flow forcesSebastián Barschkis
Better to use more general term since in theory these forces can be used for smoke and liquid.
2020-05-13Simulation: Add modifier to access simulation dataJacques Lucke
For now the "Simulation" modifier only exists for point cloud objects, because we need this for the particle system. Right now, the modifier is doing nothing. There is a new `DEG_add_simulation_relation` function that is used by the modifier to make sure that the simulation is evaluated before the modifier is executed. Reviewers: brecht, sergey Differential Revision: https://developer.blender.org/D7549
2020-05-09Cleanup: doxy commentsCampbell Barton
2020-05-09Cleanup: spellingCampbell Barton
2020-05-08Cleanup: take includes out of 'extern "C"' blocksJacques Lucke
Surrounding includes with an 'extern "C"' block is not necessary anymore. Also that made it harder to add any C++ code to some headers, or include headers that have "optional" C++ code like `MEM_guardedalloc.h`. I tested compilation on linux and windows (and got help from @LazyDodo). If this still breaks compilation due to some linker error, the header containing the symbol in question is probably missing an 'extern "C"' block. Differential Revision: https://developer.blender.org/D7653
2020-05-08GPencil: Refactor - Rename modifier and shder functionsAntonio Vazquez
This change is to align names with changes in T76498
2020-05-08Fix T76498: Refactoring - Rename BKE modifiers funtionsAntonio Vazquez
2020-05-06Depsgraph: Fix memory leakJacques Lucke
I introduced the issue in rBb21a3e77027.
2020-05-04Merge branch 'blender-v2.83-release'Sergey Sharybin
2020-05-04Fix T76251: Animated procedural texture does not influence particle systemLuc Revardel
Dependancy missing while building depsgraph for particle systems. fix: adding a relation texture->particles when texture has animation data. Reviewed By: sergey Maniphest Tasks: T76251 Differential Revision: https://developer.blender.org/D7573
2020-05-04Merge remote-tracking branch 'origin/blender-v2.83-release'Sybren A. Stüvel
2020-05-04T76121 Driver depending on animated modifier property does not updateSybren A. Stüvel
This fixes an issue where an animated modifier property that's used as variable in a driver wouldn't animate that driver's value. Building the relations for the driver target creates the relation `PARAMETERS_EVAL` → `DRIVER(variable)`. Building the relations for the FCurve targeting the modifier property creates the relation `ANIMATION_EXIT` → `GEOMETRY_EVAL_INIT`. This means that there is NOT a relation `ANIMATION_EXIT` → `PARAMETERS_EVAL`, and as a result, the driver is not properly updated when its variable reads animated data. This is resolved in this commit by adding the missing relation. Differential Revision: https://developer.blender.org/D7615
2020-05-01Cleanup: moved drivers to BKE_fcurve_driver.h / fcurve_driver.cSybren A. Stüvel
All the driver-specific code in `fcurve.c` has been moved into a new file `fcurve_driver.c`. The corresponding declarations have been moved from `BKE_fcurve.h` to `BKE_fcurve_driver.h`. All the `#include "BKE_fcurve.h"` statements have been investigated and replaced with `BKE_fcurve_driver.h` where necessary. No functional changes.
2020-04-30Task: Use TBB as Task SchedulerBrecht Van Lommel
This patch enables TBB as the default task scheduler. TBB stands for Threading Building Blocks and is developed by Intel. The library contains several threading patters. This patch maps blenders BLI_task_* function to their counterpart. After this patch we can add more patterns. A promising one is TBB:graph that can be used for depsgraph, draw manager and compositor. Performance changes depends on the actual hardware. It was tested on different hardwares from laptops to workstations and we didn't detected any downgrade of the performance. * Linux Xeon E5-2699 v4 got FPS boost from 12 to 17 using Spring's 04_010_A.anim.blend. * AMD Ryzen Threadripper 2990WX 32-Core Animation playback goes from 9.5-10.5 FPS to 13.0-14.0 FPS on Agent 327 , 10_03_B.anim.blend. Reviewed By: brecht, sergey Differential Revision: https://developer.blender.org/D7475
2020-04-29Depsgraph: use native BLI data structures in registryJacques Lucke
Reviewers: sergey Differential Revision: https://developer.blender.org/D7559
2020-04-29Cleanup: use const args for depsgraph functionsCampbell Barton
2020-04-28Cleanup: remove unnecessary includesJacques Lucke
2020-04-28Depsgraph: use BLI::Vector for RelationsJacques Lucke
Reviewers: sergey Differential Revision: https://developer.blender.org/D7556
2020-04-28Depsgraph: Use BLI::Map for constraint_to_pchan_map_Jacques Lucke
Reviewers: sergey Differential Revision: https://developer.blender.org/D7553
2020-04-28Depsgraph: use BLI::Set for entry_tagsJacques Lucke
Reviewers: sergey Differential Revision: https://developer.blender.org/D7555
2020-04-28Depsgraph: use BLI::Map in RootPChanMapJacques Lucke
Reviewers: sergey, sybren Differential Revision: https://developer.blender.org/D7521
2020-04-28Merge branch 'blender-v2.83-release'Bastien Montagne
Conflicts: source/blender/blenkernel/intern/lib_query.c source/blender/depsgraph/intern/builder/deg_builder_relations.cc
2020-04-28Depsgraph: Add IDProperties handling.Bastien Montagne
Fix T75279: BLI_assert failed when deleting object in debug build (only). And all general cases of ID pointer idproperties that would use a data-block not referenced anywhere else in the depsgraph. This includes idproperties from: * All ID types; * Bones and pose bones; * Sequences; * Nodes and sockets. Differential Revision: https://developer.blender.org/D7551
2020-04-28Depsgraph: Use BLI::Map in more placesJacques Lucke
Reviewers: sergey Differential Revision: https://developer.blender.org/D7519
2020-04-28Depsgraph: Use BLI::Map for RNANodeQuery.id_data_map_Jacques Lucke
Reviewers: sergey Differential Revision: https://developer.blender.org/D7512
2020-04-25Merge branch 'blender-v2.83-release'Nathan Craddock
2020-04-24Fix T69753 Instanced Metaballs not rendering but showing up in ViewportSybren A. Stüvel
This hides the original metaballs when they are used in duplifaces/-verts instancing, and still shows the instanced metaballs. The visibility of the original metaballs is now determined by the visibility of the instancer. I'm not too thrilled about this, but at least it gives users the ability to show/hide the metaballs for viewport/render. Differential Revision: https://developer.blender.org/D7478
2020-04-24Depsgraph: Use BLI::Map instead of GHash for operations_mapJacques Lucke
Reviewers: sergey Differential Revision: https://developer.blender.org/D7509
2020-04-24Depsgraph: Use BLI::Set instead of std::unordered_setJacques Lucke
Reviewers: sergey Differential Revision: https://developer.blender.org/D7506
2020-04-24Cleanup: remove unused arg, clang-formatCampbell Barton
2020-04-23Cleanup: silence unused parameter warningJacques Lucke
2020-04-23Merge branch 'blender-v2.83-release'Brecht Van Lommel
2020-04-23Fix T75611: slow transform of many objects at the same timeBrecht Van Lommel
Solve O(n^2) time complexity problem where a dependency graph iterator loops over all nodes to clear flags, which happened for every object at the start of transform. Differential Revision: https://developer.blender.org/D7503
2020-04-21CleanUp: Renamed `BLI_task_pool_userdata` to `BLI_task_pool_user_data`Jeroen Bakker
In preparation for {D7475}
2020-04-21Fix T75845: some dependencies update missing when painting textures.Luc Revardel
issue: Painting a texture that is set as a particle system influencer, doesn't update particles. An external trigger (such as changing influence slider) is required to update particles. fix: The root cause is a missing relationship from image to texture in the dependency graph. test: Once fixed, image texture painting updates expected dependencies such as particle system influence or displacement modifier. Reviewed By: sergey Maniphest Tasks: T75845 Differential Revision: https://developer.blender.org/D7472
2020-04-20Simulations: Add new simulation data blockJacques Lucke
This data block will be the container for simulation node trees. It will be used for the new particle node system (T73324). The new data block has the type `ID_SIM`. It is not visible to users and other developers by default yet. To enable it, activate the cmake option `WITH_NEW_SIMULATION_TYPE`. New simulation data blocks can be created by running `bpy.data.simulations.new("name")`. Reviewers: brecht Differential Revision: https://developer.blender.org/D7225
2020-04-17Merge remote-tracking branch 'origin/blender-v2.83-release'Sybren A. Stüvel
2020-04-17Fix T75686: Animating scene audio volume doesn't workSybren A. Stüvel
Scene audio volume changes require the scene to be tagged with `ID_RECALC_AUDIO_VOLUME` (see `BKE_scene_update_sound()`). Tagging happens in the RNA update function `rna_Scene_volume_update()`, but that function is not called by the animation system. As a result, animated volume changes are not sent to the audio system. This commit adds a new depsgraph operation node that sets this tag when necessary, so that the animated values are used in the rest of the depsgraph evaluation. Reviewed By: sergey Differential Revision: https://developer.blender.org/D7429
2020-04-17Cleanup: use colon after doxygen parameters, spellingCampbell Barton
2020-04-15Cleanup: unused variable, spellingCampbell Barton
2020-04-14Fix T75542: toggling modifier visibility not working correct with undo speedupBrecht Van Lommel
The problem was that in direct_link_id_restore_recalc, recalc_undo_accumulated should contain the changes from the target state to the current state. However it had already been cleared at that point, to start accumulating changes up to the next undo push. Delaying the clear of this flag seems like the obvious solution, but it's hard to find the right place for that (if there is one). Instead this splits up the flag into two separate variables. Reviewed By: mont29 Differential Revision: https://developer.blender.org/D7402
2020-04-14Cleanup: spellingCampbell Barton
2020-04-10Fix T67232: Multiples targetless IKs in a chain gives weird behaviour (known ↵Sebastian Parborg
as FakeIK for FK posing) The issue was that the deps graph relation builder assumed that all bones that had a IK constraint on them would be evaluated. However for targetless IK bones, only the active bone would receive updates and the others would be skipped (as those would be treated as if the IK constraint was disabled). I didn't see an easy way to solve this from the depsgraph side of things. Instead I came up with a solution that I feel is quite strait forward and reflects what is actually supposed to happen under the hood. Now all targetless IK constraints are treated as disabled and will not be added to any relations in the depsgraph. Instead, a temporary IK constraint will be created when the bone in question is transformed. This is basically activating "Auto IK" for the bone while transforming. Reviewed By: Sergey, Brecht Differential Revision: http://developer.blender.org/D7378
2020-04-09TaskScheduler: Minor Preparations for TBBBrecht Van Lommel
Tasks: move priority from task to task pool {rBf7c18df4f599fe39ffc914e645e504fcdbee8636} Tasks: split task.c into task_pool.cc and task_iterator.c {rB4ada1d267749931ca934a74b14a82479bcaa92e0} Differential Revision: https://developer.blender.org/D7385
2020-04-08Fix missed depsgraph update after undo in some casesBrecht Van Lommel
Forgot to take into account legacy DEG_id_tag_update with zero flag.
2020-04-07Undo: change depsgraph recalc flags handling to improve performanceBrecht Van Lommel
These changes only have an effect when the experimental Undo Speedup preference is enabled. * For DEG_id_tag_update, accumulate recalc flags immediately before the undo push happens instead of afterwards. Otherwise the undo state does not contain enough flags, and the current state may contain too many flags. This also means we call DEG_id_tag_update after undo with the accumulated flags to ensure they are flushed to other datablocks. * For undo, accumulate recalc flags in id->recalc and clear accumulated flags immediately. Not clearing would cause circular behavior where accumulated flags may never end up being cleared. This matches what happens after an undo push where these are also cleared, indicating that the undo state and current in-memory state match exactly. * Don't change id->recalc of identical datablocks, it should not be needed. There is one exception for armatures where pointers across datablocks exist which otherwise would cause problems. There may be a better solution to this but it seems to work in agent 327 production files. * This contains a change in undofile.c to avoid detecting all datablocks as changed for the first of the two undo steps, where we restore to the state of the last undo push before going to the one before. Without this the whole system is much less efficient. However this is unsafe in the sense that if an app handler or operators edits a datablock after an undo push, that change will not be undone. It can be argued that this is acceptable behavior, since a following undo push will include that change and this may already have unexpected side effects. Ref T60695 Differential Revision: https://developer.blender.org/D7339
2020-04-03Cleanup: Animation, move AnimData API to `anim_data.c`/`BKE_anim_data.h`Sybren A. Stüvel
The `BKE_animsys.h` and `anim_sys.c` files already had a an "AnimData API" section. The code in that section has now been split off, and placed into `BKE_anim_data.h` and `anim_data.c`. All files that used to include `BKE_animsys.h` have been adjusted to only include the animation headers they need (sometimes none). No functional changes.
2020-04-03Cleanup: split `BKE_anim.h` and `anim.c` into smaller piecesSybren A. Stüvel
The files are now split up into the following sections: - `BKE_anim_path.h` and `anim_path.c` for path/curve functions. - `BKE_anim_visualization.h` and `anim_visualizationanim_path.c` for animation visualization (mostly motion paths). - `BKE_duplilist.h` for DupliList function declarations. These were already implemented in `object_dupli.c`, so they were rather out of place being declared in `BKE_anim.h` in the first place. No functional changes.