Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

[OLD-FORUM-THREAD] Ultimate Terrains 1.0

Discussion in 'Assets and Asset Store' started by Amandin-E, Feb 28, 2015.

Thread Status:
Not open for further replies.
  1. Amandin-E

    Amandin-E

    Joined:
    Feb 4, 2015
    Posts:
    451
    OLD - DEPRECATED FORUM THREAD.
    The new forum thread is here: https://forum.unity.com/threads/uterrains-ultimate-terrains-voxel-terrain-engine.383959/

    -------------------------------------------------------------------------------------

    Hi everybody,

    I'm very glad to announce the release of Ultimate Terrains (aka uTerrains) after more than one year of development. This is the result of hundreds hours of hard work. I put all my heart into this to make it as good as possible and always put myself in future users shoes to answer their needs. I hope you will enjoy it!

    Get it here!
    Try it!
    More info & doc


    Ultimate Terrains is a brand new 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:
    • Fast, optimized, multithreaded, with low memory footprint.
    • 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.
    • 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 & details objects system
    • Triplanar shaders (diffuse, specular, bumped, bumped specular)
    • Compatible with RTP3
    • Save & load terrain dynamically
    • JSON serialization for network synchronization

    Screenshots:







    I hope you will enjoy Ultimate Terrains. If you have any question don't hesitate to ask it! :)
    Customers can get some support from uTerrains website.
     
    Last edited by a moderator: May 21, 2018
    Gozdek, Veizour, jason-fisher and 6 others like this.
  2. Casto

    Casto

    Joined:
    Aug 14, 2013
    Posts:
    44
    This is definitely impressive.
    You already have one future buyer ;)
     
  3. Frpmta

    Frpmta

    Joined:
    Nov 30, 2013
    Posts:
    479
    What happens if I increase the view distance to 16384x16384?
     
  4. SecretStudio

    SecretStudio

    Joined:
    Feb 5, 2014
    Posts:
    50
    That swishing sound you hear is me throwing money at the screen ;-)
     
  5. Amandin-E

    Amandin-E

    Joined:
    Feb 4, 2015
    Posts:
    451
    Thank you very much Casto!

    For now, 8192 is a maximum. I could easily increase it to 16384 if some people need it, but I thought 8192 was enough for most situations while keeping good performance.

    ahahah! You made me laugh :D
    Well, thank you very much!
     
  6. Bharata

    Bharata

    Joined:
    Feb 5, 2015
    Posts:
    4
    You say the player is in the center of the terrain but what happens when he moves in the same direction for a while?
     
  7. clerok

    clerok

    Joined:
    Feb 5, 2015
    Posts:
    7
    Can't wait to try it!! I wanted something like this so much! Other voxel engines on the Asset Store make very small terrains.
     
  8. Amandin-E

    Amandin-E

    Joined:
    Feb 4, 2015
    Posts:
    451
    Chunks that are far away from the player are moved in front of the player, so even if the player is moving he remains in the center of the terrain.

    Thanks! Yes this is a strength of uTerrains to have big draw distance. I hope it will suit all your needs!
     
  9. Casto

    Casto

    Joined:
    Aug 14, 2013
    Posts:
    44
    Is it possible to edit the terrain in other ways than sphere or cube?
     
  10. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,314
    do we have control over the terrain polycount?
     
  11. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Looks awesome, but what that buggy texture stretching you have there on the cubes?
     
  12. Amandin-E

    Amandin-E

    Joined:
    Feb 4, 2015
    Posts:
    451
    Yes, you can even create your own type of operation by implementing IOperation interface. So basically you do whatever you want.

    Indirectly, yes, because you can change the maximum acceptable geometric error. But increasing it too much could introduce some artifacts and even some holes in the terrain between chunks, because LOD cracks are handled via properly connected seams. I'm planing to add an option (in a future update) to use skirts instead so it will reduce polycount (but won't look as good as seams especially if you set a high acceptable geometric error).

    Thanks! Yes I know, problem comes from the shader. I will have to improve it but I'm not a shader expert, I was already quite happy to manage to make a triplanar shader :)
    I will ask for help on the shader forum. BTW, this problem doesn't occur when RTP3 is used.
    EDIT: actually it does occur with RTP3 too. There might be an issue with normals. I'm gonna work on this.
     
  13. Bharata

    Bharata

    Joined:
    Feb 5, 2015
    Posts:
    4
    Awesome!

    What's the memory usage for a 8kx8k terrain? From my experience with other voxel engines I expect it to be huge. Most of the time it's around 700MB for very small terrains (less than 1000x1000)..
     
  14. Amandin-E

    Amandin-E

    Joined:
    Feb 4, 2015
    Posts:
    451
    Ultimate Terrains has been developed with a lot of care regarding performance and memory footprint. As you mentioned, a voxel engine always needs a lot of memory, but uTerrains keeps it at a low level comparatively to most other engines.
    For a 8192x8192 terrain like the ones in the demos, it uses less than 300MB of memory (to be more specific, in the full demo scene it takes about 280MB).
     
  15. AlanGreyjoy

    AlanGreyjoy

    Joined:
    Jul 25, 2014
    Posts:
    192
    So... you're doing a VoxelFarm for unity...

    Amazing. I'll toss my money at your for this :)
     
  16. Amandin-E

    Amandin-E

    Joined:
    Feb 4, 2015
    Posts:
    451
    Thank you for the compliment, VoxelFarm is more advanced than uTerrains, which is normal as it exists for years, but my goal now is to improve uTerrains continuously so it will be better and better. I think the core of uTerrains engine is good enough to make it a true competitor in the future.

    Thank you very much :D
     
  17. ariusdb222

    ariusdb222

    Joined:
    Jan 25, 2015
    Posts:
    88
    Any idea for a release date?
     
  18. Amandin-E

    Amandin-E

    Joined:
    Feb 4, 2015
    Posts:
    451
    @ariusdb222
    It is pending for review on the Asset Store. I guess it should be release in a week or two.
     
  19. mk1978

    mk1978

    Joined:
    Dec 27, 2009
    Posts:
    276
    Newbie question. Is it possible to create a uTerrain shape based on some other geometry? For example I have been using OBJ to Terrain- script for converting obj terrain models into Unity terrains. Would this kind of workflow be possible with uTerrain?
     
  20. Amandin-E

    Amandin-E

    Joined:
    Feb 4, 2015
    Posts:
    451
    @mk1978
    I haven't made a mesh to voxel converter yet. But your particular case, you could get the heightmap of your terrain and use it with the heightmap module of uTerrains.
     
  21. DDDiscover

    DDDiscover

    Joined:
    Dec 10, 2013
    Posts:
    17
    This looks very interesting.

    Maybe I can use it for a new race type game.
    I have some questions:

    If I need to model an island of 4 km x 4 km, what is the size of the finest details? Is it 0.5 meter?
    Can I make this smaller? I want destructible parts that result in smaller holes.

    How does it integrate with Unity 5? Especially the new light system?

    Is it fully integrated with the Unity editor? So that I can change details of the terrain at any time?

    How many texture layers are supported?

    Can it use the textures from Substance (procedural texture generation).

    Can I define the location of mountains etc using some template or mask file?

    Is it handled in Unity as a mesh? Can I use physical based materials on it?
     
  22. Amandin-E

    Amandin-E

    Joined:
    Feb 4, 2015
    Posts:
    451
    @DDDiscover
    If you want your entire island to be visible at any time, then yes the finest details would be 0.5 meter. But if you don't mind some far away areas of your island aren't visible, you could even set finer details. It's just that all your island won't be visible at the same time.
    However, I have to warn you: this kind of terrains takes time to be computed and updated in real-time while the player is moving around. This means that it might not be appropriate for a race game with so small details, because the player would move too fast comparatively to the size of the finest details. This would result in the terrain being "late" and your player wouldn't be in the center anymore. This would lead to issues.

    In conclusion, either you make a race game with player moving fast but with big voxels (ie. big details) or you make a game with fine details but your player will have to move more slowly.

    It is entirely compatible with Unity 5, but I haven't tested it with the new light system yet. I'll let you know about that.
    Yes it is integrated with the Unity editor.

    With the included shader, you can use 5 different textures. I haven't tested it with Substance.
    But in any case, you can use any material you want on it, so you can use your own shaders if you want, including physically based shaders (but except RTP3, I haven't tested other shaders to see how it looks like. It's up to you to use shaders that are suitable for a big terrain).
    Yes it is handled as several regular meshes with mesh colliders so this is perfectly standard and you can interact with the terrain the same way you do with regular meshes.

    To defined the location of mountains you'll have to parameter generator modules. You can also use heightmap module and give it your own heightmap. You can get a look at the video to learn a bit more about that.
     
  23. angel_m

    angel_m

    Joined:
    Nov 4, 2005
    Posts:
    1,160
    Does it work on mobile projects?
     
  24. Amandin-E

    Amandin-E

    Joined:
    Feb 4, 2015
    Posts:
    451
    It could, but honestly for now I have to answer no. I think it will need specific optimizations for mobile devices. Maybe one day I will work on this point, but in the short term I prefer to add more powerful features and fix bugs that people might encounter.
     
  25. psistalk

    psistalk

    Joined:
    Sep 23, 2013
    Posts:
    68
    Looking forward to your release looks good.
     
  26. Amandin-E

    Amandin-E

    Joined:
    Feb 4, 2015
    Posts:
    451
    Thanks @psistalk
    It's still pending for review. It should be a matter of days.
     
  27. Razmot

    Razmot

    Joined:
    Apr 27, 2013
    Posts:
    346
    Hi, nice work, especially the view distance. Your demo passes the test of walking for a long time and not having messed up chunks ;)

    Few (hardcore) questions :
    1 - What's the price for the standard dll version ?
    2 - Is the engine all implemented in c# or is there native c++ code ?
    3 - Will you sell a full source code version - how much ?
    4 - Are you using a floating origin system - does the player always stay at 0,0,0 ?
    5 - Does it work with a standard FPS kit (unity charactercontroller or UFPS) ?

    Thanks !
     
  28. Amandin-E

    Amandin-E

    Joined:
    Feb 4, 2015
    Posts:
    451
    @XenoGalaxies
    Thanks for your feedback!

    1 - Price has been decided by comparing Ultimate Terrains with other voxel engines on the Asset Store. It will be $125.
    2 - It is c#. The big advantage is that it is compatible with any platform without any issue. The main disadvantage is the garbage collector but that is my problem. I had to use some tricks and to be very meticulous with memory use but I took care of it. You won't have to worry about GC.
    3 - Maybe in the future, but not for now. If it is the case it will probably be a few thousands dollars, but I didn't think about that yet.
    4 - No, there is no floating origin system. I hesitated but I found that it would be too difficult to use for most of people.
    5 - Demos are made with Unity CharacterController. I haven't tested it with UFPS but there is absolutely no reason why it should not work. Terrain is nothing more than regular meshes.
     
  29. Amandin-E

    Amandin-E

    Joined:
    Feb 4, 2015
    Posts:
    451
    Ultimate Terrains is now available on the Asset Store!

    I really hope you will enjoy using it.

    I will pay close attention to your feedback and bug reports.
    If you have any question before buying, please ask it here (on this forum thread). If you have bought uTerrains and have any question or suggestion, you can get support on the website and report bugs here.

    In the mean time, just so you know, next update is already in development with new features and bug fixes.

    Thank you very much!
     
  30. SecretStudio

    SecretStudio

    Joined:
    Feb 5, 2014
    Posts:
    50
    Just bought it ! No sleep for me for the rest of this week !
     
    Amandin-E likes this.
  31. Amandin-E

    Amandin-E

    Joined:
    Feb 4, 2015
    Posts:
    451
    Thank you very much @SecretStudio !
    Don't hesitate to ask if you need some help and let me know if you have any suggestion ;)
     
  32. AaronClark

    AaronClark

    Joined:
    Oct 14, 2013
    Posts:
    39
    Picked it up as well, for a first release it is very solid.
    I am using it in Unity 5.
    Not tried yet though can I use SpeedTrees grass and trees with this?
     
  33. Amandin-E

    Amandin-E

    Joined:
    Feb 4, 2015
    Posts:
    451
    Thank you very much @AaronClark !
    I'm glad you find it solid for a first version.

    You can use whatever prefab you want for trees so yes the ones of SpeedTrees should work.
    Concerning grass, triangles are generated by uTerrains so you can't use custom meshes, but you can use your own grass textures of course.
     
  34. Casto

    Casto

    Joined:
    Aug 14, 2013
    Posts:
    44
    Got it!
    Works like a charm on my laptop. I agree with @AaronClark this is very solid, especially for a first version.
     
  35. Amandin-E

    Amandin-E

    Joined:
    Feb 4, 2015
    Posts:
    451
    Thanks @Casto !
    I'm very glad to get so positive feedbacks :)
     
  36. Bharata

    Bharata

    Joined:
    Feb 5, 2015
    Posts:
    4
    I'm going to buy it too.
    Have you already planed something for future updates?
     
  37. Amandin-E

    Amandin-E

    Joined:
    Feb 4, 2015
    Posts:
    451
    Thanks @Bharata !
    I prefer to tell only what I'm sure about, so I won't speak about what will come in the long term, but the next update is going to arrive soon with:
    • bugs fix
    • the ability to choose between properly connected seams (current version) and skirts to handle LOD breaks. Skirts don't look as good as seams sometimes, but they are 30 to 40% faster to compute.
    • the ability to automatically duplicate vertices to fix texture stretching issues.
    • maybe more...
     
  38. Don-Gray

    Don-Gray

    Joined:
    Mar 18, 2009
    Posts:
    2,278
    Just bought and imported, getting these two compile errors in Unity 5 (windows):

    Assets/uTerrains/UnityEditor/Editor/ChunkEditor.cs(9,21): error CS0101: The namespace `global::' already contains a definition for `ChunkEditor'


    Assets/uTerrains/UnityEditor/Editor/OnRun.cs(4,14): error CS0101: The namespace `global::' already contains a definition for `OnRun'
     
  39. Amandin-E

    Amandin-E

    Joined:
    Feb 4, 2015
    Posts:
    451
    @Don Gray
    Thank you for purchasing uTerrains!
    These errors means you already have a script called "ChunkEditor" and a script called "OnRun" in your project. I think this is just a little compatibility issue with another asset.

    I will rename these two scripts in Ultimate Terrains so you won't have this problem anymore in the next update.
    If you want to fix it immediately you can just rename the scripts (and the class inside the scripts) like this:
    • rename: UnityEditor/Editor/ChunkEditor.cs -> UnityEditor/Editor/ChunkComponentEditor.cs
      Code (CSharp):
      1. [CustomEditor(typeof(ChunkComponent))]
      2. public sealed class ChunkComponentEditor : Editor
      3.  
    • rename: UnityEditor/Editor/OnRun.cs -> UnityEditor/Editor/OnRunUltimateTerrains.cs
      Code (CSharp):
      1. [InitializeOnLoad]
      2. public class OnRunUltimateTerrains
      3. {
      4.     static OnRunUltimateTerrains ()
      5.     {
    Let me know if it fixes all your problems.
     
  40. Razmot

    Razmot

    Joined:
    Apr 27, 2013
    Posts:
    346
    You know since unity 4.5 there is no reason to not use namespaces ? And before 4.5 the only problem was that you could not put default valued method parameters in monobehaviours with a namespace - Having a namespace protects you from any script name conflict in case you don't know ;)
     
  41. Amandin-E

    Amandin-E

    Joined:
    Feb 4, 2015
    Posts:
    451
    @XenoGalaxies
    Thanks for the info. I know what namespaces are and I use them already for all non-monobehaviors classes, but I didn't know that the issue with monobehaviors + namespaces had been fixed in Unity 4.5! That's a very good news. Does it work for editor scripts too?
     
  42. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,676
    Can uTerrain take a Unity terrain as input, like one generated by WorldComposer, and then voxelize it and allow you to edit it as a voxel terrain?

    What about using something like SECTR to switch chunks of uTerrain in and out?
     
    EvilDingo and twobob like this.
  43. Don-Gray

    Don-Gray

    Joined:
    Mar 18, 2009
    Posts:
    2,278
    Hey,
    Yeah, probably a couple of other voxel based packages, I have dormant in the project.
    First I will remove them since they seem to no longer be updated.
    I hope you will get enough response to your work to continue adding features and support.
    I know it seems now you will always want to keep working on this, but that is how it is at the beginning,
    the long haul is the real test of how your package will go.
    I am excited to see what you have planned!

    :)

    Don
     
  44. Todd-Riggins

    Todd-Riggins

    Joined:
    Oct 25, 2012
    Posts:
    6
    Hi, Just bought this and it's looking fantastic so far! The 'MountainsWithTwoVoxelTypesCombiner' works a treat to get flatter land combined with sparse mountains. love it.

    Is there a way to know when the initial terrain is completed so then I can figure out where to place my gravity falling character on top of the terrain?

    Seeing that you have simplex3d stuff in there... is it possible to make spherical worlds? Well at least keep walking in one direction you'll end up at the same spot again eventually? Just curious as I need some kind of limit to world size somehow.

    EDIT: forgot to ask, Is there a way to input a random seed number to get random terrain based on that?

    Thanks for making this! Looking forward to it's future progress
     
  45. Amandin-E

    Amandin-E

    Joined:
    Feb 4, 2015
    Posts:
    451
    There is no such tool in the current version (1.0) of uTerrains but this is one thing I will do because I think many people will ask for it. This won't be in the first update but I'll do that after I think.

    Sounds like it would be complicated to integrate the two tools together. Ultimate Terrains updates its chunks at a very specific time depending on when the treads have finished to compute stuff. So I think this won't be possible.

    I've put all uTerrains scripts (including monobehaviors as it has been fixed in Unity 4.5+) in the UltimateTerrains namespace to prevent any future compatibility issue. Unfortunately it seems to break Unity's serialization of biomes so if you started to make your own scene, you will have to create and parametrize your biomes again from scratch. I'm sorry about that, but fortunately this should never happen again in the future. This will come with next update.
    I plan to work on uTerrains for a long time so don't worry. I hope you'll be happy with long-term updates ;)

    Thanks! Feedbacks are very encouraging and believe me, this is important for me :)

    Yes! You can use the UltimateTerrain.OnLoaded event. There is an example on how to use it in the PlayerBuilder.cs script.

    Yes this is possible. I didn't make a spherical generator module yet but that is definitely something I can do. Walking in the same direction and ending at the same spot again seems harder to do (at least with a flat world).

    Yes but I realize the Simplex3DGenerator doesn't have seed. I will add it for the next update. It will be easy to do thanks to this libnoise SimplexPerlin constructor:
    Code (CSharp):
    1. /// <summary>
    2. /// Create a new ImprovedPerlin with given values
    3. /// </summary>
    4. /// <param name="seed"></param>
    5. /// <param name="quality"></param>
    6. public SimplexPerlin(int seed, NoiseQuality quality)
    7.         : base (seed, quality){
    8. }//end SimplexPerlin
    Thanks to you for using it and giving feedback! First update will be there soon.
     
  46. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    Isn't Simplex 3D noise patented? Might want to look into that if you're using an original implementation.

    Other than that, it looks pretty good. Does the terrain mesh use vertex colors as a 'splatmap' similar to how it does with Unity terrain? That's how I understand it now. What is the maximum limit of voxel types in the game and what is the maximum per chunk (if any)? Any other limitations as far as material blending goes?
     
  47. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    2,058
    One of Kens I believe.
    Publication number US6867776 B2
    Publication type Grant
    Application number US 10/042,647
    Publication date Mar 15, 2005
    I believe Mr Perlin was most interested in the hardware aspects in the patents of these things. (personal opinion, echoed by the post I cite later)
    As you can see from his posts http://blog.kenperlin.com/?p=14693 IMHO he is not the type of chap to bring in the SWAT team when someone is merely implementing his brilliant work.
    Or even consider that it may be a pseudo-implementation like the discussion here http://www.java-gaming.org/topics/l...ex-noise/34365/msg/326943/view.html#msg326943 leading to https://gist.github.com/KdotJPG/b1270127455a94ac5d19 - either way - I think it'll all work out okay ;)
     
    Last edited: Mar 23, 2015
  48. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    Thats good to hear then. Saw something about simplex patents passing by one day, so I just wanted to give the asset creator a headsup about that :)
     
    twobob likes this.
  49. Amandin-E

    Amandin-E

    Joined:
    Feb 4, 2015
    Posts:
    451
    @wasstraat65 @twobob
    Thanks for this information. To be honest I was not aware of this patent! I saw so many projects (and other assets) that use simplex that I thought everybody had the right to use it. I wouldn't worry too much about that, but I'll make a little benchmark to compare Simplex and Improved-Perlin and if it appears to have equivalent performance then I'll remove it from uTerrains. Normally, Simplex should be faster than Perlin, but if the terrain takes 10.01s to compute instead of 10.00 then it's definitely not an issue. I'm going to test that.
    Thanks again!

    Yes uTerrains uses vertex colors as a splatmap. Actually, I should say that the shader included in uTerrains uses vertex colors to choose which texture to use. Of course if you use a different shader this can be different. It's up to the shader, so it's up to you.

    There is no maximum limit of voxel types.
    The included shader can handle up to 5 different textures (top, sides, red channel, green channel, blue channel, alpha channel). You can have as many different materials as you want. Materials blend well without doing anything special, but next update will give you the possibility to duplicate vertices (ie. one vertex has only one triangle) to avoid texture stretching. In this case, materials won't blend anymore and there is not much I can do about that.
     
  50. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    2,058
    Simplex is only certainly faster in 3+ dimensions (all things being implemented equally) as the complexity is O(N) for N dimensions instead of the O(2^N) for Perlin, as I understand it. So depending how you use it it may not be cheaper. There is a much-thumbed pdf all about simplex here
    a fun java planet made with Perlin here and a fun site about the simplex predecessor here
     
    Last edited: Mar 24, 2015
Thread Status:
Not open for further replies.