Search Unity

  1. New Unity Live Help updates. Check them out here!

    Dismiss Notice

CTS - Complete Terrain Shader

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

  1. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,741
    Unity terrain 100-120 fps at 1060 card??? Um... Hm... I have 142 or more at 760gtx. This is strange. Laptop?
     
  2. Kolyasisan

    Kolyasisan

    Joined:
    Feb 2, 2015
    Posts:
    294
    This is just ridiculous. There is definitely something strange going on with shaders.
     
  3. Kolyasisan

    Kolyasisan

    Joined:
    Feb 2, 2015
    Posts:
    294
    No, standalone PC
     
  4. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,741
    As i saw w5100 is like 480gtx at benchmark or quite close to 8800gtx and you get 150 at unity terrain where 1060gtx have 100-120:p or 760 got 142-148 crazy i think something strange is going with this fps.mesure.
    760gtx - 90-88fps with tesselation
    780 - 120 fps with tess and post-fx
    Anyway huge thx for data. Amplify also made few test for us and we getting more and more data! This will help us alot. This is not even about shader because unity terain give here so messed result...
     
    Last edited: Jul 3, 2017
    AdamGoodrich likes this.
  5. shwa

    shwa

    Joined:
    Apr 9, 2012
    Posts:
    447
    Are these demos available for OSX?
    If not, that would be helpful, since i just bought CTS and it crashes my Mac on both Unity 5.5 and 5.6.
    Crash occurs during initial installation of CTS.
     
  6. Olander

    Olander

    Joined:
    Sep 13, 2014
    Posts:
    398
    I was part of the beta team and I think I was the first to link in my Genesis Weather to fully control CTS....directly into the shader since Adam had not made the script component yet. I do the same thing to trees and plants. I use my own custom trees made from TreeIT software....it is free. All you need is some time to learn it (not long) and good branch textures (there are many resources and leaves). They key is that your vegetation needs some smart to pull information from the weather system.....when it needs to. I use distance biasing heavily to do all sorts of things...automagically. :):cool:

    Here is a pic from the CTS beta where I am heavy testing for the group in pure weather generation. It does help to note that weather (snow/rain) must be done gradually and not some quick twisted change of a selector and boom....weather.

    Here is a couple pics of snow being accumulated over 4 accelerated hours in game. You can see how nicely the elevation and angular accumulation is happening. Ahhhhh the memories of watching paint dry. haha!!
    Note: There are no veggies planted nor rocks added here so as to not hide anything.
    4km x 4km terrain running at 61 to 67 fps....snow is fully particle based with no Post FX nor camera layers. A solid test.

    CTS Test 4k - 10am Rocky Landscape Adv Snowing A.png CTS Test 4k - 10am Rocky Landscape Adv Snowing B.png CTS Test 4k - 10am Rocky Landscape Adv Snowing C.png
     
    zenGarden, Mark_01, eaque and 5 others like this.
  7. NatureManufacture

    NatureManufacture

    Joined:
    May 20, 2014
    Posts:
    1,741
    during import?
     
  8. TeagansDad

    TeagansDad

    Joined:
    Nov 17, 2012
    Posts:
    871
    Swamp Demo on a 1.5 year old notebook PC:

    Unity: 128 fps
    Basic: 96 fps
    Advanced: 70 fps
    Tesselated: 54 fps

    Landscape demo:

    Unity: 172 fps
    Basic: 120 fps
    Advanced: 96 fps


    No Post FX on any of those.

    GTX 960M @ 1920x1080
    i5-6300HQ @ 2.3GHz, 4 cores, 8 GB RAM
     
    Olander and S4G4N like this.
  9. Kolyasisan

    Kolyasisan

    Joined:
    Feb 2, 2015
    Posts:
    294
    Now there is DEFINITELY something wrong with my PC. What though? Everything that I tested so far was good, including games, benchmarks and other asset store packages, were on par with other users with similar hardware. I am stunned to see that I am having such a drop.
     
  10. Killersan

    Killersan

    Joined:
    May 27, 2014
    Posts:
    76
    Landscape:
    Unity: 450-480 fps
    Basic: 400-450 fps
    Advanced: 300-330 fps

    Swamp:
    Unity: 380 fps
    Basic: 300 fps
    Advanced: 230 fps
    Tesselated: 154 fps

    Core i7 5960X, Geforce Titan X, 64GB RAM, Full HD
     
    TeagansDad and S4G4N like this.
  11. Plumpman

    Plumpman

    Joined:
    Sep 7, 2012
    Posts:
    24
    Shouldn't substance materials work out of the box?

    I noticed that when CTS creates the textures from substance material, the normal doesn't actually get marked as a normal map, and the base color alpha/smoothness is messed up or doesn't exist. As a result the terrain becomes shiny and the weather manager "Rain Power" produces extremely weird results. I've experimented with smoothness values, which helps a bit, but doesn't fix the underlying problem.

    What is the flow for just putting in a substance material and having it "work"?

    I'll post pictures later.
     
  12. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,816
    Speedtree is going to be difficult. One good thing is that their trees, at least the ones you purchase, do usually have a winter version. So you may want to just use a solution like Vegetation Studio (it may do this) that would switch out your winter trees.

    I think, sadly, you guys will find that some solutions you will just have to make yourself or settle for something not perfect.
     
    TeagansDad, Olander and S4G4N like this.
  13. Gunsrequiem

    Gunsrequiem

    Joined:
    May 17, 2017
    Posts:
    71
    Now that the developer of Tenkoku has added their own integration of CTS, I figured I'd make a video both for my own project but also to show you all what it looks like. It's very impressive what CTS can do, and hopefully this helps to highlight that:

     
  14. syscrusher

    syscrusher

    Joined:
    Jul 4, 2015
    Posts:
    1,027
    Very well said.

    Unity embraces the concept of an "ecosystem" around a core product, rather than trying to make the one product meet all needs. Not only do different developers and teams have different needs and preferences, but even one person or team may want to approach projects differently.
     
    AdamGoodrich, TeagansDad and S4G4N like this.
  15. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,667
    CTS just runs an export from the substance (Unity API call) and auto assigns them based on the image type of type of the export.

    In my testing normals were exported as normals, and then correctly imported as normals by Unity. However as I am discovering, substance has a wide array of settings, and this can vary your result a lot. I will modify CTS to force a re-import into unity as a normal. This will slow bake slightly, but is worth it not to have a problem. In mean time mark the texture as a normal. You can find the exported textures in the CTS directories.

    Smoothness / shininess needs to be placed in the ALPHA channel of your exported Albedos. This is what is causing this to happen... so it sounds like your Albedo alpha channel is not set up correctly. I will add an additional feature in the next release of CTS that will allow you to optionally define them, and if they are there then I will bake them into the end result.
     
    Plumpman, syscrusher and S4G4N like this.
  16. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,784
    This is true, but if the engine came with a fantastic solution built in then most people would be very happy to use the same solution and not have to pay for a 3rd party asset. And consider how often you've bought several different 3rd party assets for the same thing only to continue to find out that they didn't meet your needs. More wasted money.

    I agree that having alternative solutions is great, but having a solid built in solution is also a huge plus.
     
  17. Cleverlie

    Cleverlie

    Joined:
    Dec 23, 2013
    Posts:
    208
    Hi guys, I have two questions, didn't buy the asset yet but I'm planning to do so, my questions are, 1) which will be the price of the asset after the launch sale that ends on 9 july, and 2) do you have some place with a roadmap for us to see the future of the asset? I'm wondering if in the future things like geom blend or holes will be introduced in the asset, similarly of what rtp asset is offering, this asset seems to be lot more practical and easy to use than rtp, but I wonder which features we expect to see in the future, thanks!
     
  18. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,667
    $50

    Its in the very first post on the forum... which incidentally is the first thing you see when you click on the forums button from the asset.

    https://forum.unity3d.com/threads/cts-complete-terrain-shader.477615/
     
    one_one likes this.
  19. coverpage

    coverpage

    Joined:
    Mar 3, 2016
    Posts:
    385
    Hi, some of the demos here are absolutely beautiful. I'm wondering if there will be integration with terrain composer 2. Or will it focus on just Gaia and Gena.
     
  20. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,667
    CTS uses standard unity terrain so all terrain generation tools will work just fine as long as they work in the normal unity way.

    As the author of Gaia I will add support for CTS into Gaia as part of the Gaia package because I like to make things easy for my customers.

    However there will be no integration of CTS into Gaia or any other terrain package because CTS is stand alone - you can think of it as the Switzerland of terrain shaders.

    I don't have any control over TC2 so you will have to ask the author if he would consider doing this for you. Its a pretty simple integration because CTS was designed to be easy to use and easy to integrate with.

    This approach has also been taken with Enviro, Tenkoku, Weather Manager and Unistorm, and it seems to work well.
     
    Last edited: Jul 4, 2017
    Mark_01, S4G4N, gremberman and 3 others like this.
  21. buttmatrix

    buttmatrix

    Joined:
    Mar 23, 2015
    Posts:
    609
    +1 for "Switzerland of terrain shaders"
     
    Goodgulf, S4G4N, gremberman and 2 others like this.
  22. FargleBargle

    FargleBargle

    Joined:
    Oct 15, 2011
    Posts:
    681
    Yikes! :eek:

    Here's my results on a slightly more modest system for comparison. System specs: Older 3GHz i7, 24GB RAM, GTX-1070, running Windows 10 & Unity 5.6.2 @ 1920 x 1080, with third person character & post-processing stack added.

    Landscape (Character placed at center, with camera far clipping @ 4096)
    Unity: 124 - 130 fps
    Basic: 118 - 122 fps
    Advanced: 110 - 118 fps

    Swamp (Character placed at center)
    Unity: 140 - 150 fps
    Basic: 140 - 150 fps
    Advanced: 145 - 155 fps
    Tessellated: 140 - 160 fps @ Density = 20
    Tessellated: 140 - 155 fps @ Density = 5

    Why my performance seems to actually improve at the higher settings in the Swamp Demo is a mystery to me, but maybe these new GTX cards like CTS for some reason. :rolleyes:
     
    S4G4N, gremberman and AdamGoodrich like this.
  23. syscrusher

    syscrusher

    Joined:
    Jul 4, 2015
    Posts:
    1,027
    Agreed! I use TC2 and World Creator and want to use CTS with both. :)
     
  24. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,667
    Embarrasingly, this morning we noticed some basic mistakes in the way the terrain was setup for the swamp demo, which meant that we were making Unity work way harder than it should have been to render it. The demo will be fixed for the next release.

    While it wont affect the general usage of the product as you are using your own terrains anyway, it does go to show how significant the impact can be of not setting up your environment properly.

    On my system basic performance went from
    Unity : 436 -> 450
    Basic : 312 -> 366
    Adv : 252 -> 268
    Tess : 152 -> 224

    This actually has nothing to do with CTS, and everything to with how we set the terrain up. Its a pretty significant change in performance.

    I will release new demos later today.
     
  25. syscrusher

    syscrusher

    Joined:
    Jul 4, 2015
    Posts:
    1,027
    DISCLAIMER: Last night was my very first time using CTS, and I'm also fairly new to TC2 because until now I've been using World Creator (I bought both for different needs).

    There's no specific integration code with CTS and TC2, but I tested them together last night, and it works fine. The only thing I found is that the automated setup in CTS didn't detect some of the normal and height maps from TC2's generated terrain. That may very well be pilot error by me. In any case, I fixed it easily by using the inspector on the CTS profile to manually select the textures, then I rebaked using the button in CTS. Once I had done that, regenerating the terrain in TC2 didn't seem to cause any problems.

    I can't claim to have tested exhaustively, but call this a quick "confidence test", and it's clear that there are no insurmountable issues, only (at worst) inconveniences.
     
    Olander, Hormic and coverpage like this.
  26. FargleBargle

    FargleBargle

    Joined:
    Oct 15, 2011
    Posts:
    681
    The included demos are nice benchmarks, but here's an example using one of my own demo scenes that's maybe a bit closer to "real world" performance:

    CTS Test 1.png

    The terrain is 1024 x 1024, with 4 textures. The scene also contains a number of Speedtree trees, Aquas water, some additional prefabs, a third person character, and an AI enemy. I just added CTS, created a standard profile, set it to Advanced, and adjusted a few appearance settings. All of the terrain textures have height maps added, and three of them are set to triplanar. I've also enabled the Geo and Detail features. Still good for between 60 and 80+ fps, which is as good or better than what I was getting using the Unity shader. :)
     
    Last edited: Jul 4, 2017
    Mark_01, Olander, TeagansDad and 2 others like this.
  27. buttmatrix

    buttmatrix

    Joined:
    Mar 23, 2015
    Posts:
    609
    what is this from?
     
  28. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,667
    Further to my last comment - just made a new demo - running at around 550 fps on basic shader on my machine.

    And with experimentation its headed up to between 800 & 900fps. Niiice!

    Will share this soon.
     
    Last edited: Jul 4, 2017
  29. coverpage

    coverpage

    Joined:
    Mar 3, 2016
    Posts:
    385
    Thanks for this useful information @syscrusher

    This is great to know. Thanks for the information.
     
  30. Rowlan

    Rowlan

    Joined:
    Aug 4, 2016
    Posts:
    1,117
    A request if I may: Would it be possible to add a desert scene into the asset? Or at least something like in the advertised screenshots:

    cts.jpg
     
    Last edited: Jul 4, 2017
  31. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,667
    I put another demo up there called 'Basic'.

    It is a demo of the basic shader designed for speed rather than deep beauty - so for example I dropped the texture sizes down to 512px. It has AO, Geo and Snow enabled - and has also been 'packed for build.' Lighting is baked rather than real time.

    I am curious to see how it goes on lower end systems.

    On my system with 3 x 1900x1200 monitors:

    Fantastic quality 1900 x 1200 full screen
    * Without Post FX: 660, With Post FX: 468

    Fastest quality 1900 x 1200 full screen
    * Without Post FX: 850, With Post FX: 640

    I am pleasantly surprised by how little the shader suffers visually as you drop the quality settings in the scene - i.e. what people who have low end systems will do.

    Note : These numbers are based on the original view before free roam has been enabled.

    Basic.jpg
     
    JBT27 and gremberman like this.
  32. TeagansDad

    TeagansDad

    Joined:
    Nov 17, 2012
    Posts:
    871
    Basic Demo:

    Fantastic Quality: 174 (without post), 120 (with post)
    Fastest Quality: 240 (without post), 160 (with post)

     
    JBT27 likes this.
  33. buttmatrix

    buttmatrix

    Joined:
    Mar 23, 2015
    Posts:
    609
    @AdamGoodrich how are you calculating the frame rate stats in your utility?
     
  34. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,667
    I just cut n pasted the frame rate algorithm out of Unity Standard Assets. If it's rubbish then so are our stats :)

    Code (CSharp):
    1.         private void Update()
    2.         {
    3.             // measure average frames per second
    4.             m_fpsAccumulator++;
    5.             if (Time.realtimeSinceStartup > m_fpsNextPeriod)
    6.             {
    7.                 m_currentFps = (int)(m_fpsAccumulator / cMeasurePeriod);
    8.                 m_fpsAccumulator = 0;
    9.                 m_fpsNextPeriod += cMeasurePeriod;
    10.                 if (m_fpsText != null)
    11.                 {
    12.                     m_fpsText.text = string.Format(cFormat, m_currentFps);
    13.                 }
    14.             }
    15.         }
    16.  
     
  35. buttmatrix

    buttmatrix

    Joined:
    Mar 23, 2015
    Posts:
    609
    I'm sure it's fine, I was just curious. Others have gone on at length about this before.
     
    AdamGoodrich likes this.
  36. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,667
    I suspect its all moot anyway - as you load your scene up I am sure that Unity has a whole bunch of optimisation tricks up its sleeve - and will dynamically allocate CPU and GPU resources where it needs them.

    Another thing to consider is that Unity has been steadily moving more of the engine onto background threads as each version drops.

    But I have no visibility of the engine source to be able to make a judgement.
     
  37. FargleBargle

    FargleBargle

    Joined:
    Oct 15, 2011
    Posts:
    681
    Just ran the Basic Demo @ 1920 x 1080 (Fantastic Quality): 550 (without post), 400 (with post)

    Re-ran the latest compiled Swamp Demo @ 1920 x 1080 (Fantastic Quality):
    • Unity: 390 (without post), 290 (with post)
    • Basic: 300 (without post), 235 (with post)
    • Advanced: 220 (without post), 175 (with post)
    • Tessellation: 170 (without post), 145 (with post)
    Re-ran the latest compiled Landscape Demo @ 1920 x 1080 (Fantastic Quality):
    • Unity: 270 (without post), 265 (with post)
    • Basic: 260 (without post), 255 (with post)
    • Advanced: 225 (without post), 220 (with post)
    (Note: Previous posted times were all recorded in the Editor)
     
    Last edited: Jul 4, 2017
  38. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,667
    Nice. A boost from 300 fps to 550 fps for two basic shader scenes is not too shabby. Interestingly the new basic scene is is almost twice as large :)
     
    FargleBargle likes this.
  39. gremberman

    gremberman

    Joined:
    Aug 10, 2014
    Posts:
    128
    Pffff... 512x512 for terrain? :eek: Really?
     
    S4G4N likes this.
  40. S4G4N

    S4G4N

    Joined:
    Mar 13, 2013
    Posts:
    2,698
    @Adam is testing to see results for lower end hardware and older systems so that those users can also enjoy the benefits of CTS I am sure ;)
     
  41. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,667
    It seems everyone is looking for something different and everyone has an opinion :)

    Some people want the latest modern terrain shading that looks great - which we deliver in spades on decent GPU's.

    And other people want something nice on older cards - and today we demonstrated an almost 100% improvement in performance through carefully considered choices. You can go run around in it if you want.
     
    Last edited: Jul 4, 2017
    Olander, Boz_1, buttmatrix and 2 others like this.
  42. FargleBargle

    FargleBargle

    Joined:
    Oct 15, 2011
    Posts:
    681
    I just did, and it's not bad, even on a 55" TV. I imagine it would look great on an iPhone. Not everyone needs AAA photo-realistic terrains. Why waste all of those resources if you're building for mobiles? :rolleyes:
     
    syscrusher, AdamGoodrich and S4G4N like this.
  43. S4G4N

    S4G4N

    Joined:
    Mar 13, 2013
    Posts:
    2,698
    That is how I see it as well.
    If you have have a high end newer rig then there are high end settings and option for you to use to squeeze everything out your hardware investment.
    This just showed the usability on older hardware to still get a WAY better look then Unity vanilla terrain.
    Bottom line, once you see the difference with even just 4 textures and Basic compared to Unity standard, you won't want to go back

    The basic simple response. Not CTS or any other shader can give what your hardware can in the first place no handle, produce or render.
     
    Last edited: Jul 4, 2017
  44. gremberman

    gremberman

    Joined:
    Aug 10, 2014
    Posts:
    128
    Jep. Our team now working on a big new project.
    Due to Unity ugly terrain we started it in Unreal Engine.
    Now we consider to switch it to Unity.

    In Unity we tried Distingo (abandoned), MegaSplat (looks like still in beta), RTP (old in technology).
    So the CTS seems to be a godsend to make Unity terrain next gen.

    I am sure the performance shall be improved in next versions.
    It is a real hard job, since there are so many GPU models on the market, operating systems and new technologies.
    But it seems like the devs are great guys and this asset is a must have.
    Keep going guys! ;)
     
    AdamGoodrich and S4G4N like this.
  45. JBT27

    JBT27

    Joined:
    Jul 13, 2016
    Posts:
    197
    Hmm. Tricky ... because I kind of like what you're doing; it looks rich and detailed, though I also get what you're seeing.

    My initial thoughts are that you have quite a soft landscape, in this case. Large slopes and shallow hills. Your second screengrab has a wide expanse of green grasses way off into the distance. If you were to photograph that, on moorland say, you would see some height and detail with foreground bushes and grasses, which in turn give more contrast and colour. That would be one thing to do. If you have that, then your view is a product of your altitude and distance from the landscape.

    The problem is that I look at this stuff from an image/vfx point of view, whereas of course, it's actually a game/interactive environment. Colour becomes more subdued with distance, and of course aerial perspective, the blueness of distance (on Earth) plays a big part. On the colour thing, I'd be putting a shot through comp and controlling saturation in the distance with a zdepth channel. I haven't tried it in Unity - i guess one of the colour grading assets might allow such a thing; someone else here will know more about that. Unity's own fog gives a good controllable impression of aerial perspective at very low settings, something around 0.001 - 0.004, and on its Exponential Squared setting. Ensure that your horizon is darker than the haze, so that you have a silhouette that is darker than the sky. I have seen many cutscenes and screengrabs where folk are not observing how real landscapes work. It applies as much to games dev as it does to vfx and any other figurative visual art - look at the real thing and mimic it.

    The papery flatness you allude to is down to your terrains detail, and your handling of foreground and foreground objects. Simpler fixes will be contrast, with perhaps some carefully tweaked ambient occlusion. The Unity Tech AO creates bad flicker, so I've found so far, at least it does in offline rendering, whereas third party tools like the HBAO asset, and Amplify's, are solid.

    What you have done so far is nice. But I suspect you need to add more objects, grasses and bushes, that give a greater sense of depth. Your texture set is really nice, and the detailing in the distance looks good. But getting closer to believable means adding more stuff and paying attention to how the eye and brain sees a real landscape, and importantly, how a landscape photographs, because that's our most common experience of varied landscapes: seeing them in photos. If I think of anything else, I'll post again. But good luck - nice work.
     
  46. sebasfreelance

    sebasfreelance

    Joined:
    Aug 27, 2015
    Posts:
    219
    My congratulations to the team, very happy with the purchase, the terrain now looks spectacular!

    A greeting
     
    AdamGoodrich and S4G4N like this.
  47. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,667
    In other new and cool news we now have weather integrations with Enviro, Tenkoku and Weather Maker.

    These will all appear in the asset store very soon - and you will be able to take your CTS environments to a whole new level of cool !!
     
  48. SmokeyKilla

    SmokeyKilla

    Joined:
    Feb 11, 2015
    Posts:
    7
    I am excited to see that performance has been doubled......top effort guys;)....was holding off but will buy this product now....Does anyone have any desert style scenes using CTS, that they can post....?
     
  49. Bartolomeus755

    Bartolomeus755

    Joined:
    Jun 20, 2013
    Posts:
    242
    Any chance, to have the weather integration with trueSKY?
     
  50. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,667
    It's up to the author. It's easy to do and if they are interested then we would happy to help out.
     
    Bartolomeus755 and gremberman like this.
unityunity