Status: Discussing Designs
Big picture: Animators should be able to work in an interactive environment.
Non functional requirements:
- Animation playback in the viewport should play at constant framerate at 24fps.
- ? Motion curves should be update-able in realtime
- Playblast shouldn't take much more than regular viewport playback.
Milestone - Animation Playback/Render Performance
Design: T73429: Approach Faster Animation Playback
Engineer plan: Will be created per improvement.
- T75134: TaskScheduler Improvements
- T75120: DrawManager: Improved Task Scheduler
- T75208: Dependency Graph Evaluation Optimizations
- T75307: F-Curve Evaluation Optimizations
- T75207: Profile and optimize modifiers
- T75718: Motion Path Performance
- T75719: Optimize VSE Playback for Animators
- T75124: ActionEditor: Keyframes Drawing
- T75127: ActionEditor: Add callback function to ANIM_animdata_filter
These tasks are ordered in priority. The changes to the task scheduler has most technical impact so we should execute that task with highest priority so we have more time to fix any related issue. The Draw Manager changes rely on features that will be realized by the task scheduler. (@Jeroen Bakker (jbakker) will do the developments)
The rest (modifiers, action editor) can be executed afterwards. This is also the time to look at improving motion curves (if this is still needed). (@Jeroen Bakker (jbakker) will do the developments)
Milestone - GPU Subdivision
Design: To be completed
Engineer plan: To be completed
The final design for subdivision (part of the modifiers optimization) needs more collaboration between the GPU/Viewport team and @Sergey Sharybin (sergey) to come with an realistic approach.
Milestone - Animation Cache
Status: Needs Design and engineering plan to proceed
Time estimate:: To be determined after Design/EngineeringPlan
Design: T73481: Design: Animation Caching
Engineer plan: Not started
Animation Caching Mechanism: RAM/Disk cache mechanism that can cache the output of an animation. During the animation the cache is invalidated.
This cache can also be used for viewport playback and viewport animation rendering.