Search Unity

  1. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice

[RELEASED] Vegetation Studio

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

  1. Hawk0077

    Hawk0077

    Joined:
    Nov 6, 2017
    Posts:
    691
    Discord is terrible, I have no idea why people keep using it. Its in the Name? I dont do dark interfaces. Although I didnt hang around long enough to see if it can be changed. Forums are clean. Just saying.
     
  2. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,384
    There is a light mode. For me it makes the support job easier. Chat log history for direct chats with users. easy way to share files and patches. Not having to monitor multiple forums threads. notifications on direct messages etc.

    Also a good way to make channels for different topics. Seems that the threshold to post/answer is lower in a chat.

    Lennart
     
    Hawk0077 likes this.
  3. Hawk0077

    Hawk0077

    Joined:
    Nov 6, 2017
    Posts:
    691
    Im just not a fan of other peoples websites. I have enough learning to do without adding general navigation to the mix. But thats just me. I managed to get it light and create a couple of posts but Its like facebook to me. Someone elses business.

    There is always something annoying about other peoples sites.

    Your awesometech site is one of the best I have seen. However. Scrolling down the pages is so fast that you cant get to the detail you want as it scrolls from (example) A to C and I completely miss B. I use Opera but not sure if its the same with chrome or firefeox. Ill just check.

    It appears better in chrome. but still fast.
    Works fine in firefox though.

    But like I said, other peoples sites are out of my control and I dont like firefox. lol.

    Just thought I would mention it as I have visited a few times and been annoyed at the sheer scrolling speed in opera whilst trying to get to a menu or sub menu item..
     
  4. Sam512

    Sam512

    Joined:
    Jan 13, 2019
    Posts:
    178
    How can I achieve grass fading effect? It just disappears in a large group cell (Lennart doesn't answer in discord)
     
  5. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,384
    Hi. I will get back to you on discord after the weekend when I am back at work.

    Lennart
     
  6. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    218
    Hi. Are you an Amplify user? This is my setup in ASE. Function attached.
    upload_2019-11-7_21-52-46.png

    It works with the Vertex Offset set to Absolute.
    upload_2019-11-7_21-54-33.png

    And the VS directives with GPU Culling support. I hope it helps :)
    upload_2019-11-7_21-56-33.png
     

    Attached Files:

    Sam512 and JBR-games like this.
  7. gearedgeek

    gearedgeek

    Joined:
    Jun 19, 2015
    Posts:
    182
    I'm having a issue with Vegetation Studio not loading in the build of my project. It works within Unity. I'm using Unity 2019.2.4f1 and latest version of Vegetation Studio. I have tried loading a separate project with just Vegetation Studio and it's still not loading anything.

    EDIT: Visual C++ Distrub 2015 wasn't installed. After installing it the vegetation loaded correctly.
     
    Last edited: Nov 16, 2019
    JBR-games likes this.
  8. nbac

    nbac

    Joined:
    Jul 7, 2015
    Posts:
    252
    if i do use third party assets for example megascane with lod´s etc end maybe imposters systems for last lod will this be processed new by you lod system or does it use all this stuff for detail meshes rocks etc?
     
  9. Stephen_O

    Stephen_O

    Joined:
    Jun 8, 2013
    Posts:
    1,252
    Hello.

    I'm new to VSP, it's my first time using.

    Something I wanted to do was assign camera at runtime. VSP is in a different scene than the camera. I found a built in call which is cool, but it seems to not assign renderDirect. I think it's a bug but not sure. After assigning the camera if I access the camera list and manually assign renderDirect it works. My thought is line 23 should not be needed, is that correct?

    Code (CSharp):
    1. using UnityEngine;
    2. using UnityEngine.SceneManagement;
    3. using AwesomeTechnologies.VegetationStudio;
    4. using AwesomeTechnologies.VegetationSystem;
    5.  
    6. [RequireComponent(typeof(Camera))]
    7. public class AssignCameraToVegetationStudio : MonoBehaviour
    8. {
    9.     public bool noFrustrum = true;
    10.     public bool renderDirect = true;
    11.     public bool bilboardsOnly = false;
    12.     void Start()
    13.     {
    14.         Camera camera = GetComponent<Camera>();
    15.         Scene s = SceneManager.GetSceneByName("OpenWorld_Art");
    16.         GameObject[] gameObjects = s.GetRootGameObjects();
    17.         for (int i = 0; i < gameObjects.Length; i++)
    18.         {
    19.             VegetationStudioManager vsm = gameObjects[i].GetComponent<VegetationStudioManager>();
    20.             if (vsm != null)
    21.             {
    22.                 vsm.VegetationSystemList[0].AddCamera(camera, noFrustrum, renderDirect, bilboardsOnly);
    23.                 vsm.VegetationSystemList[0].VegetationStudioCameraList[0].RenderDirectToCamera = renderDirect;
    24.                 vsm.VegetationSystemList[0].VegetationStudioCameraList[0].CameraCullingMode = CameraCullingMode.Complete360;
    25.                 break;
    26.             }
    27.         }  
    28.     }
    29. }
    Edit: I added line 24 for camera culling mode as well, noFrustrum does not seem to be setting CameraCullingMode.Complete360. I'll be getting to bilboardsOnly when I setup a different camera.

    Just to be clear, this is not an issue for me since I'm calling it in Start.

    Thanks.
     
    Last edited: Dec 5, 2019
  10. nbac

    nbac

    Joined:
    Jul 7, 2015
    Posts:
    252
    Hallo? can i use custom detail assets with custom shaders and LOD/Imposter solutions and scatter it with vs? its a shame i cant do it in unity without any asset but if so i would like to use vs
     
  11. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,384
    Hi. There is a built in billboard system. You can use cusom shader but they need to support instancing. Impostors like Amplify impostors could be used as a LOD but not replace billboards.

    Lennart
     
  12. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,384
    The original LODs and shader will be used when rendering. Vegetation Studio does not create new LODs for vegetation.

    Lennart
     
  13. nbac

    nbac

    Joined:
    Jul 7, 2015
    Posts:
    252
    i bought it and tried it it does not use the amplify imposter or any LOD it seems. it was late and i am not aware of the vs specifics. i have to check it than. i just dropped the prefab in with standard rules. it draws and it gets culled but no lod or imposter switch
     
  14. barbodshahrabadi

    barbodshahrabadi

    Joined:
    Jun 24, 2018
    Posts:
    5
    hi i am using vegetation studio pro and i am getting these 4 error(i use 2019.2.16 version)
    Library\PackageCache\com.unity.jobs@0.0.7-preview.5\Unity.Jobs\IJobParallelForDeferExtensions.cs(30,71): error CS0246: The type or namespace name 'NativeList<>' could not be found
    Library\PackageCache\com.unity.jobs@0.0.7-preview.5\Unity.Jobs\IJobParallelForFilter.cs(98,74): error CS0246: The type or namespace name 'NativeList<>' could not be found
    Library\PackageCache\com.unity.jobs@0.0.7-preview.5\Unity.Jobs\IJobParallelForFilter.cs(110,74): error CS0246: The type or namespace name 'NativeList<>' could not be found
    Library\PackageCache\com.unity.jobs@0.0.7-preview.5\Unity.Jobs\IJobParallelForFilter.cs(22,24): error CS0246: The type or namespace name 'NativeList<>' could not be found
     
  15. vamosfa

    vamosfa

    Joined:
    May 15, 2016
    Posts:
    35
  16. topofsteel

    topofsteel

    Joined:
    Dec 2, 2011
    Posts:
    980
    Does VSP support WebGL in any way? I thought baking and storing the vegetation might work. Thanks.
     
  17. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,384
    Hi. That will not help. Baking to the persistent storage only pre calculates all the instances for faster loading. The rendering itself is still done using instancing that is not supported on WebGL.

    Lennart
     
  18. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,384
    Hi. This looks like a Vegetation Studio Pro error. you seem to be missing the collections package from the Package Manager. You might have to turn on preview packages to see it. Have a look in the setup guide.

    Lennart
     
  19. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,384
    Hi. You can probably set up the last LOD as an amplify impostor but there is no automatic integration that does this. You need to manuallty configure the prefab before adding it.

    Lennart
     
  20. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,384
    Hi. the spawning system and render loop itself works with the SRPs but the included billboard system and grass shader does not.

    I have been prototyping a redesigned billboard system with SRP support but it requires major changes and would break projects in development. I can not add it to the current versions.

    The most likely scenario is that I release a Vegetation Studio Pro 2020 version with SRP support and some other new features while keeping the current Pro version bugfixed for the lifetime of Unity 2019.4 LTS

    Lennart
     
    vamosfa likes this.
  21. Crossway

    Crossway

    Joined:
    May 24, 2016
    Posts:
    420
    Should I remove AmplifyNodes if I don't use amplify shader? cause I get errors.
     
    Last edited: Dec 24, 2019
  22. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,384
    or remove the amplify compiler define in player settings. You probably had amplify shader editor in the project before...

    lennart
     
    Crossway likes this.
  23. unity_dev3194

    unity_dev3194

    Joined:
    Apr 17, 2017
    Posts:
    61
    Hi there, I understand that VS Pro doesn't support Switch because of a lack of burst compiler support, but what about VS standard? Standard is still much better than relying on Unity terrain for performance.
     
    Last edited: Jan 2, 2020
  24. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,384
    Hi. I just got info from a Vegetation Studio Pro user today that it runs on Switch hardware. He was using Unity 2019.3.b11 for the test with the latest burst and jobs packages.

    Lennart
     
    Rowlan and dsilverthorn like this.
  25. topofsteel

    topofsteel

    Joined:
    Dec 2, 2011
    Posts:
    980
    Thank you for your reply. How about if the Render mode was set to Normal? (I'm away from my PC). Cross platform support of any kind would be good. Even just to take advantage of the rules or splats in some way. Thanks again
     
  26. topofsteel

    topofsteel

    Joined:
    Dec 2, 2011
    Posts:
    980
    Is there a way to update individual texture masks within a group? Reload or replace? Thanks.
     
  27. vamosfa

    vamosfa

    Joined:
    May 15, 2016
    Posts:
    35
    Thanks by replying. I boutht it any way
     
  28. ExistentialDread

    ExistentialDread

    Joined:
    Jun 21, 2017
    Posts:
    1
    Hi - question about terrain rotation in VSP...

    I'm using a mesh terrain and need to rotate/translate it for my application. I can't seem to get vegetation from biomes to follow my transformed meshes. I think it's using a world space origin for biome rules, sea level, etc.

    I've tried changing the floating origin anchor, but it didn't seem to help for rotation.

    At least in the editor, I can regenerate terrain data for the included source meshes when I rotate, but then biome rules for height, rotation axis, and steepness don't match the new terrain - nor does the sea level. I think that's still all using world space for those rules, even if I try placing all game objects in a parent and rotating that. Is there any quick way to use local space instead, and just rotate a parent game object?

    I get the idea of using world space, and maybe not exposing rotation to users, as a normal Unity terrain doesn't actually rotate, but meshes can rotate so I figured there might be some option that I'm missing.

    Thanks!
     
  29. LennartJohansen

    LennartJohansen

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

    The MeshTerrain system in Vegetation Studio Pro has the same rotation limitations as the Unity terrain. The spawning system assumes that the terrain is down. The internal cell system expects this. It also allows for a bit faster spawning an culling math.

    You can rotate your meshes before generating the BVH tree in the Mesh Terrain component. The faces facing up will be considered the terrain surface.

    Once the vegetation is spawned in the internal cell system or baked to the persistent storage it does not really know of the terrain anymore. Rotating the mesh terrain will have no effect for the rendering.

    Floating origin anchor only affects position not rotation. Rotation in itself has no effect when fixing floating point resolution problems. It only offsets the x,y,z postion to be closer to 0,0,0 to increase the resolution of the float.

    Lennart
     
  30. Astaelan1

    Astaelan1

    Joined:
    Sep 29, 2015
    Posts:
    192
    @LennartJohansen Is there some way to get vegetation studio pro to work with prefabs that contain multiple models/meshes? It only wants to render the first one it seems, thought there might be a toggle somewhere for it to grab it all.
    Otherwise, do you have a recommended workflow for rebuilding existing prefabs as a single mesh?
     
  31. topofsteel

    topofsteel

    Joined:
    Dec 2, 2011
    Posts:
    980
    Is there a way to apply layers to a terrain with VSP? What is the purpose / need to create a package that contains any number of layers? I see them in the package, but they are not associated with the terrain in any way. How does this work? Thanks.
     
  32. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,384
    Hi. There would be quite a bit of overhead to rendering to support multiple meshes. Each mesh would have its own transform with a relative position and we would have to process a separate Matrix4x4 for each mesh. Multiple submeshes with separate materials is supported.

    Use any mesh merging tool or make a script to merge meshes. Have a look here

    Lennart
     
  33. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,384
    They terrain layer references are stored in the vegetation package. This is used to easily apply layers from a package to a new terrain when setting up. The TerrainSystem component has an option to read and write layers from a terrain.

    Lennart
     
  34. RPowers

    RPowers

    Joined:
    May 14, 2015
    Posts:
    114
    Hi. With persistent vegetation storage performance does it just help with initial scene loading time or is there a performance benefit to rendering (CPU/GPU) at runtime as well vs having no persistent vegetation storage? Thank you.
     
  35. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,384
    Hi. What is faster is the cell loading. With run-time spawning all instances are caclculated from rules when a new "cell" becomes visible. When using baked vegetation from the storage this is already done and the data is ready to add to the render loop. It will save you loading time(CPU) as you move around. The render loop itself will be identical.

    You might save some processing time at scene load since the visible vegetation loads faster but you also need to load the persistent storage from disk and this does also take time.

    Lennart
     
  36. RPowers

    RPowers

    Joined:
    May 14, 2015
    Posts:
    114
    Ah ok that clears some things up. Thanks
     
  37. zelmund

    zelmund

    Joined:
    Mar 2, 2012
    Posts:
    413
    hi there.
    after deleting AmplifyShaderEditor I got problem with TouchReactNode.

    Assets\AwesomeTechnologies\TouchReactSystemPro\Integration\Editor\AmplifyNodes\TouchReactNode.cs(11,35): error CS0246: The type or namespace name 'ParentNode' could not be found (are you missing a using directive or an assembly reference?)

    etc...

    found out that the script using namespace AmplifyShaderEditor

    any suggestions how to fix this?
     
  38. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,384
    hi. Remove the amplify compiler define in player settings.

    Lennart
     
    zelmund likes this.
  39. BigJZ

    BigJZ

    Joined:
    Dec 13, 2019
    Posts:
    5
    Hi there, @LennartJohansen !
    Thank you! You are doing some monumental work with this plugin.
    However, we have a memory leak issue. I searched the web and the forums for anything that mentions this and all I found was a single post by Shadowed a while ago in this thread who had exactly the same issue and you answered by sending him an email. Could you perhaps share what was causing this and a solution? Perhaps we are using it wrong or something.
    From tests on on our target device in master and release build configurations:
    Scene with VegetationSystemPro turned off runs at ~273Mb memory allocated.
    Same scene with VegetationSystemPro turned on starts at ~430Mb memory allocated and increases this by about 1.2Mb every second steadily. Running for about half an hour our scene had almost 2.5Gb memory allocated.
     
    GianLucaSacco likes this.
  40. zelmund

    zelmund

    Joined:
    Mar 2, 2012
    Posts:
    413
    worked! thx a lot!
     
  41. sebakujawski

    sebakujawski

    Joined:
    Sep 16, 2017
    Posts:
    4
    Hey!

    First of all great plugin. Will be a start for all my future games.
    I have a question concerning comparision between Unity terrain billboard grass and VEG studio 2D grass.

    So i see a lot more performance using Unity's built in terrain billboard grass than using grass spawned by Vegetation studio. I was trying to use 2D grass made by myself, also optimized grass patch that comes with Vegetation Studio package.
    All i really care for the basic green grass is to be super dense. Unity's grass still produces around 65% less tris with twice density and additional 50% of render distance, which leads to around 15FPS more.

    Is there any chance i can setup Vegetation Studio grass the same way as Unity terrain grass - less effective but more performant?
    Would still love to use rule-based spawning functions.

    Few informations:
    Tests were done on 1024x1024 terrain, culling was done on Vegetation Studio, whole terrain was covered with grass.
     
  42. Enigma229

    Enigma229

    Joined:
    Aug 6, 2019
    Posts:
    29
    Does Vegetation Studio support Megascans foliage? It is compatible with Procedural Worlds CTS?
     
  43. mina_francesca

    mina_francesca

    Joined:
    Feb 7, 2016
    Posts:
    5
    I want to use this asset in VRChat. However, VRChat cannot handle scripts.
    Eventually, unauthorized components in the hierarchy will be deleted.
    Is there a way to transfer flowers and trees spawned by VEGETATION STUDIO to Unity's standard Terrain?
     
  44. rogerabello

    rogerabello

    Joined:
    Feb 13, 2020
    Posts:
    1
    Hi there, @LennartJohansen ,

    I'm planning to use your plugin in a Universal Render Pipeline project. We will use mainly the Persistent Vegetation Storage and the possibility to paint grass/vegetation with brushes in Mesh Terrains.
    The library of 3D vegetation that we are using is adapted to URP and is working perfectly, but when I tried to use 2D grass and plants the problems appeared.
    If Render Mode is Instanced Indirect/Instanced I can't see nothing in the viewport and if the Render Mode is Normal I can see the meshes of grass but with the pink (not working) shader.
    Does this happen because your plugin is not adapted to URP? If it's the case, will it be adapted in the future?

    I also noticed that Ctrl+Z was not working when I was painting the vegetation. Is this Normal?

    And my last question. There are hotkeys for increase/decrease the Sample Distance/Size of the brushes meanwhile you are painting in the viewport?

    Thanks!
     
    Last edited: Feb 20, 2020
    D3m0n likes this.
  45. Jakub_Machowski

    Jakub_Machowski

    Joined:
    Mar 19, 2013
    Posts:
    393
    Hello guys! We want to invite you our new teaser of The End of the Sun game announcing Kickstarter campaign where we use Vegetation Studio :)
    If you are interested in, add your email here. https://www.endofsun.com/crowdfunding/
     
    dsilverthorn likes this.
  46. GarbageCat

    GarbageCat

    Joined:
    Jul 31, 2012
    Posts:
    228
    are you planning to add support for URP ?
     
  47. aheartfulofgames

    aheartfulofgames

    Joined:
    May 19, 2014
    Posts:
    32
    Second that.

    We are evaluating this for out current project (URP) and it works smoothly (using our own shaders) except for tree billboarding (which happens to be a deal breaker). Texture generation of the billboards works, though.

    It seems that if the billboard system where to be included all that would be needed would be to change the shaders? Right now it doesn't seem to even take into account billboarding (trees just disappear at a distance).
     
  48. sunseeker1988

    sunseeker1988

    Joined:
    Jul 10, 2014
    Posts:
    453
    getting the following errors:

    Quaternion To Matrix conversion failed because input Quaternion is invalid {0.164516, 0.000000, 0.000000, 0.944957} l=0.920009
    UnityEngine.Matrix4x4:TRS(Vector3, Quaternion, Vector3)
    AwesomeTechnologies.VegetationCell:LoadPersistentVegetation(VegetationItemInfo, List`1, CustomList`1, Boolean) (at Assets/AwesomeTechnologies/VegetationStudio/VegetationSystem/VegetationCell.cs:551)
    AwesomeTechnologies.VegetationCell:SpawnVegetation(VegetationItemInfo, VegetationSettings, List`1, CustomList`1, VegetationItemIndirectInfo, Boolean, Boolean) (at Assets/AwesomeTechnologies/VegetationStudio/VegetationSystem/VegetationCell.cs:580)
    AwesomeTechnologies.VegetationCell:SpawnCellVegetation(Int32) (at Assets/AwesomeTechnologies/VegetationStudio/VegetationSystem/VegetationCell.cs:470)
    AwesomeTechnologies.VegetationCell:LoadVegetation(Int32) (at Assets/AwesomeTechnologies/VegetationStudio/VegetationSystem/VegetationCell.cs:162)
    AwesomeTechnologies.<>c__DisplayClass262_1:<Preprocess>b__0(Object) (at Assets/AwesomeTechnologies/VegetationStudio/VegetationSystem/VegetationSystem_VegetationLoader.cs:57)
    System.Threading._ThreadPoolWaitCallback:performWaitCallback()
     
  49. sunseeker1988

    sunseeker1988

    Joined:
    Jul 10, 2014
    Posts:
    453
    Anyone? nothing is loading at all...
     
  50. dsilverthorn

    dsilverthorn

    Joined:
    May 14, 2017
    Posts:
    500
    Better check on Discord. A lot of people there who might know what those mean.
     
    sunseeker1988 likes this.
unityunity