depgraph failure (and success) examples per ton's request #24012

Closed
opened 2010-09-27 03:19:29 +02:00 by bassam kurdali · 7 comments
Member

%%%From the meeting notes:

  • Animation system: the dependency graph still fails in cases where
    2.4x did work. Bassam Kurdali will provide simple .blend cases for bug
    tracker. Ton proposed to at least hardcode fix the current C code for
    all transformation related properties. Dependencies involving custom
    properties or other non-transform topics (like colors) will be moved
    to the todo as a 2.6 topic.

  • in an attempt to document this topic , I've made an example .blend file that has a different driving relationship in each layer. To test, grab the driving object (or drag the driving property) and move / change it with the mouse. hit esc to cancel: if the depgraph functions, the driven thing should jump back to the original position, if not, it will 'stick' to the new position, but grabing it an wiggling it forces it to jump back)

  • Please not that there are some working things that did not work in 2.4! for instance, custom properties driving bones. Please do not 'fix' this to not-work, as it was added most likely to make Sintel rigs work, and many riggers are now depending on this! so please, if it works, don't fix it ;)

  • second note: I didn't so far make a 2.4 blend file, it is quite possible that what this .blend shows is one to one compatibility with 2.4. (this is actually what I would expect, given that the depgraph code is mostly unchanged). I'll test in 2.4 and verbally post, though I will probably not provide a 2.4 blend file , since fixing 2.4 is not the target here :)

  • third note: I will add more simple .blend files to this bug, with simple setups like this one.%%%

%%%From the meeting notes: - Animation system: the dependency graph still fails in cases where 2.4x did work. Bassam Kurdali will provide simple .blend cases for bug tracker. Ton proposed to at least hardcode fix the current C code for all transformation related properties. Dependencies involving custom properties or other non-transform topics (like colors) will be moved to the todo as a 2.6 topic. - in an attempt to document this topic , I've made an example .blend file that has a different driving relationship in each layer. To test, grab the driving object (or drag the driving property) and move / change it with the mouse. hit esc to cancel: if the depgraph functions, the driven thing should jump back to the original position, if not, it will 'stick' to the new position, but grabing it an wiggling it forces it to jump back) - Please not that there are some working things that did not work in 2.4! for instance, custom properties driving bones. Please do not 'fix' this to not-work, as it was added most likely to make Sintel rigs work, and many riggers are now depending on this! so please, if it works, don't fix it ;) - second note: I didn't so far make a 2.4 blend file, it is quite possible that what this .blend shows is one to one compatibility with 2.4. (this is actually what I would expect, given that the depgraph code is mostly unchanged). I'll test in 2.4 and verbally post, though I will probably not provide a 2.4 blend file , since fixing 2.4 is not the target here :) - third note: I will add more simple .blend files to this bug, with simple setups like this one.%%%
Author
Member

Changed status to: 'Open'

Changed status to: 'Open'
Member

%%%Ok, I've checked the file, and I guess I should make some comments about some of these:

  • Layer 1: Due to evaluation order, it cannot work "as-is". However, it you change the bone to be in "local space" using animation-only result (not + constraints), it should work fine.
  • Layer 5: Same as above. Turn on "local space" and it should work.
  • Layer 6: Once again, due to evaluation order, it cannot work "as-is". However, in this case there is not workaround.

The problem with the evaluation order is as follows:

  • Animation data is evaluated on frame change once.
  • Per object (as sorted by depsgraph)
    • Drivers are then evaluated based on animation data results (or "final" transforms if they can be obtained, but that only applies to objects already evaluated, not dependent objects or the subdata in current object)
    • Animation+Driver stuff for object is then evaluated

This means that trying to use "final transforms" for the local object goes wrong.


PS. that test file would be great to have in our test-suite ;)%%%

%%%Ok, I've checked the file, and I guess I should make some comments about some of these: - Layer 1: Due to evaluation order, it cannot work "as-is". However, it you change the bone to be in "local space" using animation-only result (not + constraints), it should work fine. - Layer 5: Same as above. Turn on "local space" and it should work. - Layer 6: Once again, due to evaluation order, it cannot work "as-is". However, in this case there is not workaround. The problem with the evaluation order is as follows: - Animation data is evaluated on frame change once. - Per object (as sorted by depsgraph) - Drivers are then evaluated based on animation data results (or "final" transforms if they can be obtained, but that only applies to objects already evaluated, not dependent objects or the subdata in current object) - Animation+Driver stuff for object is then evaluated This means that trying to use "final transforms" for the local object goes wrong. --- PS. that test file would be great to have in our test-suite ;)%%%
Author
Member

%%% Thanks Joshua! confirmed, setting to local space makes layer 1 and 5 work.

I'm also pretty sure that this is *not* something that was possible in 2.49 that is now not possible in 2.5, hence not on ton's list to fix. I'm actually not sure that we're going to find bona-fide cases where depgraph success in 2.49 have turned to failure in 2.5, but I'll do some more tests.
I hope doing this is at all useful, in the very least, it provides some written documentation for those who do 'setup X' and wonder why it doesn't work.

Cheers
Bassam%%%

%%% Thanks Joshua! confirmed, setting to local space makes layer 1 and 5 work. ``` I'm also pretty sure that this is *not* something that was possible in 2.49 that is now not possible in 2.5, hence not on ton's list to fix. I'm actually not sure that we're going to find bona-fide cases where depgraph success in 2.49 have turned to failure in 2.5, but I'll do some more tests. I hope doing this is at all useful, in the very least, it provides some written documentation for those who do 'setup X' and wonder why it doesn't work. ``` Cheers Bassam%%%
Author
Member

%%% Thanks Joshua! confirmed, setting to local space makes layer 1 and 5 work.

I'm also pretty sure that this is *not* something that was possible in 2.49 that is now not possible in 2.5, hence not on ton's list to fix. I'm actually not sure that we're going to find bona-fide cases where depgraph success in 2.49 have turned to failure in 2.5, but I'll do some more tests.
I hope doing this is at all useful, in the very least, it provides some written documentation for those who do 'setup X' and wonder why it doesn't work.

Cheers
Bassam%%%

%%% Thanks Joshua! confirmed, setting to local space makes layer 1 and 5 work. ``` I'm also pretty sure that this is *not* something that was possible in 2.49 that is now not possible in 2.5, hence not on ton's list to fix. I'm actually not sure that we're going to find bona-fide cases where depgraph success in 2.49 have turned to failure in 2.5, but I'll do some more tests. I hope doing this is at all useful, in the very least, it provides some written documentation for those who do 'setup X' and wonder why it doesn't work. ``` Cheers Bassam%%%
Member

%%%Marked this in our todo wiki + added comment about depsgraph project.
http://wiki.blender.org/index.php/Dev:2.5/Source/Development/Todo/Tools#Animation

(close report :)%%%

%%%Marked this in our todo wiki + added comment about depsgraph project. http://wiki.blender.org/index.php/Dev:2.5/Source/Development/Todo/Tools#Animation (close report :)%%%
Member

Changed status from 'Open' to: 'Archived'

Changed status from 'Open' to: 'Archived'
Author
Member

%%%Thanks Ton.
At some point I'll post further examples here, that can help testing when the todo is revisited.%%%

%%%Thanks Ton. At some point I'll post further examples here, that can help testing when the todo is revisited.%%%
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#24012
No description provided.