A Unity ID allows you to buy and/or subscribe to Unity products and services, shop in the Asset Store and participate
in the Unity community.
Discussion in 'Assets and Asset Store' started by nasos_333, Sep 1, 2015.
That sounds cool thanks!
Gradual snow growth - InfiniGRASS & Sky Master ULTIMATE combination
This is a summary of what is planned for v1.8 (and beyond)
v1.8 and beyond planned features:
- Auto Reconfigurable brushes (for endless variety with a single brush)
- Procedural grass and rocks shaping, for endless variety in mesh shaping with a single source mesh
- Full procedural growth mode based on rules (no need to paint beforehand on editor)
- Streaming sample scene with multiple real time instantiated Grass Managers (already done and is in refinement stage)
- Smooth Seasonal growth & further integration with Sky Master ULTIMATE
- Grass burn
- Tiling system
- Conversion of Unity terrain grass - trees to InfiniGRASS
- More Shadow regulation options and shadow manager
- Add fade between lod distances (TBD)
- Bake grass map from top camera view (already implemented in one of my other packs, need adapt to InfiniGRASS)
- Assign vertex color based on camera top view texture color (to cover all cases and Unity terrain, currently vertex color based on ground is using raycast to a textured ground with a readable texture)
InfiniGRASS v1.7.5 Demo painting pics
Round planets and detailed forests (InfiniGRASS v1.7.5). No LODs or any extra optimization has gone in yet, performance on my old 2010 PC (core 2 duo), wiht multiple image effects, Anti Aliasing and water.
Volumetric fog and water from Sky Master ULTIMATE.
One note on the PPaint tag used for painting on meshes. This tag may be added automatically temporarily if one of my scenes is loaded, but it will probably not work properly this way.
The proper way to define tags is by the Layers pull down menu, in Tags section, the "PPaint" tag must be defined for the project so it is always available when needed.
Detailed forests (InfiniGRASS v1.7.5). No LODs or any extra optimization has gone in yet, performance on my old 2010 PC (core 2 duo), wiht multiple image effects, Anti Aliasing and water.
Volumetric fog and water from Sky Master ULTIMATE.
InfiniGRASS is now -33% off on Unity Madness Sale !!!!!
First off really nice plugin, purchased it a few weeks ago. Although it really needs a long time to completely understand how to setup things properly, especially when creating your own grass.
However I recently ran into a super annoying problem and can't find any solve for it.
I created my own grass (using the provided grass samples and changed textures etc.). But when I use it with the "Forward" Rendering Path in Unity it shows those white borders/artifacts (see screenshots). When I switch to "Legacy Deferred" it mostly disappears, but there are still a few white spots left.
What also reduces them a little is to set the wrap mode for the texture to "Clamp" instead of "Repeat". However even doing that it still leaves white spots! In a night scenario this is super annoying.
Also I double checked the textures and they are fine, there are no pixel borders or anything left.
Really hope that someone here can help me fix that, since I do want to use the Forward rendering path.
Thanks so much!
The texture is best to be set to clamp indeed, so this is one option to use. Also there is an Alpha Cutoff slider in the shader (material) that can be adjusted to lower the edge effect, try this as well which may reduce the effect.
With clamp on, it is also possible to eliminate the effect if it is cause by the texture edge, by adjusting the texture offset slightly so the white part moves up (and since it is clamped, wont repeat) in Diffuse - Offset - Y variable in the material.
Another way to reduce artifacts is by using anti alising.
I cannot reproduce this on my base brush (attached pic above), so it is probably due to using a custom one, from my experience sometimes a white border exists even if not clearly visible when you preview the image (the clamp + offset trick can solve this without moving to image software as well)
Let me know if the above helped and i will check further into it.
It seems all my demos are disabled by Dropbox, due to bandwidth limitations. I will try to contact Dropbox and restore functionality as soon as possible and if all else fail i will upload Windows version of the demos as standalones for download though Google Drive.
Please excuse the inconvinience.
Thanks for the quick reply!
Unfortunately it only solves the problem in parts, but not entirely. I discovered the Alpha cutoff slider before already and it reduces the white spots a little. But I have to cut off the textures so much that it looks absolutely horrible and the texture itself is barely visible anymore. So this is not an option.
I also played with the offset settings, which feels very odd because when I reduce the value here to let's say -0.1 it gets less but if I change it a little more to sth like -0.11 it gets more again which doesn't make any sense.
It's weird since some grass has not any white spots while others have hundreds of these. My guess is it has to do how the textures are positioned or how the alpha mask of the textures touches the borders somehow, since I replaced your textures with my custom made ones.
What is totally weird is that when switching to legacy deferred rendering path it nearly reduces all of the white spots..
But also this is not an option since I want to use forward rendering.
Do you think I could send you the file via email link and you have a look? Because as of now I can't really use it with those white highlights for my project in a night environment and I am unfortunately clueless how to tweak it.
Again thanks so much!
I played around a bit and it really seems it has to do with the way the graphics are layed out within the textures. However I still don't understand it. For instance using my original texture (1, attached) it creates those white spots on top of the plane that holds the texture. When I scale the texture down to about 1/4 of the size while keeping the file size (2, attached) the white spots go away. However this is not a good solve at all since I only use 1/4 of my textures now. Really clueless. Is that a Unity bug?
Just one thought: could it be that it has to do with the amount of details in the textures? Meaning how detailed the outline of the graphics/alpha channel is? The more details the more white artifcats?
UPDATE: What solves it is turning off anti aliasing completely, which however is not so cool, since I want to use anti aliasing.
You may send me the textures to i see the issue first hand and i will try to solve it asap, my email is email@example.com. I did not experience this with my textures, so if i have the offending textures i can debug it much easier.
EDIT: Are the textures above indicative of the issue, maybe i could use those ?
The above texture (left, 1) is the one that causes the artifacts, yes. I think I just used one of your grass prefabs (non vertex) with square planes that hold the textures. Please make sure to have a dark/night environment. The artifacts are only visible during movement of the grass though. I'll send you a bundle in a sec via email as well.
Just send you an email.
I have just sent an email with a possible fix. Let me know if it works.
Thanks for your efforts! Unfortunately the problem is still there. I sent you an email with some more details. My guess is that it is a shader problem within Unity. Really hope to solve this soon.
I will check it more for this case.
Since the set to "Alpha is Transparency" solved the white artifacts issue when i used the grass texture on my grass quads, i suggest it as a first solution if there is white noise, for everyone that experiences such.
I will also add up more info on this after i test more on the case.
Have you tried your texture with the Alpha trick in my first grass type ? (one with quads), perhaps it is the mesh model that causes the problem is one guess, as i did not see any artifacts after that, so it is worth checking out as a next step.
I'm having problems when running my scene.
When I run the scene from the editor (from the same scene) the grass looks fine, but when I run my menu editor from the scene and from there start game scene, the grass is red. As if I did not have the material or texture. Upload a photo...
Another problem that happens to me is that there are large increases in RAM by the grass. Not if I'm wrong but I'm setting it consumes 10 to 15 Gb more than without the grass ... and fps are between 0 ~ 5.
What am I doing wrong? Why these serious performance problems?
It is not an excessively large terrain (500x500). Upload other photo...
My version of Unity is 5.3.4p1
Hi, this seems strange. For RAM try to use the eliminate original mesh mode (near the end of paint options, you can also apply it to existing grass by the button). This makes a big difference in RAM consumption.
Also make sure the LOD and cutoff use is in a reasonable distance to reduce polygon counts.
It would be good to also have the data from the Unity "Stats" window to tell whether there is a batching problem, the batches should be very low, e.g. 500-600 or 1000 at most, so if there fps is low make sure that batches are not much more
Also make sure to use the new v1.7.5 for best results
About the red, i cannot say, i have not come across similar issue, so for this try as first step to see if the grass works as supposed in my demos and then check if an image effect or corrupt upon import texture may be causing this. Or maybe if a material is affected when using the menu mode (e.g. looses the texture for some reason), you can see this in the material preview in inspector.
Also i can Skype in to try and solve/debug such strange/special cases, if nothing else works.
One other question, when you run the grass from the editor and works ok with proper texture, is the frame rate better ? Also please check if the performance in my demos is as supposed or it is also bad there. I want to see if the same reason that makes the grass red also breaks the optimizer somehow and causes both problems.
Note that if the optimizer breaks in game, the game can go as low as 1-2 fps, the optimizer is making the magic to make the grass super fast, so this must work 100% to get the proper result and is the first thing we will look at to try and see if has an issue for some reason.
Let me know if any of the above address the issue and for further help and more details
A sample brush for SpeedTree is also available for download on PM request for everyone interested, for InfiniGRASS v1.7.5.
A new circular wind brush has been added for direct download for everyone interested, on PM request.
It is the test brush i used for my intitial work on the system, shown in the video below
This brush has the extra perk that can be used with full texture (without transparency) for extra performance (it is made from thin blade meshes vs the wide meshes of v1.7 brush)
Does anyone know if there's a way to switch the interaction for grass painting so that the camera doesn't move whenever painting? Since right click is used to paint and that's the same hotkey in unity to change camera orientation - I always end up moving my view when painting.
If while holding the right mouse button down, also click the left once (not leaving the right unpressed at any moment), the camera will temporarily lock while dragging the right. The lock will stop as soon as the right is unpressed.
The step are
1. press right and place your first grass patch and dont leave the right (keep pressing, no more grass will be created before dragging)
2. Press left button once and unpress (like left click) to lock the camera (right mouse must always be pressed during this)
3. drag the right (always pressed down) to paint with the locked camera and repeat when need a new starting point
This works in Unity v5.3.2f1 i test and develop with, i will check for v5.4 too
EDIT: I have verified this works in Unity v5.4 as well.
I will post a video too soon
Here is a video guide also, showing the effect
I had a request about the effect shown in the below gif, this effect is already possible in the asset by replacing the current local player interaction shader with the new circular wind shader. The vector4 in the material end controls the amplitude, frequency and tangential force of the effect.
The grass shown in the gif is the first grass type using the circular wind shader
A new circular wind brush has also been added for direct download for everyone interested, on PM request. This brush has a thinner grass blade and can be used in vertx mode (e.g. put Alpha Cutoff to zero) for extra performance if needed.
More gifs for reference:
We purchased this asset yesterday and have been having some difficulties with it. The interface is not exactly intuitive. I have been reading over the manual again and again, and watching the videos that are available and am not quite sure where I am screwing up yet. Maybe someone can help nail down what is going wrong with our setup. So far I am using almost completely stock setups and modeling my changes after the demos so as to compare the performance.
To give some background, we are trying to place the trees on islands. Our actual game uses 40 approx 500x500 tiles with land comprising about 30-35% of the tiles on average. We don't need the trees to be interactive or move with the wind (think like a strategy game). For some reason, when trying to use the mass placement one one section of one tile (which works, but is terribly slow) with around a 200 x 100 area it can take several minutes to mass place. I can literally place them by hand faster.
The real killer is when trying to run the scene. I have a single grass manager with around 13 placed tree groups on a single tile in an area of around 50 x 100 and when I hit play it can take 4-5 minutes for Unity to start playing. Previously it took 6-8 seconds. If I remove all of the Infinigrass items from the scene, back to fast loads again. So, I have redone the process several times and tried to get the thick trees that we need for the level and so far if I do that the editor moves to a crawl and it nearly stops production. At best if I only place 5 or 6 objects with nowhere near the tree density we need I can get the player to start in less than a minute. It can take around the same time for the play mode to return to edit mode as well. So, what is the 'proper' way to place carpet like trees on a scene without killing the load times?
Now, for the second issue. We are using UNET and when we add in a few trees we get this spike when we get near them. It seems like we should be able to not use colliders at all on the trees as we won't be interacting with them but cannot get this to stop at runtime. We have the tree objects set for no colliders at runtime and that doesn't seem to help.
So, in short, I am doing something (multiple things likely) wrong but cannot see what from the documentation or videos. I have 40 tiles to put these trees on and so far they are causing it to come to a halt instead of speeding it up. Previously I was using simple billboard Unity trees (around 400k of them) and had very little problem but in order to get the coverage we want we would need several million trees total which is why we got Infinigrass. Any thoughts?
InfiniGRASS offers the choice between local optimization vs loading time vs streaming, when such tree number is needed.
The trade off is to choose whether the trees will be created in real time vs load all at game start vs load at game loading scenes. For one million trees, streaming is probably the way to go as loading that number at once would be an issue if there is no clear in game pause sceens when loading the extra tiles.
The approach for streaming is to create a Grass Manager for each tile and create the trees, then ungrow and enable gradual grow mode (plus the option to eliminate the original meshes when batcher is full to save on RAM)
Having multiple Grass Managers also help when in editor, e.g grow the grass, ungrow it and then have zero overhead for handling the scene. It is also best practice to disable the uneeded far away managers along their grass and terrain tiles for example.
This approach will require a carefull placement of trees, so the density is not too big and create spikes upon generation (depending on the machine used and cores, the system is multithreaded as well), plus setting of the static batch group member (Max static group memebers) count to 2-3 instead of 9 the default, so the batches are created faster and reduce possible spiking.
You can refer to the tutorial video #4 for the procedural mode setup
About tree colliders, the trees since they have volume have an extra collider attached for this (these are not the paint related colliders that are enabed/disabled by the toggle colliders button in the Inspector). You can remove this extra collider on the prefab if not needed or script it to be enabled/disabled with any rules.
The pine tree prefab is the "InfiniGRASS/Version 1.5/Prefabs/Pine/Grass Blade Bark 4 VINES 1 Pine Tree" one, it includes an item named "Gameobject" where there is an active collider, this is causing the issue and this collider can be removed as there is no tie to the rest of the system.
Another note, i have done several tests and the texture import on trees make a difference in performance, e.g. Billinear vs Trillinear, so this is another thing to consider when using the trees. Also if multipel managers with same brushes (and materials) will be used at the same time in the scene, then i have a "Update Materials" checkbox, to disable the material update by the managers (since one is enough ti update the materials)
More demos and a higher level configurator for the multi grass manager and streaming cases is coming soon in v1.8, with a real time tree filled tile creation sample case. (i can also send the sample WIP right away to see the setup for reference, since it is already working)
Let me know for further questions
Thanks for the info.
So the good news first. Removing the collider from the prefab seems to stop the issue with the collider check spiking in profiler. I was using grass #29 so it was a different prefab, but only took a second to dig up through the grass prefab.
Bad news, I may have to wait for the fully procedural/streamed version. I have watched the vid and tried to bring the forest level down some but even with regrow and/or recreate used it is horrible on spawn. We can have a player spawn near any island at any time and the grow is causing up to 15-30 seconds of lag at connection and there are only 9 tree groups spawned and they are all mesh combined. If they do spawn in, sometimes only half will show up or they might flash on/off for a few seconds during the spawn start and looks really weird. Regardless, the trees are nowhere near thick enough to be usable for what we were looking for. I am testing with a few other tree/grass types to see if it is persistent for all of them and to narrow down the point that it is happening.
I have our modeler making a new tree that is low poly to see if we can reduce some of the poly count to get more of them into a single mesh combined setup.
I am not sure what is different on the distant tree setups but it seems to be far less performant than the grass. It may be a poly count issue so we will see when our modeler sends over a couple of simpler trees.
As a next step, make extra sure that the batching works at all times (e.g. batches from trees like Pine should be around 400-500 for lots of density is an example). Also the radious of gradual growth makes a difference, so you may reduce this to grow less trees upon insertion. Or spawn the hero with very few trees area for example.
The other thing to try is to use two managers for various combinations, e.g. one could spawn trees at boundaries far away (bigger growth radious) and less trees so can reduce the intital load and one take care of the thicker trees inside the boundary with less growth radious.
The Pine trees are rather light and can have many with less overhead, i will post some videos of what works on my PC (2010 model, dual core). The twist pine is a bit heavier though, so it may need model regulation for the real time case.
Also make sure to reduce the Max static group members number, the higher this is, the more time it takes to open the batch and insert the created trees, so try with lower values like 2-3 depending on the target systems.
Note also to check the LOD distances against the creation radious distances, so trees that get created dont disseaper immediately due to LOD or cutoff for example. The LODs can be changed per brush type or en mass for all brushes through the brush menu. There is a shader based fade parameter as well that can help smooth out trees in the distance (must set a bit lower than the cutoff distance)
I am working on the stream sample now and i can send a first sample tomorrow or Sunday to test. The full procedural mode is also in the works, it is more tricky than the pre-painted case though, so will take some time to perfect.
Is it possible to select and remove grass at runtime? I'm making a top-down building game and I want to be able to clear grass when making roads and foundations.
it is possible to remove grass in various ways, ranging from slower to faster. The grass can be deleted with raycasting one by one patch (slower since batches open, delete grass, restore batching). That is immediately possible if you enable the delete in real time option.
Also you can have multiple grass managers, one for each building with its surrounding grass for example and delete them whole (manager + batches that hold the grass + item grass has been painted on, e.g. building area).
Another approach is to run through the batches in code and delete the ones of interest with a sphere cast, erasing the whole batch is faster because there is no batching involved (e.g. sphere cast and when an InfiniGRASS collider is found remove the batch).
The code for removing batches is already implemented in the system, in the gradual growth mode, when the re-create grass option is activated, this erases the far away batches whole as the hero moves away for exaple to save on RAM (the rule of this erasing can change to a distance check from an arbitary point and distance from it that would mark the deletion center for example).
I can help with the specific gameplay need and write a sphere cast erase script also if you want and send it over. Or one with a circular eraser in game (this will take longer to create). If there is some very specific spec will help make the script easier and faster.
Let me know for more questions
That's very exciting. I just missed the sale so I'll have to wait, but when I buy it some assistance with removing specific patches of grass at runtime would be most appreciated
I am now working on higher level systems, like automation and full optimization of streaming (using the current streaming module as base) and multiple managers organizing with higher level LOD system, a tiling system etc so a in game grass eraser would be a very nice addition and will consider for next version as well.
An in game grass eraser would be awesome. I'm also going to have agriculture in the game. I was going to make my own solution, but if there was a way infinigrass could handle seeding, growing, and harvesting, that would probably save me a ton of memory!
That is also planned, along with smooth seasonal growth from one texture to another. A full such system will take a while to realize fully though (i expect later this summer), the erasing will come much sooner
Fantastic! You've made another sale!
...so I've got it now. It looks good, but I'm slightly overwhelmed by the number of options. I'm happy to spend time learning it, but for now I'd really just like to know how to make grass the correct scale for my project. In the documentation it says that the brush is set to world scale 20. I tried reducing the scale of the prefab but it did nothing really (I was using the Main Grass prefab).
I changed the scale of the grass in the manager script to .01 and it was the correct size but spread too far apart. Changing the density in the same section didn't help. Also, the boxes that are painted along with the grass are extremely dense and it's impossible to see what I'm actually doing in edit mode. Can they be disabled?
My game is grid based, and one cell is exactly 1x1 Unity meter. To give some perspective, a person is about 1.6 Unity meters. You can see why the standard grass size is slightly too large!
What's the best way to make the default settings fit this scale?
The World Scale does not scale the grass itself, rather when the icons are pressed and apply preset painting values for each brush, it scales them to best fit a lower world scale. So as a first step use this value and then refine with paint options below.
The gizmos can be turned off, i have a checkbox in the Inspactor (above brush settings). The colliders may also be scaled further.
For the grass spread, there is a spread parameter to adjust lower as well to make it spread to a smaller area.
Let me know for further questions and any more help
I bought the asset and it looks good but I'm having this kind of a newb issue I suppose... There is just no way I can make the erase brush work. On my Windows machine when pressing shift the brush turns red and the paint button turns to erase but that's it. Right clicking grass in this mode does nothing. I tried the same thing on my OSX machine and the behavior is same except that when I press shift the erase mode just flashes on quickly and then disengages.
I couldn't find the gizmo toggle. I looked above brush settings but couldn't see it. I've tried playing around with the spread and scale but I'm still not getting it. Would it be possible to post a screenshot of the settings you would use if you were painting grass on the scale I described?
About the scaling, i have a small tutorial showing the process on smaller scales for Mass Plant, which also applies to one by one planting
A note on the spread, first you define the sizem, then the spread so you define the area the grass will spread and last increase the density to fill this area more (for example increase if at the specific spread grass is not planted at all due to little density)
The gizmos toggle ("Toggle Gizmos" checlbox) is in the section directly after player setup one, under Editor view distance slider and above Toggle Colliders option.
The erase by default will happen when you hit a collider, so it is one by one patch. For mass erase you must check the "Mass erase" checkbox and define a radious directly below that to erase en mass. Note that the "Editor view distance" affects the erase, so to erase further, set this higher.
Let me know if these help and for any more questions
Thanks for the help!
I was able to erase some grass on OSX by hitting the collider, but not on Windows yet.
I made a short video demonstrating the problem:
The grass also seems to act a bit weird when it enters view distance. Maybe a problem with my settings?
Can't really see from the image but it may be the same thing I was experiencing. When painting grasses far away from the camera view it can mess up a bit. To quote nasos when he helped me -
""Grass Fade Distance" in vertex grass, try to adjust this as high as possible and see if makes a difference.
The issue with this is that vertex grass is not transparent (for performance) so i have a gradual move out of scene mode by pushing the vertices of grass downwards. This might cause the issue if the fade distance is close, and i get similar result as you describe when i set this close to camera (so when you paint grass a bit further and since this distance is close you get in the region), with stretching."
This worked for me.
Sorry if it is different problem.
Edit - just seen the video you posted and it looks the same. Must sleep now.
Sorry for not answering before. I had problems.
I read what you said. I use the latest version 1.7.5
1º I tried "Original Eliminate mesh mode" and "set performance" but did not seem to lower the RAM that used the grass, which already had before in the scene.
It is very tedious and takes a long time to erase everything and try to fill in again the scene marked with these options.
2º The LODs I have them by default (not changed them. They were so in your settings)
3º I created a new scene outside my main project for safety. In this new scene the terrain is also 500x500 as my project which I sent screenshots.
I recorded some videos for you to see different data and problems.
In those videos fps down to 27fps (and I have a fairly powerful PC ... i7 12-core CPU, graphics card Nvidia 690 (two GPUs), 32Gb of Ram.
Games like The Witcher III running at 60fps, with everything full on my pc without problems.
I do not know why so many performance problems with a land size of 500x500 which has only one character and your grass.Also the scale of your grass is too big for Unity units and if you try down the scale, the grass is very rare visually.
Another problem is that I call "cobwebs" I show the video:
Moreover, it costs much fill scenes like this with your grass, due to the delay suffered when the brush is filling the scene. And to clear is the same.
Also whenever there is a certain amount of grass on the scene and give the play or stop the play, it is very slow and takes a long time.
4º In my project when compiling materials appeared his grass in red as if she had no textures or something else, I just used your grass prefabs. None own grass done for me.
5º When I ran the scene of my project with your grass from my editor, the scene was better fps. But he had very rare peak performance and felt very shaky scene.
I have not tested all your demo scenes, but for example in the "DEMO DEMO v1.7 SCRIPTED GRASS INTERACTIVE" or "DEMO Shader v1.7 Based Interactive Grass - Trees - Vertex blending" and go well, but do not have much grass and it is normal.
But when I start to add grass and fill everything as in the picture, the fps are greatly reduced. And it's a very small scene!
I also see that the snow does not affect the grass when the grass is shaded ¿?
I await your reply please.
About performance, the system can batch and increase performance due to much lower draw calls (e.g 5000 vs 500 with the system). it cannot however address the issue of overdraw or the internal Unity renderer limitation, so the top quality grass needs regulation to get the best performance.
The low grass used in the pics above is the heaviest one, it also has a 3D flower in the middle (not the letest flower in v1.7 which is a more optimized one either).
In more detail:
About #1: The settings do get applied, the issue i think is that you have checked the "When combiner is full", this is used for real time painting mainly, when painted in editor and for max performance and RAM save this should be disabled. That is probably why some of the batches will not get their original grass eliminated (since they wait for more grass to fill the batcher)
I checked the apply performance with all button and does work as expected on my side. Also make sure to disable the growers as well for extra performance gain.
About #2: The grasses in general dont have LODs enabled, so if LODs are needed can be defined as extra. The low grass if used en mass would be best with a LOD stage defined (or a closer cutoff).
About #3: The size of grass should be lowered, to also reduce the overdraw. I think that is one of the major issues. But not too low to not cover well the ground, so from the pics shown should be about 0.6 or 0.7 scale of what is in the pics.
About #4: I cannot say on that, i export the grass normally (e.g. my webplayer demo) so could be some conflict with another asset or a beta Unity version used, or the target platform perhaps. I can try to debug this, but since it is not happening on my side, will be a bit harder, i can also Skype in to see etc. As a first step try a clean project without any other assets and see if the demo scene compiles ok. Also let me know what Unity version is used and what platform the grass is compiled for, so i can test further.
About #5: The main issues is overdraw and Unity rendering, so as first steps try reducing grass size and regulate shadows depending on your machine. Also in the pic i notice a very high polygon number, which means you have put in uneeded density of grass, which further enchances the overdraw problem. Note that overdraw is not something that can be addressed by any asset besides Unity internal own rendering and thus the grass has to be regulated to reduce the Unity problem with overdraw (or any engine problem as well, overdraw is a general performance issue)
The 3.5 million tris, should be about 200-500K for about the same feeling of density (see my pic below as 234K tris), so i think the main problem is putting too much density, when much less is needed to get about the same effect.
Then i advise to put a LOD and remove the central flower from the low grass to use en mass, for detailed areas you can use the flower as a smaller detail. Or keep the flower in the main grass and remove it from the LODs and set the first LOD distance much closer for example.
About the snow, i am not sure, can you please offer a few more details on the issue ? I see the snow is applied ok in the pic. If you mean the snow in the shadow, this should be dark as it gets no light.
About Witcher, i cant directly compare to this as it uses another engine, and has a big team optimizing both the engine and the assets for years now, but my guess is that if Witcher had a very big density of low grass would have the same issues as Unity more or less.
Another idea is to mix grasses, vertex grass is much more efficient in overdraw or have ground covering brushes to make things seem fuller with less. I post some mixed grass pics below.
Some performance on my PC (old 2010 non gaming CPU model Core 2 Duo E7500, with a xbox one level GPU):
Note that my PC is very old and weak, so a new PC should normally have exponentailly better performance than the one shown in the pics.
I hope the above help, please let me know for any further questions.
(note that none of the grasses in the pics below are optimized with LODs or extra considerations and run on a very old PC)
A few notes on the videos.
1. From what i see the view distance for the heavy low grass is extending too much in the horizon, that could be an issue and some LOD should be used for the distance in this case.
2. The cutoff issue is probably due to the far away detail, to eliminate this some kind of filtering or special LOD should go in and this depends on the overall scene setup is my guess. The LOD material can be regulated for the proper effect.
3. To make painting in editor easier, there is an Editor view distance to lower, in order to remove much of the grass detail while painting. Also it is advised to use more than one Grass Managers, this helps in both editor (e.g. disable the ones not working with and paint on only one, so it is much faster) and in play mode where you can disable the manager and grass when the player is at distance for further away areas, removing any overhead of both grass and batchers and manager.
4. In the performance video i see 5 million tris, this should be lowered with LOD use to around 500K for best results (eg remove flower and a few blades when further away etc)
To define a LOD, drag the branch prefab of the grass in the scene and copy a few blades, then copy the material and name it as "material name LOD0", apply to the copied (fewer) blades that will be used for LOD0 and remove shadow cast and receieve from the meshes (if in deferred more go to forward to remove shadow receieve then back to deferred) and disable the LOD meshe filter component.
Then the system will use these items and LOD0 named material as LOD in the LOD0 distance. Similar procedure can be used to define LOD1 and LOD2 stages, before the final cutoff
Hi! thank for answer
Concerning the Witcher III, I do not say that your asset is bad ... I mean I do not know how to appropriately configure it to have the best performance / quality.
Buy your asset because I think very good and the speed with which answers forum as well.
But I also think that the tutorials or manual could be better.
I will look at everything and told me to test and answer you in a few days.
Concerning what snow meant that when the grass is covered by shadows, the snow unseen.
Another thing that I think has not answered is regarding effect the "spiderweb"
As Fix this?
I understand, the issue is that the best performance vs quality is not easilly advised through a single tutorial, as there is so many ways to go about it, so it is best to know the system abilities and various methods (and i can help every step of the way for this) and then decide the best action for the specific case.
The system batching does a massive difference, for example the scene i posted above with low grass and 230K tris and 179 batches is taking in the region of 45.000 batches (draw calls) without InfiniGRASS and the game is completly unplayable (less than 1 fps). This is the major thing InfiniGRASS does, the rest is mainly Unity rendering influenced and even myself am still learning how to best regulate for all cases and best results . Note that this grass also has multidirectional placement and full shadows (cast and receieve) so it is much enchanced vs Unity grass.
About the spiderweb issue, i cannot recreate it on my side, so is a bit hard to resolve, i am checking / trying to recreate and when i can will try to have a solution.
As a first step please check the below:
1. Enable/disable anti aliasing and see if it affects the issue
2. Disable all image effects and see if it fixes it
3. In the Material, change the Time vector y, z and w paramaters to zero (Time.y, Time.Z, Time.w), these affect the snow, so it might be an artifact from that is one guess.
4. In the material, press on the texture and in texyire import, make sure it is in "Clamp" mode
5. In the material, play with the Diffuse texture (main texture) offset in Y axis (the 0.75 in your pic) and see if a shift solved the issue.
6. Set Alpha Cutoff a bit higher and see if this elimiates the issue, this may be a small border in the texture, i will check it out as well
About the snow, I will check it out, but i think in shadows the snow does not show because the grass is darker overall, though i will double check to see if it is not artistically right and get back on this as well.
Also a question, which Unity version is used ? (for reference, i will test on Unity 5.4 as well to see if something appears there that was not in previous versions)
EDIT: I checked more of the textures in the grasses and i think the spiderweb is due to the texture, for example i do get this effect with lower Alpha Cutoff in GRASS11 and GRASS13 textures, and not in GRASS12, so i will check to see if it perhaps is the border of the textures causing the problem (e.g. a tiny pixel wide area i left with less trsnsparency)
Please replace the grass texture with GRASS12.png to see if this solves (or lessens) the issue.
New system for batching Unity trees coming in v1.8.
If you like the system, please remember to leave a review when possible to help with the ongoing effort and updates development. Thanks a lot in advanced for any reviews.
I'll finish the topic of my project updates today and tonight or tomorrow morning I see and taste everything you mention me and I write to you
greetings and thanks
Let me know for progress and i am in the process of automating much of the requirements for optimal grass placement and streaming for next versions, this will be on of the major focuses from now on, so the spreading can be much more streamlined and as optimized as possible en mass. This system will take a while to realize, as there are many parameters and possible spreading ways to consider, but i hope i can do automation at that higher level as well to the extend it is possible.
A system to convert from Unity grass/tree to InfiniGRASS is alos in the works and will utilize the same spreading rules to optimize everything and have the next gen look with shadows etc of InfiniGRASS