Re: How to manage scenes?
Posted: Fri Nov 03, 2023 7:21 am
Hi. It's been a long time (that post was on Oct 2021).
My current view on the topic is: it's simpler if you just think of what you're trying to do on screen, and only then worry about the abstractions you need for those things to happen.
Visually, what you want to do is to have elements moving around on screen, with some elements moving by themselves and other elements moving together in groups as if glued together.
Whatever abstraction you want to use, as long as you get that result, you're done.
The abstractions that animated UI screens would need, in this case, include things like:
- The ability to have "animation track" objects (with CSS-style easing curves, or keyframes), an object that associates 'time' with an 'interpolated result'.
- The ability to bind the animated interpolated result of animation tracks to object properties (like color channels, transparency, location, rotation, scale, as well as shader inputs).
- The ability to bind one transform object to another transform object (parenting).
- The ability to play the animation tracks at will, like when the user clicks a button.
My current view on the topic is: it's simpler if you just think of what you're trying to do on screen, and only then worry about the abstractions you need for those things to happen.
Visually, what you want to do is to have elements moving around on screen, with some elements moving by themselves and other elements moving together in groups as if glued together.
Whatever abstraction you want to use, as long as you get that result, you're done.
The abstractions that animated UI screens would need, in this case, include things like:
- The ability to have "animation track" objects (with CSS-style easing curves, or keyframes), an object that associates 'time' with an 'interpolated result'.
- The ability to bind the animated interpolated result of animation tracks to object properties (like color channels, transparency, location, rotation, scale, as well as shader inputs).
- The ability to bind one transform object to another transform object (parenting).
- The ability to play the animation tracks at will, like when the user clicks a button.