Search Unity

[RELEASED] Vegetation Studio

Discussion in 'Assets and Asset Store' started by LennartJohansen, Jun 23, 2017.

  1. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,347
    Vegetation Studio Features
    We are happy to introduce Vegetation Studio, you can find it here on asset store.

    Vegetation Studio is a vegetation placement and rendering system designed to replace the standard tree and detail system in the Unity terrain component. Vegetation is spawned on the terrain based on a flexible set of rules, and controlled with both texture and polygon masks.

    Use your existing trees (SpeedTree, Tree Creator etc.), rocks and grass textures. Rendering is done using Unitys new Instancing and Instancing Indirect system. This means no overhead on culling and handling GameObjects. Vegetation Studio should work with most vegetation shaders that support instancing.

    You create a Vegetation Package that references your selected trees and plants. Configure the spawn rules and apply this to a terrain. The same package can be re-used on terrains in multiple scenes. Any changes done to the rule set will update the terrain directly.

    With Vegetation Studio you can use denser vegetation on much larger terrains than before. Visible range, not terrain size, will limit your performance.



    For more detailed info go to our webiste https://www.awesometech.no

    Rule based vegetation



    Vegetation Studio uses a system for rule based vegetation. You add your grass, plants and trees to the system and they are placed according to your parameters. Configure the rules and the vegetation will spawn on the terrain accordingly. Parameters for vegetation growth are things like height above ocean level, steepness of the terrain, Perlin noise, rotation, scale and texture-based rules like “Do not grow grow grass on path texture”, “only spawn this plant on sand area”, etc. In addition to this, the run-time masking system controls the removal or spawning of any vegetation. Any changes are updated in the terrain directly.

    See https://www.awesometech.no/index.ph...getation-system/vegetation-system-vegetation/ for more info



    Extensive run-time masking system

    Vegetation masks are a set of Components designed to control vegetation. These can be used both during design and run-time. By adding areas with polygons or lines with a width you can remove, add or modify vegetation within the area. Common use cases are roads, houses, city areas etc.

    See https://www.awesometech.no/index.ph...onents/vegetation-masks/vegetation-mask-area/ for more info.





    Instanced rendering

    Vegetation Studio uses Unitys new Instanced and InstancedIndirect system to render the vegetation. Combined with an internal cell structure and the Culling Group API we are able to render large numbers of grasses, plants, trees and rocks with fewer draw calls and better speed than with normal rendering. In addition to this we do not have the overhead of processing and culling individual GameObjects.

    Rule based terrain splat map
    Vegetation Studio includes an optional system for splat map generation of the terrain. You can set up a rule set based on any number of textures in your terrain. Based on height, steepness and other parameters it will generate your terrain splat map. In addition to this it allows for live editor updates and can update the splat map and vegetation as you edit your terrain in the terrain inspector.

    The textures not used for automatic splat map generation can be used to paint the terrain normally and will be kept even if you change the rule set and generate the splat map again. This way the manual work you do painting roads or other features will not be affected.

    See https://www.awesometech.no/index.php/home/vegetation-studio/components/terrain-system/ for more info.





    Touch bend grass





    See https://www.awesometech.no/index.php/home/vegetation-studio/components/touch-bend-system/ for more info.

    Universal billboard system

    Vegetation Studio includes a billboard system that can create a billboard on any tree model added to the VegetationSystem Component. These are used for long range when displaying trees in the terrain. Billboard creation is automatic when adding a tree prefab in editor mode. See https://www.awesometech.no/index.php/home/vegetation-studio/components/billboard-system/ for more details.





    Collider system

    Vegetation Studio has a built in run-time collider system. When set up it will instantiate colliders for trees, rocks etc in proximity of the camera. These colliders are instantiated from a pool to increase performance. See https://www.awesometech.no/index.php/home/vegetation-studio/components/collider-system/ for more info.
    There is an API with event calls for access to the run-time colliders.



    Real-time editor updates

    Any changes to the Vegetation Packages will be updated directly in the Terrain. In addition to this, changes you do with the Terrain Inspector will affect vegetation as you make them. The splat map can be updated from rules, and vegetation changes as you paint texture details. All based on the ruleset you have configured in the Vegetation Package.





    Multiple terrains/cameras
    Vegetation Studio has support for multiple cameras and terrains. To add multiple terrains to the scene just include a VegetationSystem object for each terrain. Assign the VegetationPackage and terrain, and it will work. Use the same approach for multiple cameras.

    There is also floating origin support for large terrains.

    VR-Support
    Vegetation Studio supports VR rendering. The custom billboards system supports single pass VR and does not have the strange rotation and bend behavior of some other billboards.

    Supports Speedtree, Tree Creator and others…
    Vegetation Studio is designed to work with your existing vegetation assets. Except for those used in the demo scene, the asset does not include Vegetation meshes. You can use your normal vegetation meshes and textures. Most vegetation shaders that support instancing will work directly with Vegetation Studio.

    Included demo

    There is an included demo scene in the asset showing this functionality in use. It is using the free speedtree assets and a sample of some great grass textures from Turboscalpeur. You can see more of his grass packages on the asset store.
     
    Last edited: Dec 5, 2017
    twobob, Alverik, P_Jong and 47 others like this.
  2. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,347
    Vegetation Studio Chat

    We have a Vegetation System text chat channel on Skype and one on Discord, feel free to join if you have any questions and want to talk to other Vegetation Studio users. The Skype chat has been in use during the beta.

    Here are the links to the Skype chat and Discord chat.

    Lennart
     
    Last edited: Nov 30, 2017
  3. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,347
    Compatible assets.

    Hi. We just added a section on the website with videos, guides and links to assets that is confirmed compatible and integrated with Vegetation Studio.
    This list will grow as we have time to test more assets.

    Have a look here.

    Lennart
     
    Last edited: Apr 4, 2018
    Hawk0077 likes this.
  4. Whippets

    Whippets

    Joined:
    Feb 28, 2013
    Posts:
    1,775
    Awesome work Lennart. One of the most eagerly awaited assets of the year.
     
    ice2011, P_Jong, Malbers and 5 others like this.
  5. olavrv

    olavrv

    Joined:
    May 26, 2015
    Posts:
    212
    Solid work Lennart. Took a while before a AAA vegetation system came for Unity, but now it is arriving!
     
    P_Jong, Alverik, antoripa and 2 others like this.
  6. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,791
    I cannot wait for Awesome Vegetation! :)
     
    P_Jong, Alverik, Kats4 and 3 others like this.
  7. docsavage

    docsavage

    Joined:
    Jun 20, 2014
    Posts:
    997
    Just been recommended to look at this thread. Looks great.
     
    antoripa likes this.
  8. DonLoquacious

    DonLoquacious

    Joined:
    Feb 24, 2013
    Posts:
    1,655
    Really looking forward to this.
     
    antoripa likes this.
  9. Whippets

    Whippets

    Joined:
    Feb 28, 2013
    Posts:
    1,775
    P_Jong, JBT27, Alverik and 6 others like this.
  10. turboscalpeur

    turboscalpeur

    Joined:
    Nov 29, 2015
    Posts:
    286
    Hopefully !! still in the Updates and new Features to come !!!

    @LennartJohansen as mentioned above you already did a "so necessary" Job with your WIP Asset in Unity; I'm just thinking now for those using Vegetation or so in their Games would always need to use your System being peaceful in their Builds^^; Very very positive for the future :)
     
    JBT27, Kats4, antoripa and 2 others like this.
  11. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    3,721
    Awesome!
     
    JamesArndt and antoripa like this.
  12. umauj

    umauj

    Joined:
    Nov 20, 2011
    Posts:
    80
    Looks really promiskng! Can you maybe give some performance metrics and comparison to Unity's system?
     
    antoripa likes this.
  13. S4G4N

    S4G4N

    Joined:
    Mar 13, 2013
    Posts:
    2,640
    I have been part of the Beta group and seen the progress from early on.

    Definitely a package to keep my eye one since it has many features that are well resolved that is missing from Unity.
    The developer wanted to make sure that he can show a solid product by the time he started this thread to get further public input.
    Congratulations man, and let the fun start ;)
     
  14. Caffeen

    Caffeen

    Joined:
    Dec 25, 2013
    Posts:
    28
    Do you have a mailing list so I can be notified when this is released?
     
    antoripa and S4G4N like this.
  15. mortengulden

    mortengulden

    Joined:
    Mar 15, 2015
    Posts:
    19
    Sign up for the mailing list on www.awesometech.no :)
     
    antoripa and S4G4N like this.
  16. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,347
    Hi. After Unite in Amsterdam next week I will prepare a demo to download.
     
  17. Reanimate_L

    Reanimate_L

    Joined:
    Oct 10, 2009
    Posts:
    2,389
    would like to try the demo, i hope you add pseudo profiler in the demo
     
    antoripa likes this.
  18. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,347
    I will add a FPS profiler, memory use etc. and some settings to turn of water, sky system, post processing effects etc for you to better evaluate the speed of the vegetation.
     
    Seneral and antoripa like this.
  19. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924
    A few images of tree and grass placement with Vegetation Studio from our pre-Alpha Game.


     
    fnndo, Alverik, Shawn67 and 6 others like this.
  20. Whippets

    Whippets

    Joined:
    Feb 28, 2013
    Posts:
    1,775
    Very good pics. Are those your own rocks, or store assets?
     
  21. Hikiko66

    Hikiko66

    Joined:
    May 5, 2013
    Posts:
    965
    A few questions
    Does the grass shader handle wind the same way that unity grass does?

    Will I be able to access and dynamically change grass wind settings to sync with my windzone constantly at runtime without it glitching?

    Or is it synced to a windzone automatically?

    I can do this with unity default and with AFS, and I don't want to lose that.

    How expensive is touch bending?
    My grass distance is 80, and it is dense. I don't want it flattened, just pushed around and bounced back.

    The colliders being instantiated, I assume that supports all types of colliders, for example spherical colliders on trees?
    Do the tags and layers get carried over as well?
    I need to distinguish between different parts of my trees.

    For unity trees, the billboard tilting to camera thing, is that still a problem in your implementation?
     
    Last edited: Jun 24, 2017
  22. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,347
    Hi.

    The grass wind is linked to a directional wind zone, but it has additional override controls for wind.



    You can set a speed factor multiplier from the value you get from the windzone. In addition to this you can assign a texture for wind waves and set the size of the waves.

    The touch bend is cheap. The cost is rendering the colliders or meshes that should affect the grass to a buffer that is used by the vertex shader of the grass. There is no problem having many objects affect it at the same time.
    If you enable touch bend on rocks spawned and rendered by the system they are actually rendered using instancing to the buffer.

    The flatten effect of the grass on the video was just to show posibilites. It was done using 4 trail renderer components on the wheels of the car. They had a material with a shader that can write to the touch buffer. Since the extruded mesh stays in the scene the grass will be kept flat.

    If you want a walking character to affect the grass you can add colliders to his feet, (or use a complete ragdoll) add a TouchBendCollider component to the root and it will work. For a bit better effect I would scale off the size of the colliders a bit when rendering to touch buffer. The component has a setting for this.

    I will try to make a video showing this in effect.



    Here is colliders rendered to the buffer displayed with a debug mode.

    The instantiated colliders support all collider types. There is a mode to read the original colliders from the tree/rock also. If you want a custom configuration. It is not 100% done yet but will be soon.

    Default layer will be the layer you set the trees or rocks to render to, but I guess we can make an option override and read it from the prefab.

    Setting the tag I never thought about, but no problem at all to include that. Tag could be set as the same as on the GameObject with the prefab.

    I added it to the roadmap for 1.0 release. Roadmap is on the website.

    The billboards has no camera tilting problems, works good in VR also. They are oriented towards the camera position not camera orientation.


     
  23. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,347
    Option for excluding sea level cells now working.
    This could optimize culling and spawning time for scenes where you do not spawn rocks or maritime vegetation under water.



    There is a 2 level culling for visible cells. The read area is potential visible cells if camera turns based on visible tree range without billboards. As camea changes position this is alos updated. Other colors are visible cells and LODs.

    Tree billboards has a separate culling system on top of this and is not shown in the image
     
    Last edited: Jun 25, 2017
    Alverik, Shawn67, docsavage and 2 others like this.
  24. one_one

    one_one

    Joined:
    May 20, 2013
    Posts:
    511
    Nice. This is even more promising than I had hoped.
     
    LennartJohansen likes this.
  25. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,347
    Thanks :)

    Unitys Occlusion Culling is also supported. Here you can see some of the cell areas are occluded by the terrain. This is done automatic based on the camera occlusion culling setting.

     
    twobob, Alverik, Mark_01 and 6 others like this.
  26. antoripa

    antoripa

    Joined:
    Oct 19, 2015
    Posts:
    1,162
    I would share how Vegetation Studio and Sentieri work together ...
    Weather used is Envro (@Vondox )
    Dev_Camera_2017-06-25-23-17-21_3840x1818.png
    Just taken a shot ....
     
    P_Jong, runningbird, Alverik and 13 others like this.
  27. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,347
    Looks great. The grass in the middle is made with a VegetationMask ?
     
    Alverik and antoripa like this.
  28. antoripa

    antoripa

    Joined:
    Oct 19, 2015
    Posts:
    1,162
    Yes .. I use a Vegation Mask ...and you can do that directly in Sentieri ....when your great asset is installed, Sentieri can detect that and propone additional UI to drive the setting .. soon I will record a video ..
     
    Alverik, Seneral, one_one and 2 others like this.
  29. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924
    Hi Gang, I just wanted to show you what I have been capable to create with Vegetation System Beta, CTS, and Gaia.
    In addition this scene is un-optimized and I am getting 50-60fps in a 4km square terrain.


     
    P_Jong, runningbird, Arkade and 9 others like this.
  30. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,791
    Very nice! What are your computer specs, if you don't mind sharing. I see all these great numbers but if they are super duper computers, I am concerned about what will happen when adding players, npcs, creatures, houses, etc., for people with average computers. What is your fps when using just Vegetation Studio without CTS?

    Oh, and is this fps v-synced?
     
  31. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924
    I am away from my computer. Best ask Lennart if you can go on the beta to see if it will conform to your specific needs.
     
  32. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,791
    I am already there. :) I do not have CTS though so that is why I am asking.
     
    antoripa likes this.
  33. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924
    Yes on the fps v-synced
    Asus Laptop
    Video Card GTX 1070
     
    antoripa likes this.
  34. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,791
    Thank you. A GTX 1070 is a really super duper card. :)
     
    Alverik, Martin_H and antoripa like this.
  35. blitzvb

    blitzvb

    Joined:
    Mar 20, 2015
    Posts:
    284
    will you support mesh or just unity terrain?
     
  36. Kats4

    Kats4

    Joined:
    Jan 12, 2013
    Posts:
    186
    WOOWW, fantastic news. Already have a release date?
     
    Last edited: Jun 27, 2017
  37. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,347
    plan is 2-3 months from now. Depending if any big issues shows up during the beta.
     
    Alverik, Mark_01, blitzvb and 5 others like this.
  38. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,347
    First release will be terrain only, but the structure does work without the terrain. There will be no big problem adding mesh terrain support later. All rules for spawning will work except the rules using the terrain texture and splat map. "Do not grow grass on the road texture etc."
     
    jovino, Alverik, Whippets and 4 others like this.
  39. blitzvb

    blitzvb

    Joined:
    Mar 20, 2015
    Posts:
    284
    and if I provide splat map while using a mesh, will the rules algo could work?
     
  40. Whippets

    Whippets

    Joined:
    Feb 28, 2013
    Posts:
    1,775
    I think anyone using mesh terrains (like gaia generates, or terrafirma) will probably have splat maps - as they'd need to be used to blend the textures. Might need to talk with the terrafirma guy to check how it works.
     
    blitzvb and Teila like this.
  41. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,347
    You would set up the rules a bit different. Not a terrain texture rule, but a mask texture rule. But the end result will be the same. You add your texture, set the scale to 1:1 for the mesh terrain and based on the sample you include/exclude vegetation
     
    Arkade, Alverik and antoripa like this.
  42. Migueljb

    Migueljb

    Joined:
    Feb 27, 2008
    Posts:
    467
    Eagerly awaiting this. Really digging this and its sorely needed for us. As someone that creates outdoor environments this is an amazing tool to be able to use. Be sure to not limit yourself and only go the 5.6 version route. As alot of other people are still using lower versions of unity. Not sure how that translates code wise but just thought I would throw that out there.
     
  43. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,347
    The new instancing system and the way you set up instanced materials changed for 5.6. Before this you needed to manually change shaders to support it. I might be able to do some version dependent code and get it running on 5.5 with some limitations. Older version of unity will not get the speed increase of instancing.
     
    Alverik and antoripa like this.
  44. Migueljb

    Migueljb

    Joined:
    Feb 27, 2008
    Posts:
    467
    The project im on relies heavily on version 5.5.0 and just wanted to let you know how many of us are stuck below the 5.6 versions. I wish I could go the 5.6 route as I know code wise this helps what your asset relies on. Your plugin just looks so good I hope I get to use it when it first comes out. Keep going lots of us are rooting you on to make it the best it can be:)
     
  45. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    2,013
    Wow, this looks great, how can I sign up for the beta please?
     
    Alverik likes this.
  46. buttmatrix

    buttmatrix

    Joined:
    Mar 23, 2015
    Posts:
    609
    For mesh terrains I've always textured the low poly terrain mesh (e.g. RTP), used Unity terrain to populate vegetation - with external tools, of course - and then just disabled drawing of the terrain itself. Is this typical of others' workflow?
     
  47. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,347
    Hi. With that workflow Vegetation Studio will work with your mesh terrain before we finish direct mesh terrain support.
    It will read the heightmap in the TerrainData to calculate height and steepness for vegetation placement.
     
    antoripa and buttmatrix like this.
  48. StevenPicard

    StevenPicard

    Joined:
    Mar 7, 2016
    Posts:
    661
    This looks very good. I'm going to keep an eye on this. Any idea on the price when it's released?
     
  49. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,347
    The price will be set soon and I will let you all know. Plan is also doing a discounted launch price.
     
    Alverik and Frednaar like this.
  50. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,347
    Small development update. Tree billboard shadows are now available as a setting on the BillboardSystem Component.

    Including images of shadows disabled and enabled.