Search Unity

  1. Unity 2018.1 has arrived! Read about it here
    Dismiss Notice
  2. Scriptable Render Pipeline improvements, Texture Mipmap Streaming, and more! Check out what we have in store for you in the 2018.2 Beta.
    Dismiss Notice
  3. If you couldn't join the live stream, take a peek at what you missed.
    Dismiss Notice
  4. Improve your Unity skills with a certified instructor in a private, interactive classroom. Learn more.
    Dismiss Notice
  5. ARCore is out of developer preview! Read about it here.
    Dismiss Notice
  6. Magic Leap’s Lumin SDK Technical Preview for Unity lets you get started creating content for Magic Leap One™. Find more information on our blog!
    Dismiss Notice
  7. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice

[RELEASED] 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:
    459
    Click Below To Buy For Only $25
    Or
    Upgrade For Only $18


    AssetStore | Our WebStore

    For A Limited Time Only
    + 30% Off For ver. 2 Users



    New users will buy for $25 instead of $49 for a limited time.
    ver.2 users receive extra 30% discount and pay $18 as an upgrade.

    The same discount rule applies to both AssetStore & Our WebStore automatically based on purchase history.

    AssetStore Link: http://u3d.as/1c8w


    Compatible with Unity 2017.2 & 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: Jun 15, 2018
    Funkeys and antoripa like this.
  2. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    459
    TUTORIALS










     
  3. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    459
    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.


     
    antoripa likes this.
  4. antoripa

    antoripa

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

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    459
    @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,097
    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:
    459
    @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.
     
    Funkeys, Marcos-Elias and John-G like this.
  8. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    2,897
    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:
    2,575
    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:
    459
    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:
    459
    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:
    2,575
    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:
    459
    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:
    459
  15. Blueberry

    Blueberry

    Joined:
    Apr 5, 2013
    Posts:
    152
    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:
    459
    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.
     
    Blueberry likes this.
  17. Funkeys

    Funkeys

    Joined:
    Apr 16, 2017
    Posts:
    57
    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:
    459
    @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:
    459
  20. MostHated

    MostHated

    Joined:
    Nov 29, 2015
    Posts:
    433
    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:
    459
    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:
    433
    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:
    459
    @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:
    59
    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:
    459
    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:
    59
    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:
    459
    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 at 7:30 PM