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,288
    Hi,

    I noticed in the Grass Manager script is that the TData is not grabbed if "Scale per splat map" variable is not active, this is my oversight as the system was first used to scale the grass, so the TData was not used for placement and left this check, so that is the cause of the issue, you can check the "Scale per splat map" in the brush settings and try with this option on (you can use it to scale the grass per splat as well for variety).

    Also i usually test with my demos, where "Scale per splat map" is active, that is why i missed this issue so far.

    The issue where TData is not grabbed if Adapt on terrain is not chosen ("Scale per splat map" in nspector) will be fixed for v1.8
     
  2. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288


    A note on shadows, it seems that a wrong shadow setting can increase draw calls a lot, in the above pics i show shadow settings in the proper close setting (with just 7 draw calls) going to 100 draw calls when shadow distance is very large.

    In the coming v1.8 i will have a shadow manager to help regulate shadows as well
     
    martire, Acissathar and docsavage like this.
  3. KnifeMedia

    KnifeMedia

    Joined:
    Jun 15, 2015
    Posts:
    108
    Hi,

    What's the performance like on this?

    I have a unique situation where I need to be able to have lush, moveable grass from an RTS perspective, without breaking the bank from a performance perspective.

    Imagine this height, with lush grass:



    Obviously other factors must be determined, i.e. model complexity etc. What I want to do is take my created foliage meshes and have them react in a realistic manner.

    I would also like to do detail moss on some trees by painting meshes on top. Much like DICE did in the new Star Wars Battlefront game:



    How performant is your solution?
     
  4. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    I will do some tests for performance at this height and get back. About moss you can paint grass on any model with collider, so is possible, but i cant say if this can be done in many trees due to lots of detail.
     
  5. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288


    Combining InfiniGRASS with Sky Master ULTIMATE volumetric fog (settings for bright misty forest)

    Also i am working on combinations with the new in Sky Master ULTIMATE v3.4 volumetric lighting system, and will post results soon.
     
    recon0303 and Tinjaw like this.
  6. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    InfiniGRASS v1.7.6 is up at the Unity Asset Store

    - Fixed issue where Snow material could create white lines in certain texture arrangements
    - Fixed Daisy3D and Distant forest brush issue where could not be erased in real time
    - Fixed issue where Terrain data (TData) would not be grabbed properly when "Scale per Splat map" option is not selected
    - Fixed issue where the LODs will not work after a Refresh in Editor and have to regrow the grass to make them work. This is no issue when grass is grown in play mode (only when coming from pre-grown grass in editor).
     
    Last edited: Jun 28, 2016
    Tinjaw and docsavage like this.
  7. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288


    InfiniGRASS is in the Unity Stuff picks this week !!! Many thanks to the Unity team for selecting the asset.

    I am now hard at work on InfiniGRASS 2 that will take the system to the next level, supporting muliple new RAM saving modes, automated Grass manager grid - layer creation and population by Unity terrain grass-trees or Mass planting, higher level LOD of Grass Managers in play mode, Grass Manager groups for enabling various growth modes and distances per group (instant grow in start, gradual grow on start, full gradual growth) as needed, new mass erase mode for real time optimized grass removal across multiple Grass Managers, batch instantiation mode for adding density with a single shared batched mesh and much more (plus new brushes like Fern and Unity Trees)

    Please if you like the asset, remember when possible to leave a review and help the asset move forward and with the development of the new features and systems. Every review counts and helps a lot with the development. Thanks in advance for any reviews for the system.
     
    Last edited: Jun 29, 2016
    recon0303, Tinjaw and docsavage like this.
  8. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Tutorial focusing on LOD creation (for first grass type). The steps are also detailed in the video comments.
     
    ftejada likes this.
  9. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288


    Some top down look samples, this is using also the new in v2.0 batch instantiation system for thicker grass with less RAM consumption (increases draw calls a bit).

    The test is in my old 2010 PC (core 2 duo CPU, xbox one level GPU) and has multiple image filters (Unity blur as well, which is rather heavy)

    Also no LODs are used here (i suppose in the top down case with fixed camera LODs may not be used as well, so i use the full grass for better reference)

    In v2.0 there is a system that will automatically assing Grass Managers per area and LOD them at a higher level too for maximizing performance even further (so near areas wont affect the game at all). This can be done already in v1.7.6, but needs a custom script to enable/disable the managers, while in v2.0 will be automatic and have various layers/groups support too.

    Also a Mass Erase feature in real time will be supported in v2.0, with a circle that will mark the erase spot and will have maximium performance (it is done per batch and not per grass patch like the current erase method) and will work across multiple Grass Managers as well.
     
    Last edited: Jun 30, 2016
    KnifeMedia, ftejada and Acissathar like this.
  10. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288


    Menu of the new Global Grass Manager (WIP), where manager groups are created, populated (convert from Unity, Mass place, auto tiling etc methods) and controlled (for higher level LOD, RAM saving modes, growth modes and distances etc)
     
    docsavage likes this.
  11. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288



    A first showcase of Unity trees conversion, saving on draw calls and using next gen effects and customized grass around trees in one go. The grass can be scaled per splat map and also adapt to ground properly (since it is InfiniGRASS combined in a single stroke with the InfiniGRASS tree). The density and reach of grass around the tree is easilly adjustable with the density and spread sliders.

    The performance tests are done on my old PC (2010 CPU, core 2 duo and xbox one level GPU) and using multiple image effects (blur, volumetric fog etc)

    The trees (and grass) can be erased in real time (with the new in v2.0 super optimized erase mode, that works across multiple Grass Managers as well) and has a ready to use in gameplay erase cicle that adapts to ground for best preview of (the adjustable) erase area.

    It is also possible to grow the trees-grass in various modes by simply toggle the mode through the new configurator (all at start, gradual at start, full gradual streaming) and the system also assigns multiple Grass Managers on the terrain and the correspoding trees-grass to each automatically, so these are then automatically LODed at a higher level at run time using a customized cutoff through the new Global Grass Manager module (e.g. when player is very far away the whole manager is turned off with its grass to eliminate any overhead)

    The various Grass Manager groups (that act as layers) can have their own growth properties, LOD radius and other properties all easilly accesible in one place for changing. This allows to do combination like easilly telling the system to grow trees that are visible far away first in full gradual mode and grass in a shorter distance, or grow trees at game start and grass gradually or any combination.
     
    Last edited: Jul 1, 2016
  12. KnifeMedia

    KnifeMedia

    Joined:
    Jun 15, 2015
    Posts:
    108
    Thank you for your detailed rundown. I'll be considering :)
     
  13. nasos_333

    nasos_333

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

    An update on my current work for InfiniGRASS v2.0, that will bring the system to a new level with new modes for copying batched items and pooling, plus a global mananger to create, LOD and manage groups of Grass Managers and assign grass to them with conversion from Unity terrain grass-trees, a tiling system, Mass Placement and other methods.

    InfiniGRASS v2.0 (includes v1.8) features:

    v1.8 CHANGES IN v1.7.6 (Mesh elimination, gradual grow etc)
    - Added option to do mesh elimination even if disable grower is not enabled
    - Added option to disable script in Gradual Growth manager mode
    - Added a delay in elimination of original mesh, to avoid the rare flickering if batched model is not enabled in time to cover the original meshes absense
    - Added global control (for all or per grass type) to enable/disable real time colliders to grass
    - Added feature that disables colliders based on LOD level (LOD level can be user defined as well, default is level two)
    - Added check if grower is enabled and eliminate original disabled for individual patch erase method

    v2.0 features:
    - Global Grass Manager that allow the easy spread and control of grass across Grass Manager grids and conversions from Unity terrain to InfiniGRASS
    - New RAM saving gradual growth at start mode (all grass grows at game start, but gradually ot overcome Unity CG Collect limitation)
    - Multiple layers (Grass Manager groups) each easilly controlled for growth parameters (full gradual, gradual at game start, all grown at game start etc), material update and other features.
    - Conversion of both Unity terrain trees and grass to InfiniGRASS, with automatic split to multiple Grass Managers
    - Higher level LOD of Grass Manager groups-grids for maximizing performance (disabled managers have zero overhead)
    - Mass Erase feature with optimized erase (both in speed as whole batches are erased and RAM as it is properly freed)
    - New batch instantiation mode for copying the batched items around (following the ground) in a random way or pre-defined placement. This mode saves RAM (as meshes are shared) and also decreases initial loading time.
    - Use of the batch instantiation system by feeding it with Unity terrain positions, thus allowing a combination of batched models and copies of batches when converting Unity Grass-Trees.
    - Grass Manager groups creation from auto tiling a source Manager, Unity terrain grass-tree conversion or Mass Placement method.
    - New Streaming possibilities, with full control of layers for streaming radius per layer (e.g. trees layer can be streamed at higher radius than grass, to both have the trees appear further away and spead the streaming work in different frames for lower chance of spikes) and faster streaming with batch instantiation (than creating brush stroke and batch) and pooling of instances (pooling will come in v2.0 or v2.1).
    - Grass pooling (reuse disabled batch instances, in multi grass manager case, disabled batchers will return items to pool)

    Possible v2.0 features (i am working on those, but cant say if will make v2.0 or need further polish and move to v2.1)
    - Shadow manager
    - Global brush manager and brush creator, Unity terrain brush converter to InfiniGRASS

    Beyond v2.0
    - Smooth seasonal changes
    - Grass burn
    - Reconfigurable trees (possibly will also be a separate pack and will be included in InfiniTREE, all reviewers of InfiniGRASS will get this module for free and will work directly with InfiniGRASS batching for performance)
    - Top down rednderer for various effects like vertex colorartion from Unity terrain texture etc
    - Bake vertex info during batching to have 100% compatibility with SpeedTree
     
    recon0303, Tinjaw and ftejada like this.
  14. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Grass burn feature, burn areas selectively (grass may dissapear or leave black remains) - WIP




    New pure Unity 5 Deferred mode shaders, plus snow on vertex grass (first version - WIP for v2.1)




    New Mass plant interface, with icon based assignment of InfiniGRASS items to splat maps, plus the new Grass and Tree conversion of Unity terrain to InfiniGRASS, also icon based



    UPDATE:


    v2.0 development is progressing and most of the interface is now done and is under tweaking. The new icons system that plants InfiniGRASS brushes in Unity terrain grass-trees and splat maps is finilized and supports selective assignment of all the Unity terrain properties for conversion and planting with InfiniGRASS.

    A grass burn feature has also been implemented and is enhanced/tweaked, i am not sure yet whether will be a v2.0 feature or will come in v2.1, depends on the polish that will be required to get the desired effect and the number of extar features i will have to implement to make it as impressive as possible (e.g. optimized fire particle FX - a first version is also added - etc).

    I have also created a first version of a pure Deferred (Unity 5) version of the shaders, that will come in v2.1 of the system, and this early version is available for anyone that is interested in google drive download. The vertex variety in the new shaders also supports gradual snow growth.

    If you like the asset, please remember when possible to leave a review for the system to help with the ongoing development and with bringing the massive v2.0 update as fast as possible.
     
    Last edited: Jul 16, 2016
    recon0303, ftejada, docsavage and 2 others like this.
  15. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288



    InfiniGRASS v2.0

    Next generation forest and grass (full shadows, special shaders, interactivity including local wind, grass-tree erase and burn), with pooling to enable endless worlds with reuse of assets.

    v2.0 of the system will have multiple features to control RAM usage and reduce memory consumption, pooling is the ultimate method that allows the reuse of assets, thus can enable vast open worlds with very fast streaming and next generation visuals due to the combination with batching.

    The ratio of batched vs batch copied - streamed and pooled items is fully used controllable, for the best adapation per case and multiple layers of grass each with its own growth and batch - pooling - streaming parameters is possible for total control.
     
    ftejada likes this.
  16. docsavage

    docsavage

    Joined:
    Jun 20, 2014
    Posts:
    1,020

    Looking very nice nasos_333. Great product.
     
    nasos_333 likes this.
  17. nasos_333

    nasos_333

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

    v2.0 will take the system a big step ahead with the introduction of the new Global Management system module, which will help further in having true next gen grass with great performance and also fully controllable memory consumption.

    Also i plan to introduce some features with splines in v2.0 or later in v2.x cycle.

    Since there is so much planned for this new version, the new module (Global Manager) and a very big number of complex bonus features (like grass removal, burn, seasonal effects, splines, terrain features etc) it is TBD to bring it as an update to the current pack or as a separate pack (InfiniGRASS ULTIMATE) that will better reflect its new features (as now some of the reviews dont reflect well the new ways to handle RAM for example).

    In either case the price of update will be kept minimal (i think a $65 price for the ULTIMATE version for example, so would be a $5 upgrade from the current asset at release, then the ULTIMATE will go to a bigger price after a few months and all features are in like splines etc).
     
  18. toxtronyx

    toxtronyx

    Joined:
    Aug 21, 2014
    Posts:
    114
    Very interesting videos. Are they placed on standard terrain, or some sort of custom solution?
     
    nasos_333 likes this.
  19. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    These are on Unity terrain, the system though can do any kind of terrain (mesh of any shape). Also can be programmed for full procedural (no pre-placement), this is a feature i also want to automate at some point for v2.x cycle.

    In v2.0 i also have a converter from Unity terrain grass and trees to InfiniGRASS ones, so everything from GAIA, TC2 or other terrain solutions can be converted automatically, plus the system also auto creates a grid of managers and LODs them based on player, to eliminate any overhead. The grid is fully customizable and can be created along any number of Unity terrains (also grass can be further painted and edited per manager as in the current version if needed).

    The managers in the grid can also be populated with Mass Placement based on splat map and with a tiling system i have devised from a single source manager (that has the settings and brushes), besides the conversion of Unity terrain items.

    All these can also be combined and separated in layers for controlling sepratly each layers growth (e.g. pooling, streaming, gradual growth at game start etc modes) and LOD them in individual ranges (e.g. disable managers with trees further away than grass, since trees can be further away visible etc)

    The features like grass removal, burn etc are also done across all grid managers in all layers.
     
    toxtronyx and ftejada like this.
  20. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Hi everyone,

    I will be leaving on vocation for next week, so while i will try to see to any issues that come up, i will probably be limited in this, so i will try to check as often as possible.

    I have also finished with a Pre-Beta version of InfiniGRASS 2.0 (that has some of ULTIMATE edition items as well) and is available to all users that want to try it, with the note that the v2.0 Beta is still not ready and there is a lot of front end additions to be made for usuability and some modes and conversions are not yet finilized fully (e.g. Unity grass is converted, but the density is not yet optimal and must be controlled with a downscale factor, which could be extended with various other controls to decide the exact conversion density and options).

    The core though works and is stable (new batch instantiation, pooling etc), so you can start doing Unity terrain conversions and use the new erase, burn systems, plus create manager groups and control growth modes etc

    Let me know with a PM and the invoice and i can send the Pre-Beta in Google Drive link. Also i recommend using the Pre-Beta on a copy of the project, just in case or at least make a backup of the InfiniGRASS related scenes.
     
    docsavage likes this.
  21. nasos_333

    nasos_333

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

    InfiniGRASS new burn feature has now got an option to radially burn the grass based on the point of initial impact (or bomb or fire). This will offer a more realistic spread approach and will be the default mode. The particles will also follow a similar radial pattern for each grass section that gets burned.

    I will post a video of the effect and the latest particle fire FX soon.
     
    ftejada and recon0303 like this.
  22. Selmar

    Selmar

    Joined:
    Sep 13, 2011
    Posts:
    57
    Hi! Awesome tool so far.

    We're interested in painting foliage on meshes and save them as a prefab, for example a cliff. Preferably, we'd be able to save the painted foliage separate from the cliff and assign different ones to different instances of the same cliff prefab.

    Is there a way we can achieve this already? Scripting is not a big problem, but less is better.

    Did I understand correctly that we can use several grass managers in one scene? How does this impact performance?
     
  23. Selmar

    Selmar

    Joined:
    Sep 13, 2011
    Posts:
    57
    Sorry, another issue I have is that I can not manage to paint on my own mesh right now. There's a mesh collider on it and it has the PPaint tag. 'Paint on "PPaint' tagged objects" is enabled, too. Did I forget something?
     
  24. Selmar

    Selmar

    Joined:
    Sep 13, 2011
    Posts:
    57
    And a third question, mostly out of curiosity! :D

    Is it possible to make the LODs work based on size on screen?
     
  25. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    You can prefab a manager and its grass along the object it has been painted on, making sure to choose the parent to object modes so you have all parented to the prefab terrain for example.

    This can then be instantiated in the scene as many times as needed. In v2.0 i have a LOD for managers as well (created from grid, conversion of Unity terrain and custom ones), so can have zero impact in performance. If many will be active at once, then i have options to remove material update for all but one, this will further enchance performance.

    When bringing grass in the scene can be an issue if all is grown at once, so you can ungrow before prefab is made and choose one of the gradual growth modes, so essentially can go in the scene with zero grass and performance hit. This is further enchanced with batch instantiation usage in v2.0 (as copying the batched items is much faster than creating new bacthed items or open and close batch groups)

    On the painting, seems everything is ok, there is one more parameter that may influence this though, the raycast distance (in brush settings, Paint distances section). This is user adjustable, and is the distance along the hit point normal vector from which the raycast will start. If the object scale is smaller than my demo or the shape is irregular, try to lower this raycast distance so it does not stop at other objects or paint on the same object but in the wrong place. The default is 10 meters, which may be too big for smaller items.

    Can you paint in my demo scene, also are you painting in real time or editor ? Also you paint with the Right Mouse Button and must have enabled the "Paint Grass" button in the end of the script, to access painting and brush settings, for each brush.

    Check also the "view editor distance" to be higher, in case this prohibits the grass creation and check whether you can paint on a simple object (e.g. a box).

    This is not supported, but LOD distance can be changed on the fly if needed with extra coding, though this is untested and could break the batching if not done properly (or at the right way), so while it is trivial to program i would test it thoroughly (if batching breaks, you may get hangs as the draw calls can skyrocket to 50000 from 500 for example)

    If the screen size is not dynamic though (so LODs will be changed before grass creation at Start()), it should be rather safe to iterate the growers and set any LOD distances based on an initial sceen size. The grower scripts can be directly accessed from the Grass Manager grasses list.
     
    Last edited: Jul 29, 2016
  26. Selmar

    Selmar

    Joined:
    Sep 13, 2011
    Posts:
    57
    So a manager per prefab, that works for us! LODs for managers sounds really good, too! We have a rather big open world, so we'll make good use of that.

    I'm really impressed with what you've made so far. I was afraid I'd have to make my own tools, I found yours just in time! The only thing you could improve upon is the UI and maybe some minor things in the workflows, but this is not even a big deal. Keep up the awesome work! :D

    As for the painting, I'm painting in the editor. I can paint on the terrain around the object, just not the object itself. I will try the demo scene on monday.

    I asked about the screen-size based LODs because we'll have a zoom-function in the game (similar to a sniper scope), in which case the player isn't getting closer, it's just the field of view that changes. I would expect changing the distance LODs at run-time for this use-case to be a risky solution, like you say. I guess implementing the screen-size LODs would require us to rework the LOD system? It's only a nice to have, though.
     
  27. nasos_333

    nasos_333

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

    About a huge world, this is what i am currently working on to support for v2.0.

    The issue with the current system is that each batch creates its own mesh and depending on world size the memory can be filled fast and create stability issues, especially since i support any item and not just simple grass.

    So in v2.0 i have come up with two extra modes, one is that when painting a brush and is batched, you can then copy this created batch randomly (or in preset spots passed through script) around the map, with mesh sharing so reduces RAM usuage exponentially.

    Now i am working on ways to automate the distribution and conversion of Unity terrain trees-grass to InfiniGRASS using a balance between batched and instanced items and also support pooling so items dont have to be instanced afeter a point and are drawn from a pool.

    These will help further when vast worlds are needed with the system. v2.0 also has a management system with the mentioned LOD in managers (with layers for LODs of various distances for various groups of grass) and there is a sample for tiled worlds where you can paint a single tile and then copy it around at run time (with gradual grow mode).

    All streaming modes will also be further enchanced in performance with the new instantiation system

    The downside of instantiation is that you get larger draw call count (still exponstially lower than the unbatched models but a bit higher than full batching), so LODs will have to be employed in a more strict way. In v5.4 Unity introduces GPU instancing, which is also something that could be used (in DX11 level systems) to reduce the batch instances draw calls to minimum, thus give another boost to huge worlds.

    In all cases the user will be able to fine tune and balance the world vastness VS performance VS next gen looks and grass detail for the needed case and this is what i am working on now to perfect and give it in an easy to setup global configurator module.

    About the problem in painting, if all else fail, you could send me the offending object to see what could be the possible cause.
     
    docsavage likes this.
  28. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288


    A first stress test of the new v2.0 system

    50 next gen trees and grass like the trees-grass combo in the above video (two batched, 48 instance copies) per tile, 100 x 100 tiles = 50x10.000 = 500.000 trees and 500.000 grass patches

    This arrangment has a 1.2GB RAM footprint for all trees-grass (no deletions) and using pooling.

    The trees-grass are all streamed and the streaming is also super fluid and fast comparing to the full batching (without instance copies) of v1.x system. Each tile can be pre-defined or instantiated on the fly with its Grass Manager.

    I will post a video with the streaming soon

    EDIT: I will now export a demo for testing without Unity ovehead. Also i noticed that besides the main ram there is also an increase in the swap file, i dont know which is Unity's and what is the scene's, so i will create a more detailed usuage report by looking at the standalone demo and post more details asap.
     
    Last edited: Jul 31, 2016
    docsavage, pixelsteam and moure like this.
  29. ftejada

    ftejada

    Joined:
    Jul 1, 2015
    Posts:
    695
    I'm looking forward to version 2.0 is available as soon as possible. I really want to

    regards
     
  30. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    I am working around the clock to make it happen as soon as possible :). The base of all system is 100% stable and done (full pooling was the last major system that was finilized early this week) and i now focus on details for best adaptation to ground and the front end, GUI and usuability.

    These are rather hard to get perfected though due to the very big amount of new options and range of possibilities, so i want to make sure the v2.0 is perfect before going to store, thus i work now towards a Beta version that all asset supporters can try and give feedback and the plan is to release the final version within September.

    The Beta is planned for the last week of August and i am working on it full force now.
     
    ftejada likes this.
  31. ftejada

    ftejada

    Joined:
    Jul 1, 2015
    Posts:
    695
    For when this beta alerts to download and test...

    I am having problems with the grass when drawn in the terrain. So far I have tried some grass but I'll go testing them all to see which ones are giving problems and which are not.

    Watch these two videos, the first it fixed by modifying the alphaCutoff the material. But in the second video that is not fixed
    I've tried things like checking if it was the effects of camera but removing them is not fixed

    The videos:





    Concerning the grass is not positioned well the terrain watch this video that just made in a terrain made TerrainComposer2:



    There is much grass left in the floating. I guess that is what you mean, right?

    regards
     
  32. nasos_333

    nasos_333

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

    The grass brush can indeed be floating if the size is very big and the placement is in a rough terrain, depending on the brush shaping. For example this wont happen at all when your brush is for example a single tree or a tight batch of grass blades, but larger blades can go off land, so need to have carefull placement.

    In v2.0 this is an issue when copying around batched items too, in this case i have various checks that determine whether a brush is proper for copying and also checks the copies are placed well or are not placed.

    The brush shown can be used for rough ground as long as it is scaled smaller so the distance to ground wont show or be covered by near brushes. If you need a larger scale the best practice is to make a smaller brush (e.g. smaller quads and not as stretched) and increase density a bit to make it thicker (or reduce spread with same density)

    About the shader issue, i cant replicate it, is perhaps a special filter used in the camera, e.g. an occlusion image effect etc ?
     
    Last edited: Aug 19, 2016
  33. ftejada

    ftejada

    Joined:
    Jul 1, 2015
    Posts:
    695
    It is the first thing I thought, but I tried to disable all effects of image I had in the camera and the problem is not fix ...

    If you look at the last video, the Directional wind ROOF get fix by changing the value of alpha cutoff, but on the other grass (VertexGrassSpecCurveWind) is not fixed ...

    regards
     
  34. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Is the issue happening in the demo scenes also ? Some image effects may create the issue even when disabled. I had the same problem reported specifically with SSAO Pro, so i have made some replacement shaders that support it and i could send it if this may be the problem.

    The other issue is that if i cant replicate the problem is very hard to fix, so would be great if you could inform me of the image effects attached to camera for example to get an idea of what might cause the problem. And what shader is used for the skybox, plus the camera render mode (deferred, forward etc)

    Also what version of InfiniGRASS and Unity are used ?
     
  35. ftejada

    ftejada

    Joined:
    Jul 1, 2015
    Posts:
    695
    Hi

    You are right. The problem is the Ambient Occlusion of the asset "Cinematic" Unity, not the SSAO.

    Also they correct the problem the same shaders you did for SSAO or need to do some new ??

    edit mensage: Testing, I have found that if the "Occlusion Source" parameter of "Ambient Occlusion" I set it up to "G Buffer", the problem is fixed.
    regards
     
    Last edited: Aug 21, 2016
  36. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Great, let me know if there is any other issue
     
  37. ftejada

    ftejada

    Joined:
    Jul 1, 2015
    Posts:
    695
    Only if the shader you made to fix the problem of SSAO serves to fix the problem in the AO Cinematic effects

    regards
     
  38. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    The shader serves a general purpose, it makes the grass shader fully working on the new Unity 5 deferred mode, this solves the SSAO Pro issues, so my guess is that will solve the AO effects issue. I will also test the new cinematic effects and get back on this.
     
  39. nasos_333

    nasos_333

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

    A few news on the v2.0 Beta:


    The Beta was extended with much new functionality, one thing was the creation of a full procedural mode and a procedural terrain generation module (this is for demo purposes and may or not be in the asset) that showcases how the grass is planted on a real time generated terrain on the fly and then streamed.

    The issues i discovered during the full automated planting mode called for various new planting methods and controls, like an out of planting plane elimination of grass blades so the pooling of the items can be both easier and happen with higher frequency.

    These controls can also be used when planting grass manually, so are globally useful besides the streaming and full procedural planting.

    Also there are various extra controls that need to go in for the pooling of composite and with custom rotation brushes, so extra work is needed to cover all possible cases of planted items.

    Since the system got so much new functionalty than i initially had planned (but essential to showcase and realize its full potential) the Beta will be delayed into September than the late August planned, to make sure all option tie perfectly together and are as optimized and easy to use as possible. I will try my best for first week of September to have a fully polished and easy to use version, the release is still planned for late September (since the Beta will be in a much more advanced state)
     
    docsavage and ftejada like this.
  40. ftejada

    ftejada

    Joined:
    Jul 1, 2015
    Posts:
    695
    Hi
    I think this should be for the asset

    regards
     
  41. Lohrion

    Lohrion

    Joined:
    Aug 16, 2013
    Posts:
    107
    Does this mean integration with Gaia could be just around the corner?
     
  42. docsavage

    docsavage

    Joined:
    Jun 20, 2014
    Posts:
    1,020
    Sounds good.
     
    nasos_333 likes this.
  43. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Depending on the v2.0 system reception, i may include the terrain system and full procedural module in the system in v2.x cycle, so it is still TBD. They were done to showcase the new streaming and pooling modes (the procedural Terrain module is from another asset i am working on), so will take a bit to polish them and provide all options so they are at production level, which can happen in v2.x cycle.

    Note that the way the system is structured, most of the full procedural backend functionality is included in v2.0, what the demo system does is create the terrain on the fly and then pass it to v2.0 Global Manager module and then this does the mass planting and the core of the system takes care of the rest (bathing, pooling, batch copies, placement etc).

    Currently the Global Manager takes a brush type per splat map as plant rule and a scaling factor per splat map (weighted), plus height and slope restrictions. The full plan for v2.x cycle is to assign multiple brushes with height and slope controls per brush, so there is more versatility and control over the full procedural implementation. Also finer control over the balance between batched items - batch copies and pooled items and their placement.

    Integrating with GAIA at this point should be easier indeed, depending on needed functionality.

    For example the Unity terrain grass and trees conversion is now working (needs only to refine the method the batched items and batch copies new system items are distributed - balanced), so a terrrain created with any tool that has grass-trees ditributed can be converted to InfiniGRASS types, with automatic split to layers and growth at game start or streaming.

    The full procuderal mode is rather different than the above, since it does not require grass-tree information at all and spreads grass-trees in full real time based on rules (e.g splat map, height, slope etc) then batches, copies and pools (and retreives from pool) grass and trees as the player moves around. This is essential when the terrain is created on the fly (the demo i am working on now has a sample of terrain created in play time, planted and then grass-trees streamed, all with minimal memory footprint using pooling as much as possible)

    The full procedural demo that will come soon, will showcase an infinite world possibilities of the new system. I am now working on the GUI and options for the demo (e.g. grass density, terrain detail etc options for the on the fly creation)
     
    Last edited: Aug 26, 2016
    ftejada likes this.
  44. Deleted User

    Deleted User

    Guest

    Do the tree batching come with this tool or do I need to buy something separate?
     
  45. Slaghton

    Slaghton

    Joined:
    Sep 9, 2013
    Posts:
    139
    Is there a demo without vsync enabled? I'm trying to gauge what kind of fps i would get in my vr project but seems the grass demo's are capped at 60 fps.
     
  46. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    The batching is the core and the major perk of the system, since it allows a lot of detail with far less draw calls. Also it is multithreaded, so it benefits from multiple cores.

    In the coming v2.0 there will be more options for balancing batching and the new in v2.0 batch instantiation system (for sharing the same mesh) and also pooling for reducing the memory and GC collection footprint and allowing vast open worlds and smooth streaming.
     
    docsavage likes this.
  47. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    I am not sure what i had enabled for the demo, probably i had just left the default. I will check and export my next demo (for v2.0) with Vsynch off. Also let me know if you would be interested in the v1.7 demo with Vsynch off as well.
     
    Slaghton likes this.
  48. Slaghton

    Slaghton

    Joined:
    Sep 9, 2013
    Posts:
    139
    Thanks a lot nasos! I wouldn't mind either one so whichever is more convenient for you =).
     
  49. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Ok, i will create the coming soon procedural demo with Vsync off as start.
     
    Slaghton likes this.
  50. nasos_333

    nasos_333

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

    A few updates of v2.0 progress

    - The terrain generator sample system is now multithreaded, thus the grass creation performance can be seen more clearly (as terrain before multithreading caused some spikes on map edges approach). Now the demo is super smooth at all times, even on my old 2010 PC.

    - The terrain generation - planting and growing are now fully separated processes and each will be multithreaded and optimized (WIP - e.g. planting at a radial manner when further terrains are constructed). Optimization is constantly happening as the system development progresses and extra needs and possibilites arise.

    - An impostor system is being created (WIP) to display the further away trees and grass as needed. Initially will be based on a particle system (though this is TBD as the system development progresses)

    - A system to render the tree prefabs for billboarding and for sprite sheet creation is adapted specifically for the system (WIP - i took the base from my Toon Effects Maker asset that has animation to spritesheet rendering abilities and adding various extra features like multithreading for the only rendering of billboards if needed, sheet creation for optimized particle based display etc, some of these features may come in v2.x cycle than v2.0 though, v2.0 will have the base render to texture ability which will support the base functionality of the Impostors system)