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

hello! Comparing with this grass package whats the diference,
http://forum.unity3d.com/threads/directx-11-grass-shader.348258/page-3#post-2269802

They are totally different, as i dont use DX11 and i have total customization and placement control (you can use anything for grass and of course other objects besides grass)

The power of the system is the customization and ease of use of custom interactive and fully changable grass anywhere, it is even possible to paint it in real time on any surface, have it grow etc

Essentially the DX11 grass could work as a sub system in my system, that would allow to use it in massive quantities with the LOD system (if it can be batched, i have not tested it).

I have multiple shaders and grass assets included for various purposes (wind, snow, flowers, wheet etc) as well.

That is the core of the system, i also have a fence creation system etc

The snowed grass in the above pics is actually all painted in real time during gameplay as well.

Epic landscapes with full grass coverage

https://vimeo.com/137503310

your unity package is more dinamic and complex then. Do you also have the ability for the player to step on it, and create a path

I think the demo will showcase best what can be achieved with the system, i will try to upload it tomorrow.

You can indeed step on the grass and it will scale and rotate based on the hero speed. I can also cast balls in the demo and have those open the path. The first update will also bring a moan action that will make the grass fly to the air and vanish, for more epic feeling. If i manage i will sqeeze this action for initial release too.

These are templete actions of course and any kind of action can be coded with the system, as long as it does not keep many grasses open (unbatched) at once or for a long time, that is the only limitation with the dynamic grass.

Another perk is that these actions (after coded) are extremely easy to use, they dont need any extra setup, they just use a collider as trigger and is good to go.

thank you for your reply! I think you got another future happy customer!

1 Like

Great, i am working around the clock to make the release asap, i have been testing the system extensively to regulate best the parameters for real time use, so the demo will act also as a guide for the gameplay use of the system.

Also i will add lots of cool places to paint grass, like paintable rocks and spherical planets, for the complete showcase of what is possible.

Here is another video. The videos have around half the frame rate of what i actually get when not recording, as the recording with Bandicam induces heavy constant frame rate loss, plus they have spikes when i access the inspector, so they are not representative of pefrormance.

https://vimeo.com/137503309

Just to confirm. Is it so that you can use Terrain Composer for placing your grass in the scenes?

The system uses a custom editor to place and control the grass, but the editor is just an interface for the main script that does all the core work, so essentially any system could be used with it.

The core is working by instantiating a single script that creates the grass, so where that script is instantiated in the scene, the grass will be created on that spot.

The only issue is that the editor must pass various parameters to actually take full advantage of the system and customize it (like the surface normal), so while it is definitly possible to instantiate the grass prefab with any program (and it will work in the same performant way in game, with the default parameters in the prefab), for taking advantage of all the features an interface must be made to connect with Terrain Composer.

Ideally if the composer can give a list of where the grass should go (position and maybe normal too), it would be trivial to write a script to populate these places in the editor, so i will see how this could work. If normal is not given, it is also trivial to find it and use it during instantiation.

This is a feature that will come in a later update though, as i have not used TC, so i will need some time to see how this system works.

I had a quick look at TC and from what i gather it uses a texture to define grass placement. InfiniGRASS does not support texture based placement for the initial version (though it is definitly planned for later versions), so if TC does not provide a way to extract its information for grass positioning, it cant be used with InifniGRASS directly.

I will check more extensively later, maybe there is a prefab mode for item distribution which i have not found yet.







Rocks painted with the syste in play mode, the grass/flowers was painted on them

Now i am working on the final demo grass type, named “true medow”, i will post pics soon


Rocks with snowed grass.

One question, should i leave the demo totally free to add lot of density in real time, to showcase what can be painted in editor (since static can be far thicker than real time painted) or limit it to what should be used in real time only (meaning the patch spread and density will be lower and to cover the same region will require lots more cliks for example)

Any suggestions on this are welcome, since adding the top density in real time can create visible spikes and is not meant for real time, so it might give the wrong impression about performance (note that the same grass can be painted in real time with about same final preformance, just with more smaller brushes).

