Search Unity

Terrain Composer2 a next generation GPU powered terrain tool.

Discussion in 'Assets and Asset Store' started by eagle555, Sep 16, 2012.

  1. Alex3333

    Alex3333

    Joined:
    Dec 29, 2014
    Posts:
    342
    I need the finished map (multiterrain) upload the new version in order to update textures and to place trees , objects. How to do it. what are the steps to perform?
     
  2. llJIMBOBll

    llJIMBOBll

    Joined:
    Aug 23, 2014
    Posts:
    578
    Just wanna say this is amazing, Im getting max fps with around 3000 objects... Using other terrain solutions I got around 40 fps. Even now with max lods for speedtree too, i have zero dips... Is this to do with GPU? You should advertise that fact more

    Thanx


    :D just 11ms
     
    Last edited: Oct 16, 2016
    John-G, arnesso, antoripa and 2 others like this.
  3. mkgm

    mkgm

    Joined:
    Apr 10, 2015
    Posts:
    134
    Nathaniel, I'm sooooo happy because all my prayers were answered....
    thanks for implementing the node auto-focus. :):):)
     
  4. nhf75

    nhf75

    Joined:
    Apr 5, 2013
    Posts:
    35
    Hi, how can i configure the masks in TC2 to get the same image of splatmap from worldmachine?
     

    Attached Files:

  5. Dorian-Dowse

    Dorian-Dowse

    Joined:
    Jun 2, 2016
    Posts:
    95
    Hi Nathaniel,

    I'm having a problem with Node masks that use height. They'll work for awhile then suddenly lose connection to the height data. I get a message popping up all the time, "The height output is not generated. This is needed. In the next version this will work on existing height maps". My understanding is this refers to existing terrains. However I'm using a new terrain that was generated with TC2. If I re-generate the terrain, then height masks work again, for a little while. Then they break again.
     
  6. TeamofLightMedia

    TeamofLightMedia

    Joined:
    Jul 19, 2016
    Posts:
    4
    I have a basic question. I am currently using unity terrain and trees, bushes and grass are not being batched. Very high draw calls. Does Terrain composer batch things like trees and offer better performance that unity's terrain editor?
     
  7. Tight-Tie

    Tight-Tie

    Joined:
    Oct 6, 2013
    Posts:
    13
    Hello

    I execute the following code in attempt to create my custom terrain but don't see the rusult of generation (just plain terrain). What do I do wrong?

    TC_Area2D area2D = TC_Area2D.current;
    if (area2D == null)
    {
    return;
    }
    if (area2D.terrainLayer != null)
    {
    Destroy(area2D.terrainLayer.gameObject);
    }
    GameObject terrainLayerGO = Instantiate(terrainLayerPrefab);
    area2D.terrainLayer = terrainLayerGO.GetComponent<TC_TerrainLayer>();
    area2D.terrainLayer.GetItems(false);
    TC_TerrainArea ta = area2D.terrainAreas[0];
    TerrainData terData = new TerrainData();
    GameObject flatTerr = Terrain.CreateTerrainGameObject(terData);
    flatTerr.name = "Terrain_x0_y0";
    terrain = flatTerr.GetComponent<Terrain>();
    ta.terrains[0].terrain = terrain;
    terrain.gameObject.transform.parent = ta.gameObject.transform;
    TC_Settings.instance.masterTerrain = terrain;
    TC_Generate.instance.Generate(true);
     
  8. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    I'm super curious. What exactly did you do with TC2 that improved performance over the standard workflow? I just upgraded to TC2 myself and would love to see such performance increases.
     
  9. TechDeveloper

    TechDeveloper

    Joined:
    Sep 5, 2016
    Posts:
    75
    Hi Nathan, how do you go about adding a terrain into the node?

    for example I have a terrain that im shaping as time goes on and I would to use your system for everything else.
    So i dont need any terrain generation.

    I've selected the first node and there is the option to plug in the following: Input Kind
    Terrain
    Noise
    Shape
    File
    Current
    Portal.

    I selected terrain but there isnt anywhere to drag it into. Could you explain how this works.
    also File option gives you image or raw image but I dont see 16bit Raw heightmap option, are you going to add this later?
     
  10. Dorian-Dowse

    Dorian-Dowse

    Joined:
    Jun 2, 2016
    Posts:
    95
    TC2 uses stamps. You should download the separate stamps pack to see how they work. You can convert your own RAW files into stamps by dropping them into the RawFiles folder. TC2 then makes a stamp out of it that you can use in a node.
     
  11. TechDeveloper

    TechDeveloper

    Joined:
    Sep 5, 2016
    Posts:
    75
    yes i know that. that's not my questio.
     
  12. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    I don't exactly understand what you mean, can you explain it in more details? I assume you mean the update from TC2 beta 6, to beta 7. You don't have to do anything...it should be compatible.

    You have to create a layer for each color channel, like in the image.

    TC2_Splatmap.jpg

    As soon as you click play/stop or loading another Scene or restarting Unity, you will need to regenerate the 'Height' output, because the textures aren't saved with the Scene to save disk space.

    TerrainComposer2 creates standard Unity terrain, so it doesn't do anything specific on terrain rendering performance. Grass is actually batched but trees/bushes are not. Unity is working on getting GPU instancing working for SpeedTrees, so will be very few draw calls. For grass there's a solution in the making called uNature:
    https://forum.unity3d.com/threads/c...e-trees-multithreading-and-more.401139/page-5

    TC2 is using standard Unity terrain, so performance is depending on that. GPU is only being used when generating, not when rendering terrain in runtime. So probably you have a good setup of trees and grass. The image looks stunning by the way :D

    The raw image is 16 bit raw greyscale image format. The image node is 8 bit images that Unity supports:
    http://www.terraincomposer.com/terraincomposer2-documentation/#stamps

    You mean you want to use TC2 on an existing terrain? At the moment you need to generate the 'Height' output for the other outputs to work, because of height/angle/convexity node. You can export the heightmap with Unity terrain script in settings.

    Nathaniel
     
    llJIMBOBll likes this.
  13. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Hello,

    I just got an email here's a quote:

    Does anyone here ran into this issue?

    Nathaniel
     
  14. KarelA

    KarelA

    Joined:
    Dec 30, 2008
    Posts:
    422

    Yes. Mega has changed recently in a way that it does not allow download stuff exceeding certain download threshold if you do not have an account. I made an account (did not download anything) and was able to download big files again.
    I think its best to find an alternative hosting solution.
     
  15. _Luthien_

    _Luthien_

    Joined:
    Apr 24, 2015
    Posts:
    52
    Hi Nathaniel,

    This would be great, because it would be much better performance-wise.

    However, the roadmap (https://unity3d.com/unity/roadmap) has the "Mac editor on Metal" listed under the Development header "In-progress, timelines long or uncertain".

    This suggests that it could still be quite a while :oops: ... I understand the squeeze you must be in, and I don't want to give up the wait and ask for a refund .. I'm much too eager to work with it even if it takes a good solid wait. Being able to use the metal compute shaders is worth that - at least as long as there is some trust that it will eventually happen (preferably within my lifetime :p ).

    It would be nice if can you could let us know if you hear any news from Unity about the "editor on Metal" route?

    Cheers
    Lúthien
     
  16. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    The CreateTerrains() method is already in the TC_TerrainArea script. It will create the terrains according to how the TerrainArea GameObject is setup. With splat textures, trees, grass, etc.

    All you need to do is this:

    TC_Area2D area2D = TC_Area2D.current;
    if (area2D == null)
    {
    return;
    }

    // Destroy the Terrain Layer that is currently assigned
    if (area2D.terrainLayer != null)
    {
    Destroy(area2D.terrainLayer.gameObject);
    }

    // Instantiate the Terrain Layer Prefab
    GameObject terrainLayerGO = Instantiate(terrainLayerPrefab);
    area2D.terrainLayer = terrainLayerGO.GetComponent<TC_TerrainLayer>();

    // Assign all nodes in Terrain Layer
    area2D.terrainLayer.GetItems(false);

    area2D.terrainAreas[0].CreateTerrains();

    TC_Generate.instance.Generate(true);

    Oki I will change it back to Dropbox then.

    Yes I will let you guys now.

    Nathaniel
     
  17. TechDeveloper

    TechDeveloper

    Joined:
    Sep 5, 2016
    Posts:
    75
    Yes I know you can use this method but I was wondering if you would be adding live terrain input.
    So I wouldnt have to export every time I made changes to the terrain.

    Its not a big deal, it would be cool though. I could apply all the rules of grass, textures (slope) ect and see in change in realtime as I modify the shape. simular to https://www.assetstore.unity3d.com/en/#!/content/64132

    I'd expect there would be a bit of lag though to keep getting the height data. however it could be worth experimenting with. having a custom node that you could have refresh rate settings ect. whats your thoughts on this?
     
  18. Alex3333

    Alex3333

    Joined:
    Dec 29, 2014
    Posts:
    342
    I have prepared a large map, cut up into small maps , as it already has maps Splatmap. Question! As the finished map is inserted into TC2 to edit the textures and placement of objects. Sorry for English ))
     
  19. antoripa

    antoripa

    Joined:
    Oct 19, 2015
    Posts:
    1,163
    Hi,
    I would know if the feature that when you place an object on terrain like a building is already included in the current beta release.
    And even if I can include in TC2 the terrain created with WC or if TC1 is included in the asset store package ( so I cnould use it with WC ). Thx
     
  20. Jarek-Defiler

    Jarek-Defiler

    Joined:
    Feb 6, 2015
    Posts:
    64
    Is TC2 able to export multiple terrain tile heightmaps as one?
     
  21. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Yes using existing terrain is planned for the next updates, indeed something like this is possible.

    I don't understand the question, can you show some screenshots of what you mean? You mean how to use the 'Image' node?

    Yes this is possible, you can see it in action in the example Scene. TC2 can even adjust the terrain for the building to fit.

    A WC heightmap can be directly used in TC2 as a stamp, the satellite images will be implemented for the next updates.

    Not yet, but this is planned for the next updates.

    Nathaniel
     
    antoripa and TechDeveloper like this.
  22. antoripa

    antoripa

    Joined:
    Oct 19, 2015
    Posts:
    1,163
    ETA for next update ?
     
  23. txarly

    txarly

    Joined:
    Apr 27, 2016
    Posts:
    197
    Hi,
    I would like to know if terrain streaming is already implemented as i can see in the projects scripts like terrain neighbours and multiterrainboost.In this case, any little guide how to use it?

    Thank you
     
  24. barikinil

    barikinil

    Joined:
    Apr 15, 2015
    Posts:
    11
    Hello,

    I have world composer files. one part height map and 100 parts tile satallite image files of terrain (10x10). I want to use this at TC2.

    I cannot add this raw height map and image to TC2. height map is raw and images is both raw and jpg format. i want to use this image as both terrain image and splat map for replace tree, grass, rocks, assets, and RTP textures. How could i do this.
     
  25. Matro

    Matro

    Joined:
    Mar 15, 2013
    Posts:
    38
    Can you have a single height map and scale it up until you are satisfied with the size or do you have to import many height maps.
     
  26. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,206
    You can transform any node, including image nodes, however you want. So yes, you can scale, position and rotate your heightmap instances in all axis with one source:)
     
  27. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Beginning of November...

    The streaming script itself not yet, but will come in the next updates.

    The raw heightmap you can add, a WC heightmap is a TC2 stamp...
    http://www.terraincomposer.com/terraincomposer2-documentation/#stamps

    Satellite images you will have to assign manualy to RTP colormap. RTP integration is planned for the next updates in November.

    Yes that is possible like Seneral explains...On top of that you can deform them with a curve.

    Nathaniel
     
  28. Xenobite

    Xenobite

    Joined:
    Jan 27, 2014
    Posts:
    15
    for World Machine users - GeoGlyph (by QuadSpinner) V2 is coming out - on sale untill the end of the month (few more days)
    (alpha already available for download if you preorder)
    https://vimeo.com/177044963
    https://vimeo.com/184216516

    usualy I wouldn't advertize, but I just got it and it's awesome

    combined with TC2 you can do amazing stuff :)
     
  29. Bas-Smit

    Bas-Smit

    Joined:
    Dec 23, 2012
    Posts:
    274
    For anyone playing around with 5.5 betas, the TC_Compute compute shader fails to compile, with errors like this:

    Shader error in 'TC_Compute.compute': Compilation failed for kernel 'NoiseIQNormal' [0x00000000 - unknown error] 'warning X4714: sum of temp registers and indexable temp registers times 1024 threads exceeds the recommended total 16384. Performance may be reduced


    This will in turn cause errors like this:

    Kernel 'MethodAdd' not found
    UnityEngine.ComputeShader:FindKernel(String)
    TerrainComposer2.TC_Compute:OnEnable() (at Assets/TerrainComposer2/Scripts/Generate/TC_Compute.cs:93)


    setting a lower number of threads in the compute shader like below fixes this:

    #pragma kernel NoiseIQNormal
    [numthreads(512, 1, 1)]
    void NoiseIQNormal(uint id : SV_DispatchThreadID) { ...

    Not sure if this is the most desirable fix and which numberr to use, but at least you can continue with what you're doing ;)
     
    Seneral likes this.
  30. txarly

    txarly

    Joined:
    Apr 27, 2016
    Posts:
    197
    anybody knows how to export the hole terrain heigthmap into a raw image?
    I have a multitiled terrain with 36 chunks , i can export one by one and join together but i wonder if there is other way to do this.

    thanks
     
  31. Matro

    Matro

    Joined:
    Mar 15, 2013
    Posts:
    38
    So do I scale the heightmap node if so how and how do I measure the results to know if I am getting close to the correct size for the Island and will I have more tiles on the rendered terrain.
     
  32. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,206
    Well there is a measure tool (just expand "TerrainComposer2" in the hierarchy) but for a stamp where you know the pixel size or the total size it's easier.
    You can move, rotate and scale any node just like a normal object using the scene gizmos when selected, or edit the values directly. You can also adjust the height (equivalent to the y position) in the field below the preview.
    There you also see "Global Scale" and "Size". Multiplying Size with the global scale gives you the exact size of the total stamp in unity units (usually one metre). That should make it easy for you to scale it apropriately;)
    It depends entirely upon you whether you want to use multiple tiles or just one, depending on your use case. There are several other posts about this:)
    Hope I understood everything correctly...
     
  33. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Looks great, thanks for sharing :)

    Thanks for sharing, strange that suddenly 512 is the limit instead of 1024. I will change this for Unity5.5

    It's like Seneral says, with 'Size' you can put the exact size of the stamp.

    Nathaniel
     
  34. Alex3333

    Alex3333

    Joined:
    Dec 29, 2014
    Posts:
    342
    how can I do to the object after creation was not a subsidiary of TerrainComposer Objects ( I need the object to be parents) How to do it , if possible.
     
  35. Alex3333

    Alex3333

    Joined:
    Dec 29, 2014
    Posts:
    342
    upload_2016-10-30_19-14-36.png
    and how to solve the problem with Lods ? I use Speed tree .
     
  36. Deschanna

    Deschanna

    Joined:
    Jul 4, 2016
    Posts:
    6
    I wonder how to use Unity terrain tools on a generated terrain successfully. I specifically mean the lower / raise / smooth brush. Texturing manually (for little corrections) with brushes works wonderfully and stays "in-game". However, the changes I make with the terrain brushes to scene height, they vanish as soon as I hit play.

    I went to terrain settings and exported the current as raw... then tried to import it, hoping it would give me the modified version, but the scene gets twisted (I get a lot of height variation and jagged edges everywhere...)

    What is the correct way to do this? I've tried to google TC + terrain brushes, and found a few things related in this thread, but nothing to help me...

    Thanks... :)
     
  37. Bas-Smit

    Bas-Smit

    Joined:
    Dec 23, 2012
    Posts:
    274
    512 is not the limit, its just the first number I tried, I just wanted to share a quick fix in case people where blocked by this error
     
  38. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    It's not possible yet. But I will make an update for it this week.

    Can you explain in more detail what you mean? You want to change the parent? Or have each object be a parent (this can be done with prefabs)?

    That is a SpeedTree issue, I get it when too many speedtrees are visible. How many did you place?

    You need to disable the 'Auto' and 'Height' button in TC2 window. 'Auto' means TC2 will automatically regenerate after you make a change. Keep in mind that you can use manual terrain brushes, but it's best to do it in the end after you are done with TC2. Because regenerating as you notice will undo any manual changes made.

    Ah ok, thanks for telling. The length might depend on the amount of instructions in each kernel.

    Nathaniel
     
  39. sqallpl

    sqallpl

    Joined:
    Oct 22, 2013
    Posts:
    384
    @eagle555

    Hi Nathaniel,

    I know that this is probably something not planned at all or very low priority but I want to ask about a feature that would allow to mix manual editing of terrain data with TC2. I think that something like this would make TC even greater tool.

    I'm wondering if you plan to add something that would allow to use native Unity terrain tools like splat painting or height editing in a non destructive way with TC2. (tldr: regenerate and keep custom edits)

    With current approach (TC regenerates everything) it would probably need some additional layers/layergroups that wold 'catch' the manual editions of Unity terrain component (or maybe use some custom toolset) and save them to the layer nodes so they can be persistent and mixed with other layers. Maybe there's some other way? It could allow to use multiple 'custom' layers/layergroups that you can 'paint' on and then adjust them just like other TC layers/layergroups would be awesome.

    Maybe some special nodes that would 'catch' and dynamically save manual editions for specific layer/layergroup would be enough to make this work. They would work same as other TC2 nodes. The difference is that they would use inputs (probably images?) that are dynamically (live or with some interval/'save' button) saved from manual editions.

    It would be great to use generation and custom editing at the same time because it would allow to iterate the terrain generation without losing custom data.

    Jut as an example. It would be possible to generate first iteration of a terrain, add some custom things like roads etc. on custom layers and then start adjusting standard layers without losing the custom data.

    What do you think?
     
    Last edited: Oct 31, 2016
    Seneral likes this.
  40. Will-D-Ramsey

    Will-D-Ramsey

    Joined:
    Dec 9, 2012
    Posts:
    221

    Yo bro what image effects are you using on your camera and can I have the parameters?
     
  41. Will-D-Ramsey

    Will-D-Ramsey

    Joined:
    Dec 9, 2012
    Posts:
    221
    I get an error that "Heightmap resolution is less than 513, generation will be slow.." when I increase the Heightmap resolution. But im using the same Heightmaps as I see you use in the tutorial "Building Terrain from Scratch" and you dont get this error, your terrain just goes up in res.

    Also is there a good way to load a scene with alot of objects, when I run it in game it just freezes up. It works fine with less objects but It would look way better with more.'

    Thanks in advance
    -Will
     
  42. Alex3333

    Alex3333

    Joined:
    Dec 29, 2014
    Posts:
    342
    the objects in the hierarchy to the child TerrainComposerObjects after generation. How to make after generation they were children. Their location was as on the screen( green arrow)
     

    Attached Files:

    • щщ.jpg
      щщ.jpg
      File size:
      529.5 KB
      Views:
      869
  43. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,206
    Sounds good to me:)
    Also, instead of 'listening' to Unity brush input, I think it'd be better to make an own little paint editor. That could then not only used to modify height, but instead used to paint masks used for anything from objects over heights to splats. Also, it would allow to paint color masks.
    This paint editor could then be found when selecting such a paint node.
    Up to now these have to be done in external editors like Photoshop and it will be alot easier if you see the terrain infront of you;)

    Btw your example, roads, would be best to handle differently, just make a mesh and a collision mask;)
     
  44. llJIMBOBll

    llJIMBOBll

    Joined:
    Aug 23, 2014
    Posts:
    578
    OK :D
    In this order!

    Deferred HDR;

    Amplify OC;
    Amplify Motion;
    Amplify Bloom;
    Deluxe Eye Adaption;
    Deluxe Tone Mapper;
    Lens Aberrations - Chromatic Aberration;
    Amplify Colour;
    Beautify;
    Beautify - DOF;
    Beautify - Vignetting;
    TOD Effects;
    NEW Not in Screenshot - HX Volumetric Light;
     
  45. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Yes I get this question more often. It's a bit tricky to do. But catching a manual edit could be possible by comparing what TC2 generates and what has been changed on the terrain, and create an image out of the difference and make a layer or layergroup for it in TC2. I have this feature on the roadmap.

    Making a paint editor goes a bit out of scope, as there's already many great programs for it like Photoshop, Gimp or even windows included paintbrush, even online ones like:
    https://www.sumopaint.com/home/#app

    It's just a warning if you put heightmap resolution bigger then 513, so you should actually leave it on 513 if you want to have fast response in Unity Editor. As for many objects the issue is draw calls. I have a separate tool planned to make static object rendering much faster, like this:



    I put them as a child of each terrain, so if a terrain is disabled it automatically disables the objects as well. You can put it in your own Parent and put it into the root Hierarchy. Only when regenerating the objects it will make it double, so you will have to disable 'Object' output for it not to generate again.

    Nathaniel
     
    ElroyUnity likes this.
  46. docsavage

    docsavage

    Joined:
    Jun 20, 2014
    Posts:
    1,021
    This looks very nice. Any ETA Nathaniel?

    Thanks
     
  47. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,206
    Sure there are, but none integrated into unity and specified for terrains. Really does go out of scope a bit but I like the idea of painting biomes or forest spreads or other masks directly on the terrain. This would be more complex but way more powerful than just listening to manual edits. But you're right, a bit out of scope, but still cool.
     
  48. rerwandi

    rerwandi

    Joined:
    Dec 8, 2014
    Posts:
    544
    So the creator of Gaia has just released a new extension called GeNa
    https://www.assetstore.unity3d.com/en/#!/content/74407

    Is this new extension which is doing as a time saver for procedural spawn and placement worth it ?
    TC2 already have procedural spawning based on stamp, height, angles, splatmap, etc.
    Do we really need GeNa and whats the difference from TC2 spawning system ?
     
    S4G4N and hopeful like this.
  49. llJIMBOBll

    llJIMBOBll

    Joined:
    Aug 23, 2014
    Posts:
    578
    Gena seems like is manual placement, I only quickly tested it... while TC2 is auto, like Gaia.
     
  50. C3P

    C3P

    Joined:
    Oct 26, 2014
    Posts:
    46
    Last edited: Nov 3, 2016
    Seneral, docsavage and llJIMBOBll like this.