How to make a triangle wave


First of all, please bear in mind I’m not a technical artist and my knowledge of math pretty much dates back from school.

I’m trying to achieve a flipbook interpolation in the material editor. For instance with that texture :


Basically I play the flipbook, then I play another copy of the flipbook that I offset by half the flip time and I use a sin to blend between each. It gives this :


While that might be enough in 99% of the cases, it doesn’t really work with mine. Let me explain, I am making a vector displacement flipbook that plays ocean waves :


But because of the sin function, the interpolation between each step is not linear and that result in a slight stuttering when looked from up close. You can’t see it because of the gif framerate though
How could I make the sin wave a triangle wave like this?


I’m able to create such an effect using the time function as a base for masking, but then I can’t plug the time I use for the flipbook to sync the interpolation with the frame swithes…
Is there a simple math function that would make a sin function, triangle or at least close enough to it?


Google helps:
tri(t) = max(1-|t|,0)

I might be far off base on this one, but it looks like your half-flip algorithm is really doing sin(x) + sin(x +/- a quarter wave), which is sin(x) -/+ cos(x).

Try squaring the result of each flipbook. This will keep the result normalized, because sin(x)^2 + cos(x)^2 = 1, which might actually be the artifacts you’re noticing… not that it’s non-linear.

For anyone else looking for that (like me lately…) it’s:

arccosine ( cosine x )

If you divide it by Pi it will give you a triangle wave within the range of 0 and 1.