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

TerrainComposer to create AAA realistic terrains [beta version released]

Discussion in 'Assets and Asset Store' started by eagle555, Dec 10, 2012.

  1. Rico21745

    Rico21745

    Joined:
    Apr 25, 2012
    Posts:
    409
    Any plans on making a C# version? I was looking at it on the asset store when I noticed its in JS :-/ I was pretty set on getting it but the JS version gives me some pause. There's a lot of downsides to mixing JS and C# projects together.
     
  2. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    That's a good quesion. At the moment I'm not really planing on creating a C# version. It's not really needed as TerrainComposer can be removed from the Scene, once you created your terrain(s) and made your scene.
     
    Last edited: Mar 4, 2013
  3. ChadH

    ChadH

    Joined:
    Aug 28, 2012
    Posts:
    101
    This just keeps getting BETTER !!!!
    I just created 4096 terrains in under 10 minutes

    This is 64X64
    Here is screen shot of all 4096 terrains
    $NEWTC4096.jpg

    There were no issues in creating them either.

    Will post more screenshots later.
     

    Attached Files:

    Last edited: Mar 4, 2013
  4. SimtropBuggi

    SimtropBuggi

    Joined:
    Feb 15, 2013
    Posts:
    98
    That's a huge number of terrains! Why'd you make them 64x64?
     
  5. ChadH

    ChadH

    Joined:
    Aug 28, 2012
    Posts:
    101
    I just wanted to see if I could break it.
    LOL

    I didn't.
    This is a very robust asset.
    Now I am applying splat textures and trees to see what happens.
    Just doing this for fun really.
     
  6. ChadH

    ChadH

    Joined:
    Aug 28, 2012
    Posts:
    101
    Here is the same 4096 terrains with splat textures applied to the ENTIRE terrain
    I just used the standard assets that came with Unity
    Nothing fancy
    I will use better textures and post again soon :)
    $4096TCTEX1.jpg
     
  7. eagle555

    eagle555

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

    I got some great news.

    First I created an official TerrainComposer forum on my site. So lets move to over there everyone, it's much more arranged and organized then only 1 thread. On my forum is another screenshot in showcase thread, with cloud shadows added

    Comming in this week update:
    I've intergrated the free triplanar shader into TerrainComposer (optional), and tweaked it a bit and it's fully customizable, that gives you that behond AAA terrain melting and colorful look. I use some very simple tricks that pushes things through the roof. E.g. there is no colormap/normal overlay, but they are intergrated into 1 splat texture, so you can mix them whatever you want where and how much. There's no problem with grass getting the color from the colormap with this solution! You can easily put the shader on/off with just a click.

    Chad already tested it last evening (for me, at his place it was afternoon), by creating 4096 terrains and using the triplanar shader, seeing if he could break it. But the system worked still as supposed :).

    This is 100% made with TerrainComposer, heightmap, colormap, normalmap and splatmap. I just created it quickly inbetween programming to try it out.

    http://www.terraincomposer.com/wp-content/uploads/2013/02/TerrainComposer_Potential.jpg
    $TerrainComposer_Potential.jpg
     
    Last edited: Mar 5, 2013
  8. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,458
    Holy S***!!! That looks KILLER... how does this thing look when lightmapped with Beast...? This may reignite my faith in Unity terrain
     
    Last edited: Mar 6, 2013
  9. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Good question. I'm going to find out :D. So far I haven't been lightmapping my screenshots...
     
  10. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,458
    And I would love to see the use of a regular unity shader... like a bumped diffuse... I am not on Unity 4 yet
     
  11. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    I made a new video demo/tutorial about creating procedural heightmaps and splat texturing.

     
  12. Frednaar

    Frednaar

    Joined:
    Apr 18, 2010
    Posts:
    153
    Very nice thanks , look forward to part 2!
     
  13. EvilDingo

    EvilDingo

    Joined:
    May 7, 2011
    Posts:
    190
    I can't get anywhere with this. I began to follow your video but there is no "Perlin" function for the heightmap layer. It only has "Random" which does exactly what it says, makes random points across the terrain.

    I tried following the Island tutorial, but some trees I downloaded from the assets recommended in the document just get errors when I try to set them. When I tried clicking "Generate" it kept saying like "Nothing can be generated with the current settings" (paraphrased) but I had no idea what setting or whatever it had a problem with.

    I tried creating a terrain from scratch, but it got an error when I tried to load the island height map.

    Very frustrated with this right now. I can see it must be a useful tool, but I'm getting no where.

    On top of that, none of the delete layers, filters, whatever actually remove anything. You can click that [-] until the cows come home but it won't go anywhere. Accidentally click on the [+]? You're stuck with it.

    The documentation is fairly poor too. You'll start writing in a tutorial fashion, then you'll completely jump subjects and start talking more about features, before going sort-of back to the tutorial.

    Try this:

    - Write out a tutorial step by step. Click by click.
    - No "maybes", no "you might want", no "get these assets even though I used something else."
    - One step to the next using the assets you linked in your document.
    - Screen shot each step.
    - Update the documentation.

    Write a -separate- document that details each feature and button.

    If you can write a tool as complex and useful as this (I'm assuming) is, then you can spend a few hours on great documentation to go with it.

    Cheers!
     
  14. eagle555

    eagle555

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

    Thanks you very much for your advice, good points!

    The video I made is made with the update that will be released today. The Perlin function is there but not on default, that's what I changed in the new update. You can click 'random' at curve and choose between normal, random and perlin.

    I included two big documents, a main document, did you read it or open it? and a tutorial document. The main document includes all the screenshots, for the island tutorial I made a video + pdf document + remarks with the text in the project itself. You need to read the main document first and watch some more of my tutorial videos (if you do island tutorial watch the island tutorial video first). Read the ReadThis!.txt, where I explain the island tutorial is intermediate level, and better to do it later and first start with making the satellite terrain from my runtime video. Then do the small procedural heightmap tutorial, and then do the island tutorial.

    If you hold your mouse cursur still at '-' button on a layer, you will notice the tooltip text -> 'Erase this layer (control click), it's also in the main document on page 12. All the component buttons and how they work. It's a security I build in, to not accidentely erase a component.

    That you don't get any output is because you don't have the output buttons activated, you can see that in my last video. I first activate output (go over it with mouse and you see where every output button is for, mountain icon -> heightmap layers, color pallete icon -> color layers, etc) for each layer type, then it gives output.

    The links I give in my readme file a links to 'Free' Assets, which you can use if you don't have any great packages from the asset store like Michael O, his nature pack, tropical nature pack, etc. I didn't noticed that a tree didn't work from the link, will check this and remove it.

    I agree with you that documentation needs to be expanded for people to start with it first. Simple and clear steps and guidelines. I will focus on that completely the next week, to get that done first, write a troubleshooting pdf/FAQ to make sure everyone can get it going. Once you understand it's actually too simple.

    Greetings,
    Nathaniel
     
    Last edited: Mar 9, 2013
  15. Rico21745

    Rico21745

    Joined:
    Apr 25, 2012
    Posts:
    409
    Hey Nathaniel,

    Looking great, here's a question I have for you regarding TerrainComposer.

    I'm looking to create all my buildings/cities procedurally for my game. Would it be possible for me to pass along, lets say, a BoxCollider to a terrain composer on the unity Start or Awake function and have terrain composer flatten the terrain within that bounding box?

    The use for this is simple, I'd use the bounding box to mark the boundaries of the city. In order to avoid visual artifacts, the terrain the city sits on top of needs to be flat. Is this something TerrainComposer can do or can be modified to do in the future?

    I really like the asset but I need to make sure it fits for what I need to do for my game before I get it. If this is possible, it would be a huge time savings for me :)
     
    Last edited: Mar 9, 2013
  16. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    That's a very good question. You can do this when placing the objects. You can create a whole layer group inside any object you place. Having all those 6 layer outputs to do something in the box space, or even bigger space around the object. Like flatten the terrain, texture the terrain, placing trees around the object, putting grass around, etc, etc within the object area...And even place objects within the objects with all layer outputs, that goes on and on, endless. That's what I mean with multilevel placement...
     
  17. Rico21745

    Rico21745

    Joined:
    Apr 25, 2012
    Posts:
    409
    Hmm I guess my question is really, I need to be able to do this in my own code, outside of the editor. The idea is that every time my player starts a new game, a new terrain and a new level is generated procedurally. As such, I can't really use the built in tools in terrain Composer's Editor GUI to do the flattening/placing of objects. This needs to be done on Start() through my own code.

    What I'm looking for is the ability to do something like this:

    Code (csharp):
    1.  
    2. void Start()
    3. {
    4.       Bounds myCityBounds;
    5.  
    6.       City  myCity = GenerateCity();
    7.       myCityBounds = myCity.bounds;
    8.  
    9.      terrainComposer.FlattenArea(myCityBounds);
    10.  
    11.  
    12. }
    13.  
    14.  

    See what I mean? I need the ability to interact with the TerrainComposer terrain before the level loads. The terrain would be generated through Unity IDE, but the buildings will be generated and placed at runtime procedurally, as such, I simply *must* be able to flatten the terrain right before the game starts, outside of the Unity IDE.

    I hope I was clear enough :p
     
  18. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Oh I get the idea. You want to procedurally create in runtime. TerrainComposer can generate in runtime, but I have to make documentation for it and API reference. Yes it can do that.

    You don't even have to call that code. In the layer you can devine that option. Just load your TC project with layers, etc:
    something like this:

    terrainComposer.LoadProject(....);
    terrainComposer.generate = true;
    terrainComposer.GenerateBegin();
    while (terrainComposer.generate){terrainComposer.GenerateOutput(...);}

    It's multi-thearding so you can generate in update function also while playing. Make as much TerrainComposer generation instances as you want.
     
    Last edited: Mar 9, 2013
  19. eagle555

    eagle555

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

    Update 1.04 is availible for download now. So every feature is there from my last video! :)

    Greetings,
    Nathaniel
     
  20. Archania

    Archania

    Joined:
    Aug 27, 2010
    Posts:
    1,662
    Awesome. Fantastic work.
     
  21. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Thanks Archania,

    Here's higher heightmap resulotion screenshots of the same project from my video, it's 3.5 times higher resolution. Just Unity standard terrain shader and no colormap or anything.

    $procedural_high_res.jpg $procedural_highres2.jpg $procedural_highres3.jpg
     
    Last edited: Mar 10, 2013
  22. SevenBits

    SevenBits

    Joined:
    Dec 26, 2011
    Posts:
    1,953
    This looks like a great product.
     
  23. EvilDingo

    EvilDingo

    Joined:
    May 7, 2011
    Posts:
    190
    Hello,

    Thanks for the update. I'm still having a few issues I hope you can help with.

    In your video, you create a little Perlin terrain with low strength. Then you duplicate it. This allows you to change it around, move it, zoom it, etc, while the first filter interacts. This is fantastic -- but... my version (1.0.4.0) doesn't work the same way.

    I start with a low-strength Perlin terrain, then I duplicate it to add some variety. However, any changes I make to the new filter destroys the original. The best example is when you move the second filter's offset, you can still see the original filter staying in place. In mine, it doesn't do that. It appears that when the filter is first applied, it's added to, and any changes I make to it, changes the original as well. Zooming, offseting, it doesn't look nearly as nice as your tutorial example. Everything is messed up whenever a new filter is added. If I remove the filter, the original is there as if nothing ever happened.

    What are you trying to accomplish with the change filter? What about you duplicate the entire layer and modify the change filter's curve? Why is that done?

    I can see and understand most of the video (why do you what you do) but I can't replicate your results even if I follow click for click. The later filters overwrite the earlier ones and can't be independently zoomed or anything without affecting the earlier ones.

    Any ideas?
     
  24. EvilDingo

    EvilDingo

    Joined:
    May 7, 2011
    Posts:
    190


    Hi again.

    I'm now trying to set my splat textures. Following your video, they all appear to look great. But when I get to that step, mine are super low-res. The only way I can get them to improve is to set the basemap resolution to the highest. It still looks very poor though. I've checked the quality settings and the textures shouldn't be resized.

    Anything I'm missing? Changing the tile size doesn't help with the texture resolution.
     

    Attached Files:

    Last edited: Mar 11, 2013
  25. Rico21745

    Rico21745

    Joined:
    Apr 25, 2012
    Posts:
    409

    Hmm I'm not sure I understand. Are you saying these filters can be created outside of the TerrainComposer UI in the unity editor? I mean basically I only need to do this once.

    Let me give you an example that will hopefully be clearer.

    I have a terrain that looks like this (some terrain with cliffs and mountains and such created using TerrainComposer, lets say:

    Code (csharp):
    1.  
    2.  
    3.   /\          /\
    4.  /  \        /  \
    5. /    \/\ /    \
    6.  
    Then, in the unity editor, I place a prefab I made, with contains a script that creates a procedural building wherever I place this prefab. This prefab has a box collider around it which marks the max bounds of this building. Let's say that I created a random noise algorithm that places these prefabs all over the terrain, but doesn't discriminate where it put them. It could maybe put them at the top of a pointy steep cliff.

    Code (csharp):
    1.  
    2.  
    3.                [ X ]  <--- buiding
    4.   /\           /\
    5.  /  \        /   \
    6. /    \/\ /      \
    7.  

    My question is, is there an easy way to tell terrain composer at runtime to flatten the pointy cliff with the building on it, so that the building looks like it sits properly on the mountain. Creating a terrace, so to speak. And I guess, how complicated will this be to do if not? Is your code commented or will I be on my own figuring it out?

    Thanks for the responses thus far, look forward to hearing back!
     
  26. eagle555

    eagle555

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

    Sure I can help, anytime. It is easier for me if you want support and send it to Nathaniel_Doldersum@hotmail.com, because I don't read the forum all the time. It's not pratical to update the forums all the time to see if someone posted a message to get support.

    The video I made with version 1.04, so that can't be a difference.

    As for zooming and scrolling the total perlin curves in all the filters in a layer. You have to use the zoom/offset, in the heightmap layer (grey color), not in the filter, which will only influence the filter.

    When you have made your heightmap layers, you have to change the terrain resolution to heigh like 1024-2048 to get high resolution results and then generate again, as I do in the video.

    What you say about the perlin curve is indeed true, I create two low strength filters with perlin curves. What you encounter is because a perlin creates also negative values that are remembered for the next filter . What you need to do is activate the normal curve under the perlin curve, so the value that comes out of the filter is minimum 0 and mixamum 1. Then it will behave like in the video, because it's also active there.

    $Perlin.jpg

    What I'm doing with the change filter and it's subfilter is that I change the lanscape only on parts based on the subfilter. The subfilter changes the strength of a filter. In the video I use a perlin curve in a subfilter. What happens is part of lanscape if flattend, while other parts of the landscape stay the same. It's in the form of a perlin which in 2d is a cloud image. You can see the 2d presentation of the perlin function in the heightmap image tool. So the black parts are not substracted while white is maximum substraction.
     

    Attached Files:

    Last edited: Mar 11, 2013
  27. eagle555

    eagle555

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

    The basemap resolution is the far away resolution of your splatmap colors to be displayed, without the texturing details. To get higher resolution you have to set splatmap resolution to 1024-2048.

    The terrain size has also influence on you resolution detail. If you for example make it 10x bigger like 10.000 it will have 10x lower resolution as if the size is 1000 (only with procedural). What I did in the high res screenshots is using the exact same project, but only making the terrain size smaller and then generate again. The highres is 3.5 x more resolution because the terrains are 3.5 x smaller (you have to keep height the same). The terrain size on the video I use default on 1000.
     
    Last edited: Mar 11, 2013
  28. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    I don't have such script yet. But you can easily write it yourself. Just a few lines, I can make it for you if you want. You just attach the script on your GameObject and make a prefab of it. And on function Start it flattens the terrain and then destroys itself: Destroy(this);

    C:\Program Files (x86)\Unity\Editor\Data\Documentation\Documentation\ScriptReference\TerrainData.html

    You need GetHeights to read the heights from the area
    then loop the area, making the height the same as the building pivot or make a child gameobject with position at the bottom and the center of the building.
    Then do SetHeights to write the heights to the terrain.

    Greetings,
    Nathaniel
     
    Last edited: Mar 11, 2013
  29. GD-Darren

    GD-Darren

    Joined:
    Jan 12, 2013
    Posts:
    53
    Amazing asset will definetly buy in the near future.
     
  30. Rico21745

    Rico21745

    Joined:
    Apr 25, 2012
    Posts:
    409
    I bought this and I have to say I'm super impressed with what you can do. It's a great tool for the money and Nathaniel is very good about providing support. Definitely recommend this to others!
     
  31. nubdev

    nubdev

    Joined:
    Mar 30, 2013
    Posts:
    87
    I am having trouble finding these links in any documentation, any chance they have been added yet?
     
  32. eagle555

    eagle555

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

    I just send you a private message with the links.

    Greetings,
    Nathaniel
     
  33. nubdev

    nubdev

    Joined:
    Mar 30, 2013
    Posts:
    87
    Thanks :)
     
  34. WJ

    WJ

    Joined:
    Oct 25, 2012
    Posts:
    97
    Hi, thanks for the great product however I'm having an issue I hope you can help me resolve.

    My textures look pretty flat without my spec and normal maps applied to them and I found the TriPlanar_on package which I installed however it changes nothing, and applying it directly to the terrain does nothing either, how exactly do you use the triPlanar terrain shader? Or is there another way to apply bump and spec to the textures.

    Thanks
     
  35. eagle555

    eagle555

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

    Thanks for your question. Yes the standard unity terrain shader has flat textures, in Unity 4 there's a bump map shader.

    It's correct that the embedded triplanar isn't working yet in TerrainComposer version 1.04, I have a newer version though where it works. If you want to try it you can contact me at Nathaniel_Doldersum@hotmail.com, so I have your email and can send you the latest version.

    Greetings,
    Nathaniel
     
  36. Phantasmus

    Phantasmus

    Joined:
    Oct 1, 2013
    Posts:
    4
    There is a problem while trying to generate a terrain from my previously saved
    Terraincomposer_Save prefab.
    When I'm later instantiating this prefab, terrain doesn't appear.
    What must I do to generate a terrain with all saved settings from
    terraincomposer prefab? What am I doing wrong?

    I didn't find any examples in docs or youtube :(