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

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,676
    The timing of a software release can be imprecise. I remember buying EasyRoads in November of 2013 because the dev was working on an update (v3.0) which would include intersections. I expected the new version to be released in January of 2014, but ... it's still in beta and still being developed at this very moment. And the dev is a good one, and dedicated to his product.

    So ... I don't mean to scare anyone ... but you never know. It's done when it's done. :)
     
    Seneral likes this.
  2. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Yeah, I don't expect in this month..but certainly before 11 months. :) The beta...at least.

    Easy Roads was an exception. Their beta's went on forever....Suimono too. lol
     
  3. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Sorry guys for the delay. I was implementing the new GUI, it has quite some changes so was a bit of work. Tomorrow I will show screenshots...

    Nathaniel
     
    Tinjaw, Seneral, Farelle and 2 others like this.
  4. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Well that won't be the case for TC2 now as I'm working full-time on it, and first beta is as good as ready ;). Before I was working on many projects and had only a little spare time to work on a new TC.

    As 1 developer you can only do that much, when it comes to developing it's always hard to predict, even for a huge teams like Unity...They worked on the new GUI for 3 years if I'm correct, and promised it would be there soon from the start. Also the new terrain system has been in research for more then 2 years. Then Unity 5.4 was planned for March and now moved to June.

    Also with Unity you can run into unforeseen things. A big one is memory leaking, I think almost everyone encountered this issue and many aren't even aware of it. When you are in the editor and click play/stop/play/stop, etc or in a build it happens too...many times you notice the memory goes up and up. It's a sign something is leaking and accumulates. I made a memory inspector tool to make sure TC2 isn't leaking anything. We use many Assets for our game and we have memory leaking issues, and I used my memory inspector tool and noticed that many Assets have memory leaks. For example HideFlags.DontSave is used on GameObjects (have Hidden flag set as well so doesn't show in Hierarchy window) and Textures, which means you need to destroy the objects yourself from memory (it's not done by Unity when switching Scenes, or click play/stop), but it isn't done by the devs. So what happens then is that textures keep accumulating and for example hidden camera GameObjects in memory and performance can drop and in the end it can even crash Unity or your game...Another one is that Unity doesn't destroy in runtime or editor created meshes by us devs, they need to be destroyed manually, accumulating meshes in memory is also something that happens a lot.

    Nathaniel
     
  5. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,676
    @eagle555 - It would be great if you could drop a list like the one above into a Unity dev thread like this one. :)
     
    Tinjaw, Seneral and docsavage like this.
  6. docsavage

    docsavage

    Joined:
    Jun 20, 2014
    Posts:
    1,020
    This is really useful info and good to know. Thanks Nathaniel.

    Also it sounds like the GUI has had a big overall. Really interested in seeing it.
     
  7. Steve-Tack

    Steve-Tack

    Joined:
    Mar 12, 2013
    Posts:
    1,240
    It does seem almost cruel to leave the "planned to be released in April" on there. :)

    "You take it on faith, you take it to the heart
    The waiting is the hardest part"
     
  8. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    This good to hear. I am ready to start using it the day it becomes available. :)
     
  9. futurewavecs

    futurewavecs

    Joined:
    Jul 26, 2012
    Posts:
    72
    A little over a week ago he said next week. So when he said it'd be out has passed. Even so we'd rather he not release it for beta until he feels it is ready for beta. He wants feedback on whether we find it easy to use or not and it supposedly will not have any or very little documentation while we test this out. With that said if he already knows places to improve that EASY aspect he is likely fixing those things so that he gets an accurate representation on whether it is easy or not. So while many of us are anxious for TC2 we are also happy he is doing what needs to be done before releasing it to BETA.
     
  10. eagle555

    eagle555

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

    Here's a screenshot with the progress of the new GUI (preview images are not 100% accurate and results are missing). It's almost done, need to add 3 more buttons and gui under the preview of each node, probably will finish it tomorrow (the GUI). Think it was worth the waiting...overall it looks much more clean now in my opinion.

    Nathaniel

    TC2_NewGUI1.jpg
     
  11. Farelle

    Farelle

    Joined:
    Feb 20, 2015
    Posts:
    504
    It does indeed look alot cleaner now :)
     
  12. docsavage

    docsavage

    Joined:
    Jun 20, 2014
    Posts:
    1,020
    Very nice.

    The grey bar dividers are a nice way of separating the sections. Are they collapsable/folding?
     
  13. barcode802

    barcode802

    Joined:
    Apr 6, 2014
    Posts:
    36
    Running to a bunch of errors when attempting to import Terrain Compose into an existing project. Anyone have ideas as to what might be going on here? Suimono and Camera Path are in this project along with a lot of custom code

    Assets/TerrainComposer/Scripts/MultiTerrainBoost.cs(43,47): error CS1061: Type `Bounds' does not contain a definition for `size' and no extension method `size' of type `Bounds' could be found (are you missing a using directive or an assembly reference?)

    Assets/TerrainComposer/Scripts/MultiTerrainBoost.cs(44,136): error CS1061: Type `Bounds' does not contain a definition for `size' and no extension method `size' of type `Bounds' could be found (are you missing a using directive or an assembly reference?)

    Assets/TerrainComposer/Scripts/MultiTerrainBoost.cs(44,214): error CS1061: Type `Bounds' does not contain a definition for `size' and no extension method `size' of type `Bounds' could be found (are you missing a using directive or an assembly reference?)

    Assets/TerrainComposer/Scripts/MultiTerrainBoost.cs(44,254): error CS1061: Type `Bounds' does not contain a definition for `size' and no extension method `size' of type `Bounds' could be found (are you missing a using directive or an assembly reference?)

    Assets/TerrainComposer/Scripts/MultiTerrainBoost.cs(44,254): error CS1502: The best overloaded method match for `UnityEngine.Vector3.Vector3(float, float, float)' has some invalid arguments

    Assets/TerrainComposer/Scripts/MultiTerrainBoost.cs(44,254): error CS1503: Argument `#1' cannot convert `object' expression to type `float'

    Assets/TerrainComposer/Scripts/MultiTerrainBoost.cs(44,47): error CS1061: Type `Bounds' does not contain a definition for `center' and no extension method `center' of type `Bounds' could be found (are you missing a using directive or an assembly reference?)

    Assets/TerrainComposer/Scripts/MultiTerrainBoost.cs(54,36): error CS1502: The best overloaded method match for `UnityEngine.GeometryUtility.TestPlanesAABB(UnityEngine.Plane[], UnityEngine.Bounds)' has some invalid arguments

    Assets/TerrainComposer/Scripts/MultiTerrainBoost.cs(54,36): error CS1503: Argument `#2' cannot convert `Bounds' expression to type `UnityEngine.Bounds'
     
  14. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,314
    @eagle555 does anyone had beta access? or is it possible to know when its going to happen ? i have read first week of may somewhere
     
  15. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    This can't be related to that script. There's something wrong with your project (with your Assemblies) as the errors for Bounds and Vector3, they are standard structs from UnityEngine.
    http://docs.unity3d.com/530/Documentation/ScriptReference/30_search.html?q=bounds

    What Unity version are you using? The script is optional and can be removed, if you remove it do you get a bunch of new errors?

    Nathaniel
     
  16. impactit

    impactit

    Joined:
    Jan 28, 2015
    Posts:
    41
    Hey Nathaniel

    Above all, great job with the new Terrain Composer. I can not wait to play, and to join TS2 to my project. It looks very promising. I'm looking forward, and ofc wait for alpha/beta acces :p

    Andrzej
     
  17. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Yes its collapse able like you see for the Color output, there it is collapsed.

    No I didn't release it yet. I'm doing my very best to get it out asap...

    Nathaniel
     
    docsavage likes this.
  18. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,212
    When I first started programming I expected to have something out by May of 2014, hahaha, here we are two years later. I couldn't have made back then 1% of the stuff I can make now. Even today I made a big change to one of the central systems of my game, but that's life! Harder, better, faster, stronger! Nobody wants to put out a half-finished project with their name on it, I'm sure Nathaniel is just ironing out those last inevitable kinks.

    On Biomes...
    I'm really interested in getting procedural biomes working, is anyone else planning on doing this? I can imagine different ways about it. Maybe I have a blanketing layer that first checks a giant noise wave to see what biome we are in. In that case is it possible to assign 4 textures to this terrain (snowy mountains) and a different 4 textures to that terrain (forest) through the TC2 layers? How many layers of this do we think we'll be able to achieve? For example do we have a Snow<->Forest biome that is designed to fade between the two biomes, or do we partly accommodate one for the other within it. It could cause problems if layers overlap and can't find their textures, I wonder how we will handle that. All just guessing until I get my hands on it... Unity wants to pre-assign the textures whether I'm using them or not.... I wonder if I can get TC2 to assign them as needed as things roll and change, pulling from say a database of 32, where only 3-7 are ever used at once (up to 8 with RTP). o_O
     
  19. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,206
    I asked that some time ago and Nathaniel said TC2 would assign these textures accordingly (posts here), and TC2 would support 16 textures in total that would (automatically?) adapt the terrain splat textures. I think that's the real problem we previously had with biomes, even with TC1 we could do multiple layers, it was simply hard, but doable.

    Besides, I'd really like to see some fully procedural worlds with multiple biomes and such.
    But what I'll likely do first when I get hands on the beta is creating a set of nodes with scripts attached to do some special work:)
    For example a node that will help you layout your villages, which could search for the best places to put a house in a specified radius/region and spawn previously specified nodes/houses which adapt the terrain accordingly;
    Or a set of scripts/nodes that helps you make paths/rivers from curves (only terrain features); It could just provide some 2D textures (masks, height change, ...) from a 3D curve, for example.
    I think these generator extensions will be one of the major things the community of TC2 can help with, and I'm very exited what other people will come up with;)
     
    Last edited: May 13, 2016
    malkere likes this.
  20. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,212
    I've scripted some stuff to flatten out wherever TC puts the GameObject enough so that the cave entrance edges do not get cut off before going into the terrain, then using RTP to cut holes in the terrain so you can actually go down into the cave. I also have stuff that spawns things separate from TC whenever it gets a signal that a terrain has been created by looking over the heightmap/slope/raycast for trees etc. That stuff is set to a 10% chance per kilometer squared, so per terrain, so I was doing it by hand, but you could actually set the minimal distance in TC up to 1km or probably higher if you messed with the scripting.

    @Seneral Have you played Rust? Their river system seems simple enough, I hope to get something like that going.
     
  21. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,206
    Nope, but it does look really cool! Are rivers randomly generated or are they placed by hand? Some random river placement would be amazing, really;)
     
  22. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,212
    They have procedural maps with mini-dungeons and everything. The rivers basically are a mouth, sort of like a small cave. that get put somewhere and then flow downhill until they hit a water source, or spawn another cave to go back into. I think it just draws a line, lowers the terrain, paints it sandy, and keeps moving. getting all of that creation to run in the right order and things has been a project I'm sure. They sold millions of copies though, so they've had five-six people on their team for a couple years now.
     
    Seneral likes this.
  23. chilton

    chilton

    Joined:
    May 6, 2008
    Posts:
    561
    Hey is the current version of TC missing some settings for direction, or did this change? I thought it had two sets of curves.

    Thanks!
    -Chilton
     

    Attached Files:

  24. eagle555

    eagle555

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

    Its only showing in a filter, not in a mask...TC2 will have both...

    Nathaniel
     
  25. nubdev

    nubdev

    Joined:
    Mar 30, 2013
    Posts:
    87
    This may be a stupid question, but will this be compatible with any voxel based terrain assets to any degree?
     
  26. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,212
    hmmm... you could certainly feed the data into a voxel engine for object placement, heightmap control, etc. It is really a 2D system though and voxels are really best in 3D. There's no limit with a little programming though.
     
  27. rerwandi

    rerwandi

    Joined:
    Dec 8, 2014
    Posts:
    544
    So, how long do you guys estimate for the beta ?
    Now it's become Soon rather than estimate date :D
     
  28. Jarek-Defiler

    Jarek-Defiler

    Joined:
    Feb 6, 2015
    Posts:
    64
    Hello,
    Sorry if this has been asked before. But for those of us who have been using Terrain Composer for awhile, will the upgrade to TC2 be $15? Or is it just for those who recently bought TC?
     
  29. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,206
    It is the upgrade price from TC to TC2 in the first week(s?) after release of TC2, so this is valid for all customers of TC up until now and until that offer ends. But even then there'll most probably be some discount for people who own TC:)
     
  30. Jarek-Defiler

    Jarek-Defiler

    Joined:
    Feb 6, 2015
    Posts:
    64
    Awesome, thanks!
     
  31. nubdev

    nubdev

    Joined:
    Mar 30, 2013
    Posts:
    87
    thanks
     
  32. futurewavecs

    futurewavecs

    Joined:
    Jul 26, 2012
    Posts:
    72
    I ran into memory leaks when building a voxel engine in Unity a couple of years ago. I noticed it seemed to do with when I was using arrays that referenced GameObjects and some other unity specific types. When they were destroyed they were not properly garbage collected even if I triggered a forced garbage collection. In researching this I found that there were some .Net issues (at least the version Unity was using) that do have problems with GC. If you set the array to NULL after destroying the objects this seemed to fix the problem and GC properly recovered the memory. I didn't test this with Lists and other data structures. I don't know if that helps or not, but I thought I'd share just in case. Basically, in some cases you need to NULL out and item rather than simply assuming it will do that for you when it exits a function/method that the item was created in.
     
  33. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    As Malkere says it's most a 2D system as Unity's terrain system is 2D. For object placement it can actually place above the terrain as well. But heightmap/splatmap etc are all 2D textures.

    Estimate date is within this month, first beta I estimate next week. Progress is really good and today I will show more screenshots of the new GUI.

    Yes for everyone that own TC1 it will be $15 in the first week (might be a little bit longer). Then I will raise the upgrade price as well as the TC2 price. As soon as the beta is on the Asset Store the price of TC2 will start with $45.

    Thank for sharing. I got TC2 memory leak free with the use of my Memory inspector and with it I keep sure that it keeps that way with adding new code.

    Unity's garbage collection has been improved over time, I think there were several bugs with it that were fixed. I did a test with an array of GameObjects and referencing them and seems to work fine now. If the array itself isn't used anymore it needs to be set to null.

    What always used to be an issue is garbage collection of large arrays, it got better but think its still not were it should be. Try this code:

    using UnityEngine;
    using UnityEditor;
    using System.Collections;

    [ExecuteInEditMode]
    public class LeakTest : MonoBehaviour
    {
    public int resolution = 16384;
    public bool init;

    void Update ()
    {
    if (init)
    {
    init = false;
    Init();
    }
    }

    void Init()
    {
    float[,] array = new float[resolution, resolution];
    }
    }

    Just add the script to a GameObject and click Init many times and see what happens to Unity's memory usage (it accumulates). It should free up the float[,] array automatically because it's only used within the Init() scope.

    Nathaniel
     
  34. Beloudest

    Beloudest

    Joined:
    Mar 13, 2015
    Posts:
    247
    I have a strange issue where I import Terrain Composer into an empty project. Create some terrain tiles, run a perlin noise height filter on the terrain and it works. Delete my terrain via the Hierarchy and Composer object after which Composer seems to not ever be able to modify the height of new terrains ever again. It's slightly odd, any ideas? I'm using the latest version, thanks. This has happened in 2 projects I have tested it with.
     
  35. camel82106

    camel82106

    Joined:
    Jul 2, 2013
    Posts:
    304
    Still one question for TC1. I will be presenting my project this weekend and I have a little problem with it.

    I'm compositing x raw images to create final terrain grass cover. So for example:
    open land + rough land - roads (you don't want to have grass on roads of course...)

    This is easy and it's working in ideal case. But I have problem that in some map this converts to:
    open land (value 1) + rough land (value 1) - roads (value 1) = 1

    At least it looks like it's working so. Results could be only somewhere between 0-1 (black-white) But inmemory you are not clamping it. I would await (1 + 1 = 1) - 1 = 0

    Is it understandable and how can I do it?
    I know that I can change curve for roads from 0-1 to 0-2 for example or even bigger number. But than I would lost smoothed edges.

    Thanks
    Peter
     
  36. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    @eagle555 Does TC2, or TC1 for that matter, have the option to place trees on the terrain as individual game objects instead of through the Unity terrain tree system? I'm guessing that TC2 must have something like this considering your streaming details feature. I'm excited to get my hands on that.
     
    Farelle likes this.
  37. ksam2

    ksam2

    Joined:
    Apr 28, 2012
    Posts:
    1,079
    Demo version please :D
     
  38. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,212
    certainly does
     
    magique likes this.
  39. camel82106

    camel82106

    Joined:
    Jul 2, 2013
    Posts:
    304
    It's possible even in TC1. Try to explore Object tab. But I'm missing one thing there that would be very interesting to have...
    If we would be able to feed vector3 positions as input for generating objects. I believe that this is not possible now. And it would certainly raise streaming possibilities with TC.
     
  40. gian-reto-alig

    gian-reto-alig

    Joined:
    Apr 30, 2013
    Posts:
    756
    Maybe a stupid question, but I couldn't find an answer both here or on the terraincomposer page:

    TC seems to be able to manage multiple terrain tiles. Does it also allow to seamlessly work on these terrain tiles in the editor? So I could lower the heightmap at the border of tile 1, and the heightmap border of tile 2 would be changed with it to keep the tiles synced?
    Same with splatting, can I paint a texture over multiple tiles without having to switch from one terrain tile to the next?

    Also, just to be sure, does TC support non-square tile setups? Like 4x8 tiles (tiles itself are square, resulting terrain is not)?


    Regards

    Gian-Reto
     
  41. googlebac

    googlebac

    Joined:
    Feb 1, 2015
    Posts:
    56
    Hi, I cant paint my terrain manually after creating terrain with world composer, deleted the sattellite images, even generating a splat map doesn't work. I just get one texture on the terrain and unity's paint tools have no effect. what am I doing wrong?
     
  42. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,212
    I haven't tried the 4x8 stuff. I'm pretty sure Nathaniel (developer) has said TC2 will support that, I'm not sure if TC1 does.

    As for editing stuff outside of TC1, it will then not be recognized with TC as you aren't doing it in TC. For example if you are using a heightmap, split across four terrains, when you make a change to it in Photoshop and TC reloads it, the changes will apply to any terrain that got changed. If you change the heightmap using Unity's brush, TC won't know about it and it would be overwritten next time you told TC to generate. Same with splat, objects, etc. If TC doesn't know about it it can't cope with it.
     
  43. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,212
    I generated gameobjects with scripts attached that then do what I want the to do be it build something at a specific location, change the location it's at, or whatever. Maybe not completely what you are thinking of, but similar, no?
     
  44. gian-reto-alig

    gian-reto-alig

    Joined:
    Apr 30, 2013
    Posts:
    756
    Thanks a lot for the response!


    I think I missed a lot of information here... is there any official PDF Documentation of TC? Seems like there is a pretty rigid workflow.

    So... until now I created my heightmaps in PS, then ran it through World Machine to "beautify" them, then imported them to Unity for the fine tuning work (adjusting heights to assets placed, sculpting the finer details of the terrain which is quite hard to do without a 3D Interface).

    How would my workflow look in TC? Would I have to go back to PS for every small tweak to the heightmap?
     
  45. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    I remember some time ago trying this. I was able to make it work by exporting the splat map from Unity after repainting and replacing the one in TC. Maybe I am remembering this wrong..but doesn't seem like it. Could have been that I used RTP and replaced the splatmap but it should work, as long as TC lets you replace the splatmap.
     
  46. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,206
    I think it might be possible with a Min mask, sounds plausible at least;) It would clamp your output automatically to 0-1 and also set roads to 0 but keep the smooth transition, right? That's what you're looking for?

    I'm pretty sure you can, there is a toggle when creating terrains so you can edit the other value seperately (by default it's always square). I didn't tested it out but it should work:)


    Also, regarding river generation - this paper might be a good way to generate a river network procedurally without a costly erosion simulation. Btw, I'm on it. Erosion is coming! :D
    I bet this can then be used to extract water/sea level for a specified region and also to generate rivers. Right now, it's only water simulation, but you already can extract paths with great/fast water flow to generate rivers and also you could extract sea regions and their water levels:) But to get realistic results erosion is needed:)
     
  47. br20o0ly

    br20o0ly

    Joined:
    Aug 9, 2015
    Posts:
    17
    what's the new release date
     
  48. camel82106

    camel82106

    Joined:
    Jul 2, 2013
    Posts:
    304
    Yeah I have made similar emergency solution with Min and using splat textures. But this is throwing away smooth transitions. So it's not perfect. Perfect solution would be ability to specify clamp/normalize result of mask step to 0-1.
     
  49. Quis

    Quis

    Joined:
    May 16, 2014
    Posts:
    14
    Hey, I am considering to buy this asset although from watching tutorials it seems to be not what I expected.

    I haven't seen the author to make his own terrain all he does in tutorials is import some 'magic' raw heightmaps and then use them.

    So my question. Is this "terrain generation" or "terrain editing with masks and populating" tool?
     
  50. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,206
    It is terrain generation and 'stamping'/masking tool at the same time. You can certainly generate it fully procedurally, and that's what most of us will be aiming for I suppose (in TC2 it'll be a lot less messy and confusing;) ).
    But I also guess that Gaia recently has set/fueled the trend of stamps. That is totally ok, but I too prefer the 'traditional' fully procedural way.
    The 'magic' raw stamps in the videos will be all included in TC2 (4k) but you have the option. It will definitely improve the quality as they show features of erosion while there is no real erosion solution for fully procedural terrain in TC2 (or in general) yet.

    I don't know which videos you're refering to but I think the reason Nathaniel has used them in his TC2 preview vids primarily (or as a partial helper) is because he wants to integrate them in the common workflow, and they certainly do have benefits:)
     
    Quis likes this.