Survival game design help and max polycount for terrain

Hi!

I need to build 20 km x 20 km large terrain with lakes. Chunking and other things will be done by others. Building 1 piece from lidar maps and texturing is not such a issue. I need to know some concepts, how that is usually done for game dev, Unity.

  1. How many polygons, triangles should 1 base terrain (hills, plains, valleys, lakes) have without any vegetation or trees, objects placed,… What is the max upper limit for desktop?
  2. I usually texture terrains in Substance Painter, still have a lot to learn. Painter is limited to 8k. What should be the texture resolution limit for such terrain? 8k map for 1 terrain 20x20km terrain looks like nothing if I want to add details. How many chunks and what resolution for the textures? How it is usually done?
  3. I need to sculpt the bottom of the lakes. How is the water usually done, as separate plane mesh with water materials, shaders on it?

This depends far too much on individual system specifications to really help with. This gets more difficult to answer because this doesn’t account for things like target framerate, other parts of the rendering stack, game logic, etc, all of which will affect performance.

This depends on individual requirements. Generally speaking, I like to keep my terrain chunks as 2x2km, certainly not 20x20. Keeping it at a smaller size like that will also help with floating origin implementations as well since you can more easily partition what’s being updated.

Pretty much. I usually just slap a shader on the plane and then use a post processing volume for the underwater areas if the camera will ever be down there.

1 Like

Thank you @Murgilod for taking time and answering, made some things a lot clearer. How much does 8 - 16 million triangles for base mesh for such large scale, open world terrain sounds like?

if you could limit the high-resolution terrain like a stamp, that probably reduce the load if possible.

I’m using exported meshes, but not high-res.

if calc w 1x1meter resolution 20km is 400million vertices. so 10 m res would get you down to 4million. a 5m res to 16mill.
is this correct?

1 Like

I think it is correct. I got 10m spatial resolution per pixel res dem map (32 bit exr). 2k displacement map gives maximum details for 20x20km terrain. 2k displacement(4 mil poly) x 10m = 20km. I did quite some modelling for other things not games, so I dont understand well how it would fare in a game. 10m distance between 2 vertices sounds like a lot(too much) for terrain mesh? Is it possible with 5 meter and that is 16 million polygon mesh?

I would go that way, using scattered ground objects around the player.

depends much on the look of the game, how good it is, I guess


here this is quite low res (for a flight game 1kmx1km terrain tiles), which needs at least 9km to horizon
in fact 20x20km sounds reasonable in that aspect, that camera needs that distance
so if you divide up 10mill for 400 tiles, one tile is 25000
so can go up to 158. resoluion of 6.3 meters
those little objects is helicopter, a truck and a car for reference


it is 20 m resolution
9781596--1402767--terrain1kmB.jpg

1 Like

Here’s the thing, I wouldn’t use a mesh for this, I’d just use the standard Unity heightmap-based terrain. Aside from it having built-in LOD, once you apply a custom shader to it instead of using the default, you can get some decent mileage out of it.

1 Like

Thank you both. I uploaded some images from 4 mil polygons mesh, 10m resolution with about 8k reference sat map for color and human sized dummy object. It doesn’t look so bad.

I agree using height map would be great, but I am used to 3ds Max and I can carve the lakes depth there way faster.

If I import height map in Unity and then carve the lakes depth, topo I don’t know some things are far from finished and polished. Then I would need to bake carved changes(lakes topo) to height map to make it more permanent if things will change later on. I don’t know I still have a lot to learn.

Create a material in 3ds that renders a gradient from black to white. You’ll probably have to tweak some parameters, but make it so that it renders black for the absolute lowest spots and white for the highest. Render this to an EXR file and use a utility somewhere to convert that to a RAW file.

The way you’re doing things is going to dramatically overcomplicate things like collision handling and LOD and bog down performance.

What about the background. Are skyboxes used mostly? Or is it fine to make another larger encapsulating terrain with lots of mountains, which will only be seen at distance and not accessed.

If they’re going to be close enough for visible parallax, I’d probably make some sort of hacked together 3d skybox, otherwise I’d just use a traditional one.

2 Likes