Search Unity

Terrain Composer2 a next generation GPU powered terrain tool.

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

  1. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,212
    splatmaps are two dimensional float arrays that define how much of what material is applied where. If you want to apply that data quickly to mesh you need something that can handle that data like RTP. Exporting the splatmap is actually exporting the first four layers of the array into the channels of RGBA as an image, it's not an actual export of what the terrain looks like. To be honest I gave up before I found a good way to do it in runtime using RTP about a year ago, but it's possible.
     
    Ryuichi173 likes this.
  2. eaque

    eaque

    Joined:
    Aug 20, 2014
    Posts:
    762
    Hi Malkere, Many thanks for your answer....Seems i have to take the splatexture and open GIMP to substitute the RGB by some textures.....What a mess!!:confused:........After all those years, i thought someone would have found a way to export the terrain texture as a flat "UV"....If someone know a fast way to do that in GImp i'll be happy to know...
    I guess Nathaniel could find a quick trick to do that.....

    Cheers:)
     
  3. BigBite

    BigBite

    Joined:
    Feb 20, 2013
    Posts:
    108
    Nathniel, can we use imported heightmaps with TC2 yet? I tried using one but TC2 doesn't seem to see, so I'm unable to texture the terrain.

    Edit:
    TC2 gives me a notification saying that it's not supported. Nevermind.
     
    Last edited: Apr 14, 2017
  4. BigBite

    BigBite

    Joined:
    Feb 20, 2013
    Posts:
    108
    eaque
    What are you trying to accomplish again? Maybe I can help?
     
  5. eaque

    eaque

    Joined:
    Aug 20, 2014
    Posts:
    762
    Hi BigBite,

    Thanks for asking.
    I am trying to create meshes: big mountains like this: TLOZBreathoftheWild_Review.jpg
    So i create a mountain on a small terrain, i texture it with TC1 and convert it to a mesh with TC1! It's perfect!!
    My problem is to get the texturing...I can only export the splatmap:(
    I would like to find a fast way in GIMP to substitute the RGB colors of the splatmap by textures !

    If ever you know about that:)
    thanks in advance
     
  6. BigBite

    BigBite

    Joined:
    Feb 20, 2013
    Posts:
    108
    Do you have substance designer by any chance? If you don't, once thing you could do is use the splat image you are getting from TC and using them as masks in Gimp. You will have to do a bit more work, but it will start you in the right directions.

    • Create a layer for each channel (RGBA) and choose a texture you want to use (you can use the same textures used in TC) for each of them
      • Note: This will not look good at first, but more on that later. You could also just use a color to get started.
    • Assign a mask to each layer.
    • Copy the contents of each channel to a mask you created. You can choose any, but you will likely want it the same as in TC
      • Note: You should be able to isolate each channel of the splat map in Gimp
    Once you have done this, you can start playing around with the textures. You can tile them, mix them, color correct, hand paint them, whatever you want. I know it's not the fastest, but without knowing what tools you have available, this is what I can come up with from the top of my head.

    Let me know if it helps, tho I assume you already knew this. The fastest way would be to write your own macro for gimp that does all this for you (at least the layer and mask part). What you can do tho, is once you have the layer set-up done, just save that file as a "template". That way you can just open that up and just assign the spats and textures.

    I can answer some questions on Gimp too, if need be.
     
    Ryuichi173 likes this.
  7. eaque

    eaque

    Joined:
    Aug 20, 2014
    Posts:
    762
    Thank you very much BigBite!! I don't have Substance so Gimp is my only option!

    i will definitely do what you advice me!
    as soon as i get deeply into it i will send you a message pm if i have issues...I only do basic stuff with GImp so it's gonna be funny.....:p
    Thank you for your help!

    :):)
     
  8. gghitman69

    gghitman69

    Joined:
    Mar 4, 2016
    Posts:
    93
    hi
    error the height output is not generated for splatmap

    When the next release comes out
    How to work around the problem i would like to position my texture via the height of the map
    thanks
     
  9. Tomza

    Tomza

    Joined:
    Aug 27, 2013
    Posts:
    596
    Hi,
    I saw some videos about Terrain Composer. We consider to use it in our project. How do you add your own trees prefabs in TC 1.96?
     
  10. eaque

    eaque

    Joined:
    Aug 20, 2014
    Posts:
    762
    Hi, You need to go to your terrain settings in TC window, tick "trees". You can find "Splat, trees, grass, object,.." I cant send you a pick but it's quite easy to find. Focus on the 1st half of the window from the top.

    Then you need to create slot by clicking "+" near "add" i guess... If you scroll with your mouse on titles there is often a description.

    Sorry if i'm not clear i dont have it in front of me i'll try to find you a pick.
    You can check TC tutorial on youtube to find. Unfortunately there hasn't been enough tutorials for TC. A lot of us don't know how to use it :p
     
  11. eaque

    eaque

    Joined:
    Aug 20, 2014
    Posts:
    762
    ...And from the slot, you can select your desired prefab, or simply drag it from your folder...:)
     
  12. imaewyn

    imaewyn

    Joined:
    Apr 23, 2016
    Posts:
    211
    If someone knows how solve this problem please tell me)
    Relief Terrain Pack (RTP) v3 on AssetStore

    P.S I desided problem with seams by applying colormaps manually and disable "assign colormap" in TC2 options after it (otherwise they were rebuilt)
     
    Last edited: Apr 14, 2017
  13. Tomza

    Tomza

    Joined:
    Aug 27, 2013
    Posts:
    596
    Thank you for your help. I know where it is, but I can't drag my tree prefab. There are some tree prefabs in the window. I can use + and add a position for a tree, but I CANNOT drag the prefab to the layer. It is the problem.
     
  14. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    I don't exactly understand what your issue is. TC2 uses 16 bit raw files which have a precision of 65536, instead of only 256 (8 bits) which would be the case with a jpg or png. Raw files need to be placed in a RawFiles folder and TC2 automatically makes a preview texture for it in the folder above, this preview texture you can drag and drop in a TC2 node and it will automatically take the raw file. I explain it here, also how to import/export from photoshop
    http://www.terraincomposer.com/terraincomposer2-documentation/#stamps

    Somewhere you have set the input to Terrain and 'Splatmap' in the splatmap output. If you remove it the message should go away.

    I don't mean the wrap settings in the TC node inspector but the image import settings in the Project window:
    https://docs.unity3d.com/Manual/class-TextureImporter.html

    If you click on the exported colormaps in the folder where you export it to, and then set wrap mode to clamp in the Inspector. This should remove the seam.

    Nathaniel
     
  15. imaewyn

    imaewyn

    Joined:
    Apr 23, 2016
    Posts:
    211
    Thank you) If you will find some time for answering on this and this questions I will be happy))
     
  16. eaque

    eaque

    Joined:
    Aug 20, 2014
    Posts:
    762
    Maybe it's a stupid question but your tree prefab: is it a Unity Tree or a just a mesh?
     
    Last edited: Apr 17, 2017
  17. Mattness

    Mattness

    Joined:
    Apr 18, 2017
    Posts:
    8
    Hi!

    Over Eastern I finally got the time to play a bit with TC2 and so I started by following the Vido "How to make a terrain from scratch". Everything worked fine until I came to the Collision Nodes, which did not work out of the box like expected.

    So I made an new Scene and played a bit with the collision node. I found out that

    a) the Objects can't be too small, they must be at leat 1.5x1.5 or better bigger to show a noticeable effect. The minimum Size is probybly somehow related to the Terrain-resolution. The Rocks I picked from the TC-Examples Folder (rocks_medim_g) were to small and that is the reason why it didn't work. I had to scale them up quite a bit.

    b) to my surprise the Meshes do not need to have a Collider

    c) Meshes should be Two-sides, that means Planes do not work, exept they face downwards to the Terrain. And that ist the reason why it did not work with my EasyRoads-Road-Object. I remeber that somewhere in a Post it was said that this is because the Raycasts go upwards.

    Maybe it would be helpful to add those Points to the Documentation which would make it easier to deal with the Collision Nodes.

    To have the ability to save Hightmap, Normalmap and Splatmap to a File is of great use for me. Even better for some of my use cases would be tho have the abilty to save the result of Layer Group as an Image. Maybe this is something that could be added some day? ;-)
     
  18. wmpunk

    wmpunk

    Joined:
    Sep 5, 2015
    Posts:
    71
    Does the Raw file filter work? I want to use Raw data from a terrain I already started but I can not seem to get any form of Raw file to work with TC2 ( from unity, outside unity, from photoshop, different compression/file settings.ect). Is there a specific method or file setting specific for TC2?
     
  19. BigBite

    BigBite

    Joined:
    Feb 20, 2013
    Posts:
    108

    Create a folder in your project like "Stamps" or something (name it however you want), and inside that folder create another that is named "RawFiles" (must be named that I think). Import your raw files as .raw into the RawFiles folder. TC will then convert them to something it can use and stick them one folder "up". So in this example; they would be saved to the "Stamps" folder. You can then drag n drop the generated images (not the ones you imported, but the ones that were generated by TC) into a RawFile node in the TC editor window. You should now see the terrain take shape.

    If you are using World Machine to create height data, export them out as .r16. Open up them up in Photoshop and save them out as .raw. You are going to have to rename the file extension to .raw before you import them into Photoshop otherwise Photoshop will not open them (it doesn't recognize .r16). It's a little weird like that. I haven't tried just renaming them to .raw from .r16 and importing them into the folder, therefore skipping the Photoshop step. Seems like that should work, I'm just not sure how necessary the Photoshop step is.

    I also don't change the color mode in PS, I keep them as grey-scale. This is important to note because as far as I understand it, in order to get the full range of the heightmap, it needs to be in grey-scale. Unity3d does not recognize images in grey-scale mode, which is why I assume this RawFiles folder that TC looks at is some sort of workaround(?).

    Hope this helps.
     
  20. gghitman69

    gghitman69

    Joined:
    Mar 4, 2016
    Posts:
    93
    please splatmap from height
    will be in next update(2.4) or other ?
     
  21. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Is there a video showing how to create and edit multi tiled terrain with the plugin ?
    Thanks.
     
  22. wmpunk

    wmpunk

    Joined:
    Sep 5, 2015
    Posts:
    71
    This Absolutely worked thank you so much!
     
    Last edited: Apr 20, 2017
  23. Ryuichi173

    Ryuichi173

    Joined:
    Apr 12, 2015
    Posts:
    141
    Hi,
    If I'm not misunderstanding mean of " multi tiled terrain" you saying, Official Examples Tutorial video is best for that.



    Oh, and don't miss to read this page!:)
    There are a lot of tips to use this asset in Documentation page.
    I didn't know that, so I had made some waste of times before.

    I hope this may help for you.
     
    Last edited: Apr 20, 2017
  24. Alverik

    Alverik

    Joined:
    Apr 15, 2016
    Posts:
    417
    Hi! I just bought Terrain Composer 2 (finally! big thanks to the sale :) ). And I was just wondering if there isn't a pdf manual anywhere that I can read? The online documentation is kinda hard to read, the navigation bar to the left is so big, it makes the text on the right harder to read... TC2's website just doesn't seem to like my screen's native resolution, lol. And zooming in for bigger text just makes the problem worse (the text on the right gets cut off outside the screen, and no scrollbar appears at the bottom). Plus, if possible I prefer a good old pdf so I can read it in adobe reader (using accessibility options).

    Anyway, I'll most probably start dropping by when I have any questions. Can't wait to learn TC2 properly :) Cheers!
     
  25. Ryuichi173

    Ryuichi173

    Joined:
    Apr 12, 2015
    Posts:
    141
    Hi,Alverik

    Of course there is! but....Yes, it is difficult a little to notice I think.:rolleyes:
    I'm a user of TC2 from launch, but I've never noticed this till few weeks ago.

    Take a look at top shelf of documentation page.
    Clich here!.jpg
    I want suggest to Nathaniel that please make it convenient to find for such a important thing...
    Anyway, let's fun of TC2!

    Have a good day,
    Ryuichi.
     
    Last edited: Apr 22, 2017
    Alverik likes this.
  26. rsklnkv

    rsklnkv

    Joined:
    Sep 8, 2012
    Posts:
    62
    is there any ETA on Portal feature?
     
    Alverik likes this.
  27. KevinDL

    KevinDL

    Joined:
    Nov 30, 2016
    Posts:
    4
    I'm having some problems with tree / vegetation placement... mostly in accurate placement and being able to delete trees without them being placed on the terrain the moment I hit the play button.

    I've been trying to follow your videos... but the majority of them are from 2013 and for the first version of your tool. They really need to be updated along with your website. A video isn't "new" if it was uploaded in 2013.

    Is there a way to place trees more accurately? Delete trees down to the individual level for working them into scenes around structures?
     
  28. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,206
    Not directly. TC2 works on textures that are interpreted as distribution, so individual trees cannot be targeted.
    The clostest you can get is directly manipulating that distribution texture which allows you, depending on the resolution, to control nearly each individual tree.
    I recommend to use my TC2 Node Painter for that case, which allows you to paint on a tree-mask node as you would with the normal terrain tree brush. If you want to control tree density (or other terrain properties) just around your POIs, you could add a small node to each POI with a high resolution so you can accurately paint the trees around them:) This has also the advantage that you can move the POI later or re-generate the terrain around them and the tree mask still works wonderfully (with slightly different tree positioning).
    Hope that helps - that mix between manual painting and procedural generation can be pretty powerful, you could even paint whole biomes;)
     
  29. KevinDL

    KevinDL

    Joined:
    Nov 30, 2016
    Posts:
    4


    I bought the Node Painter and ended up with these errors upon import.

    Any thoughts?
     
  30. silentneedle

    silentneedle

    Joined:
    Mar 14, 2013
    Posts:
    280
    @eagle555 What is the best practice in saving the node setup in TC2? Is it enough to save the scene where TC2 was added, or should we save the data through the file->save menu?
     
  31. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,206
    Hey - as this is related to my extension, please post in my forums in the future - just saw it here by chance:)
    Please make sure you have at least TC 2.32 installed. Best is to simply update TC2 to the latest version in the Asset Store:)
     
    Mark_01 likes this.
  32. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,206
    It's always good to have a backup and a save file you can re-use in other scenes - so while the setup is saved in the scene, it might be best to save externally after major changes;)
     
    Mark_01 and silentneedle like this.
  33. BigBite

    BigBite

    Joined:
    Feb 20, 2013
    Posts:
    108
    Has anyone asked for Mega Splats support? I know there is a way to exchange data between the tools manually, I'm just wondering if we could possibly get a more integrated experience. RTP is fine and all but I'm running into some limitations, particularly with the texture tiling.
     
    camel82106 and Alverik like this.
  34. evill33t

    evill33t

    Joined:
    Apr 25, 2017
    Posts:
    1
    Is there anything new about MacOS support? It's kinda deal breaker for me :(
     
    mons00n likes this.
  35. Fatalis

    Fatalis

    Joined:
    Sep 9, 2013
    Posts:
    52
    @eagle555

    Are there plans to add the ability to adjust plants conforming to the normal of a terrain? Similar assets have this feature, such as Gaia. I have a lot of small plants that appear that they are floating on slopes and such a feature would fix this and also make your tool that much more powerful.
     
    AdamGoodrich, Alverik and No0B25 like this.
  36. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    You need to click the 'Runtime' button to change the terrain settings for runtime. As you can have different ones for editor and runtime with TC2.

    GrassSettings.JPG

    Maybe your system goes out of memory. Also too much speedtrees can cause this. How many terrain tiles do you use, with what height/splat/grass resolutions, how many grass textures and how many trees do you spawn? How much memory do you have on CPU and GPU?

    TC2 support up to 16 splat textures. These you can assign to your terrain and you can pick any of them in any splat layer. The layer and layer group system in TC2 makes it easy to group them to have different biomes. And you can use the same splat textures in different layers as they can have different spawn rules.

    Yes these shouldn't cause any issues as they are indeed obsolete api warnings. I will remove them in the next update.

    I explain it here:
    http://www.terraincomposer.com/terraincomposer2-documentation/#manual-object-placement

    You can take a look at the example MountainVillage Scene I use it there. What I basically do is using a camera for one moment which detects depth. So the camera needs to see your Unity layer of your building and need to set it in culling mask of the collision node, which is the culling mask of this camera. The height detect range is to exclude a certain height not to detect it.

    Can you show a screenshot of your collision node in TC2 window with inspector and the inspector of your building?

    I explain it here:
    http://www.terraincomposer.com/terraincomposer2-documentation/#stamps

    You need to export the heightmap from WorldMachine as a R16 file (16 bit grey scale). This is the format that TC2 uses for stamps. Then just drag and drop this heightmap into a RawFiles folder, then TC2 automatically makes a preview image for it in the folder above, so it's easy to see which is what if you have multiple heightmaps in one folder. This preview image you can drag and drop on a TC2 node. TC2 will then use the raw file that is in the RawFiles folder (not the preview image as this is just a low res representation of the heightmap for selecting it).

    Nathaniel
     
    Seneral and Alverik like this.
  37. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    I will update the documentation tomorrow for it how to use it together.

    For big changes to the terrain you can use TC2 at runtime. So TC2 does the calculations on the GPU and then from the results assigns it to a Unity terrain. For like vehicle simulation it's best to use Unity TerrainData methods where you can update small changes on the terrain.
    https://docs.unity3d.com/ScriptReference/TerrainData.html

    You can change the height, with GetHeights and SetHeights, although this requires for Unity to recalculate the terrain collider. The way to get around a frame drop is to use Multi terrain tiles with TC, so Unity doesn't need to update a high resolution heightmap collider. The splatmap can be update with GetAlphamaps and SetAlphamaps. Grass with GetDetailLayer and SetDetailLayer. And trees with GetTreeInstance and SetTreeInstance.

    I hope to get it working somewhere next month.

    1). Great idea, I will add this in the update that I will post tomorrow.
    2). Yes this is a subject on it's own. It can't be done with Unity terrain as it is square. Yes making the edges fit is tricky, there must be software for this to do it.

    It's not possible yet, I was working on this feature, will try if I can release it in the next update.

    Yes I'm planning to update it soon. Which topics do you want to be explained in more detail?

    Yes TC2 calculates the heightmap, splatmap, trees, grass etc really fast on the GPU, this is then assigned to the Unity terrain. So TC2 does not do anything after that (if you create the terrain with TC2 in Unity editor) and can basically be deleted from the project. So the performance is all on Unity terrain system side. You can also use TC2 in runtime to generate the terrains.

    Nathaniel
     
    Seneral, pcg and Alverik like this.
  38. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    A splatmap usually is a texture with 4 channels with 8 bit precision. In each channel 1 splat texture is stored, and this can have value 0 - 255, 0 means not painted and 255 fully painted. So with 8 splat textures you need 2 splatmaps.

    What you see in TC2 layer nodes, is a colorization of how the terrain will look, where I use 1 color for each spat texture. This is not the actual splatmap, just to give an indication what results you get to give a better overview.

    So each splat texture is stored in a separate texture channel, where you can think of each channel as a mask. So in the first screenshot you have a dirt texture, which is stored in channel 0 and grass texture is stored in channel 3 (depends on the assign order of the splat texture to the Unity terrain). So multiplying (255, 0, 0, 0) with (0, 0, 0, 255) = 0 is black.

    If you want to blend these 2 it's best to use the 'Lerp' method, and can control it with opacity slider.

    The technique to render splatmaps with a shader is by rendering a splat texture repeated many times over the same terrain. Giving it a much higher resolution then the actual texture by itself is. The splatmap contains the mask where to apply the splat texture or not. So if your splat texture is 1k and your terrain size is 1km and you want it to repeat every 10 meters. It needs to be repeated 1000/10 = 100 times. Making the resolution you see actually 100k. The tiling artifact is a result of this technique to increase resolution. RTP has 2 different ways to solve it, with uv blending (blend a splat texture with itself with different scale) and 'Far replace', with far replace slider in RTP splat texture layer you can solve it. I included a preset for RTP in last TC update where I removed the tiling.

    The update can be downloaded here and also I describe how to use the preset:
    https://forum.unity3d.com/threads/t...red-terrain-tool.151365/page-112#post-3007286

    Nathaniel
     
    Last edited: Apr 27, 2017
    Seneral and Alverik like this.
  39. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,206
    Pretty sure 1) can already be done - middle click on that terrain button will turn it red and exclude it from generation, but it's still active and visible:)
    Second, given a planetary terrain system using a given UV/texture stretching, I think TC2 could really be used for that. AFAIK it works on 3D noises (third dimension is used for the seed) so it already could perfectly map onto spheres when the positions are sampled from a mapping texture (x,y,z world position in the r,g,b channels) according to the UV layout of your planetary system. Processing would work just fine I'd imagine, just some inconsistencies in 'current' nodes like blur, expand, etc. because of inconsistent pixel spacing...
    In fact, it is a thing I'd really imagine being possible at some point, even implementing by yourself... would even work on arbitrary geometry, given you can generate the mapping texture properly (using a world-position-baker like in Substance Designer) ;)
    Seneral
     
  40. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    RTP support up to 12 splat textures with atlas-sing 8 splats into one pass. TC2 supports 16 splat textures.
    See my answer in post #5639 above. You can export the splatmap with TC1 and TC2, but you cannot export what you actually see on the terrain as this is done with a shader technique that would require like a 100k resolution image. What you need is a mesh terrain shader that supports splat maps. I have these shaders included in TC1. It's an Unity package in the MobileShaders folder. Will include this package into next TC2 update as well. So what you need to do is duplicate the material, like the one with 8 splat textures, assign the 2 splatmaps and your 8 splat textures. Can use a colormap as well on it. Then assign this material to the Mesh Renderer of your terrain mesh.

    Yes it's possible. I explain it here in #5637 post in the last answer. In the new update I made it possible to be able to export one heightmap from multiple terrain tiles that were created outside of TC2. I will post this update today and update the documentation on how to use it.

    Nathaniel
     
  41. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    In the update I will post today, it's possible to export a stamp from multiple terrain tiles created outside of TC2 and automatically create a layer for it.

    As Eaque says, you can assign these to the terrains with TC1 and TC2. In TC1 this is in the TC1 window in the terrain list in the 'Trees' tab. In TC2 you have to click the TerrainArea GameObject, and then in the Inspector choose the 'Trees' tab of a terrain.

    Can you post a screenshot of what you are trying to do?

    a). Actually this is done by a bottom-up camera that captures the depth. I use a 2k render texture for it, and it depends on this resolution and terrain size how much detail can be captured. Then it also depends on the resolution of where you apply it to, if this is lower then the capture texture resolution...E.g. if you have 1024 meter terrain size, 2k capture texture (0.5 meter per pixel) and terrain resolution is 1024, it will only generate what is visible every 1 meter, instead of 0.5 meter. I will make the capture texture resolution select-able in the next update.

    b). Since TC2 calculates everything on the GPU, the CPU physics with colliders and raycasting are not available on the GPU. Capturing with a camera is more precise as it captures geometry on a pixel level.

    c). They would need to use a double sided shader. I will look into making them render automatically with a double sided shader to the capture camera.

    Nathaniel
     
    Alverik likes this.
  42. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    Yes any folder named 'RawFiles'. TC2 directly support R16 files from WorldMachine, so you don't need the photoshop step ;). R16 from world machine is the same format as TC2 uses. What TC2 converts it to is a preview image to make it easier to see what you select, it still uses the raw file and convert it to a 16 bit image for the GPU internally.

    Yes will be in the update that I will post today.

    Creating multi terrain tiles is very easy in TC2 and just need to specify the amount of tiles you want with sliders in the Inspector of the TerrainArea GameObject. As Ryuichi173 says, I show it here (at 57 seconds):


    Further you don't need to do anything TC2 will automatically treat the multi terrain tiles as if it were one terrain.

    I will make the pdf documentation link more obvious, thanks for pointing that out :)


    I will look into this today and let you know.

    I added a flashing documentation button in the TC2 window. Which links to here:
    http://www.terraincomposer.com/terraincomposer2-documentation/
    Which is the second menu tab on the TerrainComposer homepage.

    TC2DocumentationJPG.JPG

    Yes were looking at TC1 tutorial video's ;) I updated this page that it's for TC1 and removed the 'new'.

    You have to disable the 'Auto' button for TC2 to not automatically regenerate. To add to what Seneral explained, indeed for manual control is best to use TC2 node painter. You can basically use any mask or multiple masks to exclude trees from being placed. You can use a collision node to detect your building and automatically remove the trees around them, can use it with a dummy mesh on each building. I used it in the example MountainVillage scene and you can take a look there how it works, I also explain it here:
    http://www.terraincomposer.com/terraincomposer2-documentation/#manual-object-placement

    TC2 is saved with the Scene. If you use TC2 menu -> File -> Save, it's saved to a prefab. Both ways are solid, if you want to make backups, you can either do from the entire Scene or if you want more specific with TC2 project prefabs.


    Mega splat has the ability to convert splatmaps to it's own system, so should be able to convert a terrain textured with TC2 to mega splat terrain shader.Texture tiling in RTP can be solved with the 'Far Replace' slider for each splat texture.

    I'm working on this, hope to get it finished somewhere next month.


    I added this feature already. It's in 'Object' output, on a object node Inspector enable 'Include Terrain Angle'. Placing as part of Unity terrain tree system is not possible as a TreeInstance only has a float option for rotation.

    Nathaniel
     
    zenGarden and Alverik like this.
  43. jc_lvngstn

    jc_lvngstn

    Joined:
    Jul 19, 2006
    Posts:
    1,508
    I'd like to add a few more questions/suggestions/discussion points :)
    • We had a situation where we had 32x32 tiles, each 512x512 in resolution. When I tried to export them as a single tile, at times it simply wouldn't. If I recall correctly, the map either didn't get exported or was partial. I had to export them individually and combine them in a separate unity project. If you can't reproduce this, I'll try to create a duplication project. (as a note, we changed the code to allow for 32x32.)
    • I need to create node operations which actually duplicate the heightmap from another tile, can be rotated at 90 degrees, and flipped horizontally or vertically. I'm going to look at the code to see if I can make the changes myself, but I'm totally new to compute shaders. If you think this would be trivial for you, please consider it otherwise I'll take a stab at it :) The purpose of this is to help with creating seamless maps.

    Thanks,
    JC
     
  44. Tomza

    Tomza

    Joined:
    Aug 27, 2013
    Posts:
    596
    upload_2017-4-27_19-27-22.jpeg

    The trees visible are used by the plugin automatically. How to add my own trees?
     
  45. Steve-Tack

    Steve-Tack

    Joined:
    Mar 12, 2013
    Posts:
    1,240
    Hi, I'm getting errors and nothing is functioning right after pulling down the latest TC2 into a Unity 5.5.2f3 project. I've run earlier beta versions without issue, so I don't know what's up.

    I tried wiping the entire TerrainComposer2 folder and re-importing. Didn't work, so I even downloaded it again and started over, but it didn't help.

    The first error when I try to create a new terrain or pull up an example scene seems to be:
    Kernel 'MethodAdd' not found
    UnityEngine.ComputeShader:FindKernel(String)
    TerrainComposer2.TC_Compute:OnEnable() (at Assets\TerrainComposer2\Scripts\Generate\TC_Compute.cs:93)

    I end up with thousands of red errors in the console. I can see the basic TC2 UI, but the nodes don't do anything.

    Here's a small sample from the log:

    (Filename: Assets/TerrainComposer2/Scripts/Nodes/TC_SelectItem.cs Line: 84)

    Kernel 'MethodAdd' not found
    UnityEngine.ComputeShader:FindKernel(String)
    TerrainComposer2.TC_Compute:OnEnable() (at Assets\TerrainComposer2\Scripts\Generate\TC_Compute.cs:93)
    UnityEditor.AssetDatabase:OpenAsset(Int32, Int32)
    UnityEditor.AssetDatabase:OpenAsset(Int32) (at C:\buildslave\unity\build\artifacts\generated\common\editor\AssetDatabaseBindings.gen.cs:225)
    UnityEditor.ProjectBrowser:OpenAssetSelection(Int32[]) (at C:\buildslave\unity\build\Editor\Mono\ProjectBrowser.cs:978)
    UnityEditor.ProjectBrowser:OpenListAreaSelection() (at C:\buildslave\unity\build\Editor\Mono\ProjectBrowser.cs:965)
    UnityEditor.ProjectBrowser:ListAreaItemSelectedCallback(Boolean) (at C:\buildslave\unity\build\Editor\Mono\ProjectBrowser.cs:1025)
    UnityEditor.ObjectListArea:SetSelection(Int32[], Boolean) (at C:\buildslave\unity\build\Editor\Mono\ObjectListArea.cs:819)
    UnityEditor.LocalGroup:HandleMouseWithDragging(Int32, Int32, Rect) (at C:\buildslave\unity\build\Editor\Mono\ObjectListLocalGroup.cs:292)
    UnityEditor.LocalGroup:DrawItem(Rect, FilterResult, BuiltinResource, Boolean) (at C:\buildslave\unity\build\Editor\Mono\ObjectListLocalGroup.cs:859)
    UnityEditor.LocalGroup:DrawInternal(Int32, Int32, Single) (at C:\buildslave\unity\build\Editor\Mono\ObjectListLocalGroup.cs:192)
    UnityEditor.Group:Draw(Single, Vector2) (at C:\buildslave\unity\build\Editor\Mono\ObjectListGroup.cs:144)
    UnityEditor.ObjectListArea:HandleListArea() (at C:\buildslave\unity\build\Editor\Mono\ObjectListArea.cs:1367)
    UnityEditor.ObjectListArea:OnGUI(Rect, Int32) (at C:\buildslave\unity\build\Editor\Mono\ObjectListArea.cs:562)
    UnityEditor.ProjectBrowser:OnGUI() (at C:\buildslave\unity\build\Editor\Mono\ProjectBrowser.cs:1754)
    System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
    System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    System.Reflection.MethodBase:Invoke(Object, Object[]) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    UnityEditor.HostView:Invoke(String, Object) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:249)
    UnityEditor.HostView:Invoke(String) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:242)
    UnityEditor.HostView:InvokeOnGUI(Rect) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:212)
    UnityEditor.DockArea:OnGUI() (at C:\buildslave\unity\build\Editor\Mono\GUI\DockArea.cs:352)

    [C:\buildslave\unity\build\Runtime/Shaders/ComputeShader.cpp line 270]
    (Filename: Assets/TerrainComposer2/Scripts/Generate/TC_Compute.cs Line: 93)

    UnityException: FindKernel failed
    at (wrapper managed-to-native) UnityEngine.ComputeShader:FindKernel (string)
    at TerrainComposer2.TC_Compute.OnEnable () [0x0010f] in E:\Unity 5.5.2 Projects\Purchased Asset Tests\Realistic FPS\Assets\TerrainComposer2\Scripts\Generate\TC_Compute.cs:93
    UnityEditor.AssetDatabase:OpenAsset(Int32, Int32)
    UnityEditor.AssetDatabase:OpenAsset(Int32) (at C:\buildslave\unity\build\artifacts\generated\common\editor\AssetDatabaseBindings.gen.cs:225)
    UnityEditor.ProjectBrowser:OpenAssetSelection(Int32[]) (at C:\buildslave\unity\build\Editor\Mono\ProjectBrowser.cs:978)
    UnityEditor.ProjectBrowser:OpenListAreaSelection() (at C:\buildslave\unity\build\Editor\Mono\ProjectBrowser.cs:965)
    UnityEditor.ProjectBrowser:ListAreaItemSelectedCallback(Boolean) (at C:\buildslave\unity\build\Editor\Mono\ProjectBrowser.cs:1025)
    UnityEditor.ObjectListArea:SetSelection(Int32[], Boolean) (at C:\buildslave\unity\build\Editor\Mono\ObjectListArea.cs:819)
    UnityEditor.LocalGroup:HandleMouseWithDragging(Int32, Int32, Rect) (at C:\buildslave\unity\build\Editor\Mono\ObjectListLocalGroup.cs:292)
    UnityEditor.LocalGroup:DrawItem(Rect, FilterResult, BuiltinResource, Boolean) (at C:\buildslave\unity\build\Editor\Mono\ObjectListLocalGroup.cs:859)
    UnityEditor.LocalGroup:DrawInternal(Int32, Int32, Single) (at C:\buildslave\unity\build\Editor\Mono\ObjectListLocalGroup.cs:192)
    UnityEditor.Group:Draw(Single, Vector2) (at C:\buildslave\unity\build\Editor\Mono\ObjectListGroup.cs:144)
    UnityEditor.ObjectListArea:HandleListArea() (at C:\buildslave\unity\build\Editor\Mono\ObjectListArea.cs:1367)
    UnityEditor.ObjectListArea:OnGUI(Rect, Int32) (at C:\buildslave\unity\build\Editor\Mono\ObjectListArea.cs:562)
    UnityEditor.ProjectBrowser:OnGUI() (at C:\buildslave\unity\build\Editor\Mono\ProjectBrowser.cs:1754)
    System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
    System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    System.Reflection.MethodBase:Invoke(Object, Object[]) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    UnityEditor.HostView:Invoke(String, Object) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:249)
    UnityEditor.HostView:Invoke(String) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:242)
    UnityEditor.HostView:InvokeOnGUI(Rect) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:212)
    UnityEditor.DockArea:OnGUI() (at C:\buildslave\unity\build\Editor\Mono\GUI\DockArea.cs:352)

    (Filename: Assets/TerrainComposer2/Scripts/Generate/TC_Compute.cs Line: 93)

    NullReferenceException: Object reference not set to an instance of an object
    at TerrainComposer2.TC_SelectItem.SetPreviewColor () [0x000fe] in E:\Unity 5.5.2 Projects\Purchased Asset Tests\Realistic FPS\Assets\TerrainComposer2\Scripts\Nodes\TC_SelectItem.cs:84
    at TerrainComposer2.TC_SelectItemGroup.GetItems (Boolean refresh, Boolean rebuildGlobalLists, Boolean resetTextures) [0x002e9] in E:\Unity 5.5.2 Projects\Purchased Asset Tests\Realistic FPS\Assets\TerrainComposer2\Scripts\Nodes\TC_SelectItemGroup.cs:311
    at TerrainComposer2.TC_SelectItemGroup.Awake () [0x0001d] in E:\Unity 5.5.2 Projects\Purchased Asset Tests\Realistic FPS\Assets\TerrainComposer2\Scripts\Nodes\TC_SelectItemGroup.cs:35
    UnityEditor.AssetDatabase:OpenAsset(Int32, Int32)
    UnityEditor.AssetDatabase:OpenAsset(Int32) (at C:\buildslave\unity\build\artifacts\generated\common\editor\AssetDatabaseBindings.gen.cs:225)
    UnityEditor.ProjectBrowser:OpenAssetSelection(Int32[]) (at C:\buildslave\unity\build\Editor\Mono\ProjectBrowser.cs:978)
    UnityEditor.ProjectBrowser:OpenListAreaSelection() (at C:\buildslave\unity\build\Editor\Mono\ProjectBrowser.cs:965)
    UnityEditor.ProjectBrowser:ListAreaItemSelectedCallback(Boolean) (at C:\buildslave\unity\build\Editor\Mono\ProjectBrowser.cs:1025)
    UnityEditor.ObjectListArea:SetSelection(Int32[], Boolean) (at C:\buildslave\unity\build\Editor\Mono\ObjectListArea.cs:819)
    UnityEditor.LocalGroup:HandleMouseWithDragging(Int32, Int32, Rect) (at C:\buildslave\unity\build\Editor\Mono\ObjectListLocalGroup.cs:292)
    UnityEditor.LocalGroup:DrawItem(Rect, FilterResult, BuiltinResource, Boolean) (at C:\buildslave\unity\build\Editor\Mono\ObjectListLocalGroup.cs:859)
    UnityEditor.LocalGroup:DrawInternal(Int32, Int32, Single) (at C:\buildslave\unity\build\Editor\Mono\ObjectListLocalGroup.cs:192)
    UnityEditor.Group:Draw(Single, Vector2) (at C:\buildslave\unity\build\Editor\Mono\ObjectListGroup.cs:144)
    UnityEditor.ObjectListArea:HandleListArea() (at C:\buildslave\unity\build\Editor\Mono\ObjectListArea.cs:1367)
    UnityEditor.ObjectListArea:OnGUI(Rect, Int32) (at C:\buildslave\unity\build\Editor\Mono\ObjectListArea.cs:562)
    UnityEditor.ProjectBrowser:OnGUI() (at C:\buildslave\unity\build\Editor\Mono\ProjectBrowser.cs:1754)
    System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
    System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    System.Reflection.MethodBase:Invoke(Object, Object[]) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    UnityEditor.HostView:Invoke(String, Object) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:249)
    UnityEditor.HostView:Invoke(String) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:242)
    UnityEditor.HostView:InvokeOnGUI(Rect) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:212)
    UnityEditor.DockArea:OnGUI() (at C:\buildslave\unity\build\Editor\Mono\GUI\DockArea.cs:352)

    (Filename: Assets/TerrainComposer2/Scripts/Nodes/TC_SelectItem.cs Line: 84)

    NullReferenceException: Object reference not set to an instance of an object
    at TerrainComposer2.TC_SelectItem.SetPreviewColor () [0x000fe] in E:\Unity 5.5.2 Projects\Purchased Asset Tests\Realistic FPS\Assets\TerrainComposer2\Scripts\Nodes\TC_SelectItem.cs:84
    at TerrainComposer2.TC_SelectItemGroup.GetItems (Boolean refresh, Boolean rebuildGlobalLists, Boolean resetTextures) [0x002e9] in E:\Unity 5.5.2 Projects\Purchased Asset Tests\Realistic FPS\Assets\TerrainComposer2\Scripts\Nodes\TC_SelectItemGroup.cs:311
    at TerrainComposer2.TC_SelectItemGroup.Awake () [0x0001d] in E:\Unity 5.5.2 Projects\Purchased Asset Tests\Realistic FPS\Assets\TerrainComposer2\Scripts\Nodes\TC_SelectItemGroup.cs:35
    UnityEditor.AssetDatabase:OpenAsset(Int32, Int32)
    UnityEditor.AssetDatabase:OpenAsset(Int32) (at C:\buildslave\unity\build\artifacts\generated\common\editor\AssetDatabaseBindings.gen.cs:225)
    UnityEditor.ProjectBrowser:OpenAssetSelection(Int32[]) (at C:\buildslave\unity\build\Editor\Mono\ProjectBrowser.cs:978)
    UnityEditor.ProjectBrowser:OpenListAreaSelection() (at C:\buildslave\unity\build\Editor\Mono\ProjectBrowser.cs:965)
    UnityEditor.ProjectBrowser:ListAreaItemSelectedCallback(Boolean) (at C:\buildslave\unity\build\Editor\Mono\ProjectBrowser.cs:1025)
    UnityEditor.ObjectListArea:SetSelection(Int32[], Boolean) (at C:\buildslave\unity\build\Editor\Mono\ObjectListArea.cs:819)
    UnityEditor.LocalGroup:HandleMouseWithDragging(Int32, Int32, Rect) (at C:\buildslave\unity\build\Editor\Mono\ObjectListLocalGroup.cs:292)
    UnityEditor.LocalGroup:DrawItem(Rect, FilterResult, BuiltinResource, Boolean) (at C:\buildslave\unity\build\Editor\Mono\ObjectListLocalGroup.cs:859)
    UnityEditor.LocalGroup:DrawInternal(Int32, Int32, Single) (at C:\buildslave\unity\build\Editor\Mono\ObjectListLocalGroup.cs:192)
    UnityEditor.Group:Draw(Single, Vector2) (at C:\buildslave\unity\build\Editor\Mono\ObjectListGroup.cs:144)
    UnityEditor.ObjectListArea:HandleListArea() (at C:\buildslave\unity\build\Editor\Mono\ObjectListArea.cs:1367)
    UnityEditor.ObjectListArea:OnGUI(Rect, Int32) (at C:\buildslave\unity\build\Editor\Mono\ObjectListArea.cs:562)
    UnityEditor.ProjectBrowser:OnGUI() (at C:\buildslave\unity\build\Editor\Mono\ProjectBrowser.cs:1754)
    System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
    System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    System.Reflection.MethodBase:Invoke(Object, Object[]) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    UnityEditor.HostView:Invoke(String, Object) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:249)
    UnityEditor.HostView:Invoke(String) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:242)
    UnityEditor.HostView:InvokeOnGUI(Rect) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:212)
    UnityEditor.DockArea:OnGUI() (at C:\buildslave\unity\build\Editor\Mono\GUI\DockArea.cs:352)

    Help?
     
  46. PiAnkh

    PiAnkh

    Joined:
    Apr 20, 2013
    Posts:
    126
    I do have a lot of speedtrees. Not many different types, maybe 8 types of trees and 8 types of grasses But the number of speedtrees is large and they are sometimes places closely together for example to create hedgerows.
    The memory should not be a problem 16GM RAM and 4GB on the GPU.
    Is the number of speedtrees the problem?
    Is there some way you would recommend working around this?
     
  47. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
    This means that Unity isn't able to use compute shaders, which means you don't have DX11 enabled. After enabling, it should work fine.

    Nathaniel
     
  48. eagle555

    eagle555

    Joined:
    Aug 28, 2011
    Posts:
    2,705
  49. eagle555

    eagle555

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

    The update has a bit delay, because I got a few requests to implement portals, which I'm working on at the moment. It's almost ready. Also in the update there will be a runtime script that can be used to save/load terrains at runtime, this is independent of TC2. The script serializes/deserializes Unity terrains.

    Nathaniel
     
  50. Fatalis

    Fatalis

    Joined:
    Sep 9, 2013
    Posts:
    52
    @eagle555

    I've gotten the latest version of TC2 available on the asset store, but I don't see the 'Include Terrain Angle' option on any object nodes. I've attached a picture of what an object node in the inspector looks like to me.
     

    Attached Files: