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
2019-02-01Cleanup: remove redundant, invalid info from headersCampbell Barton
BF-admins agree to remove header information that isn't useful, to reduce noise. - BEGIN/END license blocks Developers should add non license comments as separate comment blocks. No need for separator text. - Contributors This is often invalid, outdated or misleading especially when splitting files. It's more useful to git-blame to find out who has developed the code. See P901 for script to perform these edits.
2019-01-31Depsgraph: Comb code to a better state all overSergey Sharybin
Some summary of changes: - Don't use DEG prefix for types and enumerator values: the code is already inside DEG namespace. - Put code where it locally belongs to: avoid having one single header file with all sort of definitions in it. - Take advantage of modern C++11 enabled by default.
2019-01-31Fix T61030: Drivers for shape keys not evaluated in correct orderSergey Sharybin
Was happening when value of one shape key was driving property of another shape key of same datablock. Solved by making shape key blocks properties more granular.
2019-01-31Depsgraph: Specify whether RNA path to be resolved as entry or exitSergey Sharybin
Makes it more explicit whether RNA property is used as a source dependency for something else, or whether some other dependency is being hooked up to evaluate that property.
2019-01-28Cleanup: unused struct declarationsCampbell Barton
2019-01-28Cleanup: sort forward declarations of enum & structCampbell Barton
Done using: source/tools/utils_maintenance/c_sort_blocks.py
2019-01-22Fix T60742, T55974: crash using mesh/curve surface force fields.Brecht Van Lommel
Missing dependency graph relations caused race conditions.
2018-12-10Fix T57633: Particle texture update problemSergey Sharybin
Textures are now hooked up to the RESET operation of particle settings, which ensures particles being re-distributed when texture is changed. This is limited to a direct user modifications, which matches old behavior in 2.79.
2018-12-03Depsgraph: completely move customdata_mask to the ID node.Alexander Gavrilov
Move all mask-related fields from Object and OperationDepsNode to Object_Runtime and IDDepsNode. Auto-apply DEG_TAG_GEOMETRY if the mask changes after DEG rebuild. Update DEG API and all code that uses it. This fixes "source mesh data is not ready" errors from Data Transfer modifier when parameters are changed in the UI after the recent mesh_get_eval_final fix. Reviewers: sergey Differential Revision: https://developer.blender.org/D4025
2018-11-22Depsgraph: Cleanup, make it easier to create relations with flagsSergey Sharybin
2018-11-15Depsgraph: Save memory by ignoring invisible objectsSergey Sharybin
This finished old standing TODO which was attempting to ignore objects of all invisible collections. The difference here is that we remove invisible bases from view layers. This guarantees that the evaluated state is consistent and does not reference original objects.
2018-11-14Depsgraph: Fix missing point cache reset when physics changesSergey Sharybin
Among all the lines moved around, the general idea is quite simple. Actually, there are two ideas implemented there. First one, is when object itself is tagged for update, we tag its point cache component for evaluation, which makes it so point cache is properly reset. We do it implicitly because otherwise we'll need to go everywhere and add explicit tag in almost all the properties. Second thing is, we link all collider and force fields to a point cache component using special type of link. This type of link only allows flush if change is caused by a user update. This way reset does not happen when change is caused due to animation, but will properly happen when user causes indirect change to the objects which are part of physics simulation.
2018-10-24Depsgraph: fixes for the eval_flags API behavior.Alexander Gavrilov
- Use the original ID pointer for lookup in DEG_get_eval_flags_for_id. - When the flags change after a DEG rebuild, tag the object for update. - Instead of mixing int and short in different places, use uint32_t. This fixes text not updating when a Follow Curve reference is set.
2018-10-24Depsgraph: minor renaming and refactor of API for adding evaluation flags.Alexander Gavrilov
2018-10-14Depsgraph: Add proper API functions for CustomDataMask dependencies.Alexander Gavrilov
There were a few copies of the same few lines in depsgraph build code, so it seems to be logical to introduce a function for it, and make it accessible from C code for completeness. As an example, register the mask needs of the Data Transfer modifier.
2018-09-24Merge branch 'master' into blender2.8Brecht Van Lommel
2018-09-24Spelling fixes in comments and descriptions, patch by luzpaz.Brecht Van Lommel
Differential Revision: https://developer.blender.org/D3719
2018-08-23Depsgraph: Bring back visibility checks based on collection restrict flagsSergey Sharybin
The title says it all actually, the idea is to speedup the following case: - Visible duplicator of a restricted collection (reported as T56512), One of the questionable change is that none of the view layer bases is ignored now. This ensures corresponding objects will have copy-on-write component evaluated, making it possible to access those pointers. The evaluation of those objects is skipped. Reviewers: brecht Differential Revision: https://developer.blender.org/D3641
2018-06-27Depsgraph: Fix missing relation from action to animation when it's sharedSergey Sharybin
2018-06-25Depsgraph: cache collision relations, for performance and stability.Brecht Van Lommel
Same reasoning as effector relations in earlier commit.
2018-06-25Depsgraph: Add missing nodes and relations for speakerSergey Sharybin
2018-06-08Depsgraph: Don't optimize out collections used by duplication systemSergey Sharybin
This makes evaluated objects to point to a non-evaluated collection, which is already really bad. What is even more worse, objects in those collections are not evaluated either. Proper solution would be to implement visibility flag for nodes, which will be set to 0 for transform/geometry components, but which will be 1 for copy-on-write components. This way we will guarantee consistency of dependency graph. For now this change is good enough and unlocks production. Fixes T55375: Crash when changing visibility of instanced collection Fixes T55357: Particle geometry crash
2018-06-06Depsgraph: Handle key->object relations from object builderSergey Sharybin
2018-06-06Depsgraph: Object data separation, armatureSergey Sharybin
2018-06-06Depsgraph: Object data separation, geometrySergey Sharybin
2018-06-06Depsgraph: Object data separation, cameraSergey Sharybin
2018-06-06Depsgraph: Object data separation, lampSergey Sharybin
2018-06-06Depsgraph: Object data separation, light probesSergey Sharybin
This is a beginning of series of commits which will clearly separate building IDs which are used as object data from object building. The goal is to be able to always build whatever ID. Required to make driver targets to work reliably with copy-on-write concept.
2018-05-20Cleanup: whitespace, duplicate includesCampbell Barton
2018-05-18Collections and groups unificationBrecht Van Lommel
OVERVIEW * In 2.7 terminology, all layers and groups are now collection datablocks. * These collections are nestable, linkable, instanceable, overrideable, .. which opens up new ways to set up scenes and link + override data. * Viewport/render visibility and selectability are now a part of the collection and shared across all view layers and linkable. * View layers define which subset of the scene collection hierarchy is excluded for each. For many workflows one view layer can be used, these are more of an advanced feature now. OUTLINER * The outliner now has a "View Layer" display mode instead of "Collections", which can display the collections and/or objects in the view layer. * In this display mode, collections can be excluded with the right click menu. These will then be greyed out and their objects will be excluded. * To view collections not linked to any scene, the "Blender File" display mode can be used, with the new filtering option to just see Colleciton datablocks. * The outliner right click menus for collections and objects were reorganized. * Drag and drop still needs to be improved. Like before, dragging the icon or text gives different results, we'll unify this later. LINKING AND OVERRIDES * Collections can now be linked into the scene without creating an instance, with the link/append operator or from the collections view in the outliner. * Collections can get static overrides with the right click menu in the outliner, but this is rather unreliable and not clearly communicated at the moment. * We still need to improve the make override operator to turn collection instances into collections with overrides directly in the scene. PERFORMANCE * We tried to make performance not worse than before and improve it in some cases. The main thing that's still a bit slower is multiple scenes, we have to change the layer syncing to only updated affected scenes. * Collections keep a list of their parent collections for faster incremental updates in syncing and caching. * View layer bases are now in a object -> base hash to avoid quadratic time lookups internally and in API functions like visible_get(). VERSIONING * Compatibility with 2.7 files should be improved due to the new visibility controls. Of course users may not want to set up their scenes differently now to avoid having separate layers and groups. * Compatibility with 2.8 is mostly there, and was tested on Eevee demo and Hero files. There's a few things which are know to be not quite compatible, like nested layer collections inside groups. * The versioning code for 2.8 files is quite complicated, and isolated behind #ifdef so it can be removed at the end of the release cycle. KNOWN ISSUES * The G-key group operators in the 3D viewport were left mostly as is, they need to be modified still to fit better. * Same for the groups panel in the object properties. This needs to be updated still, or perhaps replaced by something better. * Collections must all have a unique name. Less restrictive namespacing is to be done later, we'll have to see how important this is as all objects within the collections must also have a unique name anyway. * Full scene copy and delete scene are exactly doing the right thing yet. Differential Revision: https://developer.blender.org/D3383 https://code.blender.org/2018/05/collections-and-groups/
2018-05-04Depsgraph: Fix missing relations for IDs brought by driversSergey Sharybin
This is similar to rather recent fix in nodes builder. Fixes crash when creating static override for chicken from Dweebs.
2018-05-01Depsgraph: Add missing relations needed for nested datablock relationsSergey Sharybin
2018-04-23Merge branch 'master' into blender2.8Sergey Sharybin
2018-04-23Depsgraph: Add relation flag to avoid flush across itSergey Sharybin
This way we can avoid re-evaluation of certain parts of datablock when something unrelated has changed.
2018-04-19Remove Blender Internal and legacy viewport from Blender 2.8.Ton Roosendaal
Brecht authored this commit, but he gave me the honours to actually do it. Here it goes; Blender Internal. Bye bye, you did great! * Point density, voxel data, ocean, environment map textures were removed, as these only worked within BI rendering. Note that the ocean modifier and the Cycles point density shader node continue to work. * Dynamic paint using material shading was removed, as this only worked with BI. If we ever wanted to support this again probably it should go through the baking API. * GPU shader export through the Python API was removed. This only worked for the old BI GLSL shaders, which no longer exists. Doing something similar for Eevee would be significantly more complicated because it uses a lot of multiplass rendering and logic outside the shader, it's probably impractical. * Collada material import / export code is mostly gone, as it only worked for BI materials. We need to add Cycles / Eevee material support at some point. * The mesh noise operator was removed since it only worked with BI material texture slots. A displacement modifier can be used instead. * The delete texture paint slot operator was removed since it only worked for BI material texture slots. Could be added back with node support. * Not all legacy viewport features are supported in the new viewport, but their code was removed. If we need to bring anything back we can look at older git revisions. * There is some legacy viewport code that I could not remove yet, and some that I probably missed. * Shader node execution code was left mostly intact, even though it is not used anywhere now. We may eventually use this to replace the texture nodes with Cycles / Eevee shader nodes. * The Cycles Bake panel now includes settings for baking multires normal and displacement maps. The underlying code needs to be merged properly, and we plan to add back support for multires AO baking and add support to Cycles baking for features like vertex color, displacement, and other missing baking features. * This commit removes DNA and the Python API for BI material, lamp, world and scene settings. This breaks a lot of addons. * There is more DNA that can be removed or renamed, where Cycles or Eevee are reusing some old BI properties but the names are not really correct anymore. * Texture slots for materials, lamps and world were removed. They remain for brushes, particles and freestyle linestyles. * 'BLENDER_RENDER' remains in the COMPAT_ENGINES of UI panels. Cycles and other renderers use this to find all panels to show, minus a few panels that they have their own replacement for.
2018-04-12Depsgraph: Remove function bindings with collectionsSergey Sharybin
Use single function to evaluate all the collections for the given view layer. This way we avoid need to get scene ID sub-data. Similar to pchan index, this allows us to avoid build-time scene expansion, which also simplifies update of the scene datablock. Well, sort of. There is still work to be done to get rid of build-time scene datablock expansion, which includes: - Need to pass view layer by index. Annoying part would be to get actual view layer for that index. In practice doing list lookup might not be such a bad idea, since such lookup will not happen very often, and it is unlikely to have more than handful of view layer anyway. Other idea could be to use view layer from evaluation context. Or maybe from depsgraph, which is supposed to be in the context. Can have some assert statements to make sure everything is good. - Need to get id of base binding for flags flush. We can replace that with index-based lookup from an array created by view layer evaluation. Reviewers: dfelinto Differential Revision: https://developer.blender.org/D3141
2018-04-10Merge branch 'master' into blender2.8Sergey Sharybin
2018-04-10Depsgraph: Build relations for objects linked via pchan constraintsSergey Sharybin
This is similar to previous fix for missing ID nodes, just the original fix missed this part of change because it looked like it is already happening.
2018-02-22Merge branch 'master' into blender2.8Sergey Sharybin
2018-02-22Depsgraph: Replace LIB_TAG_DOIT with hash lookupSergey Sharybin
This allows us to: - Not mock around with tags stored in a global space, and not to iterate over all datablocks in the database to clear the tags. - Properly deal with datablocks which might not be in main database. While it sounds crazy, it might be handy when dealing with preview, or some partial scene updates, such as motion paths. - Avoids majority of places where depsgraph construction needed bmain. This is something what could help in blender2.8 branch. From tests with production file here did not see any measurable slowdown. Hopefully, there is no functional changes :)
2018-02-02Merge branch 'master' into blender2.8Sergey Sharybin
2018-02-02Fix missing group duplicated by hair in renderSergey Sharybin
Was happening when viewport visibility on the particle system is disabled. This became an issue after c45afcf, but the actual issue goes a bit deeper and the following aspects were involved: - Relations builder for particle system was ignoring particle system if it's visibility is not enabled for viewport. This is something what shouldn't have been done -- depsgraph relations are supposed to be the same no matter if it's viewport or render. - Relation builder was only dealing with duplication set to object, but was ignoring group duplication. This is technically a regression in 2.79a-RC as well, so would need to backport this fix to the branch after extra testing is done here in the studio.
2018-01-30Merge branch 'master' into blender2.8Sergey Sharybin
2018-01-29Fix T53614: New Depsgraph ignores NLA stripsJoshua Leung
The new depsgraph was only considering the active action when attaching relations from the AnimData component/operation to the properties that are affected by the animation data. As a result, only properties animated by the active action were working, while those animated by NLA strips did not change when playing back/scrubbing the timeline. This commit fixes this introducing a recursive method to properly visit all NLA strips, and calling DepsRelBuilder::build_animdata_curves_targets() on each of those strips.
2018-01-17Merge branch 'master' into blender2.8Sergey Sharybin
2018-01-17Depsgraph: Fix for fake dependency cycle being created for shape key driversSergey Sharybin
One thing i'm not fully happy with is all this is_same_* functions. Need to get rid of this by probably adding explicit entry/init/whatever nodes and maybe making node criteria aware of whether key will be used as "from" or as "to" node.
2018-01-16Merge branch 'master' into blender2.8Sergey Sharybin
2018-01-16Depsgraph: Fix fake cyclic dependencies for node tree driversSergey Sharybin
There was a fake cyclic dependency happening when node of node tree is driving another node of the same tree. This is related to T53794, but more fixes is needed here.
2018-01-03Merge branch 'master' into blender2.8Campbell Barton
2017-12-23Cleanup - Various style/typo fixesJoshua Leung