Search Unity

CTS - Complete Terrain Shader

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

  1. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,623
    Sounds like your update didn't update properly.

    The functions are no longer needed or used as registration happens per terrain during OnEnable, and OnDisable.

    So these functions have been removed, and no CTS code refers to them.. ergo you should not even notice they are gone.

    Save data, delete CTS and re-import. We successfully tested compiles and builds of CTS on latest Unity 2018.2.6 plus .Net 4 & ECS.

    It was however very late when i made code merge and release build and I may have messed this up. If this does not resolve then let me know.
     
  2. tredpro

    tredpro

    Joined:
    Nov 18, 2013
    Posts:
    403

    Will do thank you. I'm also on 2017.4
     
  3. tredpro

    tredpro

    Joined:
    Nov 18, 2013
    Posts:
    403
    Code was in the reinstall. I'm going to redownload cts to see if maybe something happened during download...
     
  4. tredpro

    tredpro

    Joined:
    Nov 18, 2013
    Posts:
    403

    I deleted. Redownload and everything ctsworldapiintegration still has those 2 issues
     
  5. tredpro

    tredpro

    Joined:
    Nov 18, 2013
    Posts:
    403
    I went ahead and went back to previous version I had since I'm not sure what is all there and what isn't with the new one
     
  6. unicat

    unicat

    Joined:
    Apr 8, 2012
    Posts:
    399
    There must be something wrong with the latest Update. My textures are all gone one on my Terrain ?
     
  7. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,623
    SALE SALE SALE!!!

    All Procedural Worlds Assets Are on Sale for 25% off - Including our recent SECTR acquisition!!

    Plus - to sweeten the deal - we also have a stellar bunch of updates!!

    Gaia 1.8.0 update is live:
    • Added Mac 16 bit raw import
    • Added 8 bit raw file import
    • U2018 related fixes due to changed API's related to spawning prefabs
    • Turned off automatic lightmap baking when creating news scenes
    • Improvement to bounds based collision checking
    • Added Terrain Utilities to Main menu to highlight it
    • Reorganised More menus to make them more understandable
    • Minor usability tweaks
    GeNa 2.0.0 Upgrade is live ($20 for purchases > 90 days ago, free otherwise):
    • Paintbrush painting mode
    • New layer based spawning system & improvements
    • Vastly improved bounds based collision checking
    • Vastly improved rotation algorithm when doing fences
    • New Min and Max spawn height capability & visualizations
    • Height offset modification for collisions
    • Seamless support for SECTR
    • Preliminary Vegetation Studio support
    • Improved help system
    • Fully 2018.x compatible
    • Better defaults.
    CTS 1.8.0 update is live:
    • New material & shader caching system
    • Use of material enable materials shared between terrains
    • New cached shader id system to speed up updates
    • Better registration / deregistration system for multitile
    • Component menu workarounds : CTS moved to GameObject menu
    • Terrain now world space instead of vertex space (prelude to mesh blending)
    • Improved terrain normals generation
    • Moves shaders from Resources to Shaders directory to stop excessive compile times . Reorganised texture and profile directories
    • Latest shader updates / amplify bug fixes
    SECTR will be updated in next few days (currently in test)
    • Seamless support for Gaia terrains
    • Seamless support for CTS
    • New suite of Video Tutorials
    With all this new coolness, a bunch of new video tutorials will also come out later this week...

    HUMBLE BUNDLE SALE

    If you haven't already heard about it then do yourself a favor and check out the amazing Humble Bundle Sale! $15 gets you a bunch of cool games, a set of game dev courses valued at $600, and a whole bunch of premium unity assets.
     
    Last edited: Sep 7, 2018
  8. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,623
    Can you please lodge a support request and show me what you have done via the support link in my signature below - if there is an issue with the release we want to catch it ASAP!
     
  9. unicat

    unicat

    Joined:
    Apr 8, 2012
    Posts:
    399
    Sorry, i forgot to rebake the textures. It is working now. Again, sorry false alarm :)
     
    AdamGoodrich likes this.
  10. tredpro

    tredpro

    Joined:
    Nov 18, 2013
    Posts:
    403
    What unity version are you using?
     
  11. unicat

    unicat

    Joined:
    Apr 8, 2012
    Posts:
    399
    2018.2.6f1
     
  12. SSL7

    SSL7

    Joined:
    Mar 23, 2016
    Posts:
    289
    any quick fix for the following (1.8.0 CTS)? (MapMagic integration)


    Assets/MapMagic/Generators/CustomShaderOutput.cs(1160,74): error CS1061: Type `CTS.CTSProfile' does not contain a definition for `m_snowNoiseTextureIdx' and no extension method `m_snowNoiseTextureIdx' of type `CTS.CTSProfile' could be found. Are you missing an assembly reference?
     
  13. Emerald_Eel_Entertainment

    Emerald_Eel_Entertainment

    Joined:
    Mar 30, 2016
    Posts:
    120
    Hey Adam. It's been a while since I used CTS. I recently updated it and downloaded it to a new project; I sculpted a terrain, applied a CTS component to the terrain and duplicated the basic CTS example profile. I've edited it by replacing the textures in the previously-established slots.

    However I noticed that despite hitting Apply Profile the textures remain the same. I noticed this message here too when clicking on the terrain:
    upload_2018-9-6_16-58-20.png

    How can I get around this problem?
     
  14. tredpro

    tredpro

    Joined:
    Nov 18, 2013
    Posts:
    403
    I really cant wait for the gaia multiple terrain support on gaia. I have a scene with over 64 terrains and it is such a pain to do them all one by one
     
    AdamGoodrich likes this.
  15. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,623
    It's not a problem. It's a random unity terrain warning message. CTS works just fine.

    CTS 1.8 now dynamically generates snow noise, so this parameter is no longer required. We do not control the MapMagic integration, so please contact Dennis and let him know that it has changed. Get him to contact me if he would like some help with the latest changes - we have made modifications in the latest release that should enable CTS to work much more nicely with MapMapic.
     
  16. SSL7

    SSL7

    Joined:
    Mar 23, 2016
    Posts:
    289
    Tagging @Wright :)
     
  17. Emerald_Eel_Entertainment

    Emerald_Eel_Entertainment

    Joined:
    Mar 30, 2016
    Posts:
    120
    The textures have not changed either. They still appear to be the preset profile textures rather than the ones I changed them to.

    EDIT: Oh, it appears that all I had to do was remove the colormap and bake the textures, terrains and apply the profile again. Now it's working as intended.
     
  18. Psyche_

    Psyche_

    Joined:
    May 2, 2018
    Posts:
    10
    Hey,
    Does anyone know how I can solve this? 2018-09-07_13h49_59.png
     
  19. tredpro

    tredpro

    Joined:
    Nov 18, 2013
    Posts:
    403
    He said it shouldnt be there. But I updated to 2018, deleted cts and the stored unitypackage and redownloaded to fix it but I am still getting the issue

    2017.4 and 2018.2
     
  20. Psyche_

    Psyche_

    Joined:
    May 2, 2018
    Posts:
    10
    For now I temporary solved it by hiding these two lines in the CTSWorldAPIIntegration script.
    It's probably not the correct fix, but atleast we can go on with our project without compile errors until we hear more about it.

    2018-09-07_18h42_33.png
     
  21. tredpro

    tredpro

    Joined:
    Nov 18, 2013
    Posts:
    403
    Yes that's what I'm doing also but since it's not suppose to be there I fear we may not be running 1.8 accurately
     
  22. sunseeker1988

    sunseeker1988

    Joined:
    Jul 10, 2014
    Posts:
    393
    How do I remove this from my current project or scene. The CTS.TerrainManager keeps being generated in my hierarchy.
     
  23. Shadowing

    Shadowing

    Joined:
    Jan 29, 2015
    Posts:
    1,240
    Any chance on the next CTS update you can increase the Far Multiplier max value? its limited at 20. I need higher. I notice my mountains look much better in the distance when its much larger.

    Id like to see a distance setting for Triplanar too.
     
  24. Shadowing

    Shadowing

    Joined:
    Jan 29, 2015
    Posts:
    1,240
    So the way CTS fixes the pattern issue when viewing a texture far away is by increasing the tile size?

    I have this issue on a building right now that has stone on it. Are there any assets in the store that does this for mesh objects?
     
  25. Jim_Gleaves

    Jim_Gleaves

    Joined:
    Mar 18, 2018
    Posts:
    3
    I seem to have the same problem. I select "Create and Apply Profile" and Unity hangs on
    "Ingesting albedos." I've created several blank projects with nothing but CTS and Gaia to try and limit the variables. Did you ever resolve this?

    I know that WebGl isn't super popular, but I'd really like to share my landscapes in a browser without forcing people to download an executable. The product description states that WebGL 2.0 is supported, so I'm not sure what the issue is.
     
    Last edited: Sep 11, 2018
  26. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,623
    Hey everyone - we are super pleased to release Path Painter!!!

    It's a system that makes it super easy to paint Paths, Roads, Ramps & River Beds into Unity Terrains. Tutorials will come in the next few days.

     
    P_Jong, trilobyteme, Mark_01 and 2 others like this.
  27. Shadowing

    Shadowing

    Joined:
    Jan 29, 2015
    Posts:
    1,240
    Any videos on how the work flow works? Is it a lot like how Easy Roads works? Id like to see how the editor looks while drawing in a road.
     
  28. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,623
    Yes - as per our text above - tutorials coming soon.
     
  29. JBT27

    JBT27

    Joined:
    Jul 13, 2016
    Posts:
    196
    Once CTS is applied, it's not possible to paint details using the native terrain tools ... or is it? I'd like to lay down the overall terrain textures using four maps, and then have another four in the list I can paint with, for detail. Vegetation Studio allows this, but doesn't have the features of CTS. Kind of hope I'm missing something.
     
  30. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,623
    CTS is just a terrain shader. No other aspect of Unity is changed, except for the way terrain is painted. So details will work as they did before.
     
    JBT27 likes this.
  31. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,623
    Hey everyone, in more very cool news we are super excited to announce that @Shawn67 has just joined the Procedural Worlds team as our Community Manager!

    Shawn as been with us since the early days of the first Gaia beta, and makes a terrific addition to our team. In addition to helping everyone get the best out of our suite of tools, he is also bringing his Gaia stamp packs over and you will soon see his existing packs and his new packs joining the Procedural Worlds asset collection.

    Please come on over to our Discord server and make him feel welcome! With over 1000 people already there it's hugely active, and is a positive environment where you can learn from your peers, get help, share your work, or just make friends and have a chat!
     
    P_Jong, Olander, trilobyteme and 4 others like this.
  32. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    2,373
    Thought I'd post this here for others that might find it useful.

    I needed a runtime friendly and more precise way to create holes in terrain. So I created a world bounds based solution.
    This involves some simple changes to the shader. How you pass in the float4 mask(s) is up to what you need. I use a set of global uniform float4 variables. I would only use this where you have a small number of potential masks. My use case is 1-3 max per terrain, and where a standard depth mask wasn't viable for precision issues.

    Code (csharp):
    1.  
    2. void ClipBounds(float4 bounds, float2 pos) {
    3.         float2 min = bounds.xy;
    4.         float2 max = bounds.zw;
    5.  
    6.         float a = step(min.x, pos.x);
    7.         float b = step(pos.x, max.x);
    8.  
    9.         float c = step(min.y, pos.y);
    10.         float d = step(pos.y, max.y);
    11.         clip(3.0f - a - b - c - d);
    12.     }
    13.  
    14. // At the end of the surf function.  _Mask1 is a float4
    15. if (_Mask1.x > 0.0f) {
    16.         ClipBounds(_Mask1, i.worldPos.xz);
    17. }
    18.  
     
  33. mattis89

    mattis89

    Joined:
    Jan 10, 2017
    Posts:
    1,053
    Wow! Kind of you to share! Do I still use it the same way like when you do it the OG way? :D ..
     
  34. topofsteel

    topofsteel

    Joined:
    Dec 2, 2011
    Posts:
    968
    How can CTS be applied to a mesh? And is there a way to change the Texture Settings on a profile before applying it? Thanks.
     
  35. trilobyteme

    trilobyteme

    Joined:
    Nov 18, 2016
    Posts:
    288
    Any progress on ticket #14348 yet? I filed it on the 10th, that region/scene bloat is big enough that if it can't be fixed, I need to start looking for other solutions.
     
  36. Chaz32621

    Chaz32621

    Joined:
    Apr 17, 2015
    Posts:
    198
    Can we run this on 2018.2 now?
     
  37. krahvaal

    krahvaal

    Joined:
    Feb 24, 2018
    Posts:
    19
    EDIT: I went to the CTS tutorial and the tutor mentions the need for a profile. While I don't have the same Components->CTS menu as the tutor I found it on Window->CTS - that seems to work. Is that correct, does it integrate with Gaia in the same way?
    Having done several Udemy courses I've learnt about managing our own assets but haven't encountered troubleshooting asset managers or found a course on terrain generation - I will simply do the Procedural Worlds tutorials as well as the ones that come with my Seat.


    Having messaged on Procedural Worlds I played another tutorial and noticed the menu link to post here.

    I'm unable to get CTS to work. When I select Component->CTS->Add CTS To Terrain it throws the warning, CTS needs a profile to function but still creates a Component panel. Even when giving that the profile, as per tutorial, it throws the error NullReferenceException: Object reference not set to an instance of an object
    CTS.CompleteTerrainShader.TerrainNeedsTextureUpdate () (at Assets/CTS/Scripts/CompleteTerrainShader.cs:1340). Visual Studio does not show error/warning for the call. I've tried numerous things with no resolve.

    I have tried this across 2018, 2017.3.1f1 and LTS Release 2017.4.10f1 (what I want to develop on).
    In each attempt I started a new project, deleting previous.
    In the latest 2 I made sure to delete any projects, other than 1 for study, from my Unity3D account (I'm not using any Cloud projects),
    In the latest I uninstalled Unity, deleted all Unity folders under AppData then installed LTS Release 2017.4.10f1.
    Note: I backed up and restored AppData\Roaming\Unity\Asset Store-5.x to avoid 4 hours downloading - all file Date Modified match when Unity downloaded them from the Asset Store - as I would expect.

    CTS did work the first time I tried it on 2018 but simply looked nowhere near as good as the tutorial - as if a number of materials/textures failed to load - there were warnings but I got lost as to what.
     
    Last edited: Sep 23, 2018
  38. anpd03

    anpd03

    Joined:
    Aug 7, 2013
    Posts:
    57
    Question regarding CTS. Does CTS support setting texture based on height and slope normal, and have it update in realtime? I want to allow the player to modify the terrain height and make the texture change from grass to mountain when the terrain is raised.
     
  39. VictorKs

    VictorKs

    Joined:
    Jun 2, 2013
    Posts:
    133
    Hi, I added CTS to my terains and they look really great especially the texture height-blending and terain colormaps, but the problem is that only the Lite version works smoothly at 60+ FPS while Basic puts me about 52 and advanced 40. I read the performance text. I'm using GTX1050-ti but I have an older i5 proccesor. So am I doing something wrong or my hardware is outdated for the asset? Also what kind of hardware is needed for a smooth 60FPS at advanced? And is this a GPU issue or a CPU? thx for the help!
     
  40. Shawn67

    Shawn67

    Joined:
    Jan 2, 2014
    Posts:
    2,196
    A couple things could be at play here. One could be your CPU being overstressed. If you pull up Windows task manager, what does it show your CPU usage percentage when you are in play mode? The other thing that could help, if you aren't already, is running Unity/project on an SSD drive. I finally switch from a 6 core AMD to i7 and added an SSD and the difference for not only CTS, but light baking, Gaia spawning, and life in general has improved.. lol

    I would also guess your GPU is new enough that it probably isn't the problem. Is it using shared RAM out of your system memory or does it have dedicated RAM built onto the card. I would say it might only be a problem if it is sharing RAM from your system RAM. I'm not sure how the 1050s were or if they had both options or not.

    Its really impossible to say what hardware you need for 60fps. It really depends a lot on your scene and how you have things setup and how well optimized things are in your scene. I'm seeing 60-80 on my i7 with an 8gb gtx1070, 16gb ram running windows 10/unity/my project on an ssd drive for a 4k terrain w/ default gaia spawners, aquas, and enviro but no creatures/npcs/ai.. Maybe even higher fps. I haven't paid that close attention to it. I've even been able to run around on a 16k terrain I am experimenting with that had the same stuff in it, but I was down around 20-30fps.

    But if you can swing a setup similar to mine, you should definitely be good. I was long overdue for an upgrade and now that I see the difference, I wish I hadn't waited this long! lol
     
    Mark_01 and AdamGoodrich like this.
  41. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,623
    CTS renders your terrain textures, but doesn't texture your terrain if that makes sense.

    Said another way, you need to use your normal tools / unity terrain brushes etc to texture the terrain - and when done CTS will make it pretty for you.
     
  42. Shawn67

    Shawn67

    Joined:
    Jan 2, 2014
    Posts:
    2,196
    Hey gang.. I'm just now noticing there have been posts here and I didn't get notifications the thread had been updated. As @AdamGoodrich has always mentioned, the best way to deal with support issues on our products is to first open a trouble ticket (Support link in my signature) so it is guaranteed to be in our support queue. Afterwards, feel free to post here or pop into the CTS channel of our Discord server (chat link in my signature) where you may discuss the issue with others in the community. We don't always see stuff in Discord or here, but we have some awesome community members who frequent them and are able to help folks out. If we are there or see questions here, we will try to get answers as quickly as possible. BUT, ticket system is the most efficient way to get help from us directly.

    If you are asking about mesh based terrains, CTS is mainly a terrain shader. With that said, there is a roundabout way that you can get a CTS created material to a mesh based terrain but you have to build the material with CTS on a Unity terrain version of your terrain. Once you have adjusted all your settings, within CTS' Optimization Settings panel there is a checkbox for persist materials. If you check that box, it will then create a material that you can add to your mesh terrain. Mileage may vary on any other features that would work in runtime after the material has been applied. I'm not sure if weather or other things work on mesh terrains as I've always used Unity terrains.

    If you are asking about mesh blending, Bart and Adam are planning on that for a future upgrade. Timing is dependent on when Unity works out issues with the current LW/HD pipelines.

    I think I saw today that Adam worked with you on our chat server and got you a copy of CTS 1.7 to get you up and running until we figure out resolution and get it in an update.

    The only issue I'm aware of with Unity 2018 at the moment is CTS no longer supports substances after Unity 2017 because Unity no longer support substances. Evidently there are a lot of issues getting substance support working even with the addon and my understanding from talking to other customers, the focus seems to be mobile only for that. So we really can't do anything to get it working on CTS if it doesn't work in Unity. You can still export your substances to PBR textures and manually assign them in CTS as you would any textures.
     
    AdamGoodrich likes this.
  43. Shawn67

    Shawn67

    Joined:
    Jan 2, 2014
    Posts:
    2,196
    The only difference between the two is the one in component would only create a profile attached to the terrain you have currently selected whereas the one in window adds CTS to all terrains within your scene.
     
  44. Nihilus0

    Nihilus0

    Joined:
    Jan 25, 2017
    Posts:
    52
    Hi, @Shawn67, @AdamGoodrich
    I ask some Question regarding CTS.

    1. Is it yet to be compatible with LWRP?
    2. I want to use MapMagic to create numerous areas such as deserts, snow parks, jungles, and plains. But your asset supports only 16 textures. it is ridiculously inadequate for make various biomes. Can't you increase 16 texture support to 32 or 64? what problems does it cause or worry?
    3. Your asset only has a snow cover. but, it has not function of Snow Trail. So I want to modify the shader of CTS assets in my project. so I looked at the Shader Code, but it was as complicated as I expected. Still trying to challenge, but can you let me know what I need to know before making any changes? (any hint, advise, explain structure, alert, etc.)

    P.S. I am not an English speaker. I am sorry for my poor English.
     
    Last edited: Sep 28, 2018
  45. anpd03

    anpd03

    Joined:
    Aug 7, 2013
    Posts:
    57
    Hi Adam,
    Thanks, that clarifies it.
     
  46. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,623
    This is a poorly placed warning in latest CTS - will fix in the next patch. Just ignore, then click on the profile you wish to apply, then hit Apply Profile. It works as expected for me.

    No. Coming soon.

    It is highly unlikely that you will ever want to have more than 16 PBR texture sets, plus color maps, plus snow, plus geo, plus details etc in one terrain tile. If you experiment with the features that are inherently supplied with CTS, you will find that it is more than capable of providing a massive amount of variation to create interesting biomes. If you want different textures on different tiles, then create a new profile any apply it to the new tile.

    The reason we limit this is for performance. All of these textures end up creating significant load on GPU and as always with game development it is a balance beauty and performance.

    I suspect this will be very difficult. You may want to do that as a post effect instead.
     
    Mark_01 and Shawn67 like this.
  47. trilobyteme

    trilobyteme

    Joined:
    Nov 18, 2016
    Posts:
    288
    Yes @Shawn67 I got a copy of the old version, it's working as expected. Thanks for the follow-up.
     
    Shawn67 likes this.
  48. desertGhost_

    desertGhost_

    Joined:
    Apr 12, 2018
    Posts:
    74
    Hi,

    I have noticed that the stripping of textures (which is great for increasing rendering performance) is really impacting our start performance when we load a scene:

    CTS start up.PNG
    This causes noticeable spikes when we asynchronously load and activate sections of our map. Are there any settings in CTS that would allow us to cache the stripped terrain (or at least create it in the editor)?

    If not I can modify the code to check for a duplicate terrain data (that has had it's textures stripped) in the resources folder and simply swap the terrain data. I wrote a utility a while back that duplicates terrains and strips their textures. Would there be any problems with this approach?
     
  49. Shadowing

    Shadowing

    Joined:
    Jan 29, 2015
    Posts:
    1,240
    I noticed in Assets -> CTS -> Profiles
    It creates a folder called Arrays. i was wanting to use my own location for profiles but that folder exists.
    guess thats not good work flow to try to relocate it? Cause then I would have to keep moving it every time I create a new profile. I don't see any way to create a new profile with out using the editor tool button.
     
  50. Shawn67

    Shawn67

    Joined:
    Jan 2, 2014
    Posts:
    2,196
    Hi @Shadowing. I'm not sure what you are asking. Are you having a problem after moving your profile after you create it or just looking for a way to change where it creates so you don't have to move it. If the first, what exactly is the problem you are having. I always move my profile and store it in the scene's folder that I built it for and haven't noticed any issues. If you are looking for a way to create it without having to then move it, I'm not aware of a way to do that. I've just made it part of my workflow just like I have to move my terrain file after I create a new terrain for my scene.