Water Material for BaseParts

Allow BaseParts to have the “Water” material, giving it the same animated texture, reflection, and animations as smooth terrain water. This would be incredibly useful and aesthetically appealing for large, open-world ocean games like mine, where I have to use a large flat part with the granite material and a CylinderMesh to simulate water.

I’ve tried using smooth terrain water on my game after the LoD update, but it was still impossible to load in (i have a really good PC), and putting a texture on the surface of the water is out of the question since textures don’t work with large meshes apparently.

The water material part could be affected by BrickColor, Reflection, CanCollide, Anchored and Transparency, as if it were a normal part, except without the lagginess of smooth terrain voxels.

32 Likes

Gotcha fam

1 Like

Textures don’t work with large meshes (or maybe it’s just CylinderMeshes, no clue)

Yeah but you can put 4 large parts together to make a decently sized water base

I would need to use way more than that (there are loads of other islands out of the rendering distance)

Oh now thats a big map lol, I thought your map was smaller

the problem with this is that it’s impossible to replicate all of the properties of the smooth terrain water without all of those other ‘problems’ (i’ve never had any preformance issues using smooth terrain?)

the water would still need all of the extra polygons to animate properly, not to mention how hard it would be to dynamically scale, position, rotate, etc an effect design to be locked to a very specific grid

you’re more or less asking for a ground-up rewrite of smooth terrain water to work with parts, which wouldn’t provide any kind of the preformance benefits you think it might

2 Likes

Is smooth terrain water not just an animated material with reflection and stuff? I don’t see how making smooth terrain water work with base parts would be any harder than making the leafy grass material work with parts as well. The water material doesn’t need extra polygons to work properly, which you can see if you set smooth terrain’s wavesize to 0

EDIT: and yes, smooth terrain water significantly affects performance if you use millions of voxels of it, which would be a lot more slow than just rendering it’s texture on top of a part with a mesh inside of it

What you should do is use Terrain water that follows the player in a given radius, and beyond that radius use parts. This should negate the performance issues you are talking about and allow you to provide a decent level of quality to the client.

I’ve tried that before and it didn’t work out, because it would have to cover the entire rendering distance of the client since there are high areas in my game, and every time it updated the voxels it caused a huge lag spike.

How big can your part and texture get before there’s issues? You could always draw a large baseplate made of smaller bases of ocean water and move them along every 60 studs or so to keep the texture from changing when recframing while not needing a bunch of baseplates for your entire world

of course it doesn’t need extra polygons to work when its set to 0, there is no wave deformation and all you’re seeing is the speclar/bump maps and the distortion, so the only upgrade from the old terrain water in this case would be the refraction effects the water has (which im sure has a lot of hard-coded values for optimizations due to the water being static. if you can barely run the (already extremely optimized) smooth terrain on the (presumably lower-end) hardware you have now, it would be even more expensive for this effect to work dynamically on a part, not to mention how many man-hours it would take recoding the refraction shader just to get it to run)

the request you’re making here just isn’t reasonable. the main problem with it is that your proposed fix to the problem, which i think is only a matter of you not being up to spec, would actually end up being more resource intensive than smooth-terrain-only water currently is. while i can’t provide any technical details, i do know that implementing this feature is going to be a lot more involved than you think and it’s not just a matter of copy-pasting some code and writing a couple of quick band-aid fixes. it’s anywhere from very impractical to pretty much impossible to just lift the smooth terrain water and plunk it straight into a part. theres no reason to put in all that effort into a ‘fix’ that would only make the problem worse.

edit: tone of this post was more rude than i originally intended sorry

1 Like

So, why use Granite for water in the original post? Foil seems like it would work much better for this use.

it is, but sadly you can’t see the foil texture at far distances

I have a really good computer, the problem is that I would need to make millions and millions of voxels of terrain, which is extremely more slow than if it were just a part. I get that smooth terrain is already really well optimized, and I can run an entire ocean of it it on 60 FPS, but I can never actually load into the game with it.

the trick is to load it locally on the client, after you’ve joined

pretty sure that’s filtering enabled only though.

1 Like