Search Unity

CTS - Complete Terrain Shader

Discussion in 'Assets and Asset Store' started by AdamGoodrich, Jun 19, 2017.

  1. Shadowing

    Shadowing

    Joined:
    Jan 29, 2015
    Posts:
    1,289
    @AdamGoodrich Now that ive been using CTS for a while now. Having only 2 stage distance mixing isn't enough. Needs at least 3. 3 be perfect really.
    For example LOD's. Thats why LOD"s are usually at least 3 stages.

    With only a close and far view there is a big gap somewhere around 15 to % 25% from the near view setting.

    I want super small tiles up close and huge tile far away. When my character is about 60 units away the big tiles are to blurry cause thats what i have the distance set at of course. But thats the distance I need to maintain how I want less than 60 to look.

    Its a pretty large issue. :(
     
  2. PWPeter

    PWPeter

    Joined:
    Dec 16, 2018
    Posts:
    397
    The pic you posted is showing the HDRP shaders which use more keywords than built-in shaders but also were not present at all in previous versions of CTS. It is a bit strange though that those keywords count towards your limit if they are not used in your project at all.

    I've taken a note to review this for a future update. The problem is we have done such a thing with the water shaders in Gaia and we had support cases where people could not find the shaders for the other pipelines because they were supplied as .txt files that you needed to rename to .shader to activate them.
    We hope that with the fututre development of the SRPs there will be some kind of event that we can hook in when the user switches pipelines, then we could make such switches automatically.
     
  3. Paddington_Bear

    Paddington_Bear

    Joined:
    Dec 9, 2012
    Posts:
    274
    Hi guys. I simply cannot get differed decals (2018.3 and HDRP 4.8) to work.

    I've isolated CTS as the problem, and can't find a workaround. Someone else in this thread pointed out its possible but that's all I could find.

    Any pointers? Cheers.


    Decal just not showing, everything is updated, decal works exactly as expected on terrain without CTS, other objects etc/
     
  4. PWPeter

    PWPeter

    Joined:
    Dec 16, 2018
    Posts:
    397
    I added this to our development backlog when you mentioned this last time, but we did not get to looking into it yet as it is more a feature request than a bug. What I don't understand is why this issue is not solvable by adjusting mixing distance and sharpness. You mention that you have your near far mixing distance set at 60. Here I have done the same for a contrast rich texture. Of course it is obvious to tell where the border of the near / far mixing distance is:

    mix1.JPG

    This is how I imagine your problem at the moment - it is very obvious that there is some kind of border / line in the distance where suddenly the texture tiling ends. However this issue is far less prominent if you move the mixing distance back but in return reduce the sharpness:

    mix2.JPG

    You can still tell of course that there is a bigger tiled texture in the background since this is an ugly texture with strong tiling, but if I repeat the same exercise with a grass texture: Pretty obvious line with mix distance = 60, sharp mix

    mix3.JPG

    With mix distance = 120 mix sharpness = 2 the transition looks quite natural to me:

    mix4.JPG

    Can you please provide a screenshot from your project where the issue is visible?
     
  5. PWPeter

    PWPeter

    Joined:
    Dec 16, 2018
    Posts:
    397
    Hi, this is unfortunately a current issue with the CTS HDRP shaders themselves, we are looking into it and want to provide a fix for this in a future update.
     
    Paddington_Bear likes this.
  6. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,627
    Bart and I discussed and explored this quite a long time ago. We agree that it would be awesome to have.

    However we are still bound by how Unity terrain itself works - as our shader just renders what it is told to - and because Unity terrain does not support this we can not either.
     
  7. jakes-du-preez

    jakes-du-preez

    Joined:
    Aug 14, 2013
    Posts:
    30
    Good Morning. I just want to ask. Im running the latest release of 2019.1 f2 and waited for CTS 2019 to update yesterday. But even with a blank new project using the HDRP template. only adding a terrain , importing CTS 2019 and setup the terrain and assigned a profile. Im not sure if there is still issues with the updated CTS version or is there something else im missing. I keep getting errors refering to the HDRP shaders using the default project package that comes with thge template. The unity shader works but as soon as i set basic adv or tess i get some very weird behaviour in the editor scene view.

    Have an awesome day!!!!
     
  8. razzraziel

    razzraziel

    Joined:
    Sep 13, 2018
    Posts:
    129
    no discount for upgrades? come on. i have to pay 20$ to upgrade while newcomers can buy 2019 for 28.5$. same goes with sectr too.
     
  9. PWPeter

    PWPeter

    Joined:
    Dec 16, 2018
    Posts:
    397
    CTS requires HDRP version 4.8 at the moment which is not available for installation in Unity 2019.1, so you currently need to use Unity 2018.3 to use CTS in HDRP. We are working on an update to support a higher HDRP version that is available under 2019.1 as well.
    Unfortunately the SRPs change a lot with each version which requires us to adjust the shaders for each new version that is coming out.
     
  10. jakes-du-preez

    jakes-du-preez

    Joined:
    Aug 14, 2013
    Posts:
    30
    thank you
     
  11. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,627
    We just released yet another free update to the original CTS in massively good faith to support people on 2018.3, and it should work fine on 2019.1.

    The asset store does not support discounting upgrades.. and your upgrade fee... which is still less than the sale price is a fraction of the price of the full asset and it goes toward the cost of support and the development of new features.

    For the record, these upgrade fees go into paying the team who bring them to you. We now have to support 1 major Unity release, and countless sub releases every 3 months x 3 pipelines and this takes a massive amount of specialized time and effort. I have to sell 718 upgrades to break even on what it cost me to make my part of CTS 2019 - and that's just for me. I have not yet broken even so you get all that work at no benefit to me.

    @NatureManufacture also had two highly specialized people working for more than a month to reverse engineer how the new unity terrain instancing system works, and then rebuild the shaders x 5 x 3 pipelines to support them. He has to do another massive amount of work again to do the same for Unity 2019.1 as Unity changed things significantly yet again.

    At some point people need to understand that the asset store is not a licence to print money, and that the minimal upgrade fees we charge go straight back to them in for the form of good product and good support.
     
    Last edited: May 4, 2019
  12. SickaGamer

    SickaGamer

    Joined:
    Jan 15, 2018
    Posts:
    736
    @AdamGoodrich I may nag you guys in regards to a few things, but I understand how products work. Think of what Adam does with his year's upgrades like Microsoft does with their OS, Office products ect... It is how you stay alive... If you think you buy something once and it will never cost a thing again, then you don't know how business is run. The people who are not doing what Adam is doing, are doing this as a hobby or a side business. Adam livelihood is Unity and not moonlighting like some other devs are.
     
    AdamGoodrich likes this.
  13. xoodZ

    xoodZ

    Joined:
    Jan 8, 2018
    Posts:
    10
    How much does performance improve when you enable the CTS Draw instanced option in 2018.3+?
    Who has already purchased CTS 2019 - please measure the performance in both modes and publish here.
    Adam, I'm begging you to conduct a study on improving performance on your example maps.
     
  14. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,627
    How are they relevant other than as an example of how to set it up?

    They range in performance from somewhere from 800fps or so (from memory in a build) to 250 FPS or so when built on my gtx 970 based 4yo machine.

    A real world game has so many factors that influence its performance that every game needs to be optimised in its own way. Empty scenes with CTS in them are not a valid measure of real world game performance.
     
  15. Dawie3565

    Dawie3565

    Joined:
    Dec 30, 2018
    Posts:
    63
    Hello Adam,
    I am a new user with CTS.. I was getting a TDR strike during GPU baking when I apply in multiple textures (+15) with Triplaner (+4) that cascades failures down into a access violation.. do any optimization settings have any way to push triplaner to draw more quickly ?

    i did find a work around by disabling TDR in the system registry but I would like to find another way within CTS if possible

    many thanks love CTS, it make things wonderful keep up the good work
     
    Last edited: May 4, 2019
  16. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,627
    I am not sure how GPU baking has anything do to with CTS. Can you please bring the question to our Discord. Maybe Bart / @NatureManufacture will have some insights.
     
  17. Dawie3565

    Dawie3565

    Joined:
    Dec 30, 2018
    Posts:
    63
    thanks will do
     
  18. rastlin

    rastlin

    Joined:
    Jun 5, 2017
    Posts:
    105
    Are there any plans to upgrade to newer SRP and HDRP version?

    The 4.8.0 breaks ShaderGraph in 2019.1.

    This actually renders this asset not compatible with 2019.1 when HDRP is used, it should be stated in the description like so.
     
    Last edited: May 11, 2019
  19. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,627
    Unity 2019.1 was just released and it takes time to update and test the shaders.

    We should to have another update released next week to add support for it.
     
  20. sliding

    sliding

    Joined:
    Aug 16, 2017
    Posts:
    3
    Hello. Does CTS 2019 work with Unity 2018.3.14f1?
     
  21. PWPeter

    PWPeter

    Joined:
    Dec 16, 2018
    Posts:
    397
    Yes, it also supports the SRP (HDRP /LWRP) version 4.8.
     
    Mark_01 and sliding like this.
  22. sliding

    sliding

    Joined:
    Aug 16, 2017
    Posts:
    3
    Thanks
     
  23. jakes-du-preez

    jakes-du-preez

    Joined:
    Aug 14, 2013
    Posts:
    30
    Hi. We still up for an update to CTS 2019 today for 2019.1 hdrp 5.7 support?
     
  24. PWPeter

    PWPeter

    Joined:
    Dec 16, 2018
    Posts:
    397
    I'm in the final stages of testing, if all goes well it should be released tomorrow. Why did you assume the update would be out today? AFAIK we never gave out an exact release date.
     
  25. jakes-du-preez

    jakes-du-preez

    Joined:
    Aug 14, 2013
    Posts:
    30
    Maybe got confused with another product. sorry
     
    PWPeter likes this.
  26. PWPeter

    PWPeter

    Joined:
    Dec 16, 2018
    Posts:
    397
    No problem at all, I was just worried that we announced it for today somewhere on discord or the forum and now a lot of people are waiting for it, as I did not remember that we set a specific date for it. ;)
     
  27. rastlin

    rastlin

    Joined:
    Jun 5, 2017
    Posts:
    105
    @PWPeter will the updated shaders be compatibile with latest HDRP for Unity 2019?

    Specifically I'm talking about version 5.13, 2019.1 ships with 5.7 but there has been few updates alongside, some decals fixes that I would need in my project.
     
  28. PWPeter

    PWPeter

    Joined:
    Dec 16, 2018
    Posts:
    397
    The supported version will be 5.7.2. Please note that there is quite some effort involved for us to keep up with the rendering pipeline developments. For each new SRP version we need to

    -Adjust / develop shaders
    -Test that all shader features are still working across the 4 CTS shader types
    -Test package import and functionality in Unity 2018.3 and 2019.1
    -Review the demo scenes (HDRP changes can result in different lighting and the various HDRP assets not being compatible with each other)

    A new SRP version is coming out every couple of days, it is difficult for us to go through the cycle above for every new SRP version instantly, plus we would create additional compatibility issues with our other assets that are touching SRP as well (Gaia, Ambient Skies)
     
  29. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,627
    CTS 2019 was just updated to support the 5.7.2 on LW and HD, so it will now run nicely on Unity 2019.x in all the pipelines.
     
  30. mdaarishkhan_ls

    mdaarishkhan_ls

    Joined:
    Jan 11, 2016
    Posts:
    2
    hi ..i am a 3d artist and currently working on building on a large scale terrain with photo realistic visuals .i am doing it as a personal project i have theoretically gone through many different tools available and i feel terra 3 fits my need as intend to generate detailed real world terrain,i want to use mega scan surface textures for best results but i still couldn't figure out as to how will i be able to use the splat map generated by terraland and be able to use it with CTS 2019 as found it to best available off the shelf PBR terrain shader available .unity HDRP layered lit shader does seem to be able to do the job but apparently isn't completely PBR capable i am not sure how would i be able to control the heightmap blending between textures precisely as it seems it doesn't really do much with the height maps so instead i want to use CTS 2019 ..this has been my point of concern so far ..i am fairly new to level design process but i have been reading a lot before i start ..i am planning to purchase the following assets if i reach a point wherein i feel they fit my need
    1.terra3
    2.CTS
    3.megascan subscription
    4.easyroads v3 pro/road architect

    i am not thinking about other stuff at the moment

    my question again is
    1.if we are able to use splat maps generated by terra 3 with cts 2019
    and about
    2.how we can control the tiling issue with cts .i have seen some very good terrain demos on youtube that doesn't seem to have tiling issue at all and look perfectly fine and believable.
    i will be using HDRP

    also apologies for posting my question here .as i know its not the right pace to ask ,but i am new on the forum .

    please help.
     
  31. PWPeter

    PWPeter

    Joined:
    Dec 16, 2018
    Posts:
    397
    Just to make sure, with "terra 3" you mean this product? http://terraunity.com/product/terra-3/
    If that is the right one, it should work. From the looks of it it has an option to create unity standard terrains for its terrain tiles. If this is the case, CTS should work with those splatmaps just fine. If in doubt, you could ask the terra3 developers as well, CTS would require a splatmap in the same format like a default unity terrain uses, then it will work.

    You can combat tiling in CTS in multiple ways:
    1. Each texture has a near and a far scale setting with a customizable mixing distance which allows you to set a different scale for the far away texture which helps with repeating patterns on far away terrains. This post here is not entirely focused on tiling, but it shows the near / far scaling and the mixing distance: https://forum.unity.com/threads/cts-complete-terrain-shader.477615/page-48#post-4484086

    2. If you avoid spawning textures at full strength everywhere and you use a height map for height blending, you can blend in the underlying texture in spots here and there to avoid tiling. This post shows how a grass texture can be mixed with the underlying earth texture (look specifically at the middle picture): https://forum.unity.com/threads/cts-complete-terrain-shader.477615/page-45#post-4198741

    3. A variation of 2.) You can use a second texture that is similar in color / contrast and pattern to the first texture and spawn it with a noise pattern on the first texture to break up tiling. This grass texture seems to have no tiling at all:
    tiling_3.jpg
    It is because a second grass texture was spawned on top with a noise pattern, here is the second texture highlighted in red:
    tiling4.jpg

    4. CTS allows you to add a detail normal texture that will display shadows and highlights across the terrain to create the illusion of "fake details" to further break up tiling. Without detail normal map, if you look closely you see the texture tiling:
    tiling_1.jpg

    With a detail normal map it is much more difficult to spot the tiling, because the highlights / shadows break up the pattern:

    tiling2.jpg
     
  32. rastlin

    rastlin

    Joined:
    Jun 5, 2017
    Posts:
    105
    Is Tesselation capability missing in HDRP??

    I get an error:
    "CTS could not find a valid shader for this configuration: -- Render Pipeline: HighDefinition2018x - Shader Type: Tesselation - Shader Feature Set: None"
     
  33. PWPeter

    PWPeter

    Joined:
    Dec 16, 2018
    Posts:
    397
    Tessellation is currently not supported in HDRP due to technical limitations, but we want to support it when it becomes accessible. Please note that Tessellation is also not supported by Unity in their own Shader Graph in HDRP yet: https://forum.unity.com/threads/tessellation-option-in-hdrp.662182/
     
  34. rastlin

    rastlin

    Joined:
    Jun 5, 2017
    Posts:
    105
    This might sound reasonable, however from customer perspective this is not sufficient.

    You advertise that the asset provide Tesellation capabilities, it's nowhere state it's not available in HDRP. You could provide it via your own custom shader. Customers does not really care it's not available in core framework you base your work on.

    This asset desperately needs a feature grid describing exactly what feature are and are not available in which rendering pipeline.
     
  35. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,627
    The unity terrain engine is responsible for the underlying mesh, and it does not support it, so we we can not support it either until it does. @NatureManufacture is the shader coder - he could offer some more insight if I have this incorrect.

    We do provide tesselation support in the other two pipelines, and not being able to do this in HD SRP is not some overt money grab attempt by us. The HD pipeline is changing almost weekly it seems, and as soon as Unity support it, so too will we.

    If you feel that you have been misled then please lodge a support ticket and we will refund your purchase.
     
    KeithBrown likes this.
  36. rastlin

    rastlin

    Joined:
    Jun 5, 2017
    Posts:
    105
    I did not wanted to sound rude, if I did, then I apologise.

    While I would appreciate tessellation in current release, I'm quite hopeful you will add it at some point, and the asset will suite my needs for the time being.

    I wanted to point out how the documentation could be improved, since this is a big issue with Unity assets in general in my opinion. We have some many dependencies in Unity ecosystem on various pipelines, components, and even render settings, it's pretty hard to take an educated guess if the asset is suitable for one's needs before making the purchase.

    Cheers, and waiting for further improvements around hdrp.
     
    AdamGoodrich likes this.
  37. ArturoUSR

    ArturoUSR

    Joined:
    May 31, 2019
    Posts:
    15
    Hello. I'm new using CTS, and looks really promising. I have a question regarding the workflow: at the studio we didn't know about Gaia, so we bought Terrain Composer 2, I was wondering if there's an specific workflow between these two tools or CTS just work with Terrains created with Gaia. So far, my first test following the tutorial, is that when I go to Component/CTS, i just have "add CTS to terrain" and no other part of that menu. We bought CTS (not 2019) and I'm using unity 2018.3.1f1.

    Thanks in advance for all the help.
     
  38. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,627
    CTS will work with any standard Unity terrain. I am not sure what the workflow would be for TC2 as I do not use it.

    Not sure why your menu would be missing. Can you please click on the 'ticketed support' link in my signature below and provide more information. The only reason I can think of is that you have compilation errors in your project. You can check your console - you need to remove all the red line errors in it.
     
    ArturoUSR likes this.
  39. PWPeter

    PWPeter

    Joined:
    Dec 16, 2018
    Posts:
    397
    Can you please check if you can see the missing menu entries under "Window > Procedural Worlds > CTS"? We had to remove the additional entries from the Component / CTS menu due to a technical change that only allows entries that actually create components in there.
     
    ArturoUSR likes this.
  40. ArturoUSR

    ArturoUSR

    Joined:
    May 31, 2019
    Posts:
    15
    Thanks for the fast answer guys!


    Just checked, and the menu appears there. Thanks for the help!
     
  41. wumn

    wumn

    Joined:
    Jan 11, 2018
    Posts:
    24
    HI..
    There are 20X20 pieces of terrain in my scene.How do I quickly set up CTS on these 400 blocks of terrain?
     
  42. PWPeter

    PWPeter

    Joined:
    Dec 16, 2018
    Posts:
    397
    Are all these terrains textured already? If yes, it can't hurt to make a backup before trying anything, it should not be required normally, but when processing a large number of terrains it can't hurt either. When your project is backed up you can do the following:

    1. Go via Window > Procedural Worlds > CTS > Add CTS To All Terrains. This will add the CTS components to all currently active terrains in the scene

    2. Now it depends a bit what you want to do, if you want to use an existing CTS profile on all these terrains, select the profile in your asset hierarchy and click the "Apply Profile" button at the bottom of the profile. This will apply this profile on all active terrains with a CTS component on it.
    If you want to create a new CTS profile from scratch for all of your terrains, select the first terrain in your hierarchy, add the textures on it that you want to have in the profile, and select
    Window > Procedural Worlds > CTS > "Create and Apply Profile"
    This will make a profile from the currently selected terrain and will then apply it to all your other terrains as well.
     
  43. Shadowing

    Shadowing

    Joined:
    Jan 29, 2015
    Posts:
    1,289
    When I upgrade CTS from CTS to CTS 2019. Do I uninstall the old one first or can I just import 2019 version over on top of it?
     
  44. PWPeter

    PWPeter

    Joined:
    Dec 16, 2018
    Posts:
    397
    It depends if your current installation sits in
    Assets\Procedural Worlds\CTS
    already. If that is the case, you can just import over it. If your installation is still under
    Assets\CTS
    I would recommend to rather delete the old folder (make sure nothing important such as Profiles you want to keep is left in there!) and then install fresh, otherwise you will end up with an installation that is split across two folders.
     
  45. Shadowing

    Shadowing

    Joined:
    Jan 29, 2015
    Posts:
    1,289
    Thanks Peter.
    The only folder i have outside of Procedural worlds is a settings folder for CTS hopefully that will be ok.
    Assets/Settings/CTS
     
  46. PWPeter

    PWPeter

    Joined:
    Dec 16, 2018
    Posts:
    397
    If you created that folder yourself, that should be ok then because it will have a different meta id then, which means the importer should still put everything under
    Assets\Procedural Worlds\CTS
    just as planned. What will happen though is that after the installation process you will get a warning popup that will tell you it detected an older version of CTS in your Assets\Settings\CTS folder. That is an false alarm then, the check is only smart enough to look for other folders called "CTS" in your project, so you can just tell the popup to ignore it and it will not bother you again.
     
  47. Shadowing

    Shadowing

    Joined:
    Jan 29, 2015
    Posts:
    1,289
    ya i got that message when i imported another asset. Does CTS run that check no matter what asset I import?
     
  48. PWPeter

    PWPeter

    Joined:
    Dec 16, 2018
    Posts:
    397
    yes, the check is not directly tied to the asset import though, it runs "when the Editor Updates" which also is triggered after asset import. When you tell the popup to ignore it the check will "self-destruct" and delete itself from your project, so you should not be bothered again then ;)
     
  49. wumn

    wumn

    Joined:
    Jan 11, 2018
    Posts:
    24
    upload_2019-6-11_11-43-18.png
    Thank you for your reply
    I did what you said.But now, my terrain is not rendered.I used unity2018.3(HDRP)
     
  50. tcourbet

    tcourbet

    Joined:
    Oct 5, 2017
    Posts:
    46
    Hi!
    I've been using RTP on a personal project for a while but the current lack of HDRP support is making me lean towards CTS lately. I'm planning on moving over to HDRP fairly soon and I just wanted to make sure CTS would work for me.

    - I'm currently using Unity 2019.1.4f1 and planning on using hdrp 5.16.1. Would CTS work?

    - Also, is there support for a global map in CTS (albedo and normal)?
    (By that I mean a color/normal texture that spans over a whole terrain tile.)
     
    Last edited: Jun 11, 2019