Search Unity

[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:
    729
    @Andreas12345 did you ever try to change the regional & language settings separator formatting at all? Just for the test! Or did you try to use the plugin on another computer?
     
  2. Andreas12345

    Andreas12345

    Joined:
    Oct 17, 2013
    Posts:
    379
    yes i tried the regional settings.
    I had no time yet to test on another pc. I report back when i find a free minute :)

    Dont forget -> Google works. (with a bit flickering, but OK)
     
  3. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    729
    Ok thanks.

    I don't think it is related to mapping sources at all... it is about the returned coordinates in the Lat/Long field at first place and then the preview map rendering.
     
    Andreas12345 likes this.
  4. Andreas12345

    Andreas12345

    Joined:
    Oct 17, 2013
    Posts:
    379
  5. inkostyakov

    inkostyakov

    Joined:
    Nov 14, 2016
    Posts:
    20
    Hi!
    My next steps:
    1. Download Dynamic Map. Ok. No Errors.
    2. Menu -> Tools->TerraUnity->TerraLand->Streaming maps. Window is trying to appear but immediately closed. Tested two PC. No luck - not working for me. No errors. Just not appear.
    3. Ok. Open Offline Streaming demoscene
    4. Change server path to mine
    5. Start. DoubleParse error again.
    6. Check code. Error in ServerInfo.cs line 55, for example
    Code (CSharp):
    1. areaSize = float.Parse(lineInfo[1]);
    7. Change Parse functions like this in ServerInfo.cs
    Code (CSharp):
    1. areaSize = float.Parse(lineInfo[1], CultureInfo.InvariantCulture);
    for float.Parse and double.Parse.
    8. No errors. It works.


    So,
    1. Streaming maps are not working for. Dunno why.
    2. I think all cultural errors, or most of them, can be fixed by updating Parse function to Parse(string, CultureInfo.InvariantCulture)
    3. I tried previous version few months ago, but did not have this errors.

    Please, check it, and maybe, create some fix or update.

    Thanks.
     
  6. Andreas12345

    Andreas12345

    Joined:
    Oct 17, 2013
    Posts:
    379
    Can somebody check this for the issue?
    Code (CSharp):
    1. using System.Globalization;
    2. using System.Threading;
    3. using UnityEngine;
    4. #if UNITY_EDITOR
    5. using UnityEditor;
    6. #endif
    7. #if UNITY_EDITOR
    8. [InitializeOnLoad]
    9. public static class FixCultureEditor
    10. {
    11.     static FixCultureEditor()
    12.     {
    13.         Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
    14.     }
    15. }
    16. #endif
    17. public static class FixCultureRuntime
    18. {
    19.     [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
    20.     static void FixCulture()
    21.     {
    22.         Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
    23.     }
    24. }
     
    Razielwar, inkostyakov and TerraUnity like this.
  7. inkostyakov

    inkostyakov

    Joined:
    Nov 14, 2016
    Posts:
    20
    Nice! Looks like Downloader UI works normally! No more parse errors.

    Streaming maps menu
    still not working. I guess it's totally different error.
     
    TerraUnity and Andreas12345 like this.
  8. Andreas12345

    Andreas12345

    Joined:
    Oct 17, 2013
    Posts:
    379
    Also here! It worked with the script.
    Just add it in asset folder and restart editor
     

    Attached Files:

    Razielwar and TerraUnity like this.
  9. inkostyakov

    inkostyakov

    Joined:
    Nov 14, 2016
    Posts:
    20
    Do anyone else have problems with Steam map menu item? Or only me?
     
  10. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    729
    Thanks for this, was going to share a similar approach to remove errors on project launch. But I'm wondering why you kept saying that you receive errors even after I mentioned where the issue was?

    Solutions: here & here
    Your replies: here & here
     
    Razielwar likes this.
  11. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    729
    No it is not an issue because actually you are not supposed to see anything at all when you select the Streaming Map menu. The "Streaming Map" menu is there to be accessed from the codes in "RuntimeOffline" script to bring up a window to show global map of the sever and select the starting point at level start.
    There is no way to call an editor window from within a monobehaviour script so we had to include that in the menu to get access to it. Sorry for the confusion, we try to put it elsewhere so users don't get puzzled.

    More on this, from TerraLand 3.2 you can select where on the server map you want the player to begin at level start. Simply enable checkbox "Show Starting Location" on top of the "RuntimeOffline" script in the scene hierarchy and this brings up a new window with the area map (If the server is opened for the first time, it will download the area map first).

    So you can pin anywhere on the map to become your level start location by clicking on the left mouse button and closing the window when done. This way the starting tile will be calculated from the server and all other tiles will be loaded corresponding to the one selected. The following picture shows the Streaming Map window with the selection pin where user defines starting location:

    Bend_Areamap.JPG


    By Default, if you don't pin a starting point, the area will be generated from the center tile in the server or you can manually enable checkbox "Start From Center" to set it manually. The "Preview Heightmap Resolution" & "Preview Satellite Image Resolution" define the resolution of these global maps. Along with the satellite preview in this window, these global maps will be used for far viewing distance terrains if checkbox "Create Background Mountain" is enabled in the StreamingAssetsManager script in the scene hierarchy. So set these resolutions for this purpose.


    P.S. Don't forget to read the "ReadMe" files next to scene assets in project to get started about the setup. Here is the ReadMe context for the "Runtime Streaming Assets" folder sample scenes:


    Download sample databases from here:

    128px Heightmaps & 1024px Satellite Images per tile (May be laggy on low-end machines due to 1024px texture resolution):

    http://terraunity.com/freedownload/TerraLandStreaming_Asheville.zip
    http://terraunity.com/freedownload/TerraLandStreaming_Bend.zip
    http://terraunity.com/freedownload/TerraLandStreaming_Moab.zip
    http://terraunity.com/freedownload/TerraLandStreaming_Ogden.zip
    http://terraunity.com/freedownload/TerraLandStreaming_SanSebastian.zip
    http://terraunity.com/freedownload/TerraLandStreaming_ZionPark.zip

    1. Extract each downloaded zip file in the root directory of the project next to the "Assets" folder
    2. Find the gameobject with "RuntimeOffline" script on it in scene hierarchy
    3. Enable "Project Root Path" checkbox in "RuntimeOffline" script
    4. In the text field of "Data Base Path", type the name of extracted folder in step 1 and run the scene
     
  12. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    729
  13. Andreas12345

    Andreas12345

    Joined:
    Oct 17, 2013
    Posts:
    379
    Yes i can confirm that it works now.
     
    Razielwar and TerraUnity like this.
  14. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    729
    cool thanks ;)
     
  15. inkostyakov

    inkostyakov

    Joined:
    Nov 14, 2016
    Posts:
    20
  16. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    729
    Thanks for the confirmation. Did you ever read this post which answers your question at the first sentence?
     
  17. inkostyakov

    inkostyakov

    Joined:
    Nov 14, 2016
    Posts:
    20
    Oh, sorry! Looks like I missed you post! Thanks for reply!
     
    TerraUnity likes this.
  18. Apposl

    Apposl

    Joined:
    Nov 27, 2017
    Posts:
    44
    I'm assuming this does not work with Voxeland?
     
  19. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    729
    If the asset works on Unity's built-in terrain system, then yes but since Voxeland is a custom voxel based terrain engine and not a heightfield-based so guess there are no benefits.
     
  20. Apposl

    Apposl

    Joined:
    Nov 27, 2017
    Posts:
    44
    Thank you so much for your personal reply, sir! Struggling to understand things over my head and appreciate the response.
     
    TerraUnity likes this.
  21. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    729
    Well, that was my 666th reply so things might sound weird :D
     
  22. esoob

    esoob

    Joined:
    Mar 12, 2019
    Posts:
    10
    When i creating terrain with Terraland tutorial i get this error "there is no available imaginary at this zoom level. Decrease Grid Size/ Image Resolution or Increase Area Size ".. i can't solve this problem...
     
  23. Apposl

    Apposl

    Joined:
    Nov 27, 2017
    Posts:
    44
    At 1:11am my time. :)
     
    TerraUnity likes this.
  24. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    729
    Isn't the pop-up warning self-explanatory? You are trying to generate a small area with high resolution settings which there is no data available on the servers with that resolution. Decrease Grid Size/ Image Resolution or Increase Area Size.
     
  25. esoob

    esoob

    Joined:
    Mar 12, 2019
    Posts:
    10
    How did you find this problem. I have the same.
     
  26. Andreas12345

    Andreas12345

    Joined:
    Oct 17, 2013
    Posts:
    379
  27. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    729
    Q:
    A:
    Also if you watch the tutorials, you will find that in "ENGINE RESOLUTION PRESETS" section in TerraLand Downloader, you can select "MANUAL" mode and go on setting all UI parameters including Heightmap/Satellite Image resolutions along with the Area Size in kilometers... I think this is so simple to understand that Resolutions are very dependent to Area Size when dealing with mapping servers with raster data.
     
  28. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    729
    Hey everyone,

    Regarding unwanted terraces and steps in heightmap surface, read here (demo scenes available in package): https://forum.unity.com/threads/ter...eal-world-gis-data.377858/page-5#post-2878638

    What you need to consider first in order to download heightmap for the area is that if the resolution is too much while there is no data in the original server, ESRI resamples heightmap and then outputs the render for TL and also TL sometimes resample again to match with Unity's proper terrain resolution. So the more the resolution of heightmap is in comparison to the original data, the more resampling and unwanted jaggies and terrace banding artifacts will occur.

    The average resolution of elevation data on ESRI servers throughout the entire Earth surface is approx. 10 meters per pixel, so with this in mind, if you have for example a 5x5 km2 area, the best optimal resolution for the heightmap would be 512x512 pixels => 5000 / 10 = 500 (512 as PO2 value).

    With this simple math before setting the heightmap resolution, you will get the most optimal resolution for the surface without those terracing artifacts and without needing the extra Smooth operations resulting less extra pixels/polygons and subsequently better performance.

    The same happens for imagery when the total satellite image resolution is too high for a small specified area and you have to consider setting the optimal resolution for that based on the coverage resolution.
     
  29. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    729
    TerraLand 3 is on sale for 50% on AssetStore. Grab it here
     
  30. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    729
    Hey all, regarding the UI drifting issues where mouse clicks place in other points, it is a Unity bug for some 2019.x versions due to its new UI updates which will be resolved by Unity soon. The issue is shown in the following video:



    We'll make an update release when this issue is gone by Unity for official Unity 2019.x compatibility; in the meantime using Unity 17.2 up to the latest 18.3 is safe.
     
    Last edited: May 3, 2019
  31. Rowlan

    Rowlan

    Joined:
    Aug 4, 2016
    Posts:
    884
    Questions before I buy. I read this in the description of your asset:

    How is it with the license of those maps then? What's the origin, i. e. which websites are those?

    What's the "highest resolution" in pixels? Do you have a doc with the details?
     
  32. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    729
    First of all, TerraLand creates terrains using ESRI servers only and other mapping sources are used for visual references in Interactive Map window in order to select area on a 2D map which you don't need to have any registrations/tokens to view them. Regarding licensing of the data, refer to this post here: https://forum.unity.com/threads/ter...eal-world-gis-data.377858/page-4#post-2798301

    The elevation and imagery data source in TL is ESRI as the only built-in source for automatic downloading of data with global coverage.

    To get more info regarding the coverage and area resolutions refer to this post: https://forum.unity.com/threads/ter...from-real-world-gis-data.377858/#post-2478547

    And the updated coverage list: https://forum.unity.com/threads/ter...eal-world-gis-data.377858/page-7#post-3241628

    Using TL you can still increase/decrease terrain resolution to your liking using "TerraLand Terrain" component processors which you insert terrain(s) in that and perform upsampling or downsampling for the heightmap if you need to. Also TL supports terrain generation and editing from your own custom elevation/imagery through "TerraLand Terrain" component.

    The coverage for the elevation service in TL is described here:
    https://www.arcgis.com/home/item.html?id=3af669838f594b378f90c10f98e46a7f
    https://www.arcgis.com/home/item.html?id=58a541efc59545e6b7137f961d7de883

    For a visual representation of the coverage bring up the interactive map in the first link mentioned above here: https://www.arcgis.com/home/webmap/viewer.html?useExisting=1&layers=3af669838f594b378f90c10f98e46a7f

    Important Note: Sometimes the total satellite image resolution is too high for the specified area which is small:
    https://forum.unity.com/threads/rel...world-environments.532304/page-7#post-4478173
    https://forum.unity.com/threads/rel...world-environments.532304/page-7#post-4443109
    https://forum.unity.com/threads/rel...world-environments.532304/page-7#post-4455826
     
    Rowlan likes this.
  33. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    729
    TerraLand 3.3 is live now in your account on our website & AssetStore.

    Here is the change list:
    • Added Unity 2019.1.x compatibility
    • Added CultureInfo fix for users with different regional & language settings caused parsing errors
    • Removed TLS certification authentication errors with .Net 4.6

    TerraLand is now on 50% May Madness Sale.
     
    Bartolomeus755 likes this.
  34. Bartolomeus755

    Bartolomeus755

    Joined:
    Jun 20, 2013
    Posts:
    240
    Nice, but after clicking the download at the TerraUnity website, I get an 404 error.
     
  35. lex24

    lex24

    Joined:
    Feb 4, 2013
    Posts:
    10
    I think this is not ideal solution because this affects someones code utilizing CurrentCulture and expecting system locale when composing and parsing strings without culture parameter. It affects not only numbers, but also DateTime and other things.
    Instead you should consider replacing
    Code (CSharp):
    1. latUser = double.Parse(runTime.latitudeUser);
    with
    Code (CSharp):
    1. latUser = double.Parse(runTime.latitudeUser, CultureInfo.InvariantCulture);
     
    Last edited: May 5, 2019
    EirikWahl likes this.
  36. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    729
    It was being uploaded when you tried but it's live now ;)
     
    Bartolomeus755 likes this.
  37. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    729
    Thanks for the hint but we have parsing codes all over the place and maybe in hundreds of lines so decided to include this universal solution. But honestly custom formatting separators have to adopt themselves with a more standard format, is that right?
     
  38. lex24

    lex24

    Joined:
    Feb 4, 2013
    Posts:
    10
    I'm more worried about the fact that this solution affects printing.
    May be it is possible to extend your parsers to switch CurrentCulture to InvariantCulture and than switch it back.
     
  39. Bartolomeus755

    Bartolomeus755

    Joined:
    Jun 20, 2013
    Posts:
    240
    Upps, my fault..It works now, thank you. :)
     
    TerraUnity likes this.
  40. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    729
    No problem :)

    I think this does not affect system's settings at all and just set it for the threads which are active within the target app! Or am I wrong?
     
    Last edited: May 5, 2019
  41. lex24

    lex24

    Joined:
    Feb 4, 2013
    Posts:
    10
    Can't build. It doesnt matter which platform.
    Lots of "The name ... does not exist in the current context" errors related to UnityEditor namespace classes that is not available during runtime.


    (trying to build included demo scene)

    In editor everything works fine because UnityEditor namespace is available in editor
     
    Last edited: May 7, 2019
  42. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    729
    @lex24 thanks for the report, will check all the scripts soon to be prepared for the build.

    Before the fix by us, simply put preprocessors to wrap the editor codes: https://docs.unity3d.com/Manual/PlatformDependentCompilation.html

    In your case, open the script in your IDE and put the whole script lines or the part which is editor-based between these lines:

    Code (CSharp):
    1. #if UNITY_EDITOR
    2.  
    3. // Editor codes here
    4.  
    5. #endif
     
  43. benthroop

    benthroop

    Joined:
    Jan 5, 2007
    Posts:
    134
  44. julianr

    julianr

    Joined:
    Jun 5, 2014
    Posts:
    1,108
    I was going to pick this up today too! Hopefully it will be back with a reason why
     
  45. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    729
    @benthroop @julianr Just a few hours ago TerraLand has been temporarily deprecated from the AssetStore due to inclusion of a commercial package (Windridge City) assets without any notifications.

    But it will be live again with the new update. These assets were some building models used for Offline Streaming showcase scenes in TerraLand but will be removed in the update.

    Unfortunately this happened while we are on May Madness sale on AssetStore but the AssetStore support team guaranteed to get this back as soon as the re-submission in a few hours.

    Because of this, we have decided to run the sale on our website too from now on until May 20th, so it will be available 5 more days in comparison to the AssetStore's sale end date. TerraLand is available now on 50% off with the price of $24 (as it is on AssetStore's), get it from here: http://terraunity.com/product/terraland-3/
     
    julianr likes this.
  46. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    729
    TerraLand 3.4 is live now in your account on our website and is under approval on AssetStore.

    Here is the change list:
    • Removed all 3rd party assets from the package
    • Replaced streaming assets demos' building assets with new generic prefabs
    • Added preprocessors for editor-time scripts to bypass errors on build

    Due to a conflict in the latest version submission (ver. 3.3) in AssetStore with guidelines, that version is bypassed and after approval from the AssetStore you will see the version 3.4 and TerraLand's status will be out of deprecation.

    If you can not wait for the long approval times on AssetStore, you can now get TerraLand 3.4 for $24 with 50% off from our website here: http://terraunity.com/product/terraland-3/
     
    Alish1977 likes this.
  47. lex24

    lex24

    Joined:
    Feb 4, 2013
    Posts:
    10
    I want to build runtime api demo on webgl.
    After stripping references to System.Windows.Forms Unity succesfully compiled webgl.
    Unfortunately it does not start to download heightmaps and satellite images.
    Is it possible to make it work on webgl?
     
  48. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    729
    I'm not sure about the TL's streaming system compatibility with WebGL but it may be because of connectivity restrictions existing in WebGL scenes: https://docs.unity3d.com/Manual/webgl-networking.html

    So the best bet is to trace the issue through logs so that we can find a workaround if possible.
     
  49. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    729
    UPDATE:

    @everyone If the issues in the latest available version from AssetStore bugs you so much and you are in a hurry to get the latest release with fixes while it is under review by UAS, simply register on our website from here: http://terraunity.com/my-account/ and send us your registered email and Invoice No. from AssetStore so that we can setup your account to have access to the latest release packs as hundreds of our AssetStore customers already doing this.
     
  50. lex24

    lex24

    Joined:
    Feb 4, 2013
    Posts:
    10
    Continuing my previous post,
    unfortunately TerraLand Runtime API sample scene does not start to download anything also.
    TerraLand Runtime API sample scene works only in editor =(
    I'm using TerraLand 3.2 from AssetStore with all fixes described on this forum page earlier.

    I have requested access to latest fixes by contact form on http://terraunity.com/
    hope latest version builds work fine.