Hacker Newsnew | past | comments | ask | show | jobs | submit | ux's commentslogin

Hehe, thanks. The thing is, it could hardly have been prerecorded animations :D

I don't know if you tried before, but compressing noise is particularly hard, so 16 videos would have been quite too much of bandwidth. The total size of the shaders is something around 70kB (not minimized) for endless lossless videos, and since I had to write them anyway if I were doing records of them, it was really a no-brainer to embed them to be honest.


> What an impressive and thorough deep dive.

Thanks!

> Have any of you ever gotten lost tweaking fade functions to get that perfect wave-like look?

You cannot use anything for the fade function, because you likely want the derivative (and potentially the second derivative) to be 0. See https://gist.github.com/KdotJPG/417d62708c76d53972f006cb906f... for making different ones. I personally never tried anything else than the hermite and the quintic.


1. depends if you're in the physics main loop or not; in Godot for example the physics main loop is based on the project configuration, not correlated with the display (I could have expanded on that in the article)

2. You can know the targeted frame rate, you can also infer it by averaging the delta times at runtime (not reliable but maybe more accurate on a slow machine?)

3. In my graph, I did pick random delta between 15 and 120 fps IIRC; the point was to simulate what could roughly happen with random lag spikes


That's some very good recommendations you made here. I'm adding all 3 at the end, thank you.


Only the exp call happens in the processing loop. The ln is in the conversion function, it's not supposed to land in the code.


A frame time spike is covered by the overshooting point: it will basically land further down the curve, which means a point converging toward the B target.


In monoticity guaranteed even if the next frame is short?


As the delta time converges to 0, the lerp coefficient is going to converge to 0 as well, meaning it won't move. Said differently, if time stops the interpolation as well. You may enter into the realm of floating point accuracy issues at some point with low values, but I'm curious of what specific scenario you have in mind here?


OK, so that's confirmed Yes.

Thanks.


We've just released a new version of Nope Foundry yesterday: https://www.nope-foundry.org

You might want to have a look.

Video, Images, Rich Text and Animations are typically what we strive for. Check out maybe https://nopefoundry.github.io/nope.gl/usr/howto/renders.html and the other howtos.


Note that the history.md is going to be removed soon from the repository since it's been integrated as-is within the website (see the /about page)


One thing you can do as a user already today to reduce Python dynamism of classes is using __slots__: https://wiki.python.org/moin/UsingSlots. I enjoy this a lot, not only for the memory and access performance boost, but because it also makes the code more rigid (and thus more resilient to monkey code attacks).


Yes, already using __slots__ heavily.

Since Python 3.10 you can also do

     @dataclass(slots=True)
     Class MyClass:
         pass


This thread from @jonsneyers about VMAF choking is quite entertaining: https://twitter.com/jonsneyers/status/1573371624132419585


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: