Pre-rendered Water

pre-rendered water. Since roblox has no way to actually implement custom water shaders I took a step to make a somewhat performance friendly method by pre-rendered normal mapped water.

Still a heavy WIP

6 Likes

Looks a bit too much like Wackelpudding imo. For it to look more natural, you need it to have one continous motion rather than going back and forth.

But I do like the idea. I’ve done something like this before, just using the roblox water textures.


Best regards,
Pinker

3 Likes

its currently animated at 30fps a second so I gotta be very efficient

1 Like

Why not actually implement it using like editablemesh or as many others have done, skinned meshes?

i’ve managed to do this using editablemesh and it’s quite performant.
runs <1ms without per-vertex coloring and ~7ms with (uses frustum culling and other optimizations).
and this is completely dynamic gerstner waves, nothing is prerendered.


(still waiting for editablemesh surfaceapperance normalmap support for that extra surface detail)

y’know you can have a 30fps animation (prob lower tbh) without having only like 30 frames?

2 Likes

I won’t really need mesh deformed meshes for my game, and while It is animated at 30fps any higher would require additional rendering and baking which takes more time so in actually I’d have to render out 31 frames rather than the 16 I current do

1 Like

right but it would still have the same performance. and it also wouldn’t look like jelly moving back and forth rather than at least some continuous flow.

1 Like

what is that music on the video, overall, it’s good but it needs some improvement.
the system moves back and forth, and a swimming system.

This pre-rendered water looks good! Nice job on it! It looks like some gooey substance type of thing though. How long did this take to make? Will you release it to everyone to use?

This is awesome! But also, what’s the performance for this?
I imagine that to achieve this you probably had to upload a lot of normal maps and diffuse textures.

Downside of having them all loaded to be used like a GIF however is that every single texture can take up quite a bit of memory.

Say… if you were to animate water at 20 fps and the animation lasts 2 seconds.
That’s 40 frames.

And if all those frames are about 8 megabytes each (assuming 1024 pixel images), multiplied by 40 that is 320 megabytes for animated water.

If you had several variants of animated water, lava, slime, mud or something along those lines, the memory usage would quickly stack up.

I still like the way it looks though, it’s a pretty cool concept!
Makes me wish Roblox had more ways to make our own custom liquids.