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. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    I explain how Unity saves it terrains here:
    http://www.terraincomposer.com/troubleshooting/
    My terrains get overwritten in my old Scene from my new Scene, why does this happen?

    Nathaniel
     
  2. eagle555

    eagle555

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

    Yes you can do this. With using an image/raw 16 bit image (for heightmaps) as a mask you have to stretch option (in filter/mask settings 'Stretch' mode). To stretch the image for 1 terrain or the all terrains. So yes you can do this, but you still need a mask to exclude the other terrains out of it. With a image/raw image mask you can make a nice transition, can use black to exclude and white to include, and everything that's inbetween can be used for transition.

    Simply turning on/off terrains in layers I don't see much benefit for the workflow, as terrains are square, and many times you want a more interesting blending shape that can even share zigzag over multiple terrains, etc.

    Nathaniel
     
    Last edited: May 6, 2015
  3. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    I tried it with importing TC 1.8 in a new project and downloading/importing the example package. Works fine here. The circle.raw image should be in the folder TerrainComposer Examples/Textures. If that's not the case, you need to redownload the example package. Can delete the old one from TerrainComposer/Download folder.

    Nathaniel

    ProceduralIslands.jpg
     
  4. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    I'm glad you like the new updates :D.

    Yes it should be around 0.5, that's strange, here it works as it should. Can you show a screenshot?

    Nathaniel

    MeasureTool.jpg
     
  5. Wylaryzel

    Wylaryzel

    Joined:
    Sep 13, 2013
    Posts:
    126
    First of all, I recently bought TerrainComposer and have to admit it's really like you said in the videos - I have happy terrain generation time everytime I move some sliders around (even if I don't understand them all the time :) :) )

    So thanks for this very cool tool.

    But as I want to get more serious to create some terrains used for my prototype I have a few maybe very specific requirements and you or the others more experienced users can provide some guidance.

    What I want to achieve is to create an island look - this means the surrounding area at the edges of the generated terrain should be at level 0 all the time (to be covered later by water).
    On the island itself I want create several areas that are more or less completly flat (independed height) of a certain amount that I can later place buildings on that areas. Those areas should be at least around 10x10m of size and as said, absolutely flat.

    Is this something I can generate using only the randomizer stuff of composer or to I have to finalize the layout with the unity terrain tools or imported heightmap images? I would really prefere the first option as I maybe want to generate alot of different islands that way :)

    Thx in advance
     
  6. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,206
    You can always mask your heightmap layers with a circle which results in a heighmap lowered to the edges.

    Regarding the flattened places, I don't know the exact setup for that, but if it is possible to do so randomly in TC, than by a mask setup like this: Input: Random / Random Range; Output Average
    Problem there is, whole area influenced by Random is flattened, not just some 10x10 pieces.
    Another idea would be to make that with raycasts.
    Then you could do an additional mask limiting the buildings to higher elevated areas above see level.
     
    Last edited: May 6, 2015
  7. MS80

    MS80

    Joined:
    Mar 7, 2014
    Posts:
    346
    Could not test all the cool new features right now, "min max slider" and "custom splash" are strong ones!
    Worldcomposers normalizer is a small checkbox with great success, only downside: when creating multires terrains, then you have to place the terrains by hand (in Y), and the heigth will no longer be equal to the real world height, but thats no problem at all!

    MeasureTool: I was talking about "Max Steepness", not "Steepness". I think it is a decimal issue.
    measure_tool_max_steepness.jpg
    Just for accuracy ;)
     
  8. GXMark

    GXMark

    Joined:
    Oct 13, 2012
    Posts:
    514
    I'm still having issues using SpeedTree Grass with Terrain Composer. Adding it as a detailed grass mesh does nothing. Adding it as a tree works but the coverage is very sparse. Is there any tips on how to properly get this working on one of the example projects like procedural islands?
     
  9. Sphelps

    Sphelps

    Joined:
    Jun 9, 2013
    Posts:
    243
    Would I be able to share the terrain data of a photon network?
     
  10. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Ah yes for multi-resolution terrains you need to adjust the y of each terrain group. Yes that's the downside of normalizing, but the real world height scale is still correct (1 Unity unit is 1 meter), so physics are still working accurate.

    You are right, the values are incorrect, I made a quick fix for it.

    Nathaniel
     

    Attached Files:

  11. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Yes you can use a 16 bit raw grey scale image for this in a mask. You can use any type of shape. I use a circle in the procedural island example, you can take a look at that.

    For creating flat area's you can use raycasting. You can just add some cubes (with colliders, and put them on a layer in Inspector), where you want the flat area's. You can find the options in the TerrainComposer manual on page 31. Seems that exporting the pdf went something wrong an the image effects in the manual don't display correctly. I will do an update for this.

    Nathaniel
     
  12. SpencerPDX

    SpencerPDX

    Joined:
    Jan 3, 2012
    Posts:
    168
    Hello Nathaniel,

    I've purchased TerrainComposer at a client's request and am getting up to speed on it as quickly as possible. To that end I've spent a day or two watching videos and creating test scenes.

    Feeling like I at least had my head around height maps and splat textures I thought adding trees would be no problem. But nope, I'm totally stuck!

    I watched the "help video tree layer", but I see nothing like the field for adding trees, the one that says, "None (GameObject)":

    http://screencast.com/t/ttqrPA4j

    The videos of course all say the GUI has changed, but when I go to page 8 of the manual I don't see a reference to this particular difference:

    http://screencast.com/t/Xj6xxoMoRF3n

    So from what I can tell there's some new way of adding trees, but I can't for the life of me figure out what it is.

    Any help would be greatly appreciated!
     
  13. Wylaryzel

    Wylaryzel

    Joined:
    Sep 13, 2013
    Posts:
    126
    I think the reason is that you are in the layer-level.

    What you are first have to look for is to unfold the terrain itself (or one of them) and there you should find the tree button. Clicking on it, you can add the trees there. It looks the same as in the video.

    BR
    Wyl
     
    SpencerPDX likes this.
  14. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,206
    TBH that stopped me too for a while. What you have to do is go to the 'Tree' tab of one of your terrains and define everything there. It's a bit confusing, I admit. Perhaps a Note in the Tree layer when it is opened with no tress defined or atleast a note in the docs would be great;)
    Additionally, to iterate through your trees (defined in the terrain tab) in the layer hit the +/- buttons left to the appearance-slider.

    Edit: Too late;)
     
    SpencerPDX likes this.
  15. SpencerPDX

    SpencerPDX

    Joined:
    Jan 3, 2012
    Posts:
    168
    Yes, thanks, I was just coming here to say I figured it out. And now I see how it happened: There is a cluster of 8 buttons up top (under the Terrain) and the second button from the left on the bottom row says "Trees" in green. Then a little ways down there is a cluster 8 buttons under "Quick Tools", and the second button from the left on the bottom row says "Tree Map" in green. Following along with the video I clicked the plus sign under the lower cluster of buttons, thinking it was the top cluster of buttons. Here I try to show how that confusion occurred:

    http://screencast.com/t/bXihPkhem

    (edit: that's supposed to say "attempted to add a tree" not "add a try".)

    Naturally once I get my head around the system the distinctions between the sections will be more obvious, but at this point, scanning the GUI while following along with videos, visually similar sections are confusing. In general I find it all to be a bit of a jumble visually.

    But that's often the case with complex and powerful tools! ZBrush springs to mind...

    Thanks again for the help.
     
  16. SpencerPDX

    SpencerPDX

    Joined:
    Jan 3, 2012
    Posts:
    168
    More trouble with trees!

    Now that I've got them to appear, I'm trying to figure out why I can't get the scattering of trees to respond to inputs like height, steepness, or images. Instead they seem to be placed in a strangely geometric and mirrored pattern. You might be able to see it here:

    http://screencast.com/t/O40vonMf3i

    To make the pattern more visible I replaced the trees with boxes; you can see the symmetry where it occurs in the middle of this array of four terrains:

    http://screencast.com/t/xtulH0SVo

    I've tried changing the input to in both the filter and the mask, and while I see some change in the placement, the symmetry remains, as do these weirdly geometric arcs of trees:

    http://screencast.com/t/M93Ghqd9mPpW

    Which don't resemble anything in the image I'm using as a mask, which is meant to be a path cleared through the forest:

    http://screencast.com/t/OSzOQsYv3DiZ

    Once again, any help would be greatly appreciated.
     
  17. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    2,058
    Assets/TerrainComposer/Scripts/Presets/save_rtp_preset.js(100,17): BCE0018: The name 'ProceduralMaterial' does not denote a valid type ('not found'). Did you mean 'System.Runtime.Remoting.Proxies.ProxyAttribute'?

    Attempting to do a webGL build. meh
     
  18. Wylaryzel

    Wylaryzel

    Joined:
    Sep 13, 2013
    Posts:
    126
    Would it be possible for the future to make a video or more explanation about the raycast feature and the object placement? Currently tryed to create an object layer with one cube and it was flooding unity with 40xx objects. An modification on the settings created additional 4k objects. This created unity to an unresponsive state :-(

    Today I played a bit with WorldMachine - the workflow for generating heightmaps etc there is very natural on the other hand very effective.
    Are you going to enhance the heightmap generate in the future or keep the current philosophy you have there?

    Thx
    Wyl
     
  19. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    I took a deeper look into it. Keep in mind that TerrainComposer uses standard Unity terrain. SpeedTree grass works only half with detailed grass mesh on Unity terrain. What need to be done is, unfolding a speedtree grass prefab in the project folder and then assign one of the _LOD objects. The issue is though that wind doesn't work on it, the entire mesh moves.

    So I think grass is intended to place as trees on Unity terrain or objects. For trees/object you can get more density in TC terrain list -> Local Area -> Tree/Object resolution (shift click >Set All if you have more terrain tiles). I did some performance tests and Ican't get a good performance with high density coverage, so SpeedTree grass can be used as more detailed grass on top of Unity grass.

    Nathaniel
     
  20. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Can you tell a little more detailed how you need this? Yes you can make a multiplayer with the use of TC. For example TerrainComposer with Unity terrains are used in the game Beast of Prey. It's a multiplayer game with many multi-tile terrain maps.

    Nathaniel

     
  21. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Yes splat textures/trees and grass need to be assigned to the Unity terrains first. As this is also how it works without TerrainComposer. Then you can create an unlimited amount of layers where you pick the items that are assigned to the terrains, and can change order, placement values and mix the items etc.

    I will put a text in the layer if no splat/tree/grass is assigned that they have to be assigned in the TC terrain list (in the next update).

    Nathaniel
     
  22. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    As for the pattern you see in the placement of trees/object. I use positional seeding for this which causes this, the random seed is put on the current world position when generating. With this option trees/object won't relocate when changing the density.

    I made an update were you can choose in each layer to use positional seeding or not. And in TC Menu -> Option -> Generate Settings -> Position Seed , can choose if default is on/off.

    For the use of masks I offered you to explain you on skype, due you are on a time limit (I send email).

    Nathaniel
     

    Attached Files:

    Wylaryzel likes this.
  23. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    I fixed this in the latest TC 1.8 and some more to make WebGL compile, do you use this version?

    Nathaniel
     
    twobob likes this.
  24. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    2,058
    hmm... Probably I need to update it then...
    Will go check! Phew :)

    : ) happy days

    Oh yeah! 1.72 duh... Am updating.
     
  25. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Yes I will make a video for each. What you have to do if you place objects in object layer:
    - Add an object by clicking '+' button.
    - Assign your object from Hierarchy window or prefab from Project window.
    - Unfold the object -> Settings -> Click 'Create' button to create a parent in the Hierarchy where all objects are placed in. With this you can use -Reset Objects- in TC terrain list or shift click <Clear> in settings.
    - For the amount of objects you can change object resolution in TC terrain list -> Local Area, reduce layer strength. Then any masks with any rules will reduce futher density.

    WorldMachine uses a different approach, it's non-linear node approach while TerrainComposer uses a linear approach. The cons about WM is that it's slow in generating and eats tons of memory. While I designed TC to be able to generate on the fly in runtime and back with Unity 3.x/4.x, Unity would already crash with too high resolutions/trees/grass and memory leaking, etc. Let alone if I would use WM's system where each node stores it's own values in an array, it was not really possible.

    Yes WorldMachine is a great program and it's an industry standard. It was there way before TerrainComposer. Since WM is worked outside Unity, I made TerrainComposer being able to import everything from WM.
    • You can import heightmap tiles and quickly assign them (auto search feature where you only need to assign the first tile and TC searches the rest based on the filename), also for colormaps/normal maps (if you have RTP or ATS colormap shader).
    • With TerrainComposer you can import a heightmap from WM and stretch it over multiple terrain tiles.
    • Can import splatmaps from WM (assigning with auto search).
    • Can use WM's distribution textures (assigninf with auto search) for splat texturing, placing vegetation and objects.


    Nathaniel
     
  26. Wylaryzel

    Wylaryzel

    Joined:
    Sep 13, 2013
    Posts:
    126
    Hi Nathaniel,

    thanks for the answer :)

    It seems like its the way to go -> Creating the 'world' in WM and let TC create the terrain within Unity. I already viewed the import video and had success importing and applying the splat texture within unity. Together with RTP it creates very, very cool terrains - even I'm far from beeing an artist. I think this speaks for the powerful combination of the 3 tools.

    Thx
    Wyl
     
  27. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Is it possible to start with an existing Unity terrain and then modify it using Terrain Composer? Or do we have to start from scratch?
     
  28. Mad_Mark

    Mad_Mark

    Joined:
    Oct 30, 2014
    Posts:
    484
    Did I miss a video, or is there no video available yet for creating a bunch of terrains (say 9x9?) , then at runtime popping 3x3 in front of the player, and placing/removing them as he moves through the level, and repeating them to create an infinite terrain? If this is not a native function, what is the recommended tool and workflow to do this job? Using Unity5...

    Cheers!
    Mark
     
  29. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    2,058
    http://deepspacelabs.net/dynamic_loading/dynamic_loading.html - I did not find many "Simple" options... there are other - more involved - loading / streaming tools also...

    or expand on a simple 3x3 grid switching system with "distance from player" logic happening every few frames. (or triggers or w/e you choose to test)

    Here is a really basic thing I did a while ago as a test (updated slightly)
    https://gist.github.com/twobob/ed888d4e1d1bc4292adb#file-updategridontrigger-cs (Update grid on trigger)
    https://gist.github.com/twobob/f77462efce7df5a8c0ad#file-movewhenfar-cs (Some supporting logic)

    Hope it helps. perhaps you will share your solution
     
    Seneral likes this.
  30. 4t0m1c

    4t0m1c

    Joined:
    Aug 7, 2013
    Posts:
    3
    Hi, I've been playing around with TC with regards to runtime procedural generation. I've got it generating terrain at runtime but it only gen's one terrain. How would I get 3x3?

    Thanks!
     
  31. Mad_Mark

    Mad_Mark

    Joined:
    Oct 30, 2014
    Posts:
    484
    Thanks Twobob,

    Funny enough, I was looking at the deepspacelabs solution yesterday at work (don't tell the boss!) and shot the author an email. I wanted to be sure that the project was still being developed, and that it worked with U5 and TC. Waiting to hear back.

    I will definitely have a poke around the links you provided.
    Cheers!
    Mark
     
  32. buttmatrix

    buttmatrix

    Joined:
    Mar 23, 2015
    Posts:
    609
    I have emailed Nathaniel about a separate issue, but in the meantime, I'd like to get this forum's opinion about how to resolve an issue I'm having:

    I've watched this video 100 times:


    However, I still cannot separate a single height map evenly over 4 terrain tiles. Any suggestions?
     
  33. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Yes you can use an existing terrain in TerrainComposer. All you need to do is drag and drop your terrain in the TC terrain list.

    P.s make sure you backup your terrain (TerrainData in your project):
    I explain how Unity terrain are saved in Unity here:
    http://www.terraincomposer.com/troubleshooting/
    My terrains get overwritten in my old Scene from my new Scene, why does this happen?

    Nathaniel
     
  34. buttmatrix

    buttmatrix

    Joined:
    Mar 23, 2015
    Posts:
    609
    Yes,
    Yes, thank you very much. Unfortunately the problem I am having is assigning raw heightmap with Autosearch: 'alt+click' to close and 'shift+click' to load does not work. Please help!
     
  35. eagle555

    eagle555

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

    I'm working on a script for this, will include it in the next TC version. This uses TerrainComposer in runtime and it generates the terrains on the fly.

    Nathaniel
     
    twobob likes this.
  36. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Unfold filter settings and select 'Stretch Mode' -> Multi Terrain

    Nathaniel
     
  37. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Auto search is for assigning multiple tiles automatically instead drag & drop by hand. If you give me more details about your terrain naming convention and a screenshot how you setup the auto search in TC, I can help you make it work.

    Nathaniel
     
  38. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Actually someone made a great streamer (for terrains and any objects). He showed me this week and it looks very promising. Only needs a few clicks to make it work in any Scene. This loads all saved data, it's a bit different from TC runtime that generates on the fly and needs almost no disk space. I will have more information about it soon, I still need to test it myself.

    Nathaniel
     
    twobob likes this.
  39. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    TerrainComposer includes a prefab that you can drag and drop in your Hierarchy. It's in the TerrainComposer/Runtime folder called RuntimeTerrains. All you need to do is setup the terrain in TC terrain list in TC window, there with the slider you can choose the amount of terrains you want to instantiate at runtime.

    Nathaniel
     
  40. buttmatrix

    buttmatrix

    Joined:
    Mar 23, 2015
    Posts:
    609
    Precisely. Please see attached for my naming convention and arrangement. The terrain is being rendered individually on each terrain tile (as expected), but when I try to 'alt+click' to split the height map across the 4 terrain tiles, it does not work. Thank you so much for your prompt reply!
    Screenshot (223).png Screenshot (224).png
     
  41. MS80

    MS80

    Joined:
    Mar 7, 2014
    Posts:
    346
    You need to use "StrechMode" "Multi Terrain" if you want to use one heightmap over 4 terrains.
    mulitterrain.jpg
     
    Last edited: May 9, 2015
  42. Wylaryzel

    Wylaryzel

    Joined:
    Sep 13, 2013
    Posts:
    126
    hi nathaniel,

    Any guidance based your experience what would be good preferences in the conversation from world machine to terrain composer? Currently when i import from wm the world seems a bit blocky. As i use currently the free version of wm and therefore restricted to 512x512 for the expoeted heightmap.

    Thx in advance
     
  43. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    It is as Ms80 shows. What you are trying is for importing multiple raw heightmaps, these are splitted heightmaps from 1 big heightmap.

    Nathaniel
     
  44. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Use the same heightmap resolution in TC and there won't be any blockiness. If you want a higher heightmap resolution from WM free, you can export more heightmap and offset them to fit together. Can set it in WM menu -> World Commands -> Project World Parameters. Then in TC you can load them in one filter by choosing the amount of tiles and then click 'Adjust List'. This can work for 4 or 9 tiles, otherwise it might get too much work and WM pro would be better and export it automatically.

    Nathaniel
     
    Last edited: May 10, 2015
  45. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,206
    That's most likely not related to TC as it creates standard Unity Terrain. Try with an empty scene with/without a terrain, and see if it still jitters.
     
  46. SpencerPDX

    SpencerPDX

    Joined:
    Jan 3, 2012
    Posts:
    168
    Hi Nathaniel,

    Thanks for getting in touch and for the offer to help via Skype - very impressive support. It looks like our terrain is simple enough that we can get away with hand-painting, especially since we're going to have to do a little hand-tweaking anyway. So while it would be nice to better understand procedural tree placement, and while I appreciate the offer, it seems like ultimately we can get by without it. Thanks again!
     
  47. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    This has nothing to do with TerrainComposer, as TerrainComposer creates Unity terrains (you can also create them without TC). This issue is probably z-fighting, a common one in computer graphics:
    https://www.google.no/?gfe_rd=cr&ei=xaNPVaCHOoiJ8Qf184GACA&gws_rd=ssl#q=z-fighting

    What you can do about it is changing the clipping values on your camera. Make the near clip as high as possible and the far clip as low as possible.

    Nathaniel
     
  48. buttmatrix

    buttmatrix

    Joined:
    Mar 23, 2015
    Posts:
    609
    Thank you so much. I experimented with near / far clipping planes, but doing so really breaks presence. I ended up increasing pixel error to boost FPS.

    In response to my earlier question about 'Stretch Mode > MultiTerrain', I was able to get the function to work properly, but the terrain does not render properly at the desired resolution. Could you point out what I'm doing wrong?

    I'm importing a 16bit, 2049 x 2049 Height Map (.raw), Windows, using the standard Unity terrain, and the terrain renders perfectly (see attached 'UnityTerrain'). However, when I import the same HeightMap and stretch across 4 tiles using TerrainComposer 'MultiTerrain', I get the following (see attached 'TCTerrain')
     

    Attached Files:

  49. buttmatrix

    buttmatrix

    Joined:
    Mar 23, 2015
    Posts:
    609
    UPDATE [RESOLVED?]

    I set the terrain resolution to 1025 and it seems to work. Could you explain?
     
  50. buttmatrix

    buttmatrix

    Joined:
    Mar 23, 2015
    Posts:
    609
    Does the Image Height Map Tool not work? I am able to generate HeightMaps from the default image (see attached), but I am not able to load any other image using the 'select' function (?)
     

    Attached Files: