Search Unity

[RELEASED] Mercator – Rapid Terrain Prototyping and Iteration

Discussion in 'Assets and Asset Store' started by Daerst, May 27, 2018.

  1. Daerst

    Daerst

    Joined:
    Jun 16, 2016
    Posts:
    211




    teaser.jpg

    screenshot1.png

    screenshot2.png

    screenshot3.png

    ► Asset Store
    ► User Manual


    Mercator is a system allowing for rapid prototyping and iteration of terrain in Unity 3D. It does not aspire to be the most powerful, but the easiest and fastest tool to let you explore and shape the landscape you want to portray.

    EDITING CAPABILITIES
    • Intuitive, easy and fast
    • No more waiting: GPU-based terrain stamping with instant results
    • Not cast in stone: adjust any step of the terrain creation later on

    SHADER CAPABILITIES
    • Immediate procedural results based on your terrain's heightmap
    • Highly flexible layer-based configuration
    • Instantly change the look and feel of your terrain

    The system is comprised of two main parts. The first one is a terrain creation system that allows you to shape and modify the terrain with intuitive, stamp-like elements that influence its height map. Thanks to GPU-supported computing, your changes are visible in real-time without waiting for a baking process to finish. The full history of the Terrain is displayed in the Unity hierarchy window, obviating the need for stepping through history to undo changes.

    This terrain creation system is complemented by a highly flexible shader that allows you to place textures on your terrain without the need for painting or baking splat maps. The main advantage of the Mercator shader is that it reacts immediately to changes in the terrain, without requiring any baking or processing. It should be used to immediately get a feel for the terrain that you are creating and to experiment freely with different visuals. Note that for final production use, there are other shader packages that provide both better performance and visual quality.
     
    Last edited: Jun 16, 2018
    Mauri, Neviah and blackbird like this.
  2. blackbird

    blackbird

    Joined:
    Aug 9, 2011
    Posts:
    526
    looks really cool and useful , how does performance is on console ?
     
  3. Daerst

    Daerst

    Joined:
    Jun 16, 2016
    Posts:
    211
    Mercator is primarily an editor extension using the default Unity Terrain System, as such there are no performance implications for consoles. Shading-wise, the Mercator shader is designed for flexibility rather than speed, as stated above, so you will want to use it for pre-production rather than final release. But we didn't have a chance to test it on consoles yet, so YMMV.
     
    blackbird and Neviah like this.
  4. blitzvb

    blitzvb

    Joined:
    Mar 20, 2015
    Posts:
    284
    Cool!

    Does the terrain modification can work in game and in real-time ?

    Thanks in advance.
     
  5. Daerst

    Daerst

    Joined:
    Jun 16, 2016
    Posts:
    211
    Mercator is, for now, an editor tool and not meant for use in-game. That said, there's nothing that keeps you from trying ;)
     
  6. Daerst

    Daerst

    Joined:
    Jun 16, 2016
    Posts:
    211
    Last edited: Jun 16, 2018
    twobob likes this.
  7. brisingre

    brisingre

    Joined:
    Nov 8, 2009
    Posts:
    272
    you should know: that link's broken for anyone set to use the new asset store.

    I assume if you fixed it it would be broken for everyone else though...
     
  8. Daerst

    Daerst

    Joined:
    Jun 16, 2016
    Posts:
    211
    Thanks for the hint. It's now updated with the short URL, let's hope that works better.
     
  9. Daerst

    Daerst

    Joined:
    Jun 16, 2016
    Posts:
    211
    We just released the first patch for Mercator :) Version 1.0.1 ensures coherency between linear and gamma workflow.
     
  10. Coltenney

    Coltenney

    Joined:
    Mar 10, 2015
    Posts:
    21
    Your tool looks good. To me it seems this could really shine with an additional level of automation. I haven't purchased so I don't know what is currently in place but there should be an easy API to allow procedural placement of stamps. I think it would be a very easy/intuitive tool to make completely custom procedurally generated terrains, wouldn't you agree?
     
  11. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    923
    This look fantastic. Excited to see your texture video.
     
  12. Daerst

    Daerst

    Joined:
    Jun 16, 2016
    Posts:
    211
    Good idea! It's not hard right now (create a GameObject, add some components, done), but we'll add a helper function and some documentation to make this super easy :)

    Thanks! It might be some time before we get to making the shader tutorial, but the documentation is complete, so you can already play around with it :cool:
     
    pixelsteam likes this.
  13. Coltenney

    Coltenney

    Joined:
    Mar 10, 2015
    Posts:
    21
    Not sure if you have this feature, but it would be nice to build your own stamps from the terrain your working on. For example, I make a volcano from a couple of the built in stamps, I would like to highlight that volcano and extract the heightmap info from it and use that to make another stamp. You can probably already achieve this with duplicating gameobjects in the scene but it would be cumbersome to repeat the same terrain features across multiple scenes or projects.
     
    pixelsteam likes this.
  14. StaggartCreations

    StaggartCreations

    Joined:
    Feb 18, 2015
    Posts:
    809
    Can this be used to editing existing terrains? I'm looking to use stamps to simply flatten certain small areas on my terrain for buildings to sit on. Preferably, I don't want it to modify the splatmap, just the heightmap, is this possible?

    I'm working with a multi-tile terrain set up, it seems like Mercator only works with a single terrain. Do you have any suggestions on working with multiple terrains?
     
  15. Daerst

    Daerst

    Joined:
    Jun 16, 2016
    Posts:
    211
    For now, you can make an empty GameObject, drag all the related stamps underneath it and make a prefab out of it. Would this work for your case?

    There is a workflow for this which is detailed at the end of the User Manual. Currently it's pretty clunky, but it works. We'll improve on it. Please back up your terrain data before doing anything though :)

    You can easily modify the TerrainMaster to use a list of Terrains instead of only one, and then iterate over all of them. We haven't included this so far because ideally you wouldn't want every stamp to affect every terrain, but only the intersecting ones etc.
     
  16. StaggartCreations

    StaggartCreations

    Joined:
    Feb 18, 2015
    Posts:
    809
    Great, thanks for the answers! As long as I can save the stamps somewhere so that they retain their position it should be fine. If the stamping process is a little slow when processing every terrain that works for me, I can tie it into the deformation EasyRoads does for all terrains so it's like hitting two birds with one stone.

    I'll give the asset a try soon, if I have any feedback I'll be sure to drop by this thread :)
     
    Daerst likes this.
  17. evilangel89

    evilangel89

    Joined:
    Feb 8, 2017
    Posts:
    268
    Will this be included in a near future update ? For me this is currently the only deal breaker since I use a couple of terrains grouped together. I like your workflow so once multi-terrain becomes available I'd like to give it a try :)
     
  18. Daerst

    Daerst

    Joined:
    Jun 16, 2016
    Posts:
    211
    Yes, expect an update on this soon. Will keep you posted.
     
  19. HeadClot88

    HeadClot88

    Joined:
    Jul 3, 2012
    Posts:
    691
    Echoing this as well. I have multiple terrains in my scene and this would make my workflow so much easier. :)
     
  20. Teosis

    Teosis

    Joined:
    Jan 24, 2018
    Posts:
    20
    I second this too, would love a convenient way of working with multiple terrains. Any ETA on this?
    Bought the asset nevertheless though, as it is much better than the default unity terrain tools.
    Do hope that multiple terrains won't take too long to arrive.
    _
    If anyone is experiencing a huge FPS drop in the game mode (unity 2017.4.3f1) just disable Mercator TerrainMaster while playtesting, all the stamps applied will be preserved.
     
    Last edited: Aug 28, 2018
  21. Daerst

    Daerst

    Joined:
    Jun 16, 2016
    Posts:
    211
    @evilangel89 @HeadClot88 @Teosis Thanks for your feedback. How exactly would you like to see this feature implemented? Do you already have mutliple (connected) terrains in your scene, and Mercator should just work, or would you like Mercator to manage these terrains (i.e.create and connect them as required) for you?

    Work on this will begin next week.
     
    HeadClot88 likes this.
  22. HeadClot88

    HeadClot88

    Joined:
    Jul 3, 2012
    Posts:
    691
    @Daerst So - I have multiple terrains already connected but having the ability to create and connect them would be welcome as well. :)
     
  23. evilangel89

    evilangel89

    Joined:
    Feb 8, 2017
    Posts:
    268
    For me personally, If I choose mercator that's because I am willing to ditch the other tools out there. So I would like it implemented in a way it's all mercator driven :)
     
  24. Kuura

    Kuura

    Joined:
    Apr 16, 2015
    Posts:
    52
    This asset is looking really fun and easy to use. Am I understanding correctly that there is no support for texturing via splatmaps or other terrain shaders? Is it required to use the provided shader for the terrains?

    Say I wanted to use a great terrain shader like MicroSplat with 8 textures and maybe some manually placed texture stamps for some areas like desert etc; would this kind of workflow be possible with Mercator?
     
  25. Daerst

    Daerst

    Joined:
    Jun 16, 2016
    Posts:
    211
    Mercator so far doesn't use splat maps at all, meaning that a terrain that you create with Mercator will have no splatmap data. From here you can go either way: Use the Mercator procedural shader that ignores splatmaps, or create some splatmaps manually / using any tool you want and use a different terrain shader like MicroSplat :)
     
  26. Kuura

    Kuura

    Joined:
    Apr 16, 2015
    Posts:
    52
    Thanks for the confirmation!

    Are there any plans to support splatmaps in one way or another at some point? Using multiple tools would make the texturing process a bit cumbersome. Something like a simple ruleset for terrain angle/height based textures combined with custom stamps would likely make earlier terrain assets like TC2 obsolete.
     
  27. DespairBear

    DespairBear

    Joined:
    Nov 1, 2013
    Posts:
    214
    Looking into purchasing this in the next week or so. How is the current state of the asset in terms of known bugs and such? Looking at using this for forming terrains and then MegaSplat for texturing and such. The stamp based with the procedural tools approach seems like an amazing combination and something that I can't believe other tools don't take advantage of
     
  28. HeadClot88

    HeadClot88

    Joined:
    Jul 3, 2012
    Posts:
    691
  29. Daerst

    Daerst

    Joined:
    Jun 16, 2016
    Posts:
    211
    Yes - at some point, we would like to provide the option to make stamps affect splat maps too, and also bake the procedural ruleset of a configured Mercator procedural material to a splatmap texture. This is future stuff though, for now we'll focus on other areas of the asset.

    We have tested Mercator during development and in our own game project and fixed all bugs we encountered, so it's reasonably stable.

    I will push a tiny (two line) update to Mercator that will enable a basic form of working with multiple terrains. If you want to already try it out, this is the only change (MercatorTerrainStamp.cs, line 127 and 129):
    Code (CSharp):
    1. _pos[i].x /= terrainSize.x * (1.0f + 1.0f / heightMap.width);
    2. // ...
    3. _pos[i].z /= terrainSize.z * (1.0f + 1.0f / heightMap.height);
    Replace these lines. Then (here's the trick) to your GameObject that has the Mercator Terrain Master component, just add another one of those components and assign your second terrain. Do this for every terrain in your scene. We'll come up with a more convenient way in the future, but for now, this just works :) Check it out:

    upload_2018-9-6_19-28-9.png MercatorMultiTerrain.gif
     
    Last edited: Sep 6, 2018
    evilangel89 likes this.
  30. DespairBear

    DespairBear

    Joined:
    Nov 1, 2013
    Posts:
    214
    Love the asset. I actually prefer less than super HD terrain most of the time and I love the level of control this gives. I prefer creative control over photorealism any day of the week and yours is an excellent tool. I even imported my Gaia stamps to have some additional tools to use and it works perfectly. Will give you a great review today, keep it up!
     
    Daerst likes this.
  31. Daerst

    Daerst

    Joined:
    Jun 16, 2016
    Posts:
    211
    Thank you, I'm really happy to read this :) Let me know how it goes, your input is highly appreciated!
     
  32. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    1,770
    Could it ever work with 5.6.6 - I can hacx... not asking you to do it.

    Just wondering if there is just some namespacey stuff to fix. or is there some fundamental features that are 2017+ that are "required"
     
  33. Daerst

    Daerst

    Joined:
    Jun 16, 2016
    Posts:
    211
    Just imported Mercator in 5.6.1. There's a minor error in one of the Editor scripts, and the shader has some problems, but stamping works just fine :)
     
  34. mStep

    mStep

    Joined:
    Sep 24, 2012
    Posts:
    33
    Quick question on multiple terrains. I know it's already been asked a couple times, but if I set up multiple smaller terrains in a grid (supported natively in 2018.3) can I use the Mercator functionality to apply stamps/edits to multiple terrains? AKA stamp on a terrain edge, it applies to all terrains it overlaps naturally? Again, this functionality is now fully supported natively in 2018.3 with the default terrain editor.

    Thanks!
     
  35. Daerst

    Daerst

    Joined:
    Jun 16, 2016
    Posts:
    211
    @mStep Have you tried it with the steps above? If there have been no breaking changes, this should work. Of course it's more tedious than we'd like. I'll see what I can do about it.
     
  36. mStep

    mStep

    Joined:
    Sep 24, 2012
    Posts:
    33
    Hey, just bought/downloaded with 2018.3. Following along in the tutorial video and I'm running into some issues right away.

    When I load the Mercator-Clouds1 stamp and hover over my terrain, I get console error spam that says "UnityTextureFormat: unsupported texture format: 55". The stamp also doesn't look correct – it's way more extreme than in the video and doesn't seem to scale/rotate smoothly.

    Error:


    Stamp:


    Any help would be appreciated. Thanks!
     
  37. Ziplock9000

    Ziplock9000

    Joined:
    Jan 26, 2016
    Posts:
    194
    "Shading-wise, the Mercator shader is designed for flexibility rather than speed, as stated above, so you will want to use it for pre-production rather than final release"

    So for final release. (ie, the actual game) you recommend using another shader? What would be lost by using Unity's built-in shader, visually, not as a tool compared to the Mercator one?

    My point being, there's no point making a nice map if once the game is done it looks worse.

    Can you elaborate on this please. Thanks.
     
    StevenPicard likes this.
  38. jeromeWork

    jeromeWork

    Joined:
    Sep 1, 2015
    Posts:
    287
    Having done the terra shaping and texturing, or what you seem to be calling "pre-production" can I 'export' a final version of the terrain, independent of Mercator?

    I can see that having the Stampers editable keeps things flexible, but I'm worried that some assets and workflows (e.g. large terrains chunked into tiles and streamed) won't play so nicely with the MertcatorTerrainMaster and Stamps (reading through previous comments this seems to be the case).

    I read also that Mercator doesn't do splatmaps. Ideally the export functionality, if there is one, should translate the modelled terrain into a single (or tiled) Unity terrain with the appropriate splatmat - this would tie in with your vision of the asset as an Editor only utility?
     
  39. mStep

    mStep

    Joined:
    Sep 24, 2012
    Posts:
    33
    Any updates for 2018.3 support or the issues I mentioned in post 36? I'd love to get working with this :)
     
  40. Daerst

    Daerst

    Joined:
    Jun 16, 2016
    Posts:
    211
    This is mainly a disclaimer. Due to the runtime blending of textures, the shader is not optimal in terms of performance. That said, it might work just fine for your game. I just don't want people to expect the same performance in any case as with a fully optimized terrain shader that works with splat maps, but there's nothing that should keep you from trying if you like the look! It For performance and the ability to make manual adjustments, it would be optimal to do the splat map baking as a last step (read on below).

    For the terrain shaping, you can just remove (or disable) the TerrainMaster and there's your terrain :) You can export the heightmap using Unity's default option, and import it to another machine that has never seen Mercator before.

    That's true, and I agree that it would be cool to 'bake' what the procedural shader does into splat maps. It's not trivial though, so I can't make any promises here.

    Sorry for the delay. I just noticed that the texture import settings were changed. In 2018.3, you want to set the Format to Automatic and the Compression to None.

    upload_2019-3-7_10-41-4.png upload_2019-3-7_10-57-46.png
     
    Last edited: Mar 7, 2019
  41. AlienMe

    AlienMe

    Joined:
    Sep 16, 2014
    Posts:
    72
    @Daerst Great tool. Using 2018.3.9, tried updating the texture input settings as per your previous post, but I am still getting the same error.

    UnityTextureFormat: unsupported texture format: 55


    Following the island tutorial causes a lot of these errors in the console, and the stamps don't scale well.

    Any idea how to fix this? Thx!
     
  42. Daerst

    Daerst

    Joined:
    Jun 16, 2016
    Posts:
    211
    Hmm. The solution from the previous post fixed it for me. Could you post a screenshot of your import settings?
     
  43. AlienMe

    AlienMe

    Joined:
    Sep 16, 2014
    Posts:
    72
    I looked into the issue further and dug a bit around your code and the error is caused by the GPU acceleration on OSX (Use Metal on Editor enabled).

    Currently Mercator uses GPU acceleration if it detects UNITY_2018_3 or newer. Changing Mercator code to not use GPU acceleration ever, stops the error from happening, but then it is way too slow.

    Specifically the error is emitted when you try to get the content of the render texture as an array of floats from the GPU. This is as far as I got.
     
  44. DespairBear

    DespairBear

    Joined:
    Nov 1, 2013
    Posts:
    214
    Hey so it looks like in Unity 2019 terrain doesn't support custom terrain materials. At least, I'm not seeing a way to change the material to be custom anymore
     
  45. Daerst

    Daerst

    Joined:
    Jun 16, 2016
    Posts:
    211
    This is what I'm seeing in the latest beta:
    upload_2019-10-10_11-46-29.png