Git Product home page Git Product logo

Comments (5)

kaixiong avatar kaixiong commented on June 16, 2024

@hartwork I'm skeptical of how useful that is. I would prefer to pass a 'global clock' time to all actors in a given pipeline.

From my experience, most state update code do not measure time deltas and extrapolate from there because that only works well if you have well parameterised state equations. This is not always easy or possible, so most state updates are designed to work in fixed intervals, frame by frame.

from libvisual.

hartwork avatar hartwork commented on June 16, 2024

@hartwork I'm skeptical of how useful that is.

At least two actors are doing something like that, I can make a list, if you like.

I would prefer to pass a 'global clock' time to all actors in a given pipeline.

Might be nice in addition but maybe that's something we can provided via a call to an API function rather than passing every time. Also, just a clock would still need boilerplate work to figure one when you last "looked at the clock".

From my experience, most state update code do not measure time deltas and extrapolate from there because that only works well if you have well parameterised state equations. This is not always easy or possible, so most state updates are designed to work in fixed intervals, frame by frame.

We can quantify these two buckets and see if "most" is that bucket or the other, both currently and after adjustment (remembering lv_gltest).

from libvisual.

kaixiong avatar kaixiong commented on June 16, 2024

@hartwork, yes it would be good to quantify. I certainly would be quite surprised to learn otherwise because updating state based on a variable interval is always more work than a fixed interval.

It would also be good to look at what visualisations outside of LV do.

I don't find calling an API function just to retrieve time delta ergonomic. Come to think of it, another possibility is to pass the last frame time and current frame time together.

from libvisual.

hartwork avatar hartwork commented on June 16, 2024

@hartwork, yes it would be good to quantify. I certainly would be quite surprised to learn otherwise because updating state based on a variable interval is always more work than a fixed interval.

@kaixiong I'm not sure I follow. Anything that rotates and is not bound to move in pixel steps is a good example of something that will work better (as in perceived constant speed) with time delta.
would also be good to look at what visualisations outside of LV do.

Please go ahead, but I think we already know the answer to that, just not the quantity. I'm not sure if counting who does it "wrong" will help us here.

I don't find calling an API function just to retrieve time delta ergonomic.

We were talking about access to a clock not access to time delta with regard to the API function. Big difference to me.

Come to think of it, another possibility is to pass the last frame time and current frame time together.

That's good enough for me, as the delta can be extracted trivially.
Bonus points if we can ensure that it's from a monotonic clock.

from libvisual.

kaixiong avatar kaixiong commented on June 16, 2024

@kaixiong I'm not sure I follow. Anything that rotates and is not bound to move in pixel steps is a good example of something that will work better (as in perceived constant speed) with time delta. would also be good to look at what visualisations outside of LV do.

I've brought this up elsewhere before - transformations like those you see in lv_gltest are very parameterisable with time - the state equations are relatively trivial to write down. Outside of that, it is not always easy or practical. For example, what do you do with actors that perform image filters e.g. convolutional effects like blurring the previous output?

Please go ahead, but I think we already know the answer to that, just not the quantity. I'm not sure if counting who does it "wrong" will help us here.

It's nothing to do with correctness per se but how expressible changes are in terms of a variable time delta. Which leads back to the question of the split among visualisations in their chosen approaches.

All else equal, fixed time deltas are just simpler and work with just about anything. Definitely if you can work with a variable time delta and have smooth transitions, it is best to do that.

We were talking about access to a clock not access to time delta with regard to the API function. Big difference to me.

I wasn't thinking of time deltas in particular - I just do not find 'callouts' as ergonomic as receiving the parameters directly. It's also a bit more work when we have complex pipelines involving multiple actors and morphs that need synchronisation. In such scenarios, we have to work with a pipeline-wide clock and the fact that some actors will be called later than others even though they're technically rendering for the same 'frame time' and composited together.

Come to think of it, another possibility is to pass the last frame time and current frame time together.

That's good enough for me, as the delta can be extracted trivially. Bonus points if we can ensure that it's from a monotonic clock.

Cool, this sounds like the way forward.

from libvisual.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.