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-01-22Fix T60686: Renaming an animated bone breaks its animationSergey Sharybin
After rename is done we need to make sure all copies of corresponding datablocks are updated in all dependency graphs: otherwise bone will have a new name, but animation will still be using an old one.
2019-01-14NLA: implement a new blending mode that intelligently combines actions.Alexander Gavrilov
The existing Add and Multiply blending modes have limited usability, because the appropriate operation for meaningfully combining values depends on the channel. This adds a new mode that chooses the operation automatically based on property settings: - Axis+Angle channels are summed, effectively averaging the axis, but adding up the angle. Default is forced to 0. - Quaternion channels use quaternion multiplication: result = prev * value ^ influence - Scale-like multiplicative channels use multiplication: result = prev * (value / default) ^ influence - Other channels use addition: result = prev + (value - default) * influence Inclusion of default in the computation ensures that combining keyframed default values of properties keeps the default state, even if the default isn't 0 or 1. Strips with this mode can be keyframed normally in Tweak mode, except that for quaternion rotation keyframing always inserts all 4 channels, and the channel value sliders on the left side of Graph/Action editors won't insert keys without Auto Key. Quaternion keys are also automatically normalized. Differential Revision: https://developer.blender.org/D4190
2019-01-14Keyframing: refactor insertion code to allow property-global NLA tweaks.Alexander Gavrilov
Supporting a strip blending type that treats quaternions as a unit also means being able to adjust all sub-channels as a unit when inserting keyframes. This requires refactoring keyframe insertion code to retrieve array property values for all channels at once, before iterating over the indices being inserted.
2019-01-12NLA: ignore time range when evaluating a raw action.Alexander Gavrilov
When editing an action without a strip, or tweaking a strip without time mapping enabled or supported, the extents of the virtual strip can't be controlled and are purely derived from keys in the action. Thus, cutting off evaluation of the action at these arbitrary points gets in the way of observing the natural extrapolation of the F-Curves and thus appears to be a mis-feature. With this change non-mapped actions are evaluated with infinite range, exactly like they are handled without NLA, unless extend mode is set to Nothing.
2019-01-08Fix T59984: Drivers don't update values in UI or show proper errorsJoshua Leung
We now perform COW -> original data flushing for all the debug values + error status flags on Drivers/DriverVariables/DriverTargets, as these are only set when errors are encountered when evaluating drivers.
2019-01-06Cleanup: add trailing commas to structsCampbell Barton
Needed for clang formatting to workaround bug/limit, see: T53211
2019-01-06Cleanup: style, line lengthCampbell Barton
2019-01-05Cleanup: avoid function call for pointer compareCampbell Barton
2019-01-05NLA: rewrite evaluation channel data structures.Alexander Gavrilov
Implementing a new intelligent mixing mode that combines quaternions via multiplication requires rewriting the NLA code to recombine array properties from separate scalar channels during evaluation. In addition, stable evaluation of NLA stack requires that any channel that is touched by any of the actions in the stack should always be set to a definite value by evaluation, even if no strip affects it at this point of the timeline. The obvious choice for the fallback is the default value of the property. To make scanning all actions reasonably efficient, mapping paths to channels should be done using hash tables. Differential Revision: https://developer.blender.org/D4120
2018-12-14NLA: insert keyframes correctly for strips with non-Replace mode.Alexander Gavrilov
NLA strips support using the keyframe values in a variety of ways: adding, subtracting, multiplying, linearly mixing with the result of strips located below in the stack. This is intended for layering tweaks on top of a base animation. However, when inserting keyframes into such strips, it simply inserts the final value of the property, irrespective of these settings. This in fact makes the feature nearly useless. To fix this it is necessary to evaluate the NLA stack below the edited strip and correctly compute the raw key that would produce the intended final value, according to the mode and influence. Differential Revision: https://developer.blender.org/D3927
2018-12-12Merge branch 'master' into blender2.8Campbell Barton
2018-12-12Cleanup: use colon separator after parameterCampbell Barton
Helps separate variable names from descriptive text. Was already used in some parts of the code, double space and dashes were used elsewhere.
2018-11-30Merge branch 'master' into blender2.8Campbell Barton
2018-11-30Cleanup: name macros w/ matching BEGIN/ENDCampbell Barton
2018-11-23Return truth when animation fix changed animationSergey Sharybin
This can be used to inform higher level modules that animation is changed and that dependency graph likely requires relations update now.
2018-11-14Merge branch 'master' into blender2.8Campbell Barton
2018-11-14Cleanup: comment block tabsCampbell Barton
2018-11-12Remove AnimMapper: it has been left unimplemented for almost ten years.Alexander Gavrilov
It was supposed to be a feature for substituting RNA paths on the fly, but has never been implemented, apart from a couple of structure definitions and passing around some always-NULL pointers. Now it gets in the way of refactoring NLA evaluation to use GHash for efficiency.
2018-11-07Cleanup: remove some useless BKE_library and BKE_main includes.Bastien Montagne
Makes it simpler to make some changes... Also fix order of some includes (use alphabetical please).
2018-11-07Fix dpesgraph wrongly refcounting NLA strip actions when duplicating IDs.Bastien Montagne
NLA strips are users of their action, so we need to pass along ID management flags. This commit also cleans up a bit things by passing along ID_CREATE/COPY flags instead of dummy booleans...
2018-11-07NLA: use animsys_write_orig_anim_rna when applying NLA stack results.Alexander Gavrilov
Without this keyframing on top of an NLA stack is quite weirdly broken.
2018-10-29Fix unneeded/unwanted user counter when freeing CoW NLASergey Sharybin
2018-10-29Fix T57360: Crash when Play Animation in this sceneSergey Sharybin
Was caused by a code which was putting animation value back to original datablock. The tricky part here is that we don't always know ID, so can not put those values. Would be nice to have a solution for this, but for until then we should be relatively good.
2018-10-17Cleanup: remove some #if 0 blocksJacques Lucke
Reviewers: brecht, campbellbarton Differential Revision: https://developer.blender.org/D3802
2018-07-31Fix crash opening .blend files with palettes.Brecht Van Lommel
Palettes were incorrectly set as having animation data.
2018-07-31New Grease Pencil object for 2D animationAntonioya
This commit merge the full development done in greasepencil-object branch and include mainly the following features. - New grease pencil object. - New drawing engine. - New grease pencil modes Draw/Sculpt/Edit and Weight Paint. - New brushes for grease pencil. - New modifiers for grease pencil. - New shaders FX. - New material system (replace old palettes and colors). - Split of annotations (old grease pencil) and new grease pencil object. - UI adapted to blender 2.8. You can get more info here: https://code.blender.org/2017/12/drawing-2d-animation-in-blender-2-8/ https://code.blender.org/2018/07/grease-pencil-status-update/ This is the result of nearly two years of development and I want thanks firstly the other members of the grease pencil team: Daniel M. Lara, Matias Mendiola and Joshua Leung for their support, ideas and to keep working in the project all the time, without them this project had been impossible. Also, I want thanks other Blender developers for their help, advices and to be there always to help me, and specially to Clément Foucault, Dalai Felinto, Pablo Vázquez and Campbell Barton.
2018-06-17Merge branch 'master' into blender2.8Campbell Barton
2018-06-17Cleanup: trailing space for blenkernelCampbell Barton
2018-06-12Merge branch 'master' into blender2.8Bastien Montagne
Conflicts: source/blender/editors/object/object_add.c source/blender/editors/object/object_relations.c
2018-06-12Cleanup: remove some G.main from ED's animsys.Bastien Montagne
The easy ones - there some much, much trickier to tackle there...
2018-06-12Cleanup: remove some G.main from BKE area.Bastien Montagne
2018-06-11Drivers: ensure Python expressions are cached with copy-on-write.Brecht Van Lommel
Store the compiled expressions on the original driver. Ref T55442.
2018-06-01Merge branch 'master' into blender2.8Campbell Barton
2018-06-01Cleanup: trailing whitespace (comment blocks)Campbell Barton
Strip unindented comment blocks - mainly headers to avoid conflicts.
2018-06-01Cleanup: whitespaceCampbell Barton
2018-05-31Depsgraph: Remove unused flagsSergey Sharybin
They are no longer needed after the active depsgraph concept is here.
2018-05-31Depsgraph: Copy evaluated data to original datablockSergey Sharybin
Only do it for active dependency graph. Currently covers animation, drivers, object and pose channel matricies.
2018-05-31Animation: Pass dependency graph to animation systemSergey Sharybin
This way we allow animation system to make decisions based on which context dependency graph is coming from, and whether it belongs to an active edit window or not.
2018-05-31Cleanup: Reduce indentation levelSergey Sharybin
2018-05-31Depsgraph: optimization of driver evaluation with many drivers.Brecht Van Lommel
2018-05-15Fix Cycles motion blur not working with CoW disabled.Brecht Van Lommel
Not so important but convenient for testing, and makes the Cycles tests pass again for now.
2018-05-02Depsgraph: Allow per-depsgraph debug flagsSergey Sharybin
Currently only affects EVALUATION debug messages, rest are to be supported on per-depsgraph level.
2018-05-01Animation: Don't user-copunter copy-on-written action blockSergey Sharybin
2018-04-28Cleanup: style, duplicate includesCampbell Barton
2018-04-26Animation: Make it possible to keyframe to with copy-on-writeSergey Sharybin
The issue was that every object tweak was doing a full copy of original datablock onto evaluated version, and was updating animation. This made it impossible to tweak properties which has keyframes. Proposed solution is to: - Always apply animation on frame change, and when object is explicitly tagged for animation update. This will store original DNA value of animated property in the f-curve. - When applying animation in other cases, we check original DNA value stored in f-curve with the actual original DNA property. If they differ, it means user started to tweak animated property, and we should skip animation. If the value is the same, we apply animation. This is just a first step towards proper final implementation, but seems to be the direction we want to take.
2018-04-26Animation: Split f-curve reading and writing functionsSergey Sharybin
This way we can re-use reading part.
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-16Depsgraph: remove EvaluationContext, pass Depsgraph instead.Brecht Van Lommel
The depsgraph was always created within a fixed evaluation context. Passing both risks the depsgraph and evaluation context not matching, and it complicates the Python API where we'd have to expose both which is not so easy to understand. This also removes the global evaluation context in main, which assumed there to be a single active scene and view layer. Differential Revision: https://developer.blender.org/D3152
2018-03-16Merge branch 'master' into blender2.8Sergey Sharybin
2018-03-16Depsgraph: Move evaluation debug prints to depsgraphSergey Sharybin
This way we can easily control format and keep it consistent. And also possibly do other trickery, like coloring addresses!