Linear interpolation of "Delay (Linear)" in Gamma seems to have no effect

Hey there,

As quickly reported in the Element room, I can’t seem to find a significant effect of using the Delay (Linear) node in Gamma versus the regular Delay.

I’m trying to reproduce a set of utilities I had in Beta where I’d use delayed spreads to generate ramps to feed DynamicTextures. In Beta, the “Linear” mode of Delay allowed to achieve super-super smooth gradients this way.
In Gamma, I expected the Delay (Linear) version to allow the same effect, but it doesn’t seem to make any dfiference and leaves the same (expected) banding effect I have from the regular node (i.e regular Delay in Gamma; and Delay node in “Point” mode in Beta).

Attached are two patches that I tried as identical as possible between Beta and Gamma.
You can try with or without the Linear option in both and see that only in Beta do we see an effect.

The two side-by-side screenshots shows the difference with or with linear interpolation enabled, with Gamma being the top renderer (no difference between the two screenshots), and Beta on the bottom renderer.

Am I missing something, or are we spotting something funny with Delay (Linear) in Gamma?

Thank you for your help!
T

The patches:
debug-Delay-linear_20211231.v4p (15.0 KB)
debug-Delay-linear_20211231.vl (25.2 KB)

Not quite sure but I assume the value you used is below a “minimum delay” that seems to be present in gamma with a duration of about half a frame. Go below that and the Delay starts to behave strangely. Maybe I’ve gotten something completely wrong though…

debug-Delay-linear_20220101.v4p (8.7 KB)
debug-Delay-linear_20220101.vl (24.4 KB)

1 Like

Hey bjoern

Thanks for your hints and experiments

  • it is funny to see in your patches how both precise & steady the Differential measures are in Beta whatever the delay is set to, whereas in Gamma it is more imprecise and inconsistent here (even at lower rates than 120fps like you advise).
    Ex: in Beta, a delay of 0.02s gives a steady stream of 0.040 differentials (where it is supposed to give twice the period, so pitch perfect); while in gamma I get a stream of 0.0334 (6ms is already quite a bit!). If I approach 100fps+ rates in Gamma, values get really inconsistent from slice to slice and also across multiple attempts.

  • also, if you add back some MainLoops in both of your patches, I notice that in Beta, no matter what the FPS is set to, the measure keeps as sharp and steady (even at ridiculously slow FPS like 5) with the Linear Delay; which allows pretty accurate timing-based animations independantly from the actual framerate (like I was doing).
    While in Gamma, altering the FPS in the Mainloop definitely messes up the measures (sometimes in good, sometimes in bad; it’s not like a higher FPS will necesarily get more precise/consistent measures it seems; something to do with how close you are to a multiple of your Delay, probably?). But I can’t really see the Linear version help the way I expect (or understand) it should, like in Beta. Isn’t it supposed to have the same effect and compensate from the framerate variations?

All in all, I really miss the smoothness I could achieve in some effects using this simple trick.
Is it due to how Gamma is design, or is it something that could be fixed or improve in how Delay is coded, you think?

IIRC @gregsn is “the filter guy” :) Maybe he can weigh in on this.

1 Like

Thanks for the bug report!

Here is a hot fix:
debug-Delay-linear_hotfix.vl (61.0 KB)

Happy new year!!

2 Likes

Yaaay, good news it was indeed a bug!
And thanks a lot for the hotfix, that will definitely be helpful :)

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.