Several updates shipped for smooth terrain yesterday on desktop. Specifically:
We switched to a different texture representation that allows us to reduce the memory use a bit but more importantly fixes shimmering and weird colors at grazing angles.
Some optimizations were made for raycasts and collision detection
In Studio terrain undo history is now compressed which significantly reduces the memory requirements
Water reflection clipping on the sides of the screen has been significantly reduced
Short white single-pixel lines on some voxels should no longer appear when MSAA is on
Experimental LOD option is available in Studio
To use the LOD, go to Studio Rendering settings and enable ExperimentalTerrainLOD flag. It only affects Studio. The geometry far away from the camera/character will be replaced with a simplified version.
I encourage those of you who use terrain or water to test out LOD - I’m gathering feedback to make sure I fix as many outstanding issues as I can. You should try to play your game with this setting enabled in Studio, check what the performance is (the expectation is that it’s comparable on small levels and drastically better on big levels), check for any visual issues that you’d like to be fixed and post your feedback here.
If you have questions or problems with some other changes mentioned here except or in addition to LOD, feel free to post them here as well.
Thanks! This was my biggest annoyance with water reflections.
The only problem I have is that it’s very noticeable when you’re walking toward some low-detail terrain and the high-detail pops in. Also as a developer I would like to have the option to force significant landmarks to always be high detail.
This is pretty much impossible. The current LOD distances are a bit aggressive in some cases; I’m planning to extend them which may make this better.
I love the usage of decal trees around the far side. You can barely notice but it looks and runs so well. Would that be possible with the mountains too perhaps? Maybe even layering parts of them so it still maintained a type of “parallax scrolling”?
I’m getting some very strange mini-voxel terrain in seemingly random spots. As you zoom out, these spots get bigger and are easier to find, but when zooming in they get smaller until they are as small as in pic.
The part next to the small terrain is 1x1x1.
The part is called MiniVoxelPart, and is at (-895.5, -30.5, -2528.5). It seems to also show up without LOD. Apparently its just a voxel with a super low occupancy value, it must have been there before, though it was much easier to find with the LOD. Guess that’s a bonus of this new feature
While I’m at it though:
Seams between different detail levels are very rough in some places, especially where terrain is completely separated.
Smooth hills have a tendency to become very spiky at lower detail levels. I imagine you can adjust this based on the “hardness” of the materials? (stone looks harder than grass and so on)
I only have a flat plane of water in my place. Before testing in studio it would always run at like 15 FPS (because 2-3 windows rendering the same thing open…). Now it runs much smoother. And a flat plane obviously doesnt suffer from graphical artifacts…
This was really nice to have… I was able to import 18.14M voxels of terrain and have no lag (after generating the map)
Sadly the height wasn’t imported properly, but till… Being able to have a map thats made from terrain and 24.0000001k studs from corner to corner is amazing.
You may need to raise the land mass.
The resolution of the terrain gets larger and larger the further away from the Camera’s focus it is, so information about the surrounding areas becomes lossy, and the height of the water essentially starts to round upwards.
I feel like this may actually be the problem of the water layer being too thin (1-voxel?) in which case there’s not enough information to preserve the volume and the height starts to wobble - I have seen this before in my tests.
I tweaked the LOD logic a bit and I’m now getting this (on the previous version of your place with an actual mountain ):
So not as beautiful as your original place but a much better quality compromise. I will spend some more time focusing on LOD selection tweaking after I get the seams out of the way - I’m hoping to make it quality level dependent so that on low quality distant geometry does not look as good but does not cost much.
Hmm, I’ve successfully ran levels up to 500M voxels in Studio. Play Solo does not quite work at that scale but it works with somewhat more modest sizes.
The map you’ve attached actually seems to have 111M voxels? (judging by print(workspace.Terrain:CountCells()/1e6))