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. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286






    WIP on the new tree samples for InfiniGRASS v1.5. (Sky Master ULTIMATE is used for the sky, clouds, snow, water & fog)

    InfiniGRASS can be used for any item, including trees and gives a super optimized performance with big draw distances.
     
    Last edited: Jan 23, 2016
  2. kasulogamestudio

    kasulogamestudio

    Joined:
    Mar 22, 2012
    Posts:
    130
    Hello nasos,
    Please, I am building some kind of village sim, where I have real time buildings, saving and loading.
    Does your system works with this already? I mean, the terrain will be the same everytime (so I can just paint it in editor mode), but as soon as I build the game and players play, I need to "paint back" or erase the grass where it has a building.
    Thank you in advance.
     
  3. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    Erasing and planting is possible in real time, the limitation is the density of grass to erase/paint and the quantity.

    The system creates groups of grass and batches them and when erasing or planting it opens the coresponding group (this is multithreaded) and adds or removes the grass. The current erase uses the grass collider and erases a single grass stroke (not the whole batch it is in).

    So if you plant grass gradually or erase whole batches (i do this in the gradual growth mode for example) it is very fast as the system wont have to open and close the batch, but if you erase lots of random grass and many batches open up at once or are very heavy batches it may create a spike. This spike wont happen if you find the batches and erase them whole (they need to be unregistered from the manager, so needs some coding and the gradual growth erase mode can be used as base)

    Another idea is to have one separate grass manager for each structure and erase everything related to it at once, this will also be very fast. The Grass Manager can be prefabed with the house for example and will work when instantiated (i have tested the system with instantiated prefabs and works great) and also works on all modes (instant growth of ungrown grass, gradual growth as the player goes near to not create a planting spike etc)

    You can test both erase and plant in the webplayer demo and play with the heavier brushes to see the penalty if lots of density is used in a single frame for example.

    The system is very versatile, so there may be many other ways to go about it and optimize even further.

    About loading and saving depends a lot on the implementation, but i suppose you will be instantiating the building on load, so at that point the attached grass managers will grow their grass. I have not tested the asset with serialization for a persistent global grass manager for example, most of the main structures are public so there should not be an issue, saving an altered state of a Grass Manager can be tricky though and depends a lot on the save mechanism/implementation, so if anything comes up i can always look at it and try to offer a solution.

    A proper save procedure for a persistent grass manager would be to Press Save -> Ungrow grass in code on demand (so there is no actual grass or batchers needed to be saved, only the grow scripts, this is what happens when the grass is ungrown in the editor too) -> Save the Grass Manager state and the referenced grass growers (these are single scripts that grow the grass and find or create a batcher to batch it with) and then when the scene is loaded have the ungrown grass grow back on Grass Manager as usual.

    An issue with this procedure is that "Ungrow" function is made for ungrowing the grass in editor time, so this might need a few alterations when used in play mode (also it may not be needed to actually ungrow that grass and just save the manager state and growers in their grown state and force the ungrown state on the grass growers, that would be faster and more elegant but needs extra coding).
     
    Last edited: Jan 24, 2016
  4. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,240
    Just purchased InfiniGrass a few days ago, trying to get up to speed with it. But I can't figure out how Mass Placement works. I have a terrain with three texture/splats painted on it. I created the InfiniGrass Manager object and set Corner A and Corner B at opposite (diagonal) corners of the terrain. I click "Mass Place" and nothing happens. (There are grass materials assigned already, by default apparently, and I can right-click to paint grass manually, so that part is working, but not mass placement.)

    Also, the grass that I paint manually grows perpendicular to the terrain...which looks quite odd on slopes. Grass should always point up, toward the sky. Is that tweakable?

    thanks
    Dave
     
  5. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286

    Hi Dave,

    If the Mass Placement is not producing result, it could be a matter of density, try to increase the placement density ("Density of Mass Grow" parameter) little by little to see if it fixes the issue. Also play with Grass Density and Grass Spread parameters in the Grass Brushes region.

    I also have a guide for mass placement and multiple terrains here that can be of help: http://forum.unity3d.com/threads/in...c-grass-everywhere.351694/page-4#post-2405601

    About the grass looking always up, i dont have this by default as it can look strange with wind on slopes (grass may enter the mesh for example and wont paint well on objects like spheres), but i have an optional way to turn the grass towards a vector that has to be activated in the grass grower prefab.

    I also have a sample brush using this for reference (vines), i attach an image that shows the changed prefab parameter ("Rot Towards" enabled and "Rot Vector" is the vector that shows where to rotate the grass, e.g. vines have -1 to look downwards). The top pic shows the vines looking up by changing the Y axis to 1 in the Rot Vector and the bottom pic is the default vines hanging downwards with -1 in Rot Vector.

    In the next update(s) i will also have a lerp option to lerp the normal and custom vector for more control and probably a scalable way to do that lerp based on height and slope.

    Let me know if these give a result and for any further help.
     
    Last edited: Jan 24, 2016
  6. Olafson

    Olafson

    Joined:
    Aug 7, 2012
    Posts:
    255
    Is there a tutorial to show how to mass place grass via splatmap?
    We have huge terrains in our game, with very dense grass, and placing it by hand is not viable, we need to be able to place it with splatmaps.

    However, I don't think any of your tutorials showcases how to do it, or did I just miss it?
     
  7. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    Hi, i have two tutorials for Mass Placement, the splat map asignement is done via the Grass Manager, in the splat map list you assign a number of the brush you need (e.g. 0 for the quad default grass) and -1 when you dont want anything to be Mas Planted in this splat.

    The list must have as many elements as splat maps in the Unity Terrain (e.g. 4 in my demo)

    You can also assign one other brush in the sub type list per splat, for extra variety

    Here is the two mass placement tutorials (top two in the post): http://forum.unity3d.com/threads/in...c-grass-everywhere.351694/page-4#post-2405601

    The brush to splat map assignement is done in 0:40 of the first video tutorial.

    I suggest starting with a lower mass placement density value until you get grass planted and move up from there, there is also undo for the placement to test for the required desnity easier.
     
    Pequisto likes this.
  8. Olafson

    Olafson

    Joined:
    Aug 7, 2012
    Posts:
    255
    AAAh! Now I get it. Okay thank you. Excuse me for the trouble.
     
  9. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    No trouble, glad to be of help :)

    Let me know for anything else that comes up and further help for using the system.
     
  10. silentneedle

    silentneedle

    Joined:
    Mar 14, 2013
    Posts:
    280
    I'm sorry if this has been asked already, but are there any plans for a gaia integration? This would be a perfect match.
     
  11. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    There are plans for it and i have been working on this (got Gaia and sent InfiniGRASS to GAIA developer as well) but from my initial tests with the concept of filling the whole terrain of unity grass to InfiniGRASS show that is far from trivial due to a number of reasons and requires extra thought, planning and perhaps a new set of algorithms that do not exist in either pack yet.

    The issue is that Unity grass is using a texture to mark the grass spots and the blades are defined by that. My grass is a totally different logic and thus to convert from this patterned grass to the true non patterned InfiniGRASS that has variable patch size (which affects performance and dynamics too) and can be any object (even very complex ones) is tricky.

    It can definitly be done, but from what i see wont be coming in the v1.5 update.

    That said, in v1.5 i plan to have many more placement features that will also take full advatage of InfiniGRASS features and its specific way of local districution and i will try to see as priority for v1.6 how to turn Unity grass in general to InfiniGRASS in the best, most controllable and with many options way.

    This then can be the base of integration with GAIA for mass grass placement based on my and GAIA rule combinations (which may not have to interface to GAIA at all actually, as i will read the grass / trees GAIA created and plant mine, so will use GAIA indirectly and will also be compatible with every other terrain solution including Terrain Composer and user created grass/tree formations as well).
     
  12. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    Last edited: Feb 6, 2016
  13. Jon_1020

    Jon_1020

    Joined:
    Feb 4, 2016
    Posts:
    4
    Hi,

    The terrain I use is a asset bundle. I want to be able to use this product on the downloaded terrain at run-time, save it, then load it when I reload the game.

    Is this possible?

    Thanks!

    - Jon
     
  14. nasos_333

    nasos_333

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

    The system supports prefab of editor painted grass along with its terrain for example and is enabled again when the prefab is entered in the scene (after beeing ungrown). Also supports transitioning grass painted in real time to the editor.

    So in theory the saving along with a terrain after run time should be possible, but since the implementation of something like this is dependent on the specific implementation of saving on each game i cannot offer a global out of the box solution, but i can help with implementing something like that.

    Note that the system uses a grower script approach, which means at any one time the whole grass can be represented by just scripts (no actual grass or batcher groups), by running a function like the "ungrow" one i have for the editor (which should also work in run time, i have not tested it though). Then the whole structure could be saved by prefab or serialization (and after setting some parameteres to correctly reset the state and regrow the grass) and when restored should work as the editor ungrow option workswhen entering play mode.

    Let me know if you would be interested in that and also about the way the save system works, for example does it create a prefab or is serialization for every saved item etc ?
     
  15. Jon_1020

    Jon_1020

    Joined:
    Feb 4, 2016
    Posts:
    4
    Thanks for the response!

    For what I have, a prefab won't work, because the player would be modifying the terrain at run-time through the web, not using the Unity Editor.

    The serialization is for whatever data the player is modifying on the terrain. It would cover the detail meshes added at run-time.

    Does your system allow for texture painting on the terrain at run-time? Applying splat maps to the terrain at run-time?

    All this will be happening on the Web using PC. In addition, does the grower script support splat maps or texture painting.

    It sounds like serializing the data from the grower script and loading it on reload from the Web may work.

    Thanks!

    - Jon
     
    Last edited: Feb 5, 2016
  16. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    Hi Jon,

    The system can grow grass with scale based on splat map in real time (and can be extended to do more as well) and supports splat maps in Mass Plant in editor with type of grass per splat.

    So the system is there to extend for real time to support any feature per splat map. The new v1.5 grass will also have a script to grab the ground color and vertex paint the grass (this currently works on textured meshes and i am working on to fit it also for terrain splat maps)

    The system is generally very versatile, essentially with just the grower scripts saved, a new grass manager could be created on load and insert them / grow them at load time for example, but this will require extra scripting (but the base of all this scripting is already in the pack in some form, for example there is already a system that grabs the grass growers from run time and insert it in the editor for editing and run time editing, so essentially this could be tweaked a bit to work in run time). This system assume the knowledge of the item the grass has been painted on (for example terrain), so this is another parameter that has to be saved (but that should be trivial).

    Is it possible to save whole scripts with your save system ? For example a set of scripts with a few references to project prefabs and some public varibales set.

    If so, i could try to convert and test the grower to editor scheme for grabing those and inserting in the editor in run time.

    What i will do for the testing is

    1. Create a grass manager
    2. Paint grass in run time
    3. Erase the editor but keep the growers
    4. Create new grass manager in run time
    5. Reset and register the grass growers to the new manager (using the system that already does this for the grass grabbed in run time for the editor)
    6. Enable the manager to run it from the Start() function
    7. Check that the grass grows proper
     
  17. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    Using InfiniGRASS with Sky Master ULTIMATE weather features Tutorial:

     
  18. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    Using InfiniGRASS with Sky Master ULTIMATE weather features Tutorial 2:

     
  19. Jon_1020

    Jon_1020

    Joined:
    Feb 4, 2016
    Posts:
    4
    Just to clarify,

    I haven't tested saving whole scripts.

    This works excellent with painting detail meshes on the terrain, but what about painting textures?

    You mentioned "vertex paint the grass (this currently works on textured meshes and i am working on to fit it also for terrain splat maps)". When you mention terrain splat maps, are you painting with the splat map textures? Are you painting a grass texture onto the terrain?

    In my terrain, I have grass and mulch textures. The whole terrain is grass, so I'm allowing players to paint mulch anywhere on the terrain. Does the grass manager allow for saving terrain data or splat map data when painting textures on the terrain?

    At least in my case, painting details is secondary. Painting textures is the primary function.

    Thanks!

    - Jon
     
  20. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    Hi Jon,

    Now i see what you mean. My reference to vertex painting of grass is about passing information from the ground texture by reading it, to the grass, by applying the color through the vertex colors of the grass and the shader.

    The system does not do anything to terrain itself, also the version i have works with (readable) textures directly so it is not yet compatible with Untiy terrain (it is with mesh terrains with textures).

    I have another system in the works for terrain detailing that will work along with InfiniGRASS and support various actions like texture and Unity grass painting in run time for example, this is planned for late March release.

    Let me know for further clarifications
     
  21. Jon_1020

    Jon_1020

    Joined:
    Feb 4, 2016
    Posts:
    4
    Ok, it sounds like the other system may be what I'm looking for.

    Thanks the reply!

    - Jon
     
  22. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286









    A few more samples of the system and demos WIP
     
  23. Vegaaa

    Vegaaa

    Joined:
    Mar 12, 2014
    Posts:
    3
    I can use this grass in a exported mesh from 3ds max?
     
  24. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    It can be used on any object, as long as it has a suitable collider. There is no other limitation in the grass orientation and distribution.
     
  25. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    3,356
    Just got your asset started playing around with it, and there is something going on with erasing grass. Basically it won't. Sometimes it removes a few but mostly it just does nothing (paint mode left shift). Enable mass erase and then it works, but that stops working also once grass is too large.

    Something is wrong with scaling also. Default settings grass is over 2 meters tall, that's taller then the average character controller. Setting object scale all the way down it's still over 1m tall.
     
  26. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    3,356
    So the scaling bug is that if you don't explicitly select a material when you start painting, it uses material 0 but doesn't set the scale correctly, the default is the larger then life scale. If you explicitly select a material then it does set the scale correctly.
     
  27. nasos_333

    nasos_333

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

    I have a global scale parameter that will adjust the default brush settings to other world scales, for example put World Scale to 1 (than 20) to get 1:1 world scaled paint parameters for my 20 sized grass. Then adjust further the local scale.

    The other way is to create custom prefabs (just copy the folder of a grass and add the branch, bark prefabs to the grower script and drag to scene to scale them as desired). This is the recommended option and i plan to have 1:1 version of brushes in the next version so the 1:1 scenario is also covered.

    When doing this you also need to adjust the World Scale to 1:1, but you can use larger local scale than the provided default and closer to real life one.

    Three other parameteres that may need tweaking is the grass wind stop distance (stop grass wind near hero to have scripted motion take over), the grass fade distance (fades out grass before LOD cutoff for smoother grass dissapearence) and the wind settings must be also set lower.

    On the erase, the Mass Erase is the best option unless you set the colliders of each patch to larger scales. I have both options since you may need a custom collider and make it easy to destroy each brush stroke, or have smaller ones that require Mass Erase.

    If Mass Erase misbehaves try adjust the Editor View Distance also, the preview distance discates how far you can erase/paint grass.

    Let me know if these help and for any further questions
     
    Last edited: Feb 17, 2016
  28. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    3,356
    Thanks for the quick reply.

    So I was just doing a simple test of mass grow. 200 x 200 area and it's killing my system. Had to trash the scene unity just hung trying to delete all the objects in it. Is there a way for infinigrass to handle larger areas? My game terrains range from 1024 to 4096.
     
  29. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    As a first step try to lower the mass grow area and also the grass Mass Plant density (different than the local density in brush settings, the former dictates how Mass Plant will behave when planting each stroke and the latter dictates how dense the blades in each stroke will be), it may have much more density than required for example, so start lower and increase until you get the perfect balance. You can undo this action to to the tests easier.

    Note that each grass stroke can cover a variable amount of area based on its spread value, so if you have big spread the density of Mass Plant should also be lowered accordingly.

    Once painted, the grass in game is super fast even at huge quantities, so the only limitation is while painting, which can be done gradually and not all at once.

    If you have a super huge terrain the best practice is to also use multiple Grass Managers, each covering an area and have them disabled for example when the hero is far away. This may also work if the terrains are dynamically turned on/off to save on performance. This will eliminate much of the overhead of the LOD etc systems when grass is massive.

    The managers keep all the references to their holders for grass and batchers, so can be separated fully (and also prefabed and inserted in the scene)

    Another note is that you can ungrow the grass in the editor, to save on disk space and also help when painting vast amount of grass in the editor, for example you can disable one manager and its grass and work on the other much faster in the editor time (editor has ovehead which is not in play mode where everything can be super fast)

    Let me know for further questions
     
  30. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286




    A few pics from the work for InfiniGRASS v1.5
     
    _invalidusername likes this.
  31. mm_ASH

    mm_ASH

    Joined:
    Nov 15, 2013
    Posts:
    358
    Hi!
    Just bought your asset and now playing with it. Sorry for stupid question: but how can I specify editor icons for stotes and fences? :rolleyes:
     
  32. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    The system to define icons for all categories is not yet implemented and will come in the next version. You can hardcode icons by coding in the Inspector for the non grass categories. You can add new rock and fence types and access them through the slider that cycles through the brushes without icons.

    Another note, stones can be handled by both the grass paiting and rocks paiting. Use the rocks paiting for bigger rocks that do not need LOD and need to be visible far away (these are all done in a single batch)

    And use the grass system to spread smaller rocks that require more detail and need LOD and cutoffs, so have to be batched with the grass system (this also applies to all decals)
     
    Last edited: Feb 17, 2016
  33. mm_ASH

    mm_ASH

    Joined:
    Nov 15, 2013
    Posts:
    358
    Wow! Thank you for such a fast and detailed feedback =) Now it`s clear about rock.
    In general system it looks great!
     
  34. nasos_333

    nasos_333

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

    I am now working on v1.5 that will bring it to a new level, with seasonal effects, many more brushes, tree support, full procedural mode, vertex blending to ground, gravity and temporal interaction shaders and much more
     
  35. mm_ASH

    mm_ASH

    Joined:
    Nov 15, 2013
    Posts:
    358
    Happy to hear that!
    Also consider to simplifty procedure of creation new grass type. Maybe some "Create Wizard" automation will be nice.
    Also with default shaders I`ve found visual artifacts when using SSAO (you can see dark corners through grass).
    And one more question. Is that possible to reduce amout of game objects to leave only combined meshes? (Now I have significant performance hit because of this, I know that it is possible to bake everything into one mesh, but this is not LOD-based solution unless maybe this could be applied somehow)
     
    Last edited: Feb 17, 2016
  36. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    About the grass elimination, the plan is to offer a way to eliminate all original (before batch) grass from the scene upon creation in the static grass case, to minimize any overhead this may cause. Also various other performance enchancements like this are in testing phase.

    About the automation wizard, is also a great idea and i have it planned as well, though since this may be complex to handle and be really usefull will take some more time. As a first step the system could instantiate the prefab(s) in the scene to streamline the procedure and help with the editor setup for easier editing. The system is based on prefabs so the Unity editor acts as the grass editor, as any manipulation done in items in Unity can be done in the grass and the system is not limited to grass either. So the goal will be to manipulate the editor itself to help with the creation procedure.

    I have done some tests with SSAO and i can see a problem when looking at the sky for some reason, seems to render a rectange around the grass (the original quad i assume), i will investigate and try to fix for the next version. I get the same problem with the Standard unity shader as well though in Transparent mode, so it could be a general issue of the SSAO with transparency. The "Fade" mode seems to work ok, so i will focus on this as guide.

    It seems the SSAO does not operate on the opaque area only for some reason and tries to shadow the whole quad. In forward mode the effect is less evident (but still there). I had done most tests with SSAO with grass looking at ground, that is why i missed this.

    There is also a tint option that i have left with a bigger than normal range in color to allow for a burn effect, so also make sure that the tint is lower for avoiding the burn effect.
     
  37. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    I just discovered the issue with the SSAO, it seems to be affected by the Alpha cutoff amount in the shader.

    For example the same shader works fine when the cutoff is above 0.5, so you can try as a first solution to increase a bit the cutoff until the quad shading goes away and let me know if this works on your side
     
  38. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    I also tested with the vertex shader (non transparent) and there is the same issue, in this case it can be solved by adding in the shader tags, instead of "RenderType"="Opaque", change to "RenderType"="Opaque+1" and seems to also solve the issue in that grass type (same should be done in the mushroom and fence shaders as well)

    I will have these tested more and add the fixes for SSAO in the coming v1.5.
     
  39. mm_ASH

    mm_ASH

    Joined:
    Nov 15, 2013
    Posts:
    358
    Ok, looking forward for your next versions =)
    Unfortunately on this stage for me it is easier (from usage and performance point of view) to use QuickBrush + SpeedTree grass. But your toolkit looks promising, especially when you will find solution to problems listed above. :)
     
  40. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286



    If the grass is not batched it should be a lot slower i think, so you may give it a try using SpeedTree texture with the system.

    The performance is night and day different with proper batching and you can get proper shadows and huge view distances too without billboarding.

    I post some pics showing how the batching helps, the same trees and view distance + shadows with Unity or SpeedTree trees would be a lot slower and create a vast amount of draw calls

    But if performance is not critical, simply placing the grass with QuickBrush would definitly do the trick, InfiniGRASS is mostly used when you need the extra performance to allow more detail locally or view distances etc

    I will make sure to add the SSAO fixes in the next version as well.

    The SSAO solutions are already found as described in the posts above, the system works ok with SSAO if the Alpha cutoff is a bit tweaked for the transparent grass and the +1 in render queue is added to the vertex shader for the vertex grass variety, these should allow to use the system with SSAO and i can always send over a patch with the fixed items for immediate use, let me know and i will prepare it and send in a PM.

    About the batching, the system does batching as you describe and supports LOD as well (3 LOD stages and cutoff, mushrooms and rocks brushes have LODs implemented, the grass was very fast so i did not implement any, but can always be added if needed), this is why it is so fast comparing to Unity and SpeedTree systems. Plus you can fully control the batching and is auto grouped for the LOD/cutoffs so you can do large maps with managing the batched patches.

    The actual original grass is disabled (in static grass case, dynamic grass is also supported but eats up more performance as it opens up the original grass locally, this is multithreaded too). In v1.5 i will also have a temporal interaction shader that will move grass as the player goes in with minor preformance penalty since will be shader based.
     
    Last edited: Feb 18, 2016
  41. mm_ASH

    mm_ASH

    Joined:
    Nov 15, 2013
    Posts:
    358
    Agree with your arguments, maybe I did just a bad setup. Will give it a try with 1.5 :)
     
  42. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    Great, v1.5 will have many new features too so you can start with seasonal growth, temporal interaction system, adaptation to ground coloration with auto vertex painting for variety and best fir to ground and much more

    Also I will include tree samples
     
  43. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    New forest i am working on:


    Grass vertex:


    Vines:


    Rocks, mushrooms, trees and grass with InfiniGRASS batching (tests on 2010 CPU - core 2 duo)


    More performance on trees pics:
    http://i.imgur.com/CJq6ezD.jpg
    http://i.imgur.com/WLhmBdk.jpg
    http://i.imgur.com/wZdQbWf.jpg

    I post some more pics of performance with trees, there is no LOD implemented yet so can be even more optimized. This map is also full of trees with all the detail shown very far away (they dont show well in pics due to fog, they can be previewed in the video below)



    Also the system is great for decals like rocks, mushrooms, vines etc
     
    Pequisto likes this.
  44. mm_ASH

    mm_ASH

    Joined:
    Nov 15, 2013
    Posts:
    358
    Cool, thank you for this screenshots - forest looks beautiful. ;)
     
    nasos_333 likes this.
  45. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    A big thanks for all the reviews so far that have helped move the pack to its current state & with the development of all the extra features !! The 16 written (all perfect 5 star) reviews were also a huge help with the development & progress on the system.

    New offer until the end of February !!!

    Review InfiniGRASS and help the pack move forward and have a chance to win vouchers for Sky Master ULTIMATE, InfiniTREE, Particle Dynamic Magic and Advanced FX Creator !!


    Please post here the name under which the review was given to take part in the offer.

    The winners will be announced at the 1st of March.​
     
    Last edited: Feb 18, 2016
    Pequisto likes this.
  46. _invalidusername

    _invalidusername

    Joined:
    Jul 1, 2014
    Posts:
    35
    Hi I just bought this but I'm having major performance problems in the editor

    Even when I paint a small amount of grass the editor becomes laggy. If I paint anything bigger than around 100x100 the editor becomes unusable. I've tried using the "ungrow in editor" button but I have to use it on such small patches that it makes creating the scene impossible. Also if I test the scene then paint more grass, I'm no longer able to hide the older grass objects and if I select them in the hierarchy Unity crashes

    I bought the asset an hour ago and I've already had Unity crash more than 10 times trying to use it, the CPU constantly going up to 100% usage. Is there any solution for this?

    Unity 5.2.3f
    Mac Pro
    OS X El Capitan 10.11
    3.2 GHz Quad Intel Xeon
    16GB DDR3
    NVIDIA GeForce GT 640 2047MB

     
  47. nasos_333

    nasos_333

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

    I am not sure about the crashes, if there is a very big amount of grass it is best practive to split in multiple Grass Managers and ungrow per region. Each manager can hold lots of grass but when it scales too much it is best to use more and have more control.

    Also there is a Editor View Distance slider that can be set lower, this turns off the further away grass making painting a lot faster, this is another step to increase editor speed.

    Note that the preview distance also dictates where grass can be grown (e.g. not further away where the grass is disabled)

    Also make sure to set the density so grass is not overlapping, the density can have grass overlap a lot of the spread is not high enough, and this can cause issues with performance due to overdraw

    Let me know if these help and i can also Skype in and do some tests for the specific setup

    There is also a system that allows painting in real time (while in play mode) and grab the grass to the editor that is another option for painting.

    And you can Mass Plant grass as well, so you may use painting / erasing after this to refine the grass

    EDIT: I just found a similar issue of CPU utilization with Xeon CPU: http://forum.unity3d.com/threads/unity-games-consume-100-cpu-on-many-titles.380442/

    It seems there is some issue with Xeon, for example my CPU usage in editor when idle is 60% and my CPU is a old core 2 duo.

    I dont have Xeon CPU to test on unfrotunately, but i can Skype in and try to debug this for this particular CPU.
     
    Last edited: Feb 18, 2016
  48. _invalidusername

    _invalidusername

    Joined:
    Jul 1, 2014
    Posts:
    35
    Thanks for the quick reply. Is the ungrow in editor is supposed to hide the grass in the editor but make it visible during play mode? If so, it doesn't seem to be working - http://i.imgur.com/IzOi76C.gifv

    In that video you'll see there are the red flowers which I previously added as a different group, then I add some grass, hit the "ungrow in editor" button and enter playmode but the grass doesn't appear
     
  49. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    I tested with dual grass managers and works ok on my side, can you go to the editor where the grass was (while in play mode) and see if there is colliders there ? Maybe the grass is not drawn due to the LOD cutoff distance or fade distance
     
  50. _invalidusername

    _invalidusername

    Joined:
    Jul 1, 2014
    Posts:
    35
    In play mode the grass batch is moved to 0,0,0 and is just an empty gameobject