Search Unity

World Building InfiniGRASS STUDIO✅-Massively optimized,interactive & non uniform volume grass for procedural worlds

Discussion in 'Tools In Progress' started by nasos_333, Aug 24, 2015.

  1. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348





    UPDATE:

    InfiniGRASS v1.3 has been submitted to the Asset Store for review. Usually it takes a few days, so should be up later this week.
     
  2. RiokuTheSlayer

    RiokuTheSlayer

    Joined:
    Aug 22, 2013
    Posts:
    356
    Wooo~
     
  3. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    :), i could not resist prototype some environments for my RPG during tweaking Sky Master 3.0 water and InfiniGRASS.

    I took over 100 pics of this one :)
     
  4. RiokuTheSlayer

    RiokuTheSlayer

    Joined:
    Aug 22, 2013
    Posts:
    356
    It looks beautiful haha
     
  5. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    Thanks :)

    I painted it all in real time, and i am now working on a feature that will take the grass created in real time and paint it in editor mode, so it can be saved with the scene and previewed/edited.
     
  6. RiokuTheSlayer

    RiokuTheSlayer

    Joined:
    Aug 22, 2013
    Posts:
    356
    Sounds awesome! Just wondering, I couldn't see anything on the main post, but can you change the colors of the grass?
     
  7. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348


    The grass is just prefabs that can be changed with any item, so potentially anything is possible on both grass mesh and shader.

    I have a tint option to add a coloration pattern on shader too, with controllable frequency. For example the mushrooms in the pic above have a green tint over the original reddish color. Also the green grass is tinted to a bit whiter in spots in the top pic. The middle pic uses two different prefabs for more yellowish and greener grass.

    This is just scratching the surface of what is possible, and i will be working a lor more on the shader side now that i have all core systems and features in place.

    Another detail i want to cover is the grass on slopes, now will just follow the normal, but i will add options to lerp with the up vector or use a shader that will do a gravity like effect on such grass (the base will follow the normal and rest of the grass will curve due to gravity for example)
     
    Last edited: Oct 5, 2015
  8. RiokuTheSlayer

    RiokuTheSlayer

    Joined:
    Aug 22, 2013
    Posts:
    356
    Cool. One of the games I'm working on has a super simple art style, colorless. So I wanted to know if that was possible. I figured, just wanted to make sure
     
  9. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    Colorless will definitly be easy to do as well, i could add a shader version for the specific use in the next updates.
     
  10. RiokuTheSlayer

    RiokuTheSlayer

    Joined:
    Aug 22, 2013
    Posts:
    356
    Would be useful to have one where you could select only specific colors, rather than a tint
     
  11. soft_sound

    soft_sound

    Joined:
    Aug 11, 2012
    Posts:
    39
    That looks really nice, love the underwater & snow features the most.
     
  12. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    I have made sure to have full compatibility with Sky Master ULTIMATE v3.0 snow and water, so it is possible to have weather affect the grass in wind, snow and later in seasonal changes as well.

    The ultimate goal is to provide a complete world creator system, where it will be easy to put together a complete and super optimized next gen environment, with max compatibility, integration and versatility to change it based on the needs.
     
  13. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    InfiniGRASS v1.3 has been submitted to the Asset Store for review on Monday and should be up this week.

    Also it is availble immediately to everyone interested though dropbox link.
     
  14. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    UPDATE:

    I have received many requests for a procedural placement of grass, which is definitly a possibility with a few limitations (in how much can be grown at once, there is no limit in the final amount), so i will try to provide such a sample and system for the next version of InfiniGRASS.

    It is already possible to gradually grow the editor painted grass in v1.3 around the hero and paint it in real time with the mouse, so the grass may be defined in real time as well based on rules (versus the current editor painted positions and predefinition or mouse click)

    These rules can be very case specific, so i will try to add an as broad to use example as possible, so it can be adapted to the specific procedural needs.
     
    Last edited: Oct 7, 2015
  15. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    UPDATE:

    Great news for the matter of precedurally instantiated terrains.
    I have created a prefab of the grass painted on a terrain, along with the terrain and it works when instantiating the whole prefab in real time.

    I also tested it with the gradual growth mode and works great as well (the grass needs to be "ungrown" before making the prefab)

    So this could be the base for the type A procedural placement for grass (pre-defined grass, instantiated along with the object it was painted on). I need to do extensive testing for all options to make sure it works good on all cases, and i will post more information as i test.

    Type B will also be evaluated (grass created fully procedurally on the fly without any pre-growth, based on rules and terrain type)
     
    Last edited: Oct 9, 2015
  16. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348


    I have compiled a list of features for next updates, based on user suggestions and ideas i had while testing v1.3

    Features coming in next updates of InfiniGRASS (v1.4 and beyond)

    - Possibility to grab grass growers from real time painted grass and insert to the Grass Manager in editor mode for later use or save with the scene.

    - Mass grass grow will not only place grass based on brush features and splat maps as in v1.3, but will also decide to place brushes based on slope angle and various other combinations and features. The goal will be to have a super varied forest bed with just one mass spread and refine from there.

    - Automated Mass growth for multiple terrains, with special care for RAM usage

    - Mass growth based on a texture with mask, so it wont be nessesary to paint the actual terrain with the splat maps.

    - Procedural growth of grass as the hero moves. Grass will be placed in real time based on defined rules (material hit, splat type with weights etc) and constraints.

    - Noise based distribution and scaling in Mass Placement module, that will also blend with slopes and the current splat map based scaling and placement.

    - Extra mass grass optimization methods, to further reduce grass that is not contributing much to the overall look, for even more performance enchancement

    - Branches brush that can be painted on trees for extra detail.

    - Brushes rework with LODs and snow for all the v1.3 grasses (now only rocks and mushrooms have all LOD levels defined). This will ideally coincide with Sky Master ULTIMATE v3.0 release.

    - More shader features for both grass and rocks. Gravity emulation for grass on slopes and lerp the normal direction with a custom vector.

    - Many new brushes for grass, rocks and fences, plus extra vegetation types

    - Per brush wind modifier, to fine tune wind for every on grass type (that can already be done by tweaking shader parameters on material level, and controls will be added in the inspector for easy access)

    - Spline based mass growth, with grass spawn inside the spline or along the path.

    - Pooling of the unused grass parts in gradual growth mode (outside hero grass growth range), so the new in v1.3 gradual growth system and the upcoming procedural grass placement can be even more efficient.

    - Billboard behavior integration in shaders for the required LOD parts.

    - Add option to have the shader based Fade controllable per each grass type and auto assigned to lower than cutoff distance.

    - Integration and testing with RTP based terrains and various other systems on the store (e.g. uTerrain, GAIA, Terrain Composer etc)

    - Addition of more scripted dynamic bahaviors, like grass harvesting and much more. Also more work in shaders to expand with possibilities of shader based interaction with agents and grass motion (e.g. spring like motion), for more variety and extra performance.

    - More testing to ensure prefab creation is working in all circumstances. The grass can already be saved as a prefab, along with its Grass Manager and objects it has been painted on and can be instantiated at run time. I have tested and the LOD, fade, gradual growth system all work nice, but i always do many more extensive tests to garantee complete stability in all combinations and scenarios, so this will be an ongoing process for some more time.

    - Procedural mesh deformation (e.g. noise, twist, bend), for extra variety in grass and musrooms etc look

    - More integration features with Sky Master ULTIMATE v3.0, ideas include watery mist on grass based on weather and time of day, grass orientation based on weather events (e.g. grass caught on mud) and much more little details that will make for some super realistic grass bahaviors.

    More will be added to the list as i develop the next updates and also it is great to have more suggestions as the system is used in actual titles and more features needs arise.

    Please if you like the pack, when possible, leave a review so i can work much faster on upcoming updates.
    As i am a one man team, reviews help a lot in keeping the developement for packs full time and delivering extra features much faster.
    Thanks a lot in advance for any reviews for the packs.​
     
    Last edited: Oct 10, 2015
  17. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348





    New brush for next version

    Also another feature for v1.4

    - Procedural mesh deformation (e.g. noise, twist, bend), for extra variety in grass and musrooms etc look
     
    Last edited: Oct 10, 2015
  18. Dascumaru

    Dascumaru

    Joined:
    Mar 28, 2013
    Posts:
    3
    Looks very interesting. Does this work with materials on animated, SkinnedMesh renderers?
     
    nasos_333 likes this.
  19. Blank blank

    Blank blank

    Joined:
    Dec 1, 2014
    Posts:
    22
    I can't get it to place grass on only one specific terrain texture. I'm using 8 textures so I set the number as 8 and I want it to place on the first texture only. So I put -1 on for everything but 1. When I mass grow grass it just places it on everything inside of the square.

    I'm using terrain composer and RTP.
     
  20. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    The system uses colliders to paint on objects and then the grass can follow the translation and rotation, but not mesh defomation or skinned mesh.

    I may have more features in later updates to that end, but i cannot promise anything specific yet.

    For grass and particles on skinned meshes, my Particle Dynamic Magic pack can be used, as it already supports both particles and gameobject particles emission from skinned meshes with shader based (faster) or script based (more controllable) motion.

    Hi,

    I am aware of one more case that the splat maps are not recognized properly when RTP is used, so i am investigating what could be the cause (it is not certain it is due to RTP yet though). I have the RTP asset, so i will test with it and have results as soon as possible.

    Is it working ok if the terrain does not use RTP ?

    Also i am working on a texture based placement for v1.4, so this module will be terrain independent, for cases where splats are not available.
     
    Last edited: Oct 10, 2015
  21. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    Hi,

    I have figured out the issue with the splat maps, there is a problem when splat maps change after the grass manager is placed and i added a real time grab of the parameters that seem to fix the issue when more splat are added. I have not yet tested with RTP, but this first solution may be enough, since i got the same problem on my side if i enter the manager before i had defined the splats.

    Here is the quick fix

    Add in line 378 of the InfiniGRASSManager.cs script

    Code (csharp):
    1.  
    2. //v1.4
    3. if(!Application.isPlaying){
    4.              currentTerrain = Terrain.activeTerrain;
    5.              Tpos = currentTerrain.transform.position;
    6.              Tdata = currentTerrain.terrainData;
    7. }
    8.  
    also the "Scale per splat map" option in the Inspector options must be checked for the system to work properly. If not checked it will only plat the first grass type.

    I hope these help, please let me know if these fix the issue.

    I will also test with RTP and post results soon. These fixes will also come in v1.4 of the pack.
     
  22. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    Free InfiniGRASS voucher with the next two Sky Master ULTIMATE purshases !!!!

    Buy Sky Master ULTIMATE and post in the forum thread to get an InfiniGRASS voucher for free.

    Vouchers left: 2/2
     
  23. AlteredPlanets

    AlteredPlanets

    Joined:
    Aug 12, 2013
    Posts:
    455
    I really like the new brushes and plants.... great job.
     
  24. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    Thanks :).

    I am also working on a system that will grab the meshes just before they are batched and apply noise, twist and bend modifiers to them, fo extra variety. This will multiply the possibilities with each brush by a nice factor and also allow for more control over more complex brushes i am working on, like branching grass meshes.
     
    Last edited: Oct 11, 2015
  25. AlteredPlanets

    AlteredPlanets

    Joined:
    Aug 12, 2013
    Posts:
    455
    sounds innovative ....
     
    nasos_333 likes this.
  26. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    The variety in grass placement is one of the stronger aspects of InfiniGRASS along with keeping the GPU based performance, so i be trying to take it to the next level in upcoming updates and add extra layers of randomization to the grass look with various techniques unique to this kind of grass approach.
     
  27. Blank blank

    Blank blank

    Joined:
    Dec 1, 2014
    Posts:
    22
    Screenshot (1).jpg
    I tried it without RTP or terrain composer. This is with just two textures on a normal terrain. It still just places on everything. Maybe I'm not doing it right?
     
    Last edited: Oct 11, 2015
  28. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    Hi,

    Have you tried doing the steps in the post i made above ?

    http://forum.unity3d.com/threads/in...c-grass-everywhere.349921/page-5#post-2334096

    Make sure to also check the "Scale per splat map" option down in painting options and you can try inserting a -1 in the sub types as well for the 2 splats.

    On my side i found out that there was an issue if i changed the splats after the manager had grabbed the terrain data, so i added the posted code to regrab the data in the editor. If the Manager is inserted in the scene after the splats are finilized, i dont get the issue (but it is better to have the update code, so it covers all cases).

    Please let me know if any of the above worked, or there is a still an issue and i will try to pinpoint what else could be the cause.
     
  29. Blank blank

    Blank blank

    Joined:
    Dec 1, 2014
    Posts:
    22
    I just checked the scale per splat map box and now it works. Thank you so much. I would have never figured out that I had to check that box.
    Also it's working with RTP just fine now.
     
    Last edited: Oct 11, 2015
  30. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    That was an oversight by me, because i created the Mass Plant system on the previously splat based scaling, so this parameter should have been handled differently.

    I did not grab this as i had it enabled in the demo where i tested v1.3, so it will be made to be selectable in the next version, so the system may work without splat based scaling enabled.
     
  31. Blank blank

    Blank blank

    Joined:
    Dec 1, 2014
    Posts:
    22
    Sounds good. Thanks for all the help.
     
    nasos_333 likes this.
  32. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    np :). Please let me know for any other suggestion and issue that come up.
     
  33. Blank blank

    Blank blank

    Joined:
    Dec 1, 2014
    Posts:
    22
  34. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    Which version of InfiniGRASS is used ?

    I had this bug in an earlier version and was fixed for v1.3, i just test it also with v1.3 and the scale is ok after the ungrow, in both the editor and play modes (when entering while grass is ungrown).

    If you use v1.3, maybe there is some oversight that create this issue in a very specific situation, so i will need some more details to pinpoint why this may happen.

    Please check the "DEMO INFINIGRASS v1.3 UNGROWN-Gradual Growth" scene and see if the grass is scaled properly when entering play mode or when regrow the grass in the editor as a start, to see if there is some global issue perhaps with the pack installation.
     
  35. Blank blank

    Blank blank

    Joined:
    Dec 1, 2014
    Posts:
    22
    Okay so I tried the demo and it works except for the grass I made but in my scene none of the types of grass scale when grown at play. So I guess it must be user error maybe. I'm using 1.3
     
  36. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    When you regrow in the editor, is the scale ok ?
     
  37. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
  38. Blank blank

    Blank blank

    Joined:
    Dec 1, 2014
    Posts:
    22
    Through the grass manager and yes when I regrow in editor the scale is fine.
     
    Last edited: Oct 13, 2015
  39. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    What is the world scale and brush size used ? I cannot reproduce the issue on my side, i cant think what may be the cause as well, can you post a picture with your brush settings, so i can try to reproduce the error.

    Also you can try to copy your scene and insert the Grass Manager anew and see if the same happens.

    When you regrow in the editor, is the scale ok ?

    EDIT: Also another thought, try to uncheck "scale per splat map" option before entering play mode and see if it fixes it.
     
    Last edited: Oct 13, 2015
  40. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    I have sent a PM with a slightly altered debug version of the grass grow script, please let me know if this works and also of the debug notes produced when entering play mode ("aaa" or "aaa0" or no debug note) so i can pinpoint where the issue happens.
     
  41. Blank blank

    Blank blank

    Joined:
    Dec 1, 2014
    Posts:
    22
    I'll have to try that in the morning. Sorry to be a pain.
     
  42. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    Np :), i am always doing full support for my assets, so dont worry. It also helps me find issues that have escaped my attention faster which is good for the packs and helps other users too with similar cases.

    So for any issue, dont hesitate to contact me and i will try to come up with a solution asap.
     
  43. Blank blank

    Blank blank

    Joined:
    Dec 1, 2014
    Posts:
    22
    Alright so I got "aaa0"
    Unrelated to the debug script when I closed unity and reopened it that fixed the scaling problem for everything but the grass I created on my own. So I think I just messed up making the grass.
    Screenshot (2).png

    Screenshot (3).png

    Screenshot (5).png
     
  44. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    I think the cause may be the fact that i created my grass in 20 world scale and probably when the grass prefab is scaled to 1 world scale goes to the aaa0 area (i get aaa on my side), so you can try the new fix i did that covers this as well.

    The safest way is to copy one of my prefabs and replace those.
     
  45. Blank blank

    Blank blank

    Joined:
    Dec 1, 2014
    Posts:
    22
    Thanks man I got it all figured out.
     
  46. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    Great, let me know for any other issue that comes up and any further suggestions for extra features for the system.
     
  47. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    One more feature has been added for v1.4

    - Ability to save a brush settings structure with the manager for keeping all brush settings for later use, with load and save back to list options. This will be an extra option to the brush settings and will be especially usefull for the mass placement module, so each brush can have its own settings during the mass planting.
     
  48. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    The InfiniGRASS offer is now over, all vouchers have been granted.
     
  49. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,348
    One extra feature for next version

    - Local wind emulation (turbulence, radial force etc)
     
  50. GMM

    GMM

    Joined:
    Sep 24, 2012
    Posts:
    301
    Just bought the asset and it seems pretty nice, it's just a bit of a learning curve to using it properly. I cannot seem to make it behave nicely in low light situations. The grass is defaultly very bright and i have to tint it to make it appear blacker, but the lightning does not seem super consistient under these circumstances(with it becoming super white from low intensity light sources near it and becoming blue under extreme light).

    You can watch this low light scene i experimented with here:


    The blue shading error can be seen at 0:40 seconds and the near light specular issue can be seen at 0:16-0:18, so if you can give me some tips on how to properly set up the assets under low light situations i would appreciate it :)