Seamless, endless, and performant custom water using skinned meshes and PBR

That’s absolutely amazing! It’s a real shame that it’s not open source, but oh well. Looks amazing anyway!

2 Likes

This is a really cool concept for what’s gonna be a really cool game! I really like the effect that the mesh deformation gives. Really good!

Keep up the good work! :slight_smile:

1 Like

Could it be possible to get a tutorial for how you made this endless? Ive been struggling with my own. Ive rewrote streaming enabled, and redid my code countless times but keep falling upon the same issue. When loading in a bone plane, the render label (in microprofiler) jumps and causes the other planes not to update for a split second causing issues.
(Ive made it so that a queue is made for all the waves that need to be loaded into the workspace (pulled from replicated storage). And I one at a time in over each frame (ive even given buffer room)

Anyway to circumvent the long render times?

1 Like

Wow that’s amazing! I’m just wondering… how did you make the mesh deformation of the waves looks so smooth?? I am currently working on a similar system and these are the best results I could produce:

As you can see, mine is very choppy and has very hard/sharp edges. I really wish I knew how to get my waves that smooth. Is it the perfection of wave settings? How the waves are calculated themselves? A visual trick with the texture? I’m really curious.

1 Like

Use LOD & a chunk system so that the waves closer to you have a higher bone count then the ones further away. Although this can create clipping at the chunk border.

The way I’ve preferred to use is the further away from the camera, the less the amount the waves move so that eventually the just level out to be flat in the distance, sorta like in graph below but over a shorter range.

@SinisterSlayer45 Could I get that ocean from you :joy:?

You can try to find a common physics simulation method, or you can change the material on higher parts of water.

Im currently trying to make the ship bouyancy system but then i realized that those mesh cant be raycasted tho, is there a other way to make the bouyancy?

you can check a bunch of points using octrees

Also how are you able to generate bones to make it endless? Does this use editable mesh or bones?

yea it uses editable meshes and bones

by gettting the player’s character position and generate an small ocean part at that position also do a math to make sure its not collide to other ocean parts

What i meant is how to you automatically connect the bones with code and generate them or is the plane already made.

1 Like

sorry for late replying, its made by generate planes with code and get the current bone’s position and send it to the other which is being close to the current’s bone. i dont know how to explain it clearly but i have the place that had what you want, ill give you it if you want

sure i would like to see it

alr here’s the place :
lol.rbxl (1.1 MB)
it’s pretty laggy

This is great thank you.
Also im not getting any lag on my side.

1 Like

no problem tho , also the lag happens when you equipping tools or anything linked to player, i tried to fix it but nothing changed

how do i make a custom boat?