This site is currently in read-only mode during migration to a new platform.
You cannot post questions, answers or comments, as they would be lost during the migration otherwise.
0 votes

I'm making a 3D game with land generated from a heightmap. I've made a water plane using shaders to make it look semi realistic (following a tutorial) and added it to my scene. My question is how do I make it appear to extend into the horizon? Do I need to just scale it really large and increase my view distance? It currently looks like the screenshot below where there's a gap between where the plane (or my draw distance) ends and where the horizon line begins.


A minor side question too if I may, is it correct to have a water plane the same size as my terrain model? It seems wasted that there's a tonne of animating water under the ground or will the game engine not have an issue with it? My feeling was to use my height map to make a polygon that fits the troughs instead of one giant plane.

in Engine by (103 points)

1 Answer

0 votes
Best answer

So turns out scaling the water plane really big and extending the camera's far distance gave the effect I was looking for. Seems to run fine too so far!

by (103 points)

I strongly advise you to split your plane into multiple quads. A graphic card draws a mesh triangle by triangle, and if a triangle is visible, it will be drawn entirely, event if most of it is out of the screen, since it would be too costly to check for every pixel if it is on the screen. As a general rule, we should avoid too large triangles, especially when using expensive shaders.

Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read Frequently asked questions and How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to [email protected] with your username.