Search Unity

[RELEASED] Advanced Dynamic Shaders - GPU wind shaders

Discussion in 'Assets and Asset Store' started by BOXOPHOBIC, May 16, 2018.

  1. Ryan-Hayle

    Ryan-Hayle

    Joined:
    Feb 16, 2014
    Posts:
    142
    Any update on the LW and HD support? I have been looking everywhere for a shader like this that includes touch bending and HDRP. I just purchased your asset, but are happy to pay more if you add the above 2 features.

    In response:

    Hi,
    I am, I was just busy lately. Regarding your question, I'm planning to add urp and hdrp support once unity 2019.3 is out, as separate packages at around 8$ each. About touch bending, I'm not sure when I'll have time for it. I want to do a system that can handle any number of objects. The next thing in ADS will be global snow and maybe prefab convert instead of converting each individual mesh.

    Kind regards,
    Cristi
     
    Last edited: Oct 12, 2019
    BOXOPHOBIC and amynox like this.
  2. starfoxy

    starfoxy

    Joined:
    Apr 24, 2016
    Posts:
    184
    Also following up if the MTree author has gotten back to you re integration.
     
    Lars-Steenhoff likes this.
  3. Low_on_Mana

    Low_on_Mana

    Joined:
    Jun 18, 2018
    Posts:
    37
    Hi! I'm very interested in this asset, but I'm wondering if this can be efficiently used for large fields of grass. I'm worried that it might be too much, but would love to hear firsthand. Thanks!
     
  4. Ryan-Hayle

    Ryan-Hayle

    Joined:
    Feb 16, 2014
    Posts:
    142
    When installing Advanced Dynamic Shaders, can you tell me what is the reason for pressing Setup ADS when adding to a new project? As I believe this is causing Amplify Shader Editor to hang evey time I import it.
     
  5. drcfrx

    drcfrx

    Joined:
    Jan 26, 2013
    Posts:
    53
  6. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    Hey everyone,

    It's been a long time since I didn't respond, sorry about that! I started rebuilding my assets from the ground up for easier usage, better compatibility with SRPs and better overall performance.

    I've been thinking a lot about upgrading ADS or changing it completely. ADS started as a shader for flags but then it started shifting towards vegetation. Right now it has 12 shaders that are hard to manage if I need to change something.

    I decided to change ADS completely and here are some things that will change:
    - The cloth shader will be removed (the generic one can be used instead)
    - The shader features files will be removed, Vegetation Studio and GPUInstancer will be set globally
    - The slider for seasons will be removed, I don't think anybody uses it at runtime
    - The grass size might be removed, it prevents batching and for grass, it would be nice to have (or maybe I will leave it when Instancing is used)
    - The shader switcher tool will be removed, I'm thinking to make a free tool to switch between shaders

    What I want to add (for a long time :|):
    - The ability to convert prefabs instead of meshes (already made some tests)
    - Snow/dust/rain coverage
    - Better turbulence
    - SRPs support
    - Grass interaction
    - Out of the box support for other assets (simple text files that any vegetation developer can get and include them in their project)

    We'll see how it goes :D
     
    Lars-Steenhoff, amynox and drcfrx like this.
  7. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    Hi. Thanks for the kind words and sorry for the late answer!

    I decided to rebuild ADS, to make it better and easier to use. I posted a few features that will be removed and some that will be added. And snow/ rain overlay is one of them.
     
  8. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    Hi. No answer so far... I could add some basic support for Mtree but it's a pity that it doesn't have some vertex info that I need to make proper support for it.
     
  9. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    Hi, we already talked, but I was thinking that maybe somebody else has the same question.
    ADS is now suitable for large fields filled with grass without some extra help (instancing, Vegetation studio, GPU Instance, all three supported), as unity's standard shader is not suitable for that. Batching is not supported, so without any of those techniques/assets, the frame rate will suffer badly.
     
  10. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    Hi. Unfortunately, I don't have any of their assets from but I would say that is compatible. The ADS converter supports any (there are more actually :D) vertex channel so basically you just need to select the proper mask for each tree part.
    Maybe @NatureManufacture can help with the wind encoding. Another way to check the masks is by using the ADS Debug component, it will show all the vertex channel on the mesh:
    upload_2019-10-21_20-5-28.png upload_2019-10-21_20-6-1.png
     
  11. Sam512

    Sam512

    Joined:
    Jan 13, 2019
    Posts:
    178
    Hey, I don't understand what is going on in the tutorials. You have everything in motion. At least, have a one clear tutorial. I don't even know where to start. I have the mesh convert and nothing happen. (I use Speedtree 8). But I need to know what to do first with GetStarted scene (Unity 2018.4.11f1)
     
    Last edited: Oct 24, 2019
  12. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    Hi. I know the tutorial is not clear enough with a voice-over explaining what I actually do.

    So the basic steps are:
    1. Add the 3 ADS components to your scene: ADS Global Motion, ADS Global Settings and ADS Global Debug. The first 2 must exist in the scene, the third one is just a helper to debug the wind masks, turbulence, etc. (starting from 0:38 in the video tutorial)

    2. Use the ADS Converter to make the meshes compatible with ADS. For speedtree 8 select the SpeedTree Tree Type, then drag each speedtree mesh in the Mesh Object slot. I did the same in the video tutorial with the grass an TreeIt Tree.
    (starting from 1:30 in the video tutorial)
    upload_2019-10-25_8-18-19.png

    3. Once the meshes are converted, replace the original meshes with the ADS compatible ones. At 1:42 I replace the Grass 01 mesh with the Grass 01 (ADSPacked) mesh.

    4. Replace the Speedtree shaders with the ADS shaders: use the Tree Bark shader for anything that is opaque and Tree Leaves for all alpha cut materials. (starting from 2:56 in the video tutorial)

    5. The motion setting need to be the same for all materials used on the tree. To help with that, add the ADS motion helper component on your prefab, click the refres button and set the motion settings. Once the motion parameters are set, pres the Done button.
    upload_2019-10-25_8-31-33.png

    And here is the video tutorial:


    I won't add any other tutorials for now because ads will change completely.
    If you have any questions, please let me know.
     
  13. Sam512

    Sam512

    Joined:
    Jan 13, 2019
    Posts:
    178
    For Speedtree 8.. you think I should create a new material and apply to its every LODs. I think that worked. But you know Speedtree 8 shader cannot be edited or changed in the inspector. Speedtree LOD transition is better. How can I improve that?
     
    Last edited: Oct 25, 2019
  14. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    I would suggest creating duplicate materials. A new workflow is coming, all the materials and meshes will be handled by converting the speed tree prefab directly.
     
  15. Sam512

    Sam512

    Joined:
    Jan 13, 2019
    Posts:
    178
    Hope it's coming soon
     
  16. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    I heard you guys like vegetation interaction :D ADS is in development again, here is a quick test for vegetation interaction. Any number of characters, objects are supported.



     
  17. Sam512

    Sam512

    Joined:
    Jan 13, 2019
    Posts:
    178
    Then this should work with Vegetation Studio
     
  18. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    I will ;)
     
  19. chris_schubert

    chris_schubert

    Joined:
    Jan 8, 2019
    Posts:
    28
    Hi BOXOPHOBIC. First, I really appreciate you including the ASE metadata in your shaders. There are many assets that use ASE to build their shaders, but then they strip the data before shipping it (I guess to 'protect' IP). You leaving that metadata in makes the shaders 100x easier to understand. There is a lot of power in being able to tweak a single shader function, which is very hard with other assets. All in all, really nice job with this.

    I have a lot of Unity TreeCreator trees. Is there a path to convert them to work with ADS wind? I have not been able to find anything. The textures definitely don't map well, but I can script all of that to make it work. I'm wondering more about the vertex information (occlusion seems to work, but wind behaves strangely).

    Thanks!
     
    Lars-Steenhoff likes this.
  20. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    Thanks! I really appreciate it! :)
    I don't know why some developers strip out the data, or what are they trying to protect, after all, we just mix the same old bits and techniques that are used since forever. With the new assets, I'm trying to go more modular, more like lego pieces, instead of big macros. It allows for more customization and reusability.

    I will check how the TreeCreator is packed and I will come back to you tomorrow.
     
  21. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    Hello,

    I want to share with you some of the news regarding ADS. I decided to go with the new version as a new asset store package, ADS PRO, for two reasons:

    1. The new package is completely rebuilt. Updating ADS to the new version would break everything. This why ADS and ADS PRO can live side by side in the same project without breaking anything.
    2. Monetization. That's it :D I spent a lot of time working on features for ADS, I hope I'll be able to spend as much on the new version.

    Sorry for the inconvenience and I hope that everybody understands why I decided to go this way!

    Ok, here are some new features implemented in ADS PRO:
    1. Improved wind motion (Speedtree and custom fern)





    2. Interaction is woking, any number of characters, vehicles, etc can interact with the grass, plants or trees (just main bending based on collision direction)



    3. Global tinting, grass scale, overlay(snow, dust, water) occluders, interactive objects, will work as "elements", basically just some quad elements in the scene, that can be scaled, rotated, moved around to customize the mentioned features. Still in progress.

    Working process:
    upload_2019-11-7_23-0-54.png

    After:
    upload_2019-11-7_23-1-12.png

    4. The Converter now works with prefabs. And I added support for presets(as text files). Any developer can create presets for its vegetation asset to make it compatible with ADS and include it in its package. Presets contain wind info and material properties conversion to ADS shaders, so all texture/settings will be assigned regardless of property naming.

    upload_2019-11-7_23-8-1.png

    Later, I want to add support to texture packing, so no more manual packing of mask textures (metallic, smoothness, etc ) would be required.

    upload_2019-11-7_23-13-41.png

    That's it for now. Cheers!
     
    Lars-Steenhoff and amynox like this.
  22. amynox

    amynox

    Joined:
    Oct 23, 2016
    Posts:
    178
    Super happy that you decide keep updating ADS ! What a great asset ! BUUUUUUT i use the “seasons sliders” in real time and I found this feature just amazing (specially when integrating ADS with ENVIRO seasons and CTS).

    My top 3 hope list for new features will be :
    1/ Snow effect
    2/ SRPs support (URP in now stable)
    3/ Grass interaction

    How about a survey ? :-D ==> Now I will wait for ADS PRO

    keep it up ;)
     
    Last edited: Nov 10, 2019
    Lars-Steenhoff likes this.
  23. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,527
    "The slider for seasons will be removed, I don't think anybody uses it at runtime."
    Please keep it!

    And if you can add support for unity tree creator trees?
    Thats a format I have many trees in.
     
  24. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    Thank you! I added back the seasons slider and support for snow. Right now all ADS features are supported.
    I'll do a survey and I'll give builds for people who want to test an early ADS PRO version. I just need to wrap it up, it is quite messy right now.

    Hi. I added back the seasons slider. Tree creator packing below. ;)

    Tree Creator packing. I didn't test it but it should work fine.
    upload_2019-11-13_12-38-5.png
     
    amynox and Lars-Steenhoff like this.
  25. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,527
  26. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    I'm not sure about amplify impostors, but GPU Instancer is supported.
    To enable the support, select the .asset associated with an ADS shader (has the same name, same location with the shader), select GPU Instancer > Compile.
    upload_2019-11-13_12-55-59.png
     
    Lars-Steenhoff likes this.
  27. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,527
    Thanks, the Link to the video about GPU Instancer integration in the manual is not active, can you share the video that explains it?
     
  28. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,527
    And about ADS pro, I would love to beta test it, because I'm just about to start using ADS and if the pro version means I have to redo everything I setup that's gonna be a hassle. And I hope you can do an early bird upgrade pricing for existing customers.
     
  29. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    Here is the video, I also updated the documentation link:


    I'll add an upgrader from ADS to ADS PRO, but some tweaks will be necessary. I'll release ADS PRO in a preview/beta stage at a lower price, hopefully in 1-2 weeks.
     
    Lars-Steenhoff likes this.
  30. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,527
    I have some other shader in my project and now I exceeded the 256 max shader keywords, I can delete some of the other shaders to fix it. How many keywords are used in ADS?
     
  31. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    only 2 in tree bark, 8 in cloth and 6 in generic. I unity 2018.3 they are set to local keywords and doesn't contribute to the global keyword count. Not sure in other unity versions.
     
    Lars-Steenhoff likes this.
  32. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,527
    Great, thanks,
    Good to know they are local!
     
  33. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    they are not by default, but in unity 2018.3 they are treated as local.
     
  34. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,527
    I'm using Unity 2018.4 so should be good
     
  35. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    Sorry my bad, it's unity 2019.3, not 2018.3. Local keywords are not supported in 2018.4, so I think the only solution is to delete the unused shaders...
     
  36. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,527
    Ah ok, I will strip some unused shader from my project.

    I have always been looking for grass, that works on iOS under Metal and is capable of looking very dense
    for example like these.

    https://assetstore.unity.com/packages/vfx/shaders/directx-11/grass-shader-128398

    https://assetstore.unity.com/packages/vfx/shaders/directx-11/grassflow-dx11-grass-shader-142736

    But hey all use geometry shaders and those don't work on Metal.
    I hope when you make a grass shader that it will also work on iOS with metal.

    Thank you!
     
  37. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,527
    Maybe an idea for shader keywords, I got from MicroSplat asset.

     
  38. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    This is what I do with the shader features asset. But this enables/disables a feature per shader and not per material. So basically, you can't have an opaque and a transparent material using the same shader unless you create a shader for each keyword combination.

    There are some discussions regarding the shader keyword limit, I hope they will increase the limit:
    https://forum.unity.com/threads/shader-keyword-limit.545491/

    Also, starting with unity 2019.1, keywords can be set to local. I'll add them once I finish with ADS PRO.

    Regarding metal, I'm don't use any geometry shader, so it should work just fine.
     
    Lars-Steenhoff likes this.
  39. brainchild-pl

    brainchild-pl

    Joined:
    Jun 6, 2013
    Posts:
    109
    Does it work in unity 2019.2?

    I want to buy this pack but I am not sure if it will work with the newest unity version (non-beta)
     
  40. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    Hi. Unity 2019.2 and 2019.3 are supported.
     
  41. GlitchInTheMatrix

    GlitchInTheMatrix

    Joined:
    Apr 12, 2010
    Posts:
    285
  42. halecc

    halecc

    Joined:
    Dec 17, 2016
    Posts:
    33
    Hello,

    Im interested in the release of ADS Pro but had 2 main questions. I was wondering if the interaction on ADS Pro would work with instanced indirect and if you had any plans on making a sort of a temporary flattened grass type of interaction?

    Also any info on the release date?
     
  43. AndyNeoman

    AndyNeoman

    Joined:
    Sep 28, 2014
    Posts:
    938
    This asset looks really interesting. I am upgrading my wilderness game which uses lots of jungle environments and VS pro, the game is set in the african jungle so snow is not used but heavy rain, thunderstorms are. Does this asset support rain/wetness?

    I'm also looking at using the URP/HDRP pipeline do you have an ETA on that feature? Thanks.
     
  44. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
  45. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    Instanced indirect will be supported via Vegetation studio and GPU Instancer. If you have a custom solution, I'm not sure what I need to do to make it work or if it will work out of the box. But we can check it out.

    Temporary interaction can be done easily with a particle system with a longer life. You can see that for the red spheres:


    The motion is working using rotation so basically a value of 1 for interaction will flatten the grass on the ground.
    I'm planning to release it before Christmas in Preview stage.
     
    Lars-Steenhoff likes this.
  46. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    I'm glad that you like it! VS pro will be supported, the overlay layer is already working and rain drops, or just a water layer + smoothness can be added but it won't be animated. URP and HDRP will be supported. Check out the post below for more (coming)
     
    Lars-Steenhoff likes this.
  47. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    Hi everyone!

    ADS PRO is becoming The Vegetation Engine, a more relevant name for what the asset actually does. Development is going quite well, most of the features are working but it needs more polish and bug fixes.

    How do you guys feel about discord? Right now I'm using the forum, emails, facebook, tweeter, and discord to chat with people and I would like to have a centralized medium to talk with you. Use the link below to join on the discord server:


    If you are interested in testing TVE, just send me a PM on discord. For now, I didn't add presets for Speedtree or TreeIt, but you can get a general feeling for the workflow, settings, etc... but please note that it isn't production-ready. Features can change or it can break your prefabs, so use it in a new test project only.
    Feedback is always appreciated!

    Here are two videos showing the new features and the new workflow. I hope you like it so far :)





    I'm planning to release TVE before Christmas in Preview stage. SRPs, VS and GPU Instancer support will come after the holidays.

    Have a great day! See you on discord :)
     
    Last edited: Dec 23, 2019
    AndyNeoman and Lars-Steenhoff like this.
  48. praesidenter

    praesidenter

    Joined:
    Mar 5, 2016
    Posts:
    36
    Hi, I'm still getting these errors, when I try to enable GPU instancer support:

    2019-12-17 at 23-37-40.jpg

    I didn't move any folders around, both the GPU Instancer and the Boxophobic folders are in the Assets folder of the project.
     
    amynox likes this.
  49. chris_schubert

    chris_schubert

    Joined:
    Jan 8, 2019
    Posts:
    28
    An upgrade utility would be really welcome. I would rather not have to figure out how to map everything from the old to new setup and it being fully automated would make this purchase a no-brainer.
     
  50. amynox

    amynox

    Joined:
    Oct 23, 2016
    Posts:
    178
    Same !

    Help will be much appreciated.