Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Terrain Composer2 a next generation GPU powered terrain tool.

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

  1. kilju

    kilju

    Joined:
    Nov 4, 2013
    Posts:
    127
    Hello guys.
    can somebody give me some advice on making really big terrain?
    problem is if i resize my terrain really much terrain textures start to look ugly so should i make like 100 terrains and shouldnt resize them? but problem here is that it will make my terrain resolution really big and i read from 24h terrain tutorial i should only use max 2048.

    so i was wondering how they get this 900 square km map in only 2x2tiles and still get it looking good?
     
    Last edited: Jan 9, 2015
  2. PiAnkh

    PiAnkh

    Joined:
    Apr 20, 2013
    Posts:
    126
    Thanks Nathaniel.
    The update works fine. The trees are rotating randomly.
    Just one comment the run time has increased enormously. In one test case from 21 seconds previously to 95 seconds.
    This seems entirely to be a result of the large number debug message. When I comments out the Debug.Log statements in terraincomposer_save.js then the return time returned to only 22 seconds.

    Ronan



     
  3. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    3,356
    Trees and grass not showing at times is still an issue I run into.

    In TC, RTP, and in the terrain Draw is checked.

    Tree/grass distances are all good.

    FYI I also very often run into the issue of trees/grass not showing in game view until I go into a TC terrain and toggle Settings->Editor/Runtime. Doesn't matter which one is selected I just have to toggle it. Then it pauses for a second and loads everything in. This is with Draw selected in both Editor and Runtime before running the game.

    Since using TC I almost never see trees and grass in scene view while the game is not running. Not sure if this is unity turning them off once it reaches some kind of threshold or what. Settings in TC have zero effect. It all works fine when I start with newly created terrains, then after a bit no trees/grass in scene view and I never get them back.
     
  4. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    3,356
    Ah you know what some of this is. When you change textures in the splatmap, the tree/grass filters show that it picked up the new textures, but it doesn't generate trees/grass. You have the move the texture slider in the filter (even just move it to another number then move it back to where it was) and it forces it to reread it or something, then it works.

    I think that's a lot of the issues I've seen with trees/grass not showing.
     
  5. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    You can intergrate RTP at any stage of Terrain building. As for integration TerrainComposer uses standard Unity terrain and RTP works on standard Unity terrain and meshes. All you need to do is setting up RTP correctly. How to do this Tom explains in his tutorial video, which link you can find on the RTP Asset Store page.
    https://www.assetstore.unity3d.com/en/#!/content/5664

    Nathaniel
     
  6. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    It's best not to use too many terrains. The advantage of using more terrains is that culling can get better, but at the same time each terrains has more overhead. I recommend not to go higher then 5x5 in normal conditions. The trick we did to make the 24 hour demo terrain resolution looks so high is using a global normal map in RTP for the heightmap. In RTP 3.2 you can even use tesselation. RTP 3.2 is released and currently Tom does a sale with 50% off. For awesome terrain rendering, RTP is a must, as Unity never really updated their terrain system since Unity2, while RTP makes Unity terrain stand out against any terrain system in any 3d Engine.
    https://www.assetstore.unity3d.com/en/#!/content/5664

    Nathaniel
     
    hopeful likes this.
  7. eagle555

    eagle555

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

    Sorry forgot to take the Debug.Log out, I was using it for testing if the code wasn't executed in U3.x and U4.x as it can only run into U5.x. Here's the fix for it...

    Nathaniel
     

    Attached Files:

  8. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    You can set 2 different terrain settings with TC. For runtime and editor, that's what the buttons 'Editor' and 'Runtime' are for. TC adds a script to every terrain for runtime called 'Terrain Detail', here you can see the terrain settings (draw, tree distance, grass distance, etc) used for runtime.

    As for changing splat textures on the terrain, make sure you shift click <Set> (single terrain)/ <Set All> (multi terrain), after changing the texture. Then tree/grass placement should work fine without you have to move any slider.

    Nathaniel
     
  9. tacticz_03

    tacticz_03

    Joined:
    May 27, 2014
    Posts:
    1
    Hi! I'm new in Terrain Composer. I already start to follow some video tutorials and one of those tutorials uses the Example Package. I have problems with the draw calls, I've got, 5k draw calls. Is there any techniques I can use to reduce the draw calls?
     
  10. eagle555

    eagle555

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

    TerrainComposer uses standard Unity terrain and draw calls is something that is done by Unity terrain. Yes there's things you can do to reduce draw calls.

    1). Reduce resolutions. (heightmap/grass). With example package try to choose 2x2 terrain tiles with a terrain resolution of 256/512, that should run fine.
    2). Reduce amount of trees placed. (if you click 'Tree' button in top of TC window and then reduce 'tree density' slider in the examples).
    3). Put pixel error on 5 for runtime in TC terrain list -> Settings.
    4). Disable stones that are being generated on the terrain. (Select 'Object' button in the top of TC window and then disable toggle 'Generate Objects'). If stones are already placed you can delete the Stone GameObject from the Hierarchy.

    Let me know if this helps...

    Nathaniel
     
  11. Jack62Lewis

    Jack62Lewis

    Joined:
    Jun 17, 2013
    Posts:
    105
    Hi,

    Finally managed to get around to purchasing Terrain Composer!!
    Really really happy with it :)

    I also just got RTP and was wondering if you or the developer of RTP has made a tutorial about integration between the two? I can seem to find any.

    Thanks,
    Jack Lewis
     
  12. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    Thanks Nathaniel! I've been dragging my feet on picking up Terrain Composer for a while now. Went ahead and grabbed it while it was on sale. Guess I'll have a ton of reading and video watching to do between picking up your TC and Tom's RTP. Hopefully I wont bombard you guys with too many idiotic questions... lol
     
  13. Deleted User

    Deleted User

    Guest

    It's going to take me about a week to get $45 in my account, hopefully this is till on sale then! Will definitely pick it up if it is, just like I did with RTP last week when it dropped to $45 (also took me almost a week to get the $45 in my account.) Thanks!
     
  14. weasel47

    weasel47

    Joined:
    Mar 9, 2014
    Posts:
    26
    It appears that Terrain Composer is causing a crash during building in new beta version Unity 5.0.0b20.

    From the log file:
    [C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineMonoBehaviour.gen.cpp line 22]
    (Filename: Assets/TerrainComposer/Scripts/TerrainDetail.js Line: 1)

    Crash!!!


    When I removed Terrain Composer from the project, I was able to build again.
     
  15. eagle555

    eagle555

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

    Thanks a lot for testing and telling. TerrainComposer has never been before reported to cause a crash when making a build and was working fine with the Unity 5 beta's and any Unity version since 3.5.6.

    But indeed now Unity 5 beta 20 crashes with TerrainComposer project save script in the Hierarchy when making a build. You don't need to remove TC from the project, but only save your TC project to a prefab with TC Menu -> File -> Save, and then you can remove the TerrainComposer object from the Hierarchy and making a build works fine then. This is only needed when you want to generate terrains at runtime with TC, so for now that doesn't work with U5 beta 20.

    At the moment I'm investigating what is causing this issue and if I can make a fix for U5 beta 20, but properly it's on Unity's side as it was always working before. So it might be working again in beta 21...I checked U5 until B19 and they make builds with TC runtime without any issues.

    P.s. Keep in mind that Unity 5 is still in beta and Unity recommends to not use beta's for real production.

    Nathaniel
     
    Last edited: Jan 18, 2015
  16. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    3,356
    So figured out something that has been driving me nuts for a while when using RTP. If I create multiple terrains in TC using RTP, TC is setting the last splat in the terrain script to the RTP perlin normal map. This seems like a bug. It happens when I use set all to set the splats on the other terrains from terrain 1.

    With a single terrain it doesn't do this.
     
  17. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Did you activate <RTP> in TC terrain list -> Splat textures? (Then it should work correctly) As without this TerrainComposer will assign the splat textures to each terrain in the correct way for the standard Unity terrain shader, but with RTP in the project you need to enable <RTP> by shift clicking it. If you have it activated, which RTP version do you use?

    Nathaniel

    Enable RTP in TerrainComposer.jpg
     
  18. Jack62Lewis

    Jack62Lewis

    Joined:
    Jun 17, 2013
    Posts:
    105
    Hey, is there any videos for integrating this with RTP?
     
  19. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    3,356
    So I'm now thinking this is an RTP issue but I haven't really gotten a straight answer yet. Yes I'm shift clicking RTP and all of that, latest version of TC and RTP.

    RTP seems to be the one that is actually setting the terrain textures and is messing things up. The author said to try using materials then later removing them but wasn't clear on what the real issue was. Compiling the shaders to use materials fixes the issue. So at this point I don't think this is really a TC issue.

    The visual effect this issue had was it completely messes up all textures and applies a blotchy pattern, I posted some pics on the RTP thread it's difficult to describe. So for now I'm just using materials.
     
  20. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Yes there is:


    Nathaniel
     
  21. Jack62Lewis

    Jack62Lewis

    Joined:
    Jun 17, 2013
    Posts:
    105
    I meant how to import and get RTP working. Cause right now importing RTP into my project just makes my terrain composer terrains turn a weird brown/gold. Until I remove it from the project.
     
  22. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    3,356
    Ok so I kind of figured this out. When using multiple terrains the default colormap setting for a texture in RTP should be different. With a single terrain a value of 1 is basically equivalent to a value of close to 0 for multiple terrains. So it ends up being a completely unexpected behavior, and furthermore it's not something that you would necessarily even know if you are just doing basic stuff with RTP.
     
  23. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    You have to follow Toms tutorial video on the RTP Asset Store page as you have to setup RTP Lod manager, for terrains to render correctly. Because RTP overwrites the standard Unity terrain shader, and comes with an empty shader until you set it up according to the video.



    Nathaniel
     
  24. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    RTP uses the terrain splat texture slots to store RTP shader information when not using terrain materials. Like global colormap and global normal map, because these slots can be unique for each terrain. So this is a technical solution, otherwise you won't be able to have separate colormap on each terrain tile without the use of materials. But using materials has much performance overhead for multiple terrains.

    Tom doesn't work on sundays, I will look with him tomorrow into your issue.

    Nathaniel
     
  25. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    3,356
    I'm pretty sure it's figured out now, and the issue is really just one of bad defaults. Defaults for a single terrain should be different then from multiple terrains if you want expected behavior/least surprise. But whether TC does this for you is kind of a side issue as the behavior is really part of RTP not TC. Maybe mention this issue in the TC docs somewhere.
     
  26. Deleted User

    Deleted User

    Guest

    Still trying to raise the $45. Hope I'm able to get this before it goes back up *crosses fingers*
     
  27. weasel47

    weasel47

    Joined:
    Mar 9, 2014
    Posts:
    26
    Thanks for the info! Unfortunately, I'm seeing an issue when I try doing what you suggested. After I remove the object "_TerrainComposer" from the scene Hierarchy, the TerrainComposer window seems to lose its association with the terrain objects in the scene and the layers and everything else. For example, the text "Terrains(64)" gets replaced with a long string of digits and there are no terrains within. If I exit and relaunch Unity without saving the scene, the association is still gone. It looks like "global_settings.prefab" is the only file getting modified. Do I need to do something else with the prefab I saved?
     
  28. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    If you saved the TC project prefab with TC Menu -> File -> Save. Then you need to close the TerrainComposer window and then after remove the _TerrainComposer object from the Hierarchy. If you want to reopen your TC project, just open TC window again, and in TC Menu -> Options -> Generate Settings -> enable 'Load Terrain Data'. Then load your TC project with TC Menu -> File -> Open.

    Nathaniel
     
  29. Gibbonuk

    Gibbonuk

    Joined:
    Dec 10, 2013
    Posts:
    175
    Hi, having recently purchased this I was wondering if there is a way to have "detail" textures when close to the terrain?

    So there is a base texture (such as aerial view texture) then when close you get a tiled grass texture?

    Thanks
    Andy
     
  30. eagle555

    eagle555

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

    Thanks a lot for the purchase :). Yes this is possible if you use an additional terrain shader like RTP (highly recommended) or ATS Colormap (free solution). After importing you need to watch the tutorials video's (RTP), read the documentation (ATS) to set them up, otherwise Unity terrains will be rendered incorrectly.

    Nathaniel
     
  31. jalapen0

    jalapen0

    Joined:
    Feb 20, 2013
    Posts:
    136
    Just bought world and terrain composer. Does TC have the ability to generate random terrains at runtime through script? Perhaps with certain criteria?

    Edit: a better way to ask would be "is there an api?"

    Thanks!
     
    Last edited: Jan 19, 2015
  32. eagle555

    eagle555

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

    Thanks for the purchases :). Yes TerrainComposer has the ability to create random terrains at runtime, for the documentation and example scripts look here:
    http://www.terraincomposer.com/runtime/

    Nathaniel
     
    jalapen0 likes this.
  33. Gibbonuk

    Gibbonuk

    Joined:
    Dec 10, 2013
    Posts:
    175
    Thanks I actually own the ATS Colormap ultra so Im using that which seems to be working good.

    My only other question is, im using both world and terrain composer and before I used both of these tools I manually did my own DEM terrains that took a lot of work and time but my final builds for windows were coming out about 80mb. Using both world and terrain composer my builds are now 400+mb yet the folder containing all the "exported data" from world and terrain composer is actually only 50mb (before I do final build)? So where could the other 300mb coming from?

    Thanks
    Andy
     
  34. eagle555

    eagle555

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

    That's a good question, it shouldn't make any difference with making manual terrains and using TC and WC, as they use standard Unity terrains. We can do a skype screenshare to see what is taking that extra space. My account is Nathaniel.Doldersum

    Nathaniel
     
  35. Dave3of5

    Dave3of5

    Joined:
    Jan 20, 2015
    Posts:
    32
    Hi,

    Purchased terrain composer in the sale and I'm loving it !!!

    Not sure if this is relevant as I am still going through you tutorials but is it possible to use terrain composer to create smoother terrains what I was thinking about to to use something like the hand painted forest pack by Thomas Guillon to create a kind of warcraft type world.

    David
     
  36. Gibbonuk

    Gibbonuk

    Joined:
    Dec 10, 2013
    Posts:
    175
    Hi Thanks for getting back to me, it appears for my project that the output jpgs from world composer are around 3mb but when i build it, the unity log shows that each jpg takes 16mb each of the build?

    Why would it do this?

    EDIT, so after some research it appears (and makes sense) that unity doesnt actually use pngs, jpgs etc it just imports them into a texture, and the space it takes up is then down to the pixel size of each image.

    Not sure if there is anything that can be done here to reduce them without loss of quality?

    Thanks
    Andy
     
    Last edited: Jan 20, 2015
  37. Pryzmeister

    Pryzmeister

    Joined:
    Jan 21, 2015
    Posts:
    26
    Pink trees and no splat maps with Unity 5.0.0b18
    Great looking tool, however i have the above mentioned problem when trying to use the example scene.
    It seems the tree shaders are not compatible with this version of unity perhaps?.

    Any idea why this could be happening?
     
  38. eagle555

    eagle555

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

    Thank you for the purchase :). Yes you can make smooth heightmaps in TerrainComposer. If you use the perlin noise you can make it smoother by reducing the 'Detail' slider.

    Another way is to use the 'Smooth Tool' in Quick Tools. After generating a heightmap you can click the 'Smooth' repetitively, until you get the smoothness you like.

    Nathaniel

    Smoothing Terrain.jpg
     
  39. eagle555

    eagle555

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

    There's information about texture size in builds in the Unity manual. I found 2 versions:
    http://docs.unity3d.com/Manual/ReducingFilesize.html
    http://docs.unity3d.com/432/Documentation/Manual/ReducingFilesize.html

    Nathaniel
     
  40. Dave3of5

    Dave3of5

    Joined:
    Jan 20, 2015
    Posts:
    32
    Awesome, thanks so much !!!

    David
     
  41. Demonith88

    Demonith88

    Joined:
    Jun 30, 2014
    Posts:
    216
    Hi i trying to learn your terrain Composer but the example is huge and when i start the generate its map so large i get out of memory and cant play on map because of it can u tell me how i can LoD a terrain or something like it
     
  42. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Splatmaps should work fine. It's properly because you have RTP or ATS additional terrain shaders in your project. These have to be setup according to their documentation, before standard Unity terrain renders correctly.

    About the trees, this is because of Unity5 and you can fix this by going to the trees and in Tree Creator click on the icons with the red questions mark, and then click 'Apply' button.
    You can download a free Speed Trees here for Unity5:
    http://store.speedtree.com/unity/

    At the moment I'm working on a new version of TerrainComposer, that doesn't need U5 code converter and with a new example package with the pink trees fixed.

    Nathaniel
     
  43. eagle555

    eagle555

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

    TerrainComposer generates standard Unity terrain, so the resolution/performance limitations are not with TC but with standard Unity terrain. If you create those terrains manually you would run into the same out of memory, only creating and stitching those terrains by hand takes a lot of time. There's 4 procedural examples included. And the resolutions and the terrain tiles can be selected. If you just leave it on default like in the screenshot it should work fine:

    tiles&resolution.jpg

    You can also read my answer to a post above:

    1). Reduce resolutions. (heightmap/grass). With example package try to choose 2x2 terrain tiles with a terrain resolution of 256/512, that should run fine.
    2). Reduce amount of trees placed. (if you click 'Tree' button in top of TC window and then reduce 'tree density' slider in the examples).
    3). Put pixel error on 5 for runtime in TC terrain list -> Settings.
    4). Disable stones that are being generated on the terrain. (Select 'Object' button in the top of TC window and then disable toggle 'Generate Objects'). If stones are already placed you can delete the Stone GameObject from the Hierarchy.

    I can add here that reducing tiles also helps. The best is to not go higher then 5x5 tiles. And the resolutions are the resolution for each terrain tile. So it can add up quickly. I recommend not to go higher then the following total resolutions:

    Heightmap 2048
    Splatmap 2048
    Basemap 2048
    Grass 2048

    Let me know if this helps...

    Nathaniel
     
    Demonith88 likes this.
  44. Gibbonuk

    Gibbonuk

    Joined:
    Dec 10, 2013
    Posts:
    175
    Hi, im trying to understand the "load on generate" when placing trees based on an image mask?

    I have a terrain and its made up of 16 tiles, so im trying use the "load on generate". The thing is, its working but clearly they trees are not being placed on the correct terrain tile.

    IF i dont use load on generate and load in the images manually to the list it seems to work, but this has memory overheads.

    So in what order does "load on generate" load them in?

    Im using terrains from world composer, so there _x0 _y0.

    Thanks
    Andy
     
    Last edited: Jan 23, 2015
  45. Fockerian

    Fockerian

    Joined:
    Sep 9, 2014
    Posts:
    6
    Hello. I have a problem!
    Not generated height map from a file Raw. Previously it worked .
    i have 6x6 terrains. Heightmap all terrains have heightmap resolutions 1025
    Thousand user had a similar problem , as you solved it ?


    console:
    The Raw Heightmap file 'L:/Day Dead/all.raw' has a lower resolution than selected. Please check the File size. It should be X*Y*2 = 6144*6144*2 = 7.549747E+07 Bytes (6144*6144 resolution). But the File size is 0 Bytes (0x0 resolution).
    UnityEngine.Debug:Log(Object)
    terraincomposer_save:calc_raw_value(raw_class, Single, Single) (at Assets/TerrainComposer/Scripts/terraincomposer_save.js:4489)
    terraincomposer_save:calc_filter_value(filter_class, Single, Single) (at Assets/TerrainComposer/Scripts/terraincomposer_save.js:3556)
    terraincomposer_save:generate_output(prelayer_class) (at Assets/TerrainComposer/Scripts/terraincomposer_save.js:2744)
    TerrainComposer:Update() (at Assets/TerrainComposer/Editor/TerrainComposer.js:4146)
    UnityEditor.EditorApplication:Internal_CallUpdateFunctions()
     
    Last edited: Jan 22, 2015
  46. sacha

    sacha

    Joined:
    Oct 29, 2012
    Posts:
    22
    Been there few times with that one... The classic mistake is switching your build setting differently than STANDALONE, i.e. web player.

    Hope it helps.

    Laurent
     
    Fockerian likes this.
  47. eagle555

    eagle555

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

    Can you show a screenshot of the auto search settings you use in the mask? (Click the unfold triangle next to the '>Auto Search' button).

    Nathaniel
     
  48. eagle555

    eagle555

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

    As Laurent mentions it's indeed because of another build then standalone. But I made a fix for that now. This fix will be included in the new TerrainComposer update. I'm working on quite a major update with new features ;).

    Nathaniel
     

    Attached Files:

  49. Zac-Yeates

    Zac-Yeates

    Joined:
    Jan 23, 2015
    Posts:
    20
    Hello. My current project involves a large open terrain with various different regions each with their own distinct style. Is it possible to create ecosystems (not sure if correct word) where you supply and ecosystem mask and then have things like trees and grass placed within that ecosystem using various parameters like slope and density. This way rather than having say a desert grass map, a desert tree map, a forest grass map and a forest tree map I could simply give Terrain Composer a desert map and a forest map and tell it to place certain trees and details according to certain parameters.
     
  50. Fockerian

    Fockerian

    Joined:
    Sep 9, 2014
    Posts:
    6
    Thank you so much!