Search Unity

TerraLand 2 – High Quality Photo-Realistic Terrains from Real-World GIS Data

Discussion in 'Assets and Asset Store' started by TerraUnity, Jan 5, 2016.

  1. antoripa

    antoripa

    Joined:
    Oct 19, 2015
    Posts:
    1,163
    That's great ....
     
  2. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251
    Hay, wanted to inform that latest major Beta version of the Runtime API demo is released and uploaded on our website. Access to the download links and get more info from this page:

    http://terraunity.com/worldexplorer/


    Or directly download executables as usual from the links below:

    Windows: http://terraunity.com/freedownload/TerraLand_WorldExplorer_Win.zip
    Mac: http://terraunity.com/freedownload/TerraLand_WorldExplorer_Mac.zip


    Download Quick Guide: http://terraunity.com/TerraLand_WorldExplorer_tutorial.pdf




    The demo now runs pretty smooth without any lags and glitches as during the recent weeks of development we were working on the performance side of the API to maintain a constant reasonable FPS in game. I'm happy to say that the performance as the most important factor in our pipeline is in the final stage for a stable release while large chunks of elevation and imagery data needs to be fed into terrains in a very active streaming system.

    We've also changed some of the default parameters as the optimal settings to run on a decent machine. Most of these settings are present in the demo's options menu so you can simply play with them and see which one best fits your platform. Take a look at the quick guide pdf to get started about the system's settings. Later, we will add some presets for easier API setup targeting for desired platforms.

    Another great improvement of the system is about the memory management. If you set the high settings in demo, you will probably end up with hundreds of Megabytes of streaming data queued and released in various threading functions and coroutines which needs special care not to run out of memory. The key feature in TerraLand Runtime API is re-usability. This means that all coding variables being loaded up with large data files in any formats will be populated at the level start and then will be loaded/unloaded during the gameplay as a circulated system without encountering any resource wasting and memory leaks. Then the GC Collection and other memory management routines will come into play to prevent any data overflowing.


    Recent changes:
    • Better performance for the system to achieve a constant reasonable FPS during gameplay
    • Better file handling and memory management
    • Re-written some of the delaying options in the API for better performance
    • Changed most of the default settings to get optimal performance out of the system
    • Better terrain stitching operation
    • Terrain shaders are tweaked a little bit to remove overlapping areas (Still in development)
    • Custom elevation based Fish Eye effect to simulate Earth roundness at higher elevations
    • More interesting and arcade style camera rig to follow the player airplane
    • Lots of other new features and bug fixes.

    TODO:
    • Custom user elevation & imagery data loading on online/local servers to generate worlds
    • Cache data for later use in previously navigated locations
    • Connecting TerraLand MapsMaker component to remove satellite image shadows on the fly

    There are still lots of other major and minor ideas but the above list is already in development and will be released soon.
     
    jamexist, Excir and antoripa like this.
  3. antoripa

    antoripa

    Joined:
    Oct 19, 2015
    Posts:
    1,163
    It's really great .....

    1) Will that be a part of Terraland or a separate product ?
    2) When will be avaialbe for development as Unity package ?
     
  4. jf3000

    jf3000

    Joined:
    Dec 31, 2013
    Posts:
    166
    So thats a no.
     
  5. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251
    Whatever said here is definitely regarding TerraLand development and the Runtime API is part of TerraLand.

    Currently, we are wrapping up everything to be included in TerraLand as an easy to use API, so expect to see this included in the upcoming weeks. But as this has been taking long already, the release will be there with less feature dead-ends so that users can have quicker access to the API and it is going to be updated progressively later.
     
  6. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251
    What are you referring to exactly?
     
  7. Frednaar

    Frednaar

    Joined:
    Apr 18, 2010
    Posts:
    153
    Hello I am really interested in Terraland but also the new version of Terra3 .

    are you planning to have an upgrade from Terrraland to Terra3 or even better a prerelease beta program for Terra 3?

    thanks
    Fred
     
  8. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251
    Still no decisions made regarding the upgrade from TerraLand but actually TerraLand's capabilities are only about 1/10th of the whole system. Also we will set a low price for this to fit for the market & indie developers in contrary to Terra +3's price before.

    All previous and current Terra +3 costumers will have a free transition to this new product before the release. The Beta program will start when we are closer to the release date.
     
    hopeful and antoripa like this.
  9. Frednaar

    Frednaar

    Joined:
    Apr 18, 2010
    Posts:
    153
    that's great news thanks, I also subscribed to your mailing list...
     
  10. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251
    Thanks everyone, I hope we get the Runtime API in your hands sooner :)
     
    antoripa likes this.
  11. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251
    Just a quick note about the latest capabilities; you may know that TerraLand can now create terrains in both Editor & Runtime.

    In the Editor, the terrain is static for a certain defined area with certain boundaries and terrains do not get updated while in Play mode.

    In contrary the upcoming Runtime Engine in TerraLand gives you the ability to start from a certain location on Earth and travel through the whole earth without any limitations of how far you navigate in your scene, the terrains will be generated dynamically on the fly around the player based on its world position.


    We have been asked many times about the unwillingly artifacts and banding created on terrain surface when applying elevation data on them.

    Whether you are in the Editor or Runtime modes, you may find your terrains with unwanted jaggies, terraces, banding and non-smoothed terrain heights as the following picture which shows a terrain with 1024 heightmap on it:


    TerraLand_1024_UnwantedTerracesJaggies.jpg



    Below picture shows the same terrain after 1,2 and 3 steps of real-time smoothness:

    TerraLand-Resolutions.jpg



    The Smoothing Operation in TerraLand is available in both Editor & Runtime

    In the Editor plugin, the smoothing operation is part of "TerraLand Terrain" component in "Smoothen Operation" section of the UI. So from there you can smooth out terraced terrain surfaces in the editor.

    In the Runtime demo, the smoothing settings is located at the "Main Settings" menu and the parameter is called "Terrain Smoothness Steps". Changing the value to higher means more smoothing on surface while 0 value means no smoothing at all as the original obtained data from server.

    Please note that more smoothing steps result in more washed away surfaces and obviously losing some high frequency details.





    You can also lower the defined heightmap resolution to save performance, memory and also extra Smoothing operations as follows:


    512 Heightmap Resolution with no Smoothing applied:

    TerraLand_512_UnwantedTerracesJaggies.jpg



    256 Heightmap Resolution with no Smoothing applied:

    TerraLand_256_UnwantedTerracesJaggies.jpg



    So in the end, it is up to you to choose between available options based on your needs and requirements. Also as the upcoming product comes up which TerraLand is just a part of it, terrain surfaces will benefit from using natural Erosion & Terrace filters along with custom terrain shaders, so that non of these artifacts will exist and no extra steps are required.


    To show you exactly what these info and pictures mean, I've setup a sample project for you to open it up in Unity and check different conditions for yourself. The project coordinates are based on your custom settings. There are corresponding Preset files which can be loaded in TerraLand Downloader's "Preset Management" tab at the top so that you can see all setup parameters in your TerraLand UI.

    On each main terrain parents in the Hierarchy, you will see different Pixel Resolutions for terrains which is based on the area heightmap resolution and this value is simply:

    Area Size (8000) / Heightmap Resolution (1024/512/256) = Pixel Resolution

    Every time the Pixel Resolution value is closer to the original data resolution, so there will be less resampling and so the less banding and artifacts in terrain surface.


    Download here: http://terraunity.com/freedownload/TerraLand-HeightmapAndResolution.unitypackage
     
    Last edited: Apr 5, 2017
    jamexist, Excir and antoripa like this.
  12. Aeonvirtual

    Aeonvirtual

    Joined:
    Oct 14, 2015
    Posts:
    33
    I just downloaded TerraLand and on start up, when I press accept on the dialog, I get this error:


    The second line is the file its trying to move that I debug.Logged out to see what is happening. The file exists on my my drive at that location.

    Can someone help me get this sorted out?

    Never mind, I ran Unity as administrator and that fixed the problem.
     
    Last edited: Jan 6, 2017
  13. Aeonvirtual

    Aeonvirtual

    Joined:
    Oct 14, 2015
    Posts:
    33
    One more thing though:
    Why is the heigth of the terrain always set to 8848? I presume thats the height of the tallest mountain but what it does for anything that isn't everest is that it wastes height precision. In my flatter areas I get stair steps that I can't blur because of this. Why not set the height in the terrain to the highest pixel in the height map so that we have the most height resolution possible?
     
  14. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251

    Glad you could sort the issue out. But to give more info on the subject for the other users experiencing this, read the following:

    The launcher pop-up window has some issues whenever you are on Mac or if you don't have admin rights. This has been discussed a lot before here.

    Refer to the following posts:

    https://forum.unity3d.com/threads/t...eal-world-gis-data.377858/page-3#post-2674491
    https://forum.unity3d.com/threads/t...eal-world-gis-data.377858/page-3#post-2649372
    https://forum.unity3d.com/threads/t...eal-world-gis-data.377858/page-4#post-2760191

    So if you are still having issues with the pop-up launchers, GO TO ALL EDITOR FOLDERS IN YOUR PROJECT, FIND THE 2 SCRIPTS NAMED "TERRALANDSETTINGS.CS" & "TOURNAMENTSETTINGS.CS" AND DELETE THEM. THE LAUNCHERS WILL NO LONGER POP UP AGAIN.

    These errors won't be there in future version as it has been already solved and will be included in the next update so you won't face these difficulties.
     
  15. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251
    Good find and question at the same time.

    Yes, the 8848 value for the height of the generating terrains is based on the elevation of Mount Everest in the data. But there is a reason for this. I know that understanding the sizes, resolutions, dimensions and their connective parameters is quite difficult when it comes to 3D terrain generation and we have come a long way to finally produce a fully flexible system in TerraLand. I'm going to explain some of the corresponding parts based on our topic in details as follows.

    First off, it has nothing to do with the height/surface-heights precision. Each generated terrain has its maximum precision for its shape generation.

    The stair steps you see on the surface is because of the Elevation Exaggeration/Vertical Factor of height values on terrain. So whenever the heights get higher, these artifacts may occur and the un-smooth gradients from the original data will be revealed. The blurring you mention in those jagged areas will be handled using smoothing operations in heightmaps and that's why it's in TerraLand.

    Just a few posts ago we have got into this topic in details and prepared a sample scene to better understand the logic behind different heightmap resolutions and different smoothing steps and mixing of the two by each other. See the post and download the sample project from here:

    https://forum.unity3d.com/threads/t...eal-world-gis-data.377858/page-5#post-2878638

    To extend my explanations, I will direct you to some of our resources targeting specifically to our topic.

    In TerraLand Downloader, the top-right tab called Options is there so you can set the Elevation Exaggeration after terrain generation in your scene, whether it's a single terrain or any number of terrain chunks. This is useful when the overall surface heights and shape of terrain(s) is too high or too shallow. Take a look at this part of video tutorial to see it in action: Edit Generated Terrain Heights In TerraLand

    Also this option is available in the "Heightmap Downloader" section even before generating terrain(s) if desired.


    Regarding the 8848 height value in generating terrains, this is where it gets a bit trickier. In the following part of the video tutorial here: Generate Multiple Layers of Matched-Up Overlapping Terrains In TerraLand

    There is already terrains in your scene and the user tries to generate another layer of terrains but with different Area Size and different Heightmap & Imagery resolutions for far viewing distances in this case.

    Both set of terrains as layers share the same center geo-point defined by lat/lon coordinates in "Area Location" section. So in the end these two sets of terrains has to be overlapped on each other to cover a higher close-up viewing terrains in the center and far viewing terrains at the borders.

    All this is happening and terrains can match up perfectly with each other because of that magic static value of 8848.

    Following is some more technical details if you are curious;

    Actually each terrain's heightmap obtained from the server has normalized values in its data only based on its cropped region so it means that the returned heightmap has fully white pixel(s) in its peak along with fully black pixel(s) in its lowest elevation regardless of its neighbor data chunks and the whole Earth's data set.

    But that's not ideal to have each heightmap has its own arbitrary height values as this ends up with non matched up overlapping terrains. So all returned heightmaps from the server needs extra operation to be normalized between a static lowest and highest value. Hopefully, this operation does not affect the final quality and precision.

    The highest point on Earth based on ESRI's data is Mount Everest with the elevation of 8848 and the lowest point is Dead Sea with the elevation of -423 as it is below sea-level considered as 0 elevation. So TerraLand can also generate terrains from bathymetry data (below sea-level surfaces), check here:
    https://forum.unity3d.com/threads/t...from-real-world-gis-data.377858/#post-2453702

    The same procedure is applied in the WorldExplorer demo in TerraLand runtime features where you can enable Far Terrains in scene and those far terrains will be placed and matched up under the main centered terrains around the player and all terrains get their updates whenever needed as the player moves in the world.


    The last subject I'm going to mention as a hint is the "SET UNITS TO 1 METER" button in "New Terrain Settings" section. You will notice that in there, you can set any arbitrary Area Size Units value for the whole generating area to define final terrain size in Unity units. When you press the "SET UNITS TO 1 METER" button, each Unity units will be considered as 1 meter.

    So for example a 10km x 10km area on map will generate an area of 10000 Unity units for generating terrains in the scene whether it's a single terrain or a set of terrain tiles. There is also an info box below this button to display each units real-world meters and each terrain chunk's final size in kilometers.

    Setting the Unity units to be considered as 1 meter in real-world by the above option makes the scales of everything in the scene to be perfectly matched up with the terrain(s). Suppose that you have to import a car into the scene and get it running, so if you have setup the 3D car model's scale correctly based on "1 meter = 1 unit" in Unity, everything will be setup and hopefully make your life easier.

    FYI, in WorldExplorer demo of Runtime Features, each Unity units is also considered as 1 meter to scale up the scene and other 3D elements correctly as real-world scales.


    Check out the following video tutorial which the first 5 minutes of it explains what you need to create a tile of terrains for your desired area from scratch and use "TerraLand Terrain" component to edit generated terrains.




    Amir Badamchi
    CEO of TerraUnity
     
    Last edited: Jan 9, 2017
    jamexist, Excir and antoripa like this.
  16. Aeonvirtual

    Aeonvirtual

    Joined:
    Oct 14, 2015
    Posts:
    33
    Thanks for your reply, I think I can find a way to get more smooth terrain.

    One more error that I have on unity 5.5:
    get_dataPath is not allowed to be called from a ScriptableObject constructor (or instance field initializer), call it in OnEnable instead. Called from ScriptableObject 'TerrainGenerator'.
    See "Script Serialization" page in the Unity Manual for further details.
    UnityEngine.Application:get_dataPath()
    TerrainGenerator:.ctor()
     
  17. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251
    As already said, just lower the heightmap resolution or apply smoothing whether before generating terrains in TerraLand Downloader's "Heightmap Downloader" section or "Smoothen Terrain Heights" section in TerraLand Terrain component.


    Yes, these kinds of warnings happen every time there are API changes in newer Unity versions. But hopefully this is just a warning and not an error, so you can ignore it and Clear them in Console window. These don't affect any functionalities and you are good to go.

    However, it has been solved already and the fix will be included in the next update.
     
  18. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251
    Triplanar Procedural Textured Tessellated Shader With Realtime Geom Blending On Terrain ;)


     
  19. John-G

    John-G

    Joined:
    Mar 21, 2013
    Posts:
    1,122
    Does Run time API require DX11?, downloaded the demo but everything is pink in game:(

    EDIT: Changed some settings and running now.
     
    Last edited: Jan 24, 2017
    TerraUnity likes this.
  20. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251
    Glad you could sort it out. For anyone else experiencing similar issues:

    You just need to go to the GRAPHICS settings in the menu and disable "Clouds" or "Atmospheric Scattering" or "Volumetric Lighting" and check which of them causing the issue so that hopefully you will get rid of the pink colors.

    There is no DX11 features in the demo, but as we use some 3rd party packages, it has some rendering issues in Macs or older PC machines.

    The good news is we are going to implement our own cloud system integration which is more realistic with higher performance to have fly-throughs as in real-world. Also improved Atmospheric Scattering with fully dynamic Day/Night cycle. New media will be shown here after production.
     
    John-G likes this.
  21. CarlIsCool

    CarlIsCool

    Joined:
    Apr 12, 2015
    Posts:
    3
    I'm having a problem with the downloader where it always stops downloading before the images are finished. For example, if I create a new scene and use the South Sister default settings, it will download about 14 of 16 images and then stop. I've tried different geographic regions, map sources, Unity versions, even different computers all with similar results. I'm hoping I'm just doing something stupid since I'm new to Unity. Any help is appreciated, I really need to get this sorted out soon. Thanks!
     
  22. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251
    It's so weird especially when you say you tried different possibilities. Because when you say it downloads 14 images out of 16, it means that the downloader does fine so why not doing the rest of the downloads! Unless something such as a firewall or network limiter stops the connections to maintain data transfer.

    Have you tried different Resolution Presets in the "Engine Resolution Presets" section? Because one guess is that it is related to the amount of data transferred.

    Anyways, hopefully TerraLand comes with some advanced debugging and errors bypassing options which will help you to finish failed operations which I'm sure even advanced TerraLand users are not aware of.

    When you press button "Generate Terrain" or "Generate Images" to download satellite images, 2 additional buttons will appear below it. One is "Cancel" and the other one is "Force Finish".

    Pressing the "Cancel" button will cancel the downloading operation without applying any final operations to completely stop the downloader and terrain texturing.

    The "Force Finish" button becomes useful in your case, when you have some of the images downloaded but not all of them but you still need the successful ones to be applied on your terrain; So pressing this button will stop the downloader but does the terrain texturing operation at the end and leave the failed downloaded images with a dummy "Not Downloaded" texture for future reference.

    After that you can easily go to the "Failed Images Downloader" section and re-download previously failed images to finally be applied on your terrain(s). Take a look at this part of the video tutorial to find more info about this section:

    Retrieve Failed Downloading Images in TerraLand


    And I don't think you ever do anything stupid at all :)
     
  23. CarlIsCool

    CarlIsCool

    Joined:
    Apr 12, 2015
    Posts:
    3
    Thanks for the fast reply! I've noticed that the more images involved in the download, the less likely it is to finish successfully. However, the Failed Images Downloader worked great so I'm not that worried about it anymore. I wish I noticed it sooner but that's what I get for not watching the tutorials :)

    The only problem now is that I can't get any elevation to download at all. I wanted to dig deeper so I captured my network traffic with Wireshark. I can see where I'm requesting the specific area from arcgis and I get a response from arcgis with a URL to download the image. Then there's an attempt to download the image but arcgis responds with an "Invalid URL" (400) message. Any Ideas? If it helps, I can send you the Wireshark capture.
     
  24. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251
    Welcome. Yes, maybe sending Wireshark capture can help but at the end it's obvious that there is something with your network but I like to see the capture anyway.

    Another possibility is that the TerraLand package has not been imported properly and maybe some files are corrupt. Re-download the package and test it again in a fresh empty project. Also check the project in other machines with different network access and see if the problem persists and share the results in here.
     
  25. Deleted User

    Deleted User

    Guest

    Is there any chance of a demo video, or screen shots on satellite image(s) to splat maps workflow?

    1). How are the splat layer amounts, set up? as well as the color ranges?
    (can I choose to blend, to say just 6 layers, or using plugins, 12, 64, splat layers, etc.)

    2) Where are the splat textures(tileable) for those splat layers created, come from? ie, sand/dirt/grass/rock (when terrain is fully converted)

    (I am using World Composer/Terrain composer workflow, shadow removal, color range to splat layer.). its just taking too long, problems with WC source images / bad exposure, wrong seasons, hundreds of hours with PS 'clone brush' fixing seams..actually the whole Terra integrated system looks great,
    thanks-

    Patrick
     
  26. CarlIsCool

    CarlIsCool

    Joined:
    Apr 12, 2015
    Posts:
    3
    Alright, I've solved my problem. I bypassed my router and connected directly to my modem. Now the imagery tiles all download on the first try and the elevation is working as expected. It's so strange because I had the exact same problem on my office network. I don't really understand the ArcGIS SDK but I could see that it was generating a URL to download the TIFF I requested but the URL always returned "Error 400: Invalid URL". Maybe it's a firewall setting that breaks the ArcGIS exchange. Either way it's working now. Thanks for your help!
     
  27. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251
    @ForceVFX Good uncovered questions, I'll get back to you soon in here with details.

    @CarlIsCool Glad you could work it out, welcome to the 3D Earth ;-)
     
    Last edited: Feb 1, 2017
  28. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251
    @ForceVFX Sorry to get back here late.

    First of all, TerraLand operates on top of Unity's built-in terrain system, so no special terrain meshes or shaders will be used to create terrains.

    Also the MapsMaker component of TerraLand is somehow in its Beta stages and will become more accurate and faster in the future.

    The splat layer count can be as much as existing splat layers you want on your terrain. You simply create splat maps using MapsMaker component as single textures including the proper RGBA channels to represent texturing layers and finally replace it with the existing splat map in your terrain data using this simple script put in Editor folder of your project.

    This way you can have as many splat layers as you want to have on Unity terrains.

    For the color ranges in the splatmap itself, it's just RGBA as in any splatmaps saved in a Tiff or PNG image file.

    For generating layers and filling each channel in splatmap, firstly we need a clean satellite image without any shadows and micro details if there are any for best output. So as the first step in MapsMaker we do the following:

    • Insert the original satellite image as the input image to be processed by dragging & dropping it from the Project panel into the Satellite Image field of the MapsMaker UI
    • Press "Show Image Display" button to see the inserted image in a new zoom-able window
    • Go to the "Shadow Remover" section and select the color picker to define the shadow color & brightness in the satellite image
    • In the Satellite Image Viewer window zoom in to the area which has shadows in it and select a shadowed point by the color picker
    • There are 2 options of "Shadow Brightness" & "Healing Block Size" which affect the final shadowless image. So playing back and forth with these settings will get you to the best results.
    • "Shadow Brightness" changes the selected shadow color's brightness with a slider to be more controllable. Usually we set it for a bit higher value so that shadowed areas will be detected better.
    • "Healing Block Size" is related to the original image's resolution and defines the healing cell size which needs to be taken from other un-shadowed areas of the image and being stamped on shadowed areas.
    • In this case, we leave the 2 settings untouched and press the "Eliminate Shadows" button at the bottom of the UI so that a shadowless image will be created next to the original satellite image.
    Shadow Remover Section

    MonumentValley_ShadowRemoverSettings.jpg



    Result

    MonumentValley_ShadowRemoval.gif



    Now we head over to the "Colormap Generator" section which is an optional step but becomes useful when the original satellite image has high frequency details and/or many extra details which is not needed to be included in the Splatmap or Landcover image at the end.

    The Colormap is also useful for terrain shaders which support colormaps in their inputs as a more accurate map for color mapping from a raw satellite image.

    • Insert the previously generated shadowless satellite image as the input image to be processed by dragging & dropping it from the Project panel into the Satellite Image field of the MapsMaker UI
    • Playing back and forth with the 3 provided settings of "Erosion Radius", "Smoothness" & "Sharpness" will get us to the best results.
    • "Erosion Radius" is the size of pixels in each Erosion operation throughout the whole image in order to remove the smaller details and colors in the image.
    • "Smoothness" is the value to define the attack of the surrounding Erosion cells to achieve a soft or hard falloff between eroded areas.
    • "Sharpness" sets the sharpness of the final eroded result to bring back bigger washed away details in the image.
    • In this case, we leave the 3 settings untouched and press the "Generate Colormap" button at the bottom of the UI so that a colormap image will be created next to the inserted shadowless satellite image.
    Colormap Generator Section

    MonumentValley_ColormapGeneratorSettings.jpg



    Result

    MonumentValley_ColormapGeneration.gif



    And finally we get to the point to have a proper Splatmap/Lancover image out of our original satellite image as follows:


    • Insert the previously generated colormap image as the input image to be processed by dragging & dropping it from the Project panel into the Satellite Image field of the MapsMaker UI
    • Select the output format of the generating Splatmap between PNG & Tiff
    • "Map Smoothness" is the value to define the attack of the surrounding color range cells to achieve a soft or hard falloff between detected color range areas.
    • When "Automatic Mode" is on, the MapsMaker will automatically detect top used colors in the inserted satellite image by the help of "Color Damping" & "Filter Radius" values in the settings and set the layers. When this option is turned off, the user have to manually set a Color, its Output Channel and its Radius for each layer in the splatmap.
    • "Filters Count" define the total number of colors to be taken and fill in the 4 layers of Red, Green, Blue & Alpha channels in the final splatmap. The values above 4 indicates that each RGBA layer can potentially have more than 1 color in it. For example if the Filters Count value is set to 5 and the "Output Ordering" is set to "Sequential", the Red channel of the splatmap can hold 2 colors from the image while the other 3 channels only represent 1 color in them.
    • "Color Damping" defines the damping between detected/selected colors in the splatmap where they can be blended with each other.
    • "Filter Radius" is the pixel size for each generation cell to finally create a seamless splatmap image.
    • "Output Ordering" defines whether the layers have to be filled in a sequential ordering or as soon as their colors are detected. This option does not affect the final quality or shape of the generating layers in the splatmap and it's there as an optional preview setting.
    • When you set the "Automatic Mode" on and finished setting up the parameters, you should press "Generate Filters" button so that MapsMaker will analyse satellite image and detect top colors in it to be used in the final splatmap layers.
    • Finally by pressing the "Generate Splatmap" button, MapsMaker start to generate the Splatmap/Landcover image out of your inserted satellite image.
    Landcover Generator Section

    MonumentValley_SplatmapGeneratorSettings.jpg



    Result




    Not judging by the other product as I never checked it, but most of the process you mentioned does exist in every project and all these operations need to be in place one by one to get the best results. In above mentioned steps you can actually skip some steps and still get similar results but i wanted to get you started about all the settings in there. And the source satellite images always have these problems with them not to be in a seamless proper form as you have mentioned some of the affecting elements.

    But fortunately, we are going to make these process a lot faster and fully automatic so you don't need to be worried about final results and being lost in the settings. We have a lot of other major tasks in our pipeline but will definitely improve the MapsMaker soon and also implement in into the Runtime engine of the TerraLand.

    Thanks for the kind words anyway ;-)

    Amir Badamchi
     
    Last edited: Feb 12, 2017
    Akshara, jamexist, Excir and 2 others like this.
  29. Deleted User

    Deleted User

    Guest

    Great explanation!...now See why it took time,,answered my questions! Thanks

    P-
     
    TerraUnity likes this.
  30. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251
    Welcome, will try to make a video tutorial for MapsMaker later.
     
    John-G likes this.
  31. Deleted User

    Deleted User

    Guest

    I purchased TerraLand yesterday. I do not see any runtime API exposed. I need to do something similar to WorldExplorer but to not see a project for it or help on the API calls. Where can I find it?
     
  32. Deleted User

    Deleted User

    Guest

    When I try to use Terrains To Mess in TerraLand Terrains, the panel shows a yellow warning triangle and "NEEDS MESH IMPORTING IN THIS PROJECT". I can't find this script or component. If I hit the Convert button, a dialog says "No Terrains Selected" even though they are.
     
  33. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251
    Thanks for the purchase. Send us an email with the payment's Invoice No. to this address "info@terraunity.com" so that we can confirm it.

    Then you just need to register on our website from here: http://terraunity.com/my-account/ and we'll setup your account manually so you will have access to the latest TerraLand packages.

    In your account, the Runtime package is named "TerraLand – TerraLand Runtime API v1.0 Project" including the source code of the WorldExplorer demo and the implementation along with 2 Win/Mac build packages separately.

    Newer version with a lot of bug fixes and improvements plus more media and C# class documentation of the API will be released soon.
     
  34. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251
    Your question brought up a new tutorial specifically about TerraLand Terrain component and its "Terrain To Mesh" converter.

    TerraLand Terrain as part of the TerraLand is a multi-processor component to operate various terrain manipulation techniques over inserted terrains.

    Currently, these operations are:
    • NEW TERRAIN SETTINGS: Generate terrains out of user own custom elevation data regardless of the data resolution and defined number of terrain chunks using advanced re-sampling operations if needed
    • TERRAIN NEIGHBORS: Sets the terrain neighbors for seamless Terrain System's LOD & Tessellation if this data is lost some how
    • TERRAIN SPLITTER: Splits a single terrain in a grid based form (like any available mapping solutions) into desired number of terrain tiles
    • SMOOTHEN TERRAIN HEIGHTS: Smooths out inserted terrains and removes jaggies on them
    • EXPORT ELEVATION DATA: Exports elevation/heightmap data from the inserted terrains in 2 formats of RAW & ASCII Grid file used by ESRI and many GIS applications
    • IMAGE TILER: Takes a folder containing of terrain's satellite image tiles and texture inserted terrains by these satellite images
    • TERRAIN TO MESH: Converts inserted terrain(s) to 3D mesh in OBJ format to be used inside Unity or any other 3D modelling software
    • MESH TO TERRAIN: Converts any inserted mesh object into terrain
    • GEO-COORDINATES CONVERTER: Converts geo-coordinates between Decimal Degrees (DD) format and Minute, Degree, Second (MDS) format.


    In TerraLand Terrain, like any other TerraUnity/TerraLand components, you input terrain(s) by dragging and dropping them into the Offline Data section of the UI for the existing terrains.

    • So you simply need to insert a terrain object by dragging and dropping it from the Hierarchy into the "Single Terrain" slot
    • Or a terrain parent object containing of terrain tiles by dragging and dropping it from the Hierarchy into the "Terrain Chunks" slot in this section to be recognizable by TerraLand.
    Whenever any existing terrain object(s) are inserted in the Offline Data section, the info bar at the top changes color from Red to Green indicating that already generated offline data is available for processing as in the following image.


    TerraLandTerrain_OfflineDataSection.jpg



    Now that you have desired terrain(s) inserted, you can do any of the operations introduced in the UI on your terrains (e.g. Terrain To Mesh).


    TerraLandTerrain_TerrainToMeshSection_PlaceInTheScene.jpg


    The "NEEDS MESH IMPORTING IN PROJECT" is just a warning to the user which indicates that the generating terrain meshes will be imported into the project in order to be placed in the scene. This warning does not mean that there are any missing scripts or extra components needed.

    As it takes a lot of time on higher poly meshes (sometimes millions of polygons) to be imported in Unity, users must be aware of that.

    If you disable the "PLACE IN THE SCENE" option, this warning will go away and you can save an .OBJ mesh file from your terrain anywhere outside your project for later usage in any 3D modelling software or Unity.


    The power of TerraLand's "Terrain To Mesh" converter is that it can generate terrain meshes regardless of the number of input terrain(s) whether it is just a single terrain or a tile of 256 terrains for example. It can simply generate a seamless terrain mesh surface out of terrains.

    The same behavior applies to other TerraLand's processors and it works out of the box regardless of inserted data resolution and terrains' number which makes it a powerful tool for terrain analysis and manipulation.



    For testing proposes, we took a 2K terrain consisting of 4 terrain chunks stitched together and converted into 3D mesh objects through 16th, 8th, 4th, half and full resolution of the original data.

    FYI, a terrain like this has more than 4 million polygons (2049 x 2049 = 4198401) to be processed.


    Here are the results:
    • At 16th Resolution: 1 mesh part with total of 32768 tris
    • At 8th Resolution: 3 mesh parts with total of 131072 tris - (65534 x 2) + 4
    • At 4th Resolution: 9 mesh parts with total of 524288 tris - (65534 x 8) + 16
    • At Half Resolution: 33 mesh parts with total of 2097152 tris - (65534 x 32) + 64
    • At Full Resolution: 129 mesh parts with total of 8396802 tris - (65534 x 128) + 8450
    * Unity splits mesh models into sub-meshes due to 65535 vertices limit during the import.

    As you see the generated 3D mesh converted from terrain objects have 8,396,802 triangles which is equal to half of the the previously mentioned original terrain's 4,198,401 polygons holding a 2049x2049 heightmap in it.
     
    Last edited: Feb 24, 2017
    Excir likes this.
  35. davaguco

    davaguco

    Joined:
    Feb 21, 2017
    Posts:
    20
    I imported the full 2.2 package to my unity 5.5. After I accepted 2 menus to setup configuration, then I restarted Unitity, and one error is showing:

    get_dataPath is not allowed to be called during serialization, call it from OnEnable instead. Called from ScriptableObject 'DockArea'.
    See "Script Serialization" page in the Unity Manual for further details.
    UnityEngine.Application:get_dataPath()
    TerraLand_Terrain:.ctor()
    UnityEditorInternal.InternalEditorUtility:LoadSerializedFileAndForget(String)
    UnityEditor.WindowLayout:LoadWindowLayout(String, Boolean)
     
  36. davaguco

    davaguco

    Joined:
    Feb 21, 2017
    Posts:
    20
    More errors:

    get_dataPath is not allowed to be called from a ScriptableObject constructor (or instance field initializer), call it in OnEnable instead. Called from ScriptableObject 'MapsMaker'.
    See "Script Serialization" page in the Unity Manual for further details.
    UnityEngine.Application:get_dataPath()
    MapsMaker:.ctor()
    UnityEditor.EditorWindow:GetWindow(Type)

    and

    Request error (error):
    UnityEditor.AsyncHTTPClient:Done(State, Int32)
     
  37. davaguco

    davaguco

    Joined:
    Feb 21, 2017
    Posts:
    20
    When I hit play, more than 999 errors show, I can't type them all here, I guess I did something wrong.

    Retrieving array element that was out of bounds
    UnityEditor.SerializedProperty:GetArrayElementAtIndex(Int32)
    TournamentSettings:GetQuality() (at Assets/Editor/TournamentSettings.cs:422)
    TournamentSettings:BackupSettings() (at Assets/Editor/TournamentSettings.cs:843)
    TournamentSettings:Initialize() (at Assets/Editor/TournamentSettings.cs:112)
    TournamentSettings:OnGUI() (at Assets/Editor/TournamentSettings.cs:155)

    .Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:249)
    UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:242)
    UnityEditor.HostView.OnGUI () (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:76)

    /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:249)
    UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:242)
    UnityEditor.HostView.OnGUI () (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:76)

    culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:249)
    UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:242)
    UnityEditor.HostView.OnGUI () (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:76)

    Assertion failed on expression: 'Floorf (offsetsIter->y) == offsetsIter->y'

    ...
    and many more
     
  38. Captain-Cutwood

    Captain-Cutwood

    Joined:
    Feb 18, 2015
    Posts:
    35
    Ditto almost,
    Not able to install and run TerraLand even after removing the notorious pop up scripts. Running Windows 10 with Unity 5.5 and have tried everything including re-downloads, re-imports, clean project folder - every possible idea I can come up with here. If it did work past this roadblock perhaps I would get the same as the above user? As is here, I get 999+ overflowing errors that continue to stream if cleared from the console. As follows X many repeats:

    ArgumentNullException: Argument cannot be null.
    Parameter name: obj TerrainGenerator.Update () System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222) Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation. System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:262)
    UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:255)
    UnityEditor.HostView.SendUpdate () (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:329)
    UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at C:/buildslave/unity/build/artifacts/generated/common/editor/EditorApplicationBindings.gen.cs:239)

    Please advise what to do, perhaps you have an update available in the next day or two? I have no programming background.
     
  39. davaguco

    davaguco

    Joined:
    Feb 21, 2017
    Posts:
    20
    I have tried several options, nothing makes these 3 errors dissapear:

    1) get_dataPath is not allowed to be called from a ScriptableObject constructor (or instance field initializer), call it in OnEnable instead. Called from ScriptableObject 'TerraLand_Terrain'.
    See "Script Serialization" page in the Unity Manual for further details.
    UnityEngine.Application:get_dataPath()
    TerraLand_Terrain:.ctor()

    2) Retrieving array element that was out of bounds
    UnityEditor.SerializedProperty:GetArrayElementAtIndex(Int32)
    TournamentSettings:GetQuality() (at Assets/Editor/TournamentSettings.cs:422)
    TournamentSettings:BackupSettings() (at Assets/Editor/TournamentSettings.cs:843)
    TournamentSettings:Initialize() (at Assets/Editor/TournamentSettings.cs:112)
    TournamentSettings:OnGUI() (at Assets/Editor/TournamentSettings.cs:155)
    UnityEditor.EditorWindow:GetWindow(Boolean, String, Boolean)
    TournamentSettings:Update() (at Assets/Editor/TournamentSettings.cs:134)
    UnityEditor.EditorApplication:Internal_CallUpdateFunctions()

    3) NullReferenceException: Object reference not set to an instance of an object
    TournamentSettings.GetChildProperty (UnityEditor.SerializedProperty parent, System.String name) (at Assets/Editor/TournamentSettings.cs:284)
    TournamentSettings.GetQuality () (at Assets/Editor/TournamentSettings.cs:431)
    TournamentSettings.BackupSettings () (at Assets/Editor/TournamentSettings.cs:843)
    TournamentSettings.Initialize () (at Assets/Editor/TournamentSettings.cs:112)
    TournamentSettings.OnGUI () (at Assets/Editor/TournamentSettings.cs:155)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:249)
    UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:242)
    UnityEditor.HostView.OnGUI () (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:76)
    UnityEditor.EditorWindow:GetWindow(Boolean, String, Boolean)
    TournamentSettings:Update() (at Assets/Editor/TournamentSettings.cs:134)
     
  40. TheMessyCoder

    TheMessyCoder

    Joined:
    Feb 13, 2017
    Posts:
    522
    Hi
    Would TerraLand world with MegaSplat?
    Thanks
     
  41. davaguco

    davaguco

    Joined:
    Feb 21, 2017
    Posts:
    20
    I have downloaded World Explorer. I need to replace the airplane with another player. I added the model (Ethan) and the controller (a free third person controller from the asset store), and modified the camera to follow Ethan. It seems to work and I can run around the terrain, jump and fly around. So far, everything seems to be working fine, it's quite fun to fly over my town.

    However, I would like the world generator script to recognize Ethan as the new player. If I open the Terraland Runtime scene, and replace the Player on the Game Manager script inside the GamaManager object to Ethan, the game won't start because it shows the following two errors:

    1) UnassignedReferenceException: The variable loadingHeightmap of GameManager has not been assigned.
    You probably need to assign the loadingHeightmap variable of the GameManager script in the inspector.
    UnityEngine.GameObject.GetComponent[RectTransform] () (at C:/buildslave/unity/build/artifacts/generated/common/runtime/GameObjectBindings.gen.cs:35)
    GameManager.Awake () (at Assets/Runtime API Development/Scripts/GameManager.cs:146)

    2) NullReferenceException: Object reference not set to an instance of an object
    GameManager.Awake () (at Assets/Runtime API Development/Scripts/GameManager.cs:191)

    I have tried to edit the Game Manager script, but I can't find how the player is related to a loadingHeightmap variable. There is a .dll file that I can't edit because it's compiled (where is the source of this file?).

    Also, another question. The next step for me would be to add OSM data to the terrain, either through another asset, or maybe I could wait for you to release next version. Will this next version include the OSM floor plans import option? Are we talking about weeks, months or years ahead to be able to get this feature?

    Thanks.
     
  42. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251

    None of the above mentioned items you see in the console are errors but are warnings which can be ignored and cleared after all. They don't affect Unity's behavior nor TerraLand's. However, they have been suspected and removed in the future version.

    These frequent warnings may appear due to Unity's API changes and are inevitable. But currently TerraLand is compatible with all Unity 5.x versions including the latest versions without any problems at all.
     
  43. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251

    Did you manage to work it out? More info on similar occasions as follows:

    Regarding the Tournament demo package, just send us and email with your login info on our website after registration so we can manually setup your account to have access to the latest download links for your packages. THE BENEFIT OF DOWNLOADING FROM YOUR ACCOUNT ON OUR WEBSITE IS THAT IT HAS THE PACKAGES SEPARATE FOR YOU, SO IF YOU DON'T WANT TO IMPORT THE TOURNAMENT PROJECT IN YOUR OWN PROJECT, you can only import the TerraLand 2.1 plugin package and use that in your project.

    The launcher pop-up window has some issues whenever you are on Mac or if you don't have admin rights. This has been discussed a lot before in the official discussion thread and if you read the posts carefully, all of you questions will be answered.

    Refer to the following posts:

    https://forum.unity3d.com/threads/t...eal-world-gis-data.377858/page-3#post-2674491
    https://forum.unity3d.com/threads/t...eal-world-gis-data.377858/page-3#post-2649372
    https://forum.unity3d.com/threads/t...eal-world-gis-data.377858/page-4#post-2760191

    So, to get rid of the pop-up launchers which always try to stay, GO TO ALL EDITOR FOLDERS IN YOUR PROJECT, FIND THE 2 SCRIPTS NAMED "TERRALANDSETTINGS.CS" & "TOURNAMENTSETTINGS.CS" AND DELETE THEM. THE LAUNCHERS WILL NO LONGER POP UP AGAIN. These errors won't be there in future version as it has been already solved and will be included in the next update so you won't face these difficulties.
     
    antoripa likes this.
  44. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251

    I guess we already replied your questions through emails but here I copy/paste solutions for the future reference and followup.


    First of all please let us know that are you on Mac or Windows? Which Unity version are you in? What is the target platform in build settings. What is the OS version of the machine?

    Does the pop-up launchers in the beginning of the package installation and decompression in your project pass and is everything setup after pressing accept in these launcher windows?

    First thing that comes to my mind is that you have chosen a target platform different than a standalone Windows/Mac in Unity. You can switch between platforms by pressing "Ctrl + Shift + B" so that you can set the build platform to Standalone mode. TerraUnity plugins will work in standalone mode and then after any scene generation you can remove plugins from you project and make builds to your target platforms such as IOS and android.

    If None of the above conditions are met, so get back to us with more info about the machine system requested at the beginning of this email and as a very important step, please check the package in other available machines to see if the problems persist or not.

    Also, are you a registered customer on our site and made the purchase directly from our website or made the payment through the AssetStore? If you have made it through the AssetStore, so please register on our website from here:
    http://terraunity.com/my-account/

    and send us the login info so that we can manually setup your account to get access to the latest package downloads. Below I copy paste some info further to our discussion to get you started regarding our case:

    THE BENEFIT OF DOWNLOADING FROM YOUR ACCOUNT ON OUR WEBSITE IS THAT IT HAS THE PACKAGES SEPARATE FOR YOU, SO IF YOU DON'T WANT TO IMPORT THE TOURNAMENT PROJECT IN YOUR OWN PROJECT, YOU CAN ONLY IMPORT THE TERRALAND 2.1 PLUGIN PACKAGE AND USE THAT IN YOUR PROJECT. THIS WILL NARROW DOWN ANY POSSIBLE ISSUES AND ENDS WITH BETTER REPORTING.

    REGARDING THE LAUNCHER POP-UP WINDOW, IT HAS SOME ISSUES WHENEVER YOU ARE ON MAC OR IF YOU DON'T HAVE ADMIN RIGHTS. THIS HAS BEEN DISCUSSED A LOT BEFORE IN THE OFFICIAL DISCUSSION THREAD AND IF YOU READ THE POSTS CAREFULLY, ALL OF YOU QUESTIONS WILL BE ANSWERED.

    REFER TO THE FOLLOWING POSTS:

    HTTPS://FORUM.UNITY3D.COM/THREADS/TERRALAND-2-HIGH-QUALITY-PHOTO-REALISTIC-TERRAINS-FROM-REAL-WORLD-GIS-DATA.377858/PAGE-3#POST-2674491
    HTTPS://FORUM.UNITY3D.COM/THREADS/TERRALAND-2-HIGH-QUALITY-PHOTO-REALISTIC-TERRAINS-FROM-REAL-WORLD-GIS-DATA.377858/PAGE-3#POST-2649372
    HTTPS://FORUM.UNITY3D.COM/THREADS/TERRALAND-2-HIGH-QUALITY-PHOTO-REALISTIC-TERRAINS-FROM-REAL-WORLD-GIS-DATA.377858/PAGE-4#POST-2760191

    SO, TO GET RID OF THE POP-UP LAUNCHER, GO TO ALL EDITOR FOLDERS IN YOUR PROJECT, FIND THE 2 SCRIPTS NAMED "TERRALANDSETTINGS.CS" & "TOURNAMENTSETTINGS.CS" AND DELETE THEM. THE LAUNCHERS WILL NO LONGER POP UP AGAIN. THESE ERRORS WON'T BE THERE IN FUTURE VERSION AS IT HAS BEEN ALREADY SOLVED AND WILL BE INCLUDED IN THE NEXT UPDATE SO YOU WON'T FACE THESE DIFFICULTIES.

    FYI, NEW INTERESTING FEATURES ARE COMING TO TERRALAND. CHECK RUNTIME FEATURES FROM HERE IF YOU HAVEN'T ALREADY:

    HTTP://TERRAUNITY.COM/WORLDEXPLORER/

    HTTPS://FORUM.UNITY3D.COM/THREADS/TERRALAND-2-HIGH-QUALITY-PHOTO-REALISTIC-TERRAINS-FROM-REAL-WORLD-GIS-DATA.377858/PAGE-5#POST-2864110


    And last but not least, please note that none of these encountered errors you receive have to do anything with the TerraLand package and these are caused by Unity's internal settings and its frequent API changes.
     
    antoripa likes this.
  45. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251

    Please refer to the previous replies.
     
  46. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251
    Since TerraLand operates on top of Unity's built-in terrain system, so any 3rd party plugins and assets will work alongside TerraLand without any issues.

    So if MegaSplat is compatible with Unity terrains, it will definitely work with TerraLand. However, please note that we are developing our own shading solutions to be matched with our products for the high end and realistic graphics for terrains and natural elements. Some alpha screenshots have been already shared in this thread so you can check them out. More info will be announced soon.
     
    antoripa likes this.
  47. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251

    The variable "loadingHeightmap" in the GameManager script is not related to the player (in your case Ethan) at all. It is a UI element located under the "Loading UI" gameobject in the hierarchy.
    It seems that it lost its assignment in the GameManager script, so simply drag & drop this gameobject from the hierarchy into the "Loading Heightmap" field of the script in the inspector so you are good to go.

    The other remaining errors or warnings you receive are because you have changed your target player instead of an aeroplane as in the original demo scene. So you are free to remove/edit any aeroplane-related lines in your code to be matched with a third person controller in order to avoid receiving any unrelated and missing components on your character player.

    TerraLand's core features and implementations are put in a compiled DLL and most of the needed functions and variables are exposed in the Runtime API. The C# documentation on how to customize the Runtime generation will be released soon.

    For now, most of the exposed API is located in the "MainMenu" script as variables which can be set through the Main Menu scene UI during the gameplay. Check this script to get started on how to customize the system. As you probably know, this scene has to be loaded first to fill in the parameters of the WorldExplorer in the gameplay scenes.

    Regarding the OSM data manipulation and urban areas generation to create roads, buildings and any man-made constructions, we have been developing a lot on this subject recently and have working examples already running in our scenes. But please note that theses features will not be included in the TerraLand package and reserved for our upcoming product which we have talked about it earlier in this thread.

    So can't give a rough date about its release date but the good news is that we got back on this after a few months of many side projects beside TerraUnity, so the development process will be a lot faster. But I can promise it won't take more than 3,4 months from now until we have the initial version of the upcoming product in place. We have been progressing a lot on this project but as it is an ultimate solution using our all latest products in one package, so feature list is huge and it is a mega project for us.
     
  48. davaguco

    davaguco

    Joined:
    Feb 21, 2017
    Posts:
    20
    I managed to solve all the errors and warnings, thanks for your replies. I will wait until you reléase your final product. I hope we (Terraland 2 buyers) will have a Price reduction?? :p
     
  49. TerraUnity

    TerraUnity

    Joined:
    Aug 3, 2012
    Posts:
    1,251
    Nice to hear that, would like to see what you will come up on using Runtime API and share it here ;)

    Yes, regarding the new upcoming product mentioned earlier, TerraLand users can get that as an upgrade with a discounted price while Terra +3 users will make a free transition.
     
    davaguco likes this.
  50. Deleted User

    Deleted User

    Guest

    First of all, great product in the Runtime API. I've been using it for several weeks now and am able to take 6DOF data from a flight simulator and fly around generated 3D maps in realtime with a moving mini-map too. Good stuff.

    I got this far by breaking down your demo and throwing out all of the non-essentials to understand what was the core of the runtime need. I am not using your supplied prefabs, just the components directly. Please consider a minimal Scene like this in a future release to better show how the API works.

    I have run into one problem that is easy to work around but thought you should know about. There are six values on the Runtime script that must be set on the statically on the Runtime itself. If they are set only in the inspector window or in code on the component, various errors occur depending upon which one is not directly set.



    I'm finding more errors when setting values on the component values instead of Runtime. Here is a list of some of them. But there is likely other intereactions between them that I have not found. In all cases the values I'm setting on the component in code is the same as I set on the Runtime.
    if Runtime.concurrentTasksMenu is not used, the terrains will remain flat at 0 MSL.
    if Runtime.progressiveTexturingMenu is not used, TerraLand.TerraLandRuntime.worldIsGenerated will never be true.
    If Runtime.cellSizeMenu is not used, there will be a divide by zero error:
    DivideByZeroException: Division by zero
    TerraLand.TerraLandRuntime+<FillHeightsDynamic>d__45.MoveNext ()
    (wrapper dynamic-method) : (object)
    MovementEffects.Timing.Update ()



    Maybe I'm missing something here... Shouldn't I be able to set the values in the Inspector panel and let it run; no code setting for the component instance or Runtime?
     

    Attached Files:

    Last edited by a moderator: Mar 22, 2017
    TerraUnity likes this.