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

TerraLand 3 - Streaming Huge Real-World & Custom Terrains For Open-World Environments

Discussion in 'Assets and Asset Store' started by TerraUnity, May 20, 2018.

  1. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247

    AssetStore Link: http://u3d.as/1c8w
    Compatible with Unity 2018.3 & up









    TerraLand creates high resolution real-world Terrains in your scenes from ESRI & user-customized sources.

    Generated scenes can be:
    • Static & In-Editor
    • Dynamic & streaming in Runtime from large datasets in online/local servers


    Streaming Dynamic Scenes



    Static Scenes


    The built-in Streaming system in TerraLand is the only solution to bring streaming high resolution terrains into your scenes as the base for large world maps. This feature takes Unity Terrains to a whole new level where huge worlds will be updated in a smart behavior around the player using combination of multi-threading & coroutine functions without worrying about performance.


    While TerraLand can load splatmaps in runtime, renders from World Machine, Geoglyph, World Creator, Houdini & etc. can be converted to streaming tiles easily.




    Using TerraLand Terrain's processors custom heightmap data files from MOON and any other surfaces can be easily created and edited.




    TerraLand operates on top of Unity's native terrain objects while all current mapping solutions create mesh objects. Benefits of using terrain objects are obvious.

    The streaming system dynamically loads and generates terrains out of cached heightmap & imagery tiles in server in real-time.

    Supported imagery types in the streaming system are satellite images, colormaps, normalmaps & splatmaps.




    Here are some of the main features in TerraLand 3:

    • full source code included
    • complete suite to generate, edit, update, resample resolution, smooth, split, stitch, texture, convert to mesh & export terrains
    • data file processors to slice very high resolution heightmaps & imagery files into tiles suited for streaming
    • image processors to automatically remove shadows, create colormaps and generate splatmaps
    • no sign-up needed in external websites or sources
    • no tokens from mapping providers are required
    • unlimited server requests for heightmap & imagery
    • accurate centimeter area selection
    • highest resolution global coverage
    • features ESRI’s updating community driven data source
    • compatible with Unity’s terrain system and any other 3rd party assets
    • user-friendly & intuitive user interface
    • fastest multi-threading terrain downloads & generation
    • never leave unity even in complex projects
    • easy to learn with lots of video & documentation resources
    • active support through emails and forum posts
    • professional community involving in high-end projects
    • used in many enterprise and educational projects


    World.jpg

    Streaming1.jpg

    WorldMachine.jpg

    Moon.jpg

    Earth_Online.jpg
     
    Last edited: Nov 18, 2023
    Ruchir, Funkeys and antoripa like this.
  2. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    TUTORIALS










     
  3. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    More Info...

    Any high resolution 1 meter heightmap Lidar data from own customized external sources can be used as streaming tiles in TerraLand.




    Besides TerraLand's Cached Streaming, there is also Online Streaming feature in place. ESRI servers feed Elevation & Satellite Imagery into the Run-Time Engine and TerraLand converts data into 3D on the fly.




    TerraLand is not only a real-world terrain generator but a complete suite for terrain enthusiasts which makes it useless to have any other assets in the Terrain Editing category and covers all your needs regarding base terrains in Unity.




    TerraLand gives accurate coordinates data to users so you can do detailed geo-location & geo-referencing operations on created terrains in the scene.




    TerraLand Tournament is a driving simulator in the desert of White Rim Trail area. All assets and full source code of this project is part of TerraLand.


     
    FlightOfOne and antoripa like this.
  4. antoripa

    antoripa

    Joined:
    Oct 19, 2015
    Posts:
    1,163
    @TerraUnity congratulation for the release. I have just updated to new version.
     
    TerraUnity likes this.
  5. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    @antoripa Thanks a lot for being with us. Hope it becomes useful in your projects :)
     
  6. John-G

    John-G

    Joined:
    Mar 21, 2013
    Posts:
    1,122
    upgraded to V3 does the streaming feature allow for reset origin to prevent floating point errors?
     
    TerraUnity likes this.
  7. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    @John-G Thanks for the upgrade.

    Yes, this feature is handled by a script called "FloatingOriginAdvanced" on the main camera as in static scenes like before. This becomes vital in Streaming environments when the player is constantly drifting form the origin and the world size may be endless/huge.

    TerraLand 3 comes with 3 demo scenes to showcase Streaming features. There is a ReadMe file next to each scene file to give more information regarding the behavior.

    In the World Machine demo, you will notice that the 2 parameters ("Area Size" & "Size Exaggeration") which define the total world size end up being 480,000 units in Unity which is beyond practical in engine.

    WorldSizeXY.JPG

    "Area Size" is the heightmap size in kilometers and the "Size Exaggeration" multiplies with Area Size to rescale the world in Width (X) & Length (Z). As each 1 unit is considered to be 1 meter so we will have 480,000 units.

    The following lines are from the ReadMe file in project:

    As any distances above 100,000 from origin is considered huge for 3D engines with single-precision floating-point
    calculations instead of double-precision, there is a script named "FloatingOriginAdvanced" on the main camera to handle this limitation. The distance from origin which will offset scene elements is defined by the "Distance" parameter. To get more info on this behavior refer to the following links:

    https://forum.unity.com/threads/ter...eal-world-gis-data.377858/page-8#post-3391209
    https://forum.unity.com/threads/ter...eal-world-gis-data.377858/page-7#post-3253566
    https://forum.unity.com/threads/ter...eal-world-gis-data.377858/page-6#post-3081781


    FloatingOriginAdvanced.JPG

    So no worries for the floating point errors in streaming scenes.
     
    kcarlosf, razzraziel, Funkeys and 2 others like this.
  8. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,789
    I had used the previous version mainly as a downloader for terrain height/image files. For this purpose I found TerraLand to be exceptional... I was able to quickly and painlessly get the terrain data I was looking for, and I'd say it worked better for me then any other software package or method I had previously tried. So big Kudos for that!

    In looking over this post though it is unclear to me what new features I would be getting if I decided to upgrade. Can you give a list of what is improved/new since version 2?
     
    Marcos-Elias and TerraUnity like this.
  9. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
    A few questions.

    Does this cover the entire planet, or are there areas of the world without data such as the poles in some nasa data sets for example?

    How is sea level handled? I ask because I'm making a boat game, and my current height map solution places a flat area in the terrain at sea level where any ocean would be. This causes me issues because that means my ocean surface/wave shader would be exactly at the same level as the terrain, and my boat sitting in the water collides with the terrain, so I've had to work around this by raising the ocean level by 30 meters as if there is runaway global warming.... not happy with this. Do terrains generated with your asset handle ocean areas any better, such as dropping ocean areas to a height that would technically be below sea level?

    For satellite imagery, I see mention of a "land cover generator". Is this a feature that can be used to remove human structures in a fairly automated way, or would I have to manually edit the images to turn a city into a grassy valley? If not, does this include a feature for making fairly good looking textured terrains without human structures in locations where today you would find lots of roads and buildings?

    I already have my game split up into a large number of zones, so I don't actually want to stream in my terrain as each zone has its own terrain set. Can I assume I can easily use this asset without the streaming feature getting in the way?
     
  10. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    We are so grateful of what you said and appreciate it, glad to have top developers satisfied.

    Glad you brought this up, should've mentioned it earlier but here you go:

    Some brief info was mentioned in the other thread HERE.

    Also wanted to mention 4 main differences between ver. 2 & 3:
    • TerraLand 3 now includes full source codes & no more DLLs *
    • TerraLand 3 focuses on Cached Streaming of huge datasets for the first time in Unity
    • TerraLand 3 is not only for Real-World terrains but also any user-customized terrains whether created by 3rd party programs such as World Machine or other terrain generators in Unity
    • TerraLand 3 is a suite of various Terrain Editing Processors without needing any other assets in the cathegory

    * This is probably the most significant feature in TerraLand 3 and this decision is based on faster and wider development for the solution. The features are growing and the need of source code for the community is so demanding. Users are no longer facing a black-box and it helps us all for better bug fixes and community contributions.



    In .ver 2 we introduced Online Streaming of real-world terrains from ESRI servers and in 3 we pushed it further so that you can generate Cached Streaming Servers in TerraLand Downloader as a new section called the "Dynamic World" mode:

    DynamicWorld.JPG


    You simply define number of total tiles in the server and each tile's heightmap & satellite image resolution so a local cached database will be created which terrain tiles can be then streamed using the "Runtime Offline" script in runtime. So you won't need internet connection anymore and streaming is faster and more organized/optimized.

    RuntimeOffline.JPG


    Video Tutorial here:



    Also "TerraLand Terrain" was always there but with hidden features, so we made various demo scenes and video tutorials mentioned in the first 3 posts in this thread to show the users what can be achieved.


    Following are new processors in TerraLand Terrain:

    Heightmap Resizer: Upsamples/Downsamples heightmaps of the terrain(s) in the scene and smooth if needed.




    Raise/Lower Terrain: Raises or Lowers terrain(s) heights in the scene(Vertical Exaggeration).




    Image Slicer: Slices/Splits Image files with any resolution into a grid. Also can act as texture tiles in the streaming system.




    Splatmap Alpha Generator: Generates Alpha channel for the texture if not available which is needed for Splatmaps.




    Data Splitter & Converter: Splits Heightmap data files with any resolution into a grid and also converts them to the specified format. Generated heightmap tiles can be usable in the streaming system.




    Stitch Data Tiles: Stitch & match heightmap data tiles' neighboring pixels in a directory (e.g. streaming server folder) if there are varied heights in their top, left bottom or right row/column.




    Export Elevation Data: Now you can save heightmap data of the terrain(s) in the scene into a grid while choosing its export format. Generated heightmap tiles can be used in the streaming system.




    With this toolset in TerraLand with maximum capability to use any user-customized data and options to load splatmaps in runtime, TerraLand is no longer limited to real-world terrains and static/dynamic scenes can be created out of custom terrain generators whether inside Unity or outside (e.g. World Machine).

    I'll update the post if found missing parts later.
     
    chingwa likes this.
  11. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    Yes, both heightmap & imagery in TerraLand have full global coverage from ESRI servers despite other sources (e.g. NASA SRTM) which have limited coverage in poles (Limited from -60 to 60 in Latitude).


    Same case scenarios have been already discussed, read them through and ask again if the answer is not covered:

    General information:
    https://forum.unity.com/threads/ter...from-real-world-gis-data.377858/#post-2453702
    https://forum.unity.com/threads/ter...from-real-world-gis-data.377858/#post-2478547
    https://forum.unity.com/threads/ter...eal-world-gis-data.377858/page-5#post-2910354

    Solutions:
    https://forum.unity.com/threads/ter...eal-world-gis-data.377858/page-7#post-3230526
    https://forum.unity.com/threads/ter...eal-world-gis-data.377858/page-7#post-3235283
    https://forum.unity.com/threads/ter...eal-world-gis-data.377858/page-8#post-3322292


    See a recent post to get started: https://forum.unity.com/threads/ter...eal-world-gis-data.377858/page-9#post-3506898

    What MapsMaker do in order to generate splatmaps, is color based where you insert an original image (e.g. satellite image) to be processed and then set color filters to generate RGBA layers of the splatmap from them.

    If the Automatic Mode is selected, MapsMaker will automatically assign layers to the 4 most dominant colors in the image, if it is off, you can manually select which color ranges to be included in the splatmap, so this way you can filter out any features in the image. However, obviously this won't be the ultimate solution in order to distinguish between features and filter them out but works in most cases without further editing.

    In the following screenshot taken from the scene demo "TerraLand Terrain Processors" in TerraLand 3, we could quickly filter out different regions in the satellite image and generate splatmaps for terrain tiles. The 4 generated layers correspond to water, grass, soil & pavement (for urban areas). So we could use colors to filter urban areas which are buildings & similar stuff:

    MapsMakerSplatmaps.JPG

    We also left the used filters preset (Capri, Italy.tlps) which can be directly loaded in MapsMaker to see what was the settings there.


    TerraLand has nothing to do with your setup in the scene and it's up to you to use the streaming features or not by enabling/disabling the "RuntimeOffline" script in the scene. We recommend checking the provided sample scenes and play with them as they are self-explanatory and quickly give you ideas of what is happening in the background.
     
    Last edited: May 23, 2018
  12. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
    Excellent, thanks for the quick response. This looks like a better solution than what I am currently using.
     
    TerraUnity likes this.
  13. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    Also we reserved all rendering techniques and shader solutions for our upcoming product while TerraLand focuses on terrain's base implementations.
     
  14. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
  15. MrIconic

    MrIconic

    Joined:
    Apr 5, 2013
    Posts:
    239
    Will it also be on sale for $25 on the asset store?

    Edit: Nevermind, if you buy it on your store is there any way to get an asset store voucher later?
     
  16. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    We will book one for you if you insist but no difference between them except you are always a month late to the party in UAS.
     
    MrIconic likes this.
  17. Funkeys

    Funkeys

    Joined:
    Apr 16, 2017
    Posts:
    64
    Hi,
    I bought TerraLand about two weeks ago, and I am very satisfied with the results. I am happy to see that V3 is released already.
    How can I register my bought form the asset store onto your Website, and how I am able to do the upgrade to V3?
     
  18. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    @Funkeys glad you liked it so far.

    Simply register on our website from here: http://terraunity.com/my-account/ and send us your username and AssetStore's payment Invoice No. to info(at)terraunity(dot)com so that we can approve and setup your account.

    Since you are already a customer and recognized on our site, you will automatically receive the extra 30% discount when making the upgrade from here: TerraLand 3's product page
     
    Last edited: Jun 2, 2018
    Funkeys likes this.
  19. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
  20. MostHated

    MostHated

    Joined:
    Nov 29, 2015
    Posts:
    1,235
    I see that this says it loads terrain real time in game. I currently use WorldStreamer along with WorldCreator and was wondering if there were any benefits to using this somehow as well?

    I use WorldStreamer because I have a very large open world map and because it streams not only terrain (using a grid to determine what around the player needs to be loaded) but it can do it in layers for all assets in the scene (you can have large lower poly things load far away for for LOD and then as you get closer to an area you can start to have smaller or more detailed things take its place. I use lower poly mesh as terrain for long view distances because having that much Unity terrain loaded at once was bad for performance, so I only have Unity terrain loaded just around the player and then as he moves about it will unload the low poly mesh and load in the actual Unity terrain, and of course as he moves away from it, it unloads the terrain and loads the mesh.

    I know that I definitely need to keep WorldStreamer because its ability to load the other assets aside from terrain, but is there any benefit you might know of as to why I might use TerraLand over WorldStreamer for the actual terrain streaming part of things? As I mentioned I use World Creator and its just a premade map cut into terrain tiles so I don't need to use any of the other outside api's or anything. I am definitely interested to see if this can help my game in any way.

    Thanks,
    -MH
     
    Last edited: Jun 15, 2018
  21. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    This is a good question to be brought up here. Actually never tried WorldStreamer and don't know how it works but I can guess that it divides terrains into grids of tiles in the editor and then loads/unloads them in realtime! Is that true? Maybe the developer can come up here and explain the process.

    TerraLand's Streaming system on the other hand, creates data tiles (heightmaps, satellite images, splatmaps, normal maps & normal textures or colormaps) and put them in a cached server whether in a local hard drive location or an online destination and then loads those tiles from these servers in real-time and creates terrains out of them from scratch.

    As it does all that outside Unity and terrains objects doesn't have to be in the Editor, we are not bound to Unity application's memory and drawcall limitations which is existent in a static scene but as it loads data on demand from an external source so the capacity of the data and resolution can be possibly endless and be terabytes in size.

    For the rest of the process you mentioned, it seems that it is already a neat solution to stream all assets, but I'll comment later when you give more info or show any media if possible. Regarding terrains only, take a look at the following video which renders a 160 x 160 km area with the total resolution of 16384 pixels for the heightmap and 65536 pixels for the imagery out of a cached server with 1.5 GB of data in size.




    Also, TerraLand is not limited to real-world terrains and any custom made terrain object or data can be streamed in runtime. Following video shows a high resolution terrain streaming in runtime out of World Machine renders placed in a cached server on a local hard drive location:




    Video tutorials for the 2 above videos are also available on our YouTube channel.
     
    Bartolomeus755 likes this.
  22. MostHated

    MostHated

    Joined:
    Nov 29, 2015
    Posts:
    1,235
    Thanks for the reply, I appreciate it and will definitely watch the videos. I was talking with someone else via email a little while back and they asked how WorldStreamer works as well and this is what I had wrote to them below, I apologize it is a little long and there may be a few sentenses that may not pertain exactly, but I believe I got a pretty solid bit of the details in here.

    My main concern with whatever I used ends up being the fact that my game is an online persistent world RPG, so I don't think / know if floating point fixes would really work for my game, as things can't really just be moved around willy nilly like most fixes do. I am trying to make my game as modular as I can, terrain wise as well, so I can just start out with X size and then expand on it as I discover ways to keep the world seamlessly loading but also not have to worry about the distance from 0,0,0, but that might end up having to come from some sort of multiserver solution at some point.

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

    "With WorldStreamer you are to have to terrain pre-sliced and you put in size of each slice that you already have. What it actually does create your different streaming layers. I use WorldCreater stand alone for my terrain which has a sync tool that brings the terrain in from WorldCreator and automatically slices it for you when it imports, but of course not everyone has that. My map is 10248x10248 currently cut into 1600 256x256 chunks of terrain. Yes, a lot, lol, but It gives me a lot of flexibility in how much or how little I want to load because the loading grid system is dynamic. So for instance If I get on my drag and fly upward I can have it trigger to extend the grids loading range from 3x3 to 4x4 or 5x5, etc and vice versa, when I land it goes back to 3x3. So within the SceneSplitter, I put in that my terrain size is 256x256, then I create my layers. What you do is prefix all of your items in game with something (which is why he mentions another free tool which can auto rename with pre_ or _suffix based on different things).

    Each prefix becomes a layer. So all my terrain Ter_, so it is Ter_WC_Terrain_01x01x01 or whatever, so that takes care of my terrain layer (for performance purposes terrain is always by itself when loading or unloading) My next layer is my mesh lod which is LOD_Ter_WC_etc, then for the time being I had My whole castle as another layer by itself just because it was the only thing really else that I had in the game at the time name Castle_Castle. So that would be 3. The terrain layer gets set more or less as the primary, it will always load that first when the game is loading, hopefully before you player loads, lol. It has a Neighboring_terrain setting/script on it which I believe is used as the connecting point for the grid system for loading and what not, but I am not 100% sure, never really looked through that file. When you tell the scene splitter to do its thing, it takes each layer and all the objects within it and then based on each terrain chunk exports every 256x256 area as its own scene. So each layer would end up with a folder based on the layer name and in there ends up being one scene for every 256x256 area but only containing what was in that particular layer based on its name, and which scene it is in is of course based on its location and which chunk it was in. Along with that was a single prefab with a script on which contained a list of all of the scenes within that layer and those prefabs are what you put in the scene and attach to the rest of the components to make the system work. The way it named each scene dictated its position in world space as seen here. https://i.imgur.com/DIG4rOu.png This allowed everything within a particular chunk of terrain to be able to be loaded in the right place, but at different times.

    In your grid loading settings, you would say I want the terrain layer to load only 1x1 grid space from me, which would be the one I am on, and then the first set of grid spaces around me but nothing further than that. The next layer is my LOD mesh terrain, using the Ring LOD system it works by setting a minimum and maximum loading range. So I have it set to I want it to only load in grid spaces 2-3, so that terrain is the first grid space, but then 2nd and 3rd grid spaces are the LOD. If you have more layers, say a large and small object layer, you would set it that you want LargeObject_streaminglayer_ to begin loading as far away as 3x3 grid spaces, but you only want SmallObject_streaminglayer_ to load then you are 1x1 grid spaces away. Even though one particular grid space within the world might be loaded, it might have 4-5 different scenes of the same area, each containing different objects depending on its streaming layer.

    It works really well as long as you take the time to prepare all your assets by naming them in the hierarchy properly. The only downside other than the extra work is having extra size on the client because of all the extra scenes, even though each one might only have a few objects in there by themselves, each scene file takes up space. Well worth it for the performance gain you get though. Mix that with the trigger loading system and you can have some huge open areas that look populated (VegetationStudio will let you prebake billboard foliage and attach it to each chunk of the lod, but use the real stuff on terrain when you are close to it) but then unload a bunch of that when you enter an enclosed area with the trigger and have super detailed interiors.

    The way it tries to combat too much loading at a single time if you cross the threshold into a new grid space is simply allowing you to input a set number of frames for each thing to wait in between its loading, so you have terrain load first frame, wait 2 frames then something else, wait another frame for something else."
     
    Last edited: Jun 16, 2018
    TerraUnity likes this.
  23. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    @MostHated thank you so much for the explanation about the other asset.

    Regarding terrains only, the whole concept and behavior seems to be close to each other except TerraLand loads terrain data from outside Unity and creates terrain objects during runtime as I mentioned earlier.

    This has its pros and cons though;
    • The advantage is that the data can be huge and you are not limited to memory as nothing needs to be setup in the editor. This makes it even simpler as no manual setup is needed and everything is automated and handled by the "RuntimeOffline" script.
    • The disadvantage is that it needs to process data at runtime and create terrain tiles which affects performance instead of simple loading/unloading of tile objects, however heavy processes are under multi threading functions if possible or carried out between coroutine calls.

    The reason behind this method we use in TerraLand is because we focused on streaming huge datasets as our customers are mostly involved in bigger GIS projects which they need to load terabytes of data in runtime.

    In the earlier video I showed here, you see a bigger terrain for the whole area of game world as background mountains with streaming terrains being created on top of it around the player. As you see the concept is simple and you can quickly setup the scene while the results are still satisfactory.

    Also there are numerous settings in the "RuntimeOffline" script as the handler for the generating terrains in the scene which you can define the whole world size units which consequently sets each tile size in units

    Regarding the floating point issues in a multiplayer environment, this was the main concern of mine too while developing such system and as you recognized it won't work in that or maybe just makes everything more complicated if implemented. So more R&D in this case is needed or maybe you have to shrink everything to be close to the world center not to get floating issues!

    This is the most I could get out of our conversation so far and the real testing whether to select between assets is to have them run side by side which would be so cool to have that. Anyways, let me know of any specific questions regarding your project and I'll be happy to answer them all.
     
  24. SonGoku10c

    SonGoku10c

    Joined:
    Dec 9, 2017
    Posts:
    77
    Hi.
    I have changed some parts of the TerrainGenerator.cs script to chose an maximum area of 3000 x 3000km and generate 128 x 128 tiles, but now I have a problem with the low heightmap resolution. I tried to increase it to 131072, but when I click "Generate Heights" it loads for 1 second and then this appears:

    System.Web.Services.Protocols.SoapException: The requested image exceeds the size limit.
    at System.Web.Services.Protocols.SoapHttpClientProtocol.ReceiveResponse (System.Net.WebResponse response, System.Web.Services.Protocols.SoapClientMessage message, System.Web.Services.Protocols.SoapExtension[] extensions) [0x00000] in <filename unknown>:0
    at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke (System.String method_name, System.Object[] parameters) [0x00000] in <filename unknown>:0
    at WorldElevation.Terrain_ImageServer.ExportImage (WorldElevation.GeoImageDescription ImageDescription, WorldElevation.ImageType ImageType) [0x00015] in B:\Programme\Unity\Unity Projects\Asset tests\Assets\TerraLand\TerraLand Core\WebServer\App_Code\WorldElevation_MapService.asmx.cs:1769
    at (wrapper remoting-invoke-with-check) WorldElevation.Terrain_ImageServer:ExportImage (WorldElevation.GeoImageDescription,WorldElevation.ImageType)
    at TerrainGenerator.ElevationDownload () [0x00106] in B:\Programme\Unity\Unity Projects\Asset tests\Assets\TerraLand\TerraLand Core\Editor\TerrainGenerator.cs:5306
    UnityEngine.Debug:Log(Object)
    TerrainGenerator:ElevationDownload() (at Assets/TerraLand/TerraLand Core/Editor/TerrainGenerator.cs:5311)
    <ServerConnectHeightmap>c__AnonStorey0:<>m__0() (at Assets/TerraLand/TerraLand Core/Editor/TerrainGenerator.cs:5192)
    TerrainGenerator:RunAction(Object) (at Assets/TerraLand/TerraLand Core/Editor/TerrainGenerator.cs:9384)


    How can I generate a heightmap with this size then? At the moment the maximum is 4096 which generates a 32 heightmap for every terrain, which is very low.
     
  25. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    First of all, you just need to study about heightmap resolutions and its limits in a static scene created in editor, the 131072 resolution heightmap you mentioned on a terrain in the scene will probably take a week to render only 1 frame :eek:
    That's why there is the 4096 limit for the heightmap resolution even though if you try to increase this limit as you did, the server does not allow to obtain such data file with this huge resolution and you will receive the mentioned error.

    But hopefully that's exactly why we have the "Dynamic World" mode in TerraLand to dynamically stream huge datasets with high resolution heightmap/imagery data tiles in it in runtime.

    When in Dynamic World mode chosen from the top of the UI, after defining the Area Location & Size, you simply define the total number of tiles by setting the "Tiles Grid" value (in your case 128x128 = 16384 tiles) and then select each heightmap and imagery tile's resolution. For instance if you want to have the total heightmap resolution of 131072 pixels as in your case, you have to set heightmap tile resolution to 1024 (131072 / 128 = 1024).

    The following video tutorial shows you how to setup TerraLand Downloader's Dynamic World settings to define a large area and obtain its needed elevation/imagery data:




    Don't forget to firstly setup TerraLand Downloader for your Unity installation explained at the beginning of the video.

    Also please bear in mind that the data resolution you are trying to obtain still can be huge for most cases even if it is a dynamic streaming system because it will take a lot of time to download data tiles. However if you know the consequences and manage to achieve this, it's going to be epic as we didn't test such resolutions ourselves, definitely waiting to see what you will come up with.
     
  26. SonGoku10c

    SonGoku10c

    Joined:
    Dec 9, 2017
    Posts:
    77
    But why can I create these terrains with other assets then, but not with this one? I just want 1 1024x1024 heightmap on each terrain. And it doesn't take a week to render 1 frame. I get my normal 60fps. I just need the terrains with heightmaps on it.
    Btw: What is with the ocean? There aren't any heightmap values for it or? It is then a flat ocen at 0m or? Can you change it somewhere to get a deeper one?
     
  27. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    Just reread what you asked for and what I replied, it's not about this asset or that, no computers on Earth can handle such resolution in a static scene except utilizing a dynamic streaming system such as the one in TerraLand.

    Bathymetry data is there but with very low resolution but if you want to exaggerate the depth, the variable lowestPoint is there for this. There are also some discussions for the subject on the TerraLand 2 thread recently and also there are some tips in our discord channel.
     
    Last edited: Jun 19, 2018
  28. CornichonCosmique

    CornichonCosmique

    Joined:
    Jun 11, 2018
    Posts:
    2
    Hi,
    I have a few questions before buying what is look like an amazing tool (sorry if you already answer some of them, I missed it):
    I want to use terraland to display high resolution topographic data for research purposes. I wonder if:
    - Terraland runs under Unity linux version?
    - If I understand well, I can use my own DEM, but can terraland keeps and displays data with resolution lower than 1 meter or will smooth them?
    - How does Terraland will handle nan value in DEM?

    Thanks in advance for your answers.
     
  29. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    @CornichonCosmique welcome to the community.

    We have not tested it ourselves but if Unity is OK on your machine there is no reason that TerraLand won't work in that!

    Yes, you can definitely use your own DEM files and generate terrains out of them. TerraLand does not care about the original pixel resolution (cell spacing) of the heightmap and is capable of generating surfaces from possibly millimeters to kilometers but the total resolution of the file is the factor which is important in a static scene and usually 4k is the max.

    So if you have a data with 1 meter pixel resolution and it is 4096x4096, the area would be 4096 m2; if the data has 25 centimeter resolution in a 4k heightmap, it will cover an area of 1024 m2.

    All other processors also does not care about the pixel resolution and will operate on top of surface including the Smooth operation.

    The nan values existing in standard Ascii Arc Grid (.asc) files are a constant value defined at the file's header and TerraLand consider them to be the value of 0. However whether the files is an asc or in other format, you can simply define arbitrary value for nan values by a simple flag.

    Currently TerraLand won't automatically fill these gaps and nan values for you but that would be a simple addition to the system which we try to add in future updates. As TerraLand 3 now comes with the source, you can do it yourself or ask us to share that part with you too. Also Global Mapper has an option to fill these gaps for you and normalize empty values from neighbor pixels during the export.
     
  30. CornichonCosmique

    CornichonCosmique

    Joined:
    Jun 11, 2018
    Posts:
    2
    Thanks for the quick answer.
    Ok, I will see how to deal with the nan values.
    I come from the GIS world and know the different solutions to fill nan values, but here, I need to keep them because it means that we do not have data to interpret/analyze. And because I'm using bathymetric data, the 0 value will be problematic. I will try to automatically set this value to the minimum height of each terrain.
    Thanks again
     
  31. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    welcome, yes changing nan values to the lowest value is the easiest way if the sea bed shape is not important but changing it corresponding to its neighbor pixels is the best option and is not that hard to implement. Let me know if you need help in this.
     
  32. berry4u

    berry4u

    Joined:
    Dec 27, 2017
    Posts:
    30
    Hi,
    Just a simply question
    Can I export the terrains generated with the downloader in other projects including only the necessary dependencies.
    I tried many tests without succeeding.
    Can someone help me about this issue?
    Thanks
    BN
     
  33. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    @berry4u That's one of the main reasons TerraLand is there and the process is so simple.

    For this you only need heightmap(s) and satellite image(s) to be present in your project in order to use them in other scenes or projects later.

    Regarding heightmaps, you can either
    • Go to "Save Elevation Data" section in TerraLand Downloader's UI and select which ever format you want to save the heightmap (raw is recommended but if you want to keep the geo-referenced data in file, choose Ascii format)
    • Or use TerraLand Terrain component to insert any terrain(s) in that and use the "Export Elevation Data" processor in the UI to create heightmap(s) out of you terrain surface.

    And for the satellite imagery, if "Texture Terrain" option is "On" in the "Satellite Image Downloader" section which is by default, all downloaded imagery files will be saved in your project under TerraLand => TerraLand Core => Downloads in a folder named after the download date. So you can use them for later terrain generation/editing in other projects.

    In TerraLand Terrain component there is a processor named "Image Tiler" which can texture inserted terrain(s) using previously downloaded satellite images.
     
    Last edited: Jul 15, 2018
  34. Print3d

    Print3d

    Joined:
    Oct 22, 2017
    Posts:
    35
    EDIT: TEXTURE NOT SHOWING FIXED. See below original post for the fix

    Hello, just bought the asset and set up everything as requested.
    I followed the online tutorial
    step by step as well...
    Everything seems to work, the terrain is generated BUT the texture is not applied.
    The texture is correctly downloaded as far as i can tell, it's just missing from the terrain...
    Any advice? Thanks a lot!

    EDIT: I found out that force quitting the job when everything is downloaded actually works, and the textures are finally applied - maybe it's a small bug? I'm on a Mac running Unity 2017.3.
    Thanks again
     
    Last edited: Jul 14, 2018
  35. Print3d

    Print3d

    Joined:
    Oct 22, 2017
    Posts:
    35
    When starting Terraland the first time, i get prompted with two messages:
    Terraland.png

    Is there a specific order i shoud accept settings?
    Because they seem to overwrite each other...
    And at the moment i'm not really interested in the Tournament stuff...
    Thanks
     
  36. jf3000

    jf3000

    Joined:
    Dec 31, 2013
    Posts:
    166
    Code (CSharp):
    1. Assets/TerraLand/TerraLand Tournament/Scripts/GameManagerTT.cs(71,13): error CS0246: The type or namespace name `SmoothFollowAdvanced' could not be found. Are you missing an assembly reference?
    2.  
    Nothing else is in the project only this.

    All good, removed the tournament.
     
    Last edited: Jul 15, 2018
  37. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    Thanks for the report, Macs sometimes act weirdly especially in file management and access rights which I think is the case here. Will investigate more on this to find a solution. Does it happen occasionally or every time?
     
  38. Print3d

    Print3d

    Joined:
    Oct 22, 2017
    Posts:
    35
    I'd say 99% of the time. It actually worked only once, and it applied textures only to half of the map. The other half was missing textures even if it downloaded all of them :/
     
  39. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    No, there is no ordering on accepting these launchers. However if for any reason you don't want them to appear again and change project settings find the 2 scripts named "TerraLandSettings" & "TournamentSettings" and delete them from the project.

    But as a reminder, do the one time instructions for each Unity installation explained at the "_IMPORTANT SETUP" folder under TerraLand Core directory in project. The instructions are also explained at the beginning of the following video tutorial:



    Regarding Tournament, you can safely exclude them while importing the TerraLand package to only have the core plugin in place or download previously imported files of Tournament from the project.
     
    Print3d likes this.
  40. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    Even weirder! Do you receive any errors or warnings in the console?

    As a hint, if all satellite images downloaded successfully you can easily texture generated terrains later using "TerraLand Terrain" component's "Image Tiler" processor which takes the folder containing image(s) and textures inserted terrain(s) in the scene.
     
  41. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    Yes, you can delete the Tournament related files safely or exclude it while importing the package. Regarding the error, did the package imported with all necessary files or the "SmoothFollowAdvanced" is not in the project at all?
     
  42. Print3d

    Print3d

    Joined:
    Oct 22, 2017
    Posts:
    35
    Thank you very much for your kind replies.
    I'll take a look at this in the upcoming days and i'll keep you posted on the matter! No warnings or error messages up to this point, it just hangs after the downloads. But the solution is quite straightforward, so it's not that big deal at the moment.
     
    TerraUnity likes this.
  43. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    You are welcome and thank you for the kind words. Let us know if you encounter any other issues and about the current one :)
     
    Print3d likes this.
  44. Print3d

    Print3d

    Joined:
    Oct 22, 2017
    Posts:
    35
    @TerraUnity by the way your asset is probably THE BEST i tried so far, it works straight out of the box and the quality is really outstanding! I'll soon leave a review.
    I was just wandering, could you please create a tutorial showing how to enhance the map once is downloaded? Even with other assets from the store, it would be really nice! I'm looking for a quick way to smooth jagged areas, add grass, trees, textures and roads - the goal would be to replace the satellite image with a higher quality one, suitable for "ground" gameplay (for a flight sim it would be already perfect!). These are the assets i already have, if you have any advice i'd really appreciate it.
    CTS Complete Terrain Shader
    Gaia
    Go Map
    MapMagic World Generator
    Real World Terrain
    Terrain Composer 2
    World Composer

    Thanks again!
     
    TerraUnity likes this.
  45. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    So much appreciated, I'm so glad you liked it so far and the words you said really makes us stronger, thanks for the support :)

    Don't know if you heard about our upcoming product or not but we are currently working on an interactive demo before its release and whatever you asked is in one place in this package in the most user-friendly and automatic way; so you don't need to include dozens of assets and sync them which is a hassle. It creates any place on Earth close to reality and the generated nature in the environment is so detailed, we'll later add support for urban areas using our updated TerraCity solution.

    We have already ported this project into Unity's HD Render Pipeline where we can get higher performance along with so much better graphics and atmosphere.

    Unfortunately I'm not authorized to share any media or features yet but the results are stunningly realistic and beautiful ;)

    Just have to wait for some time until it's time to release the demo. You can join our TerraLand Discord channel where new announcements will be revealed there too.
     
    Print3d and jf3000 like this.
  46. Print3d

    Print3d

    Joined:
    Oct 22, 2017
    Posts:
    35
    @TerraUnity Thanks for your reply, i'm looking forward to that!
    Just another question, how can i increase the quality of the dynamic world streaming mode?
    Because i found out that while static mode lets you download higher res satellite images (up to 4096px per tile), the dynamic mode stops at 2048px per tile, i'd like to get the best possible quality for the dynamic world mode as well!
    Thanks
     
    TerraUnity likes this.
  47. Print3d

    Print3d

    Joined:
    Oct 22, 2017
    Posts:
    35
    ANOTHER MAC FIX - MAC OS HIGH SIERRA - TERRALAND DYNAMIC WORLD MODE MISSING GDIPLUS.DLL ON MAC

    http://answers.unity.com/answers/1475268/view.html

    If you follow these steps you are good to go. It may not work the first try, if thats's the case:
    1) remember to SAVE the file before closing it (even if it autosaves, it seems to miss the modifications for some reason).
    2) completely remove Monodevelop and make a fresh install, then modify again.

    Sorry for posting here, i hope to help other users!
     
    TerraUnity likes this.
  48. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    When you are in Static Mode, you are limited by heightmap/imagery resolutions because all terrains have to be loaded and rendered at the start of game; 4k for heightmap and around 16k for imagery is usually the max on high-end desktops.

    In the other hand, while in the Dynamic Mode, there is no such limitation where you can create thousands of tiles in the server each with max. 2048 for heightmap and imagery which creates very high resolution surfaces through dynamic streaming thus users can define larger areas (such as a country-wide boundaries) just like the one showed in this video:



    The reason behind the 2048 resolution in each tile's imagery is that the image has to be loaded and streamed and finally being textured on tiles on the fly so large resolutions will bring hiccups in the simulation and not performance-wise. Usually resolutions of 1024 & 512 is recommended for smoother FPS.

    But as you are not limited to the number of total tiles in the server, you can play with the settings to have more tiles and consequently higher resolutions not affecting the performance if proper settings chosen. Take a look at the following video tutorial which shows how the scene in the previous video is made in runtime:

     
    Print3d likes this.
  49. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,247
    @Print3d Thank you so much for the explanation and report. Totally forgot about the issues regarding System.Drawing on Macs. Please let us know if you encounter any other issues using TerraLand.
     
    Print3d likes this.
  50. blacksun666

    blacksun666

    Joined:
    Dec 17, 2015
    Posts:
    214
    In the videos above, when showing the dynamic streaming results, the draw distance is very large, however when you show the dynamic streaming in the editor, the draw distance isn't anywhere near as much. Is there anything different needed to get the terrains to appear that are in the distance or is that automatic once a build has been generated?
     
    TerraUnity likes this.