This is the official forum post of Ultimate Terrains.
Version 4.1
You’ll be glad to know I made a big update of the package that is available on the Asset Store. This is of course a free update for those who already bought the asset.
If you already have v2.2, please get a look at the Upgrade Guide.
Ultimate Terrains is a voxel terrain engine implementing adaptive Dual Contouring with very powerful features. It is able to generate and render infinite terrains with any kind of shape (cubical, smooth, mountains, hills, caves, overhangs, etc.), supports real-time editing and offers awesome distance of view. It has been made to be easily and deeply customizable.
Features:
All sources are included.
Fast, multithreaded, NO LAG.
Infinite terrains.
Giant distance of view. Visible part of a terrain is up to 8192x8192 while keeping an excellent voxel resolution (only 1x1x1 unit per voxel!).
Can render any kind of shape: mountains, hills, valleys, but also caves, holes, overhangs, cliffs, etc. Possibility to change the smoothness of some parts of the terrain (or the entire terrain) so you can have fully cubical areas and perfectly smooth relief at the same time.
Realtime editing. Dig/build your terrain as much as you want in real time.
NEW: realtime asynchronous editing to alter the terrain without FPS loss!
Procedural generation thanks to modules such as Perlin noise, Simplex, Ridged multifractal, heightmap, etc. You can write your own modules easily.
Biome system with full control over terrain generation.
Editor to edit the terrain directly within the scene view.
Powerful grass generator.
Trees system able to spawn trees at high distance.
I think it’s a little questionable doing this given you didn’t really address the issues brought up in the old thread but are still trying to sell it as new… yet unchanged…
The old forum thread has been closed because of someone posting personal data of a member of the team. I’ve been away for a long time, but I’m back to answer questions. I have never said that there was anything new…
I’ve had a quick look at uTerrains to figure out if it might be something I might want to use for a personal project.
My first test was to create a voxel terrain that’s just a slanted plane. The voxel function I use is simply:
float MyFunction (float x, float y, float z) {
return y - x * 0.15f;
}
This should create a perfectly flat but slightly tilted plane. But instead I found it creates a stepped terrain. The most detailed LOD level around the player is almost completely flat, but the LODs get increasingly stepped the less detailed. Each LOD level has twice as big steps as the previous:
Neither Marching Cubes nor Dual Contours terrain should give this result. Unlike cube-like terrains like in MineCraft, Marching Cubes and Dual Contours are able to perfectly represent a flat plane with any orientation, regardless of how large voxels are used. At least as far as I understand. So I’m wondering if it’s a bug? I tried to tweak some of the settings, but none of them seemed to affect this.
The issue is mostly visible for slightly slanted and highly regular surfaces like this. Surfaces that are close to 0 degrees slanted or 45 degrees slanted will look fine, and any noise will mask the issue, so it might be possible it’s been there all along but is not spotted in most regular terrains.
The dev wrote in the original thread that “Because of lack of time, no future version is currently planed.” So they might have very limited time for checking and replying here too…
@Amandin-E I am wondering if there is a way to support voxels less than 1 unit in size. When I put in a value such as 0.5, strange things happen. I want to be able to build a system that allows building with voxels in a fashion similar to what Everquest Landmark has. Any insight would be very much appreciated.
I am looking to create a bulldozer road creation simulation (ie: push dirt around, level (grade) surfaces, pile dirt up). My first impressions from playing with the demos is that the voxel size doesn’t really get small enough to handle the subtle terrain changes I would need. Could anyone with more experience in this engine tell me if this would be suitable for my goals or should I stick to manually adjusting heightmaps on stock terrain objects?
I have a quick question please. In creating shapes your doc’s reference DigCube and DigCubeEditor as examples. The one think i’m having a hard time understanding is how is the actual shape defined? where in the code does it call the shape?
Thanks for your time on this.
Anybody know how to set this up to be blocky? With multiple block types? Currently I am setting the Blockiness to 1 but it has quite a few slants in the terrain. I make multiple blocks types Stone/Dirt/Grass/Sand, etc but how do I make the dirt and stone spawn beneath the grass?
I do like this terrain engine though, it’s a great starter.
Today, after almost 3 years without active development and without support (I’m really sorry for that), I am pleased to announce the official come back of Ultimate Terrains!
First of all, I will spend time to give support. Three years ago I didn’t realize that this is the key to get happy customers. I was too much focused on the development of the asset itself and not enough on helping people to use it. This was a mistake.
By the way, Ultimate Terrains has only 3 stars on the Asset Store, and this is almost only because of the lack of support. This is perfectly understandable and justified, but I honestly think Ultimate Terrains is a great and powerful voxel terrain solution, so I will do all I can to reach 5 stars again.
Documentation is also something very important and I’m going to improve it too.
A new version for the come back!
You’ll be glad to know I made a big update of the package that has just been approved on the Asset Store. This is of course a free update for those who already bought the asset.
This update - version 2.0 - comes with a lot of improvements but also with breaking changes. Be warned, you won’t be able to load terrains made with prior versions.
Improvements:
Fully updated for Unity 2017.3
Overall performance improvements.
Bugs fix.
Better support of heightmaps (as 2D values generator).
Better editor tool to edit the terrain within Unity editor. It is simpler to use. It is also faster. In one word, it is more “usable”.
Better serialization of terrain operations.
New features:
Finite terrains. This might look useless as Ultimate Terrains handles infinite terrains at its heart, but actually most people just need a finite terrain, which allows to do some optimization and enable the possibility to bake terrain data.
New parameter “Vertical Size” allows to set a lower size of the terrain on the Y axis to save computation time.
Baking. You can now precompute finite terrains partially or completely. This is only suitable for small terrains as it takes a lot of memory (but reduces CPU usage). Typically, a baked terrain of 512x512 will take ~100MB of memory (RAM) for a partial bake and ~1GB for a full bake. A terrain of 1024x1024 would take ~500MB for a partial bake and ~4GB for a full bake! It is up to you to decide if it’s worth it or not for your use case.
This update also comes with new example scenes, new terrain textures and new generators.
As before, all the source code is included.
The next step is to provide support, improve documentation, make a video tutorial and create a beautiful demo scene.
I’m very excited and enthusiastic about Ultimate Terrains come back. I hope you too!
@runevision
I know I’m giving an answer far too late, but I was away during a long time, and now I’m back.
Your issue with your simple slanted plane terrain is probably because the voxel value doesn’t fit with higher LODs. You should simply divide the voxel value by the distance between two voxels of your highest LOD. For example, the distance between two voxels of LOD 6 is 2^6 = 64. So, your voxel function should look like this:
float MyFunction (float x, float y, float z) {
return (y - x * 0.15f) / 64f;
}
There is a bug when voxel size is different than 1, but I’ve fixed it yesterday so this will be fixed in the next update. You can set the size you want. (minimum is 0.01).