Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

[Save $600 offer !✅]Infinigrass-GPU Optimized Interactive Grass-Trees-Meshes,work on mobile,HDRP-URP

Discussion in 'Assets and Asset Store' started by nasos_333, Sep 1, 2015.

  1. pro-bchevalier

    pro-bchevalier

    Joined:
    May 30, 2013
    Posts:
    46
    @nasos_333 btw, are you looking at supporting lightmap sampling for grass self shading in the future?
     
  2. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291
    For the time beeing i do that on plant operation level using Unity splat maps. It would defintly be super interesting to have that as well with MegaSplat functionality though, since the multitextures is a very big step ahead in that regard.

    Coloring or shape changing the grass based on the underlying ground map should be easilly possible with my system and is planned for v2.x cycle (probably v2.1 or even 2.0 first release if i have the time) and i think would not require input from MegaSplat as well for that funcionality.

    Is it possible to probe for texture ID (e.g. dominant textures or color) at terrain space with MegaSplat API ?
     
    recon0303 and ftejada like this.
  3. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291
    For the system with the dynamic grass i am not sure this would be possible, though i will check it out for sure.

    InfiniGRASS is rather versatile in that you can batch the grass and create an object out of it, then this object could be used directly and apply any static object effects on it (and have the perks of wind etc). The LODs though would have to be handled manually in this case.

    In v2.0 i have an extra list of materials that can adapt to ground with my new method, besides the Grass Manager ones, thus you can also benefit from making super big batched models for least draw calls and even reuse them without extra allocations should you change the map etc (e.g. a scenario is create a grid of super big batched grass for the main terrain, when adding new terrain in load map move the patch grid to cover the new terrain, you dont need any batching for that with the new system or extra memory allocation)
     
  4. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    Ah, I was thinking more user-defined masks, such that grass grows in the cracks of the texture-defined displacement, etc. Reconstructing slope from the depth buffer will give you some of that effect, I gather, but not quite the same thing.

    On the CPU you can get the displacement offset (physical position), which texture is dominant at a given Ray hit, as well as the two textures and blend between them at a given Ray hit. While reasonably fast, you wouldn't want to do thousands of these queries per frame. On the GPU, you would have to compute the blend factors from the same data I do to arrive at the same result. While reasonably fast, MegaSplat has a ton of modes (projective texturing, UVs, etc), so if you needed this the best thing for me to do would be to write out a CGInc from my compiler with a function you could call for a given shader. (MegaSplat is a shader compiler, in essence, as when you change options on the shader it actually writes a new shader for you - too many options for Unity's traditional pipeline)
     
    recon0303, nasos_333 and ftejada like this.
  5. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291
    Thanks for the info. The splats would have to be adressed only during editor time in the general case (only for streaming case would require real time and this in the full streaming mode, as there is also pre-defined placement streaming mode that would also not need to grab splats in run time)

    The system is generally shapable by texture, so the displacement map could be used as well to define grass shaping in various ways (though will require to add it as option to the shader), i will see to that in v2.x cycle probably.

    When i come to this i will notify on whether i need some libraries to help out, would be great to have.
     
    recon0303 and ftejada like this.
  6. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461

    Yup, no problem - I can send you a voucher (or copy since I might be out of them)..
     
    ftejada likes this.
  7. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291
    Thanks, I have the asset, so not worry on this :), i got it as soon as hit the store.
     
    jbooth likes this.
  8. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291
    Some brushes from the final tweakings of pre-Beta, which should be released soon (only a few things remain and i have done most usability and GUI so will be very close to the Beta release in ease of use)


     
    docsavage likes this.
  9. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291




    From WIP in InfiniGRASS v2.0 base tutorials.

    Clouds are done with InfiniCLOUD (WIP module for next Sky Master version)

    The grass in the pics is using billboards for far LOD stages (all grass haa cast and receive shadows, including billboards)

    The top pic shows grass after painted with the real time brush type (and shape) painter, this is using only a single material with a sprite sheet that holds the various textures. The billboards in the LOD stages also get the same painting regions and type assignments.
     
    Acissathar, ftejada and docsavage like this.
  10. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291






    Sample videos of the new configurator system WIP and settings tweaking, plus possibilites on streaming and planting on the fly. More info and step by step explaination in the 1st video description (on youtube page).
     
  11. cookimage

    cookimage

    Joined:
    Sep 10, 2012
    Posts:
    729
    I have a problem, as my world scale is small I had to change the world scale on the GrassManager to 1. When i paint the grass its flat on the ground, how do i fix this. If I scale world scale up to like 10 its fine but the grass is to high for my characters in my game then. Also to mention im painting it on a mesh.
     
  12. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291
    The grass on lower scales may be affected by the interaction radius which is not auto regulated. This is in "Stop motion distance", try as first step to reduce this to zero (first press on the icon of the grass type to be affected-regulated) and then make sure you have a windzone added to Grass Manager and lower wind and turbulence as well a lot (start from zero and increase slightly gradually)

    I have a FAQs in page one (top ost) describing possible such issues and you can also find videos in the tutorial video playlist with smaller scales tips for interaction and mass planting.

    Let me know if these helped
     
  13. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291



    WIP on last performance optimizations, to take as little as possible on the scripting side. A few extra optimizations are also in the works after these pics, i will take some grabs when done and post soon as well.
     
    Dwight_Everhart and ksam2 like this.
  14. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291


    WIP on the new v2.0 brushes, this is one of the last steps before pre-Beta release, each type is adjusted for the new system and new brushes are finilized and refined.
     
  15. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291


    Video from v2.0 WIP, new brushes
     
    Too-Nerd-To-Die likes this.
  16. cookimage

    cookimage

    Joined:
    Sep 10, 2012
    Posts:
    729
    How can I turn the shadows of for the grass as in casting shadows?
     
  17. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291
    The shadows are always on in v1.x (and can be regulated by Unity shadowing overall distances). In the coming v2.0 i have per LOD stage shadow on-off control (including the near stage, for zero shadow casting overall). This is controllable per brush type.
     
  18. nasos_333

    nasos_333

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

    I have revised the batching script and hardcoded the shadows on-off control code, i eliminate all shadows by default, but you can also control it by changing the max LOD cutoff in the script.

    I have also sent a PM on this, to follow up
     
  19. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    Hi.

    It has been a pleasure following this thread for the development of the asset. But I am now in need of procedural grass placement system and I am shopping around for one gauging each ones in the asset store.

    I was wondering if v2.0 is anywhere around the corner for a release. Because my particular need is based on procedurally generated mesh world and I need to spawn/grow grass automatically during runtime / during level loading with some varied chaotic mixture of different types of grass + possibly not placing grass under the rocks etc.

    Now, I know that the fully procedural placement for this asset was planned for 1.7 then 1.8 then now it is delayed to 2.0. And I was watching some of the demo video and it seems promising. ( not 100% sure if it will meet my needs.. ) so is there any planned date for the release? If not, then if I buy the asset now, can I get a beta access?

    Thanks.
     
  20. nasos_333

    nasos_333

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

    I have finilized a first pre-Beta release already as the system is 100% stable now, though there is still a lot missing for final Beta. I have sent the pre-Beta and i have gathered a few extra to do's and will come up with the next pre-Beta version next week (hopfully early), so for any customer that would like to try the new system, i can send it asap or next week with a more upgradted version.

    Let me know for any more questions on the system, to make sure it will suits your needs.
     
  21. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    Right. Sounds good.

    As for my needs :

    I have procedurally generated mesh ground objects tiled together to form a gird shape landscape. I want to spawn mixture of different types of grasses on them during runtime. I need to do this without user interaction so it needs to be spawned automatically based on some rules such as to how the different types of grasses are scattered and what kind of other objects to avoid spawning on such as rocks and trees etc. There is no slat terrain maps , and the bounds of total world ground is sort of contained but random so it isn't very useful data to use.

    I saw infinite generation of grass for v2.0 and I was wondering if this feature can be used.. As far as I can see that for v 1.7, it seems like I need to define some start and end corner for the mesh generation .. and only spawns one grass type at a time.. but if that is the case I am not sure how I can spawn different types not overlapping too much of the same space etc.. It seems like it would be fiddly and difficult.
     
  22. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291
    v2.0 is made with streaming in mind, so would be the best suited for the needs.

    Here is a sample of planting terrains inserted on the fly in play mode, using the rules system for reference



    The system is super fast doing that, so would be ideal, though i have not yet tested without splat maps (since rule system uses them, but of course can be made to ignore them and use other means instead like texture color etc)

    These modes will be WIP for v2.x cycle (some may come in the initial v2.0 release as well, if it is not too complex to add, e.g. splat less rule addition etc)
     
    recon0303 likes this.
  23. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    Cool. As for the splat like map i can create one in photoshop that can tile across the world. If i can manualy supply one of those to the system on the fly it will be suitable. Does system allow such setup or splat map has to be read from terrain object only? And can splat map be made to use tiling with some world scale value?
     
  24. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291
    Splatmap info currently is tied to the Unity terrain system, since it is the most common usage of splats, though if there is another format or system with splat maps i could support it as the base functioanlity of what it does is pretty simple.

    The issue with outside terrain splat maps is what API will use to gather the color weights at a given terrain point, which may vary from case to case, so is trickier to support
     
  25. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    If there is way to supply the same splatmap format to the manager and then let manager override it it should work.. as for the where in splatmap it needs to sample can be based off world xz axis coordinate with some scale factor. Because splatmap will be manually created in photoshop to be tiled in both directions it will work no matter where the mesh is. Just need to sample some point on the mesh and then use the tiled splatmap to see what should spawn etc.. so the question may be on how to sample points off the mesh..
     
  26. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291
    I missed the post, sorry for the late reply. Sampling from a general mesh is not directly possible currently, as it is a tricky thing and with various possibilities. I plan to do more work on supporting general textures on meshes for grass effects, though this will take a while to realize as it is not trivial and is subject to various interpretations and formats that make it a lot complex to offer a global solution (while in contrast Unity terrain is something that is integrated in Unity and behaves in a singular way)

    I will make sure to work more on such aspect after the initial v2.0 release.
     
  27. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291




    InfiniGRASS v2.0 pre-Beta is almost done, i am now doing final refinements (e.g. fixed a few issues in the burn grass shader, refined LOD stages and various other tweaks) and hopefully will have it available soon.

    Sky Master ULTIMATE is used for the lighting and the new full volume clouds system for next Sky Master version is used for the clouds.
     
    Crossway, ftejada and recon0303 like this.
  28. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291
  29. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291
    Last edited: May 25, 2017
  30. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291



    WIP on InfiniGRASS v2.0
     
  31. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291



    WIP on InfiniGRASS v2.0, extreme stress demo with super high view distances (Sky Master ULTIMATE is used for lighting and volume clouds)
     
  32. Crossway

    Crossway

    Joined:
    May 24, 2016
    Posts:
    507
    Cool man, when we get this on the asset store?
     
  33. nasos_333

    nasos_333

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

    I am very close to the pre-Beta release, only a few things remain, i hope to have it this week for all current users. The pre-Beta will be very close to both Beta and final release, and the system is 100% stable and super fast already, the betas serve more as a means to see what else i may be missing in functionality, GUI etc

    About the final store release, i have decided to be much more careful with future store releases of major versions (this will be true for all my assets, e.g. the new Sky Master clouds and water system etc), so i will first pass through the pre-Beta, then Beta phase for some time and then put on the store when I am 100% sure that the asset is perfect for all that have used it so far in Betas.

    The Beta versions will be available to everyone interested immediately after their release.
     
    Crossway and ftejada like this.
  34. jimburn

    jimburn

    Joined:
    Apr 1, 2017
    Posts:
    64
    Is it possible to just take an existing terrain and replace the Unity Grass with your grass?
    Do you have a Unity -> Infinity Grass converter that is working and reliable?
     
  35. nasos_333

    nasos_333

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

    The current version does not have a system to do the conversion, this will be one of the new features in v2.0, it will replace Unity tree-grass with InfiniGRASS types (can choose type to assign to each Unity type with an icon based system).

    The converter will be included in the upcoming Beta.
     
  36. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291




    The pre-Beta is now available for download, let me know in PM with the invoice for everyone interested
     
    ftejada likes this.
  37. ftejada

    ftejada

    Joined:
    Jul 1, 2015
    Posts:
    695
    Hi @nasos_333 !!

    I'm glad. I wanted to start testing it.

    I send you PM

    regards
     
    Last edited: Jun 4, 2017
  38. ftejada

    ftejada

    Joined:
    Jul 1, 2015
    Posts:
    695
    Hi @nasos_333

    Did you receive my PM with the invoice?

    regards
     
  39. nasos_333

    nasos_333

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

    I am under relocation and had not got yet time to do some final checks, since i got some reports for a problem in the package i uploaded when used in Unity 5.6 (which should be something trivial is my guess), so i will try to check what is the issue in Unity 5.6 and release a new package that will play ok and send over as soon as possible.
     
    Crossway and ftejada like this.
  40. ftejada

    ftejada

    Joined:
    Jul 1, 2015
    Posts:
    695
    Ok. Thanks
     
  41. RandAlThor

    RandAlThor

    Joined:
    Dec 2, 2007
    Posts:
    1,293
    I also send you a pm.
     
  42. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291
    I had an issue reported in Unity 5.6 and had to rectify it (due to new Unity completly inverting the depth buffer values order), i have now solved it and i am integrating it in a patch so can be used for Unity 5.6+ projects.

    I need to test this a bit more and will send the pre-Beta with the patch as soon as possible.
     
    ftejada likes this.
  43. buttmatrix

    buttmatrix

    Joined:
    Mar 23, 2015
    Posts:
    609
    I'm having a hard time trying to make custom grass compatible with Infinigrass. Any advice?
     
  44. nasos_333

    nasos_333

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

    I have a tutorial video on custom brush making, i attach below

    The general idea is to copy one of the sample grass grower prefabs, along with its bark and branch prefabs and then insert the prefabs in a scene and edit them, adding or removing items as would do with normal Unity scene objects, then bake the prefabs (Apply button) and insert the prefabs in the (copied) grass grower (instead of the previous ones) in the bark and branch reference variables.

    Then the grower can be referenced in the Grass Manager prefabs list and can be used to paint (plus its materials must go to the materials and Extra materials lists if using more than one material). The materials should also have one of my shaders (though this is not a requirement, but the shaders are needed to enable wind etc effects on the grass)



    If you have a specific issue, let me know for more details or send me a small scene with it and i can convert to InfiniGRASS.
     
  45. buttmatrix

    buttmatrix

    Joined:
    Mar 23, 2015
    Posts:
    609
    Thank you for your help @nasos_333. I have reviewed the tutorial several times and attempted to replicate the procedure, but with no success. I have attached a unity package of the prefab I am trying to convert, any help you can offer would be much appreciated!
     

    Attached Files:

  46. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,291
    I will create a sample brush from your package and send it over asap

    Which Unity version do you use ?
     
  47. buttmatrix

    buttmatrix

    Joined:
    Mar 23, 2015
    Posts:
    609
    Wow, that is incredibley generous, thank you so much!

    I'm using 2017.1.0b9
     
  48. buttmatrix

    buttmatrix

    Joined:
    Mar 23, 2015
    Posts:
    609
  49. nasos_333

    nasos_333

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

    I found time tody to do it, i attach it below, let me know if the test scenes work ok (the last scene also has grass painted), since i worked on this in InfiniGRASS v2.0 project (as i have it in my current WIP and in Unity 2017), so the grower script will be downgraded to the store version, if this causes any issue let me know and i will install the store version and re-create the preset there.

    https://drive.google.com/open?id=0B-QCdE1dswQBc1lSRGhvQnNFaWc

    Note that the first step when you dont have a separate mesh (the brush is made in Unity grass for example) is to export the mesh as .obj using the File -> Export menu, then apply the material to it and then start making the InfiniGRASS prefabs.

    Best,
    Nasos
     
  50. buttmatrix

    buttmatrix

    Joined:
    Mar 23, 2015
    Posts:
    609
    This is amazing! Thank you so much @nasos_333