At the very least i will have a not in the demo with what densities to use for real time and which are a preview of editor bruses.

I will post pics of the golden medow and the new vines brush soon.

Rocks with snow added for demo

Vines brush

UPDATE:

I have noticed that some types of grass are rather slow in Unity editor for some reason (maybe because they are not batched). For the slower PCs (like mine) i have also added an export to HDD feature, that can export patches to OBJ files and then they can replace the editor ones (which may be erased).

This also allows the export of the grass painted in real time, so the game itself can be a grass painting editor. That was really needed as i got some amazing results while painting in game, which can now be exported for later use (but will not be part of InfiniGRASS LOD system anymore, though a simple LOD system may be used on them and the shader fade also applies for smooth transitions in the distance).

I posted the demos but my dropbox seems to be down for some reason, i will post again when it is resolved or upload to google drive.

EDIT:
Dropbox seems to be down for everyone, i hope they get it back soon
https://downdetector.com/status/dropbox




InfiniGRASS with Sky Master v3.0 (grass created in real time inside the demo)

First WIP demos of InfiniGRASS released !!!

This is an evaluation version, so any suggestions/comments are more than welcome so i can further perfect the system.

The Sky Master demo is using top quality in everything and multiple image effects for best look, so it is best for stronger machines. Also the grass density and spread i have enabled in both demos are way beyond what should be used for real time, since i want to showcase what brushes can be like in the editor.

The editor side can be rather heavy (as the grass is batched only in play mode and the heaviest grass can cause a slow down in editor mode), but i have a LOD system in the editor to make things easier for the slower machines.

For real time use evaluation you can use smaller brushes (decrease both density and spread to get the same density per brush area, but with less grass placed each time so batching is transparent). A density of 2 min - 3 max is recommended for real time use (or 1-4) and spread of 8-15.

Also note that left mouse will delete grass, so if some grass dissapears without reason, it is because button click erased it. I have an algorithm to eliminate grass blades placed in a wrong collider or spot, so some blades may also seem to dissapear when painting fast in real time.

Both demos are targeting mid-high range PC (Sky Master one especially), as they are already demanding at that resolution on my laptop before even painting any grass !!! Of course my laptop is 5 years old and non gaming one, so latest laptops should be better i suppose.

InfiniGRASS paint grass (and fences-rocks) demo
https://dl.dropboxusercontent.com/u/79230236/INFINIDY/INFINIGRASS/INFINIGRASS_PAINT_DEMO.html

InfiniGRASS demo with Sky Master v3.0 Snow-Water-Sky-Rain
https://dl.dropboxusercontent.com/u/79230236/INFINIDY/INFINIGRASS/INFINIGRASS_SKYMASTER3_DEMO.html

Instructions:
-Paint grass with right mouse button and erase with left.
-Paint fence with right click and stop painting with fence paint toggle button.
-Paint rocks with right button, erase with left. 3rd rock type can be painted on itself !!!
-Press “Interactive on” to plant interactive grass, use for tall grass and use “cast ball” toggle to cast balls on the grass. Use small brushes for best dynamic result.
-The hero can also step on the grass (if balls are not activated)

  • Toggle snow and water (and rain in special FX) in Sky Master demo to see how these extra FX integrate with InfiniGRASS

My PC has a very old CPU and low to mid range GPU, so would be great to see results with some latest machines :). The system is mutlithreaded, so it performs best if no other heavy processes are running in the background/other CPUs.

2 Likes

it definitely looks like an interesting system, would love to see the FPS displayed in the demos.

1 Like

I will create a demo specifically for real time use and add an FPS counter. In these demos the whole system is exposed, so if the full density is selected which is meant for editor use only, there will be spikes, so it would be best to have the frame rate showcased in a demo that is specifically for fps evaluation.

Tweaking the parameters for all grasses and testing will take a bit, so this demo will come later tomorrow.