Search Unity

Question Grass on mobile device for 2023

Discussion in 'World Building' started by creat327, Feb 7, 2023.

  1. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
    Hi there
    I've tried several years ago to display grass on mobile using Unity terrain. The performance was horrible.
    I tried again in 2023 now, and I see that higher-end devices have no issue but devices from 2016 are still running the grass too slowly.

    What's the current status? Is there any asset package that would render grass with decent density on a device that runs OpenGL 3.2? (Google says that's about 85% of devices already).

    I've tried a few assets in the store but the results were not very promising.

    Can you share your knowledge/experience?
     
  2. LethalGenes

    LethalGenes

    Joined:
    Jan 31, 2023
    Posts:
    69
    Interesting question,

    to me it sounds like the job of a pool.
    Figure out how many grass you can get away with on the device, the minimal amount, and just teleport those guys to the points that they exist, while those points are in view. Sure it’s unlikely to be as dense as a cpu version of your game, but the gpu on the mobile device is fairly limited. I couldn’t think off the top of my head of many games that display a huge volume of grass on mobile. Yet some of the latest devices are much higher powered.
     
  3. mattb-unity

    mattb-unity

    Unity Technologies

    Joined:
    Feb 7, 2020
    Posts:
    55
    Do you have a sample project you could share? I'd be interested in taking a look at it in a profiler. Also what device did you see the bad performance on?
     
  4. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
    I've used a Redmi note 10 and a Kindle Fire 7. The Fire is by far the slowest device.
    If I only paint grass as textures, performance is not wonderful but it at least runs. If I paint grass as meshes, well, it kills almost all mobile devices I test it.

    I know this density is too much, but I use it as a test since this only has grass and a game usually has many other things.
    The question is, is there any tool or any way to render the grass on an average mobile and it doesn't look like we are in 1998 games?

    Here is a repo I did quickly.
    joaquingrech/UnityMobileGrass: Test of Mobile Grass (github.com)
     
    mattb-unity likes this.
  5. mattb-unity

    mattb-unity

    Unity Technologies

    Joined:
    Feb 7, 2020
    Posts:
    55
    Thanks! I don't have any immediate answers, but I'll take a look at this in a profiler and see if anyone has suggestions.
     
    DevDunk likes this.
  6. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
    It's actually super simple to make it run on mobile but I don't know how much power you have to move this up on Unity.
    How? Well, do what you already did with Tree Creator.
    Unity Tree Creator created a 3d mesh, and the terrain has a parameter that at a certain distance that turns into a billboard. Was this efficient? Well, I'm running 50k trees forest on a Samsung Galaxy S4 (9 years old now?)

    No solution, none, no asset, can go faster than that. I've tried every asset in the store. Funny thing is that Unity is not promoting Tree Creator anymore, Luckily, it still renders those, so it works like a charm on mobile.

    If you do the same for grass and vegetation: 3d object, with a billboard at certain distance. Set it up on the terrain as we do with trees. Done, you should be able to render dense forest AND grass on even crappy mobile devices. The system is already there for Trees, no idea why it was never implemented for grass and vegetation.

    At this moment we have to go around shopping for tons of assets that simply look bad, unrealistic, or do not gain much performance on a mobile device. I've probably spent $500 on assets trying to make grass and trees faster on mobile, and nothing, absolutely nothing, beats Unity Tree Creator on performance.

    Just some examples I own (Calculate the amount I've spent if you want):
    - InfiniTree: Vegetation and trees look bad, with performance subpar compared to Unity Tree Creator.
    - Grassflow 2: Not thought for mobile. It won't even run on old devices.
    - Vegetation Studio: The author is missing in action. Grass performance is horrible compared to unity billboarding. For trees, it actually tries to do the same as Unity Tree Creator (it creates billboards for your trees and displays those at a distance). Unfortunately, it does not do the same for grass.
    - uNature: The author also went missing in action. Package used to semi-work, now it doesn't.
    - Bruce Force Grass Shader: it looks cartoony, it is fast but you cannot use your grass and it looks horrible at ground level. Only designed for top-view.
    - Advanced Terrain Grass: same thing, no improvement on mobile for grass although it does improve the trees performance.
    - Nature Renderer: bad performance on mobile for grass.
    - The Vegetation Engine (TVE): bad performance on mobile for grass.

    And many many more that i've tried throughout the years.

    In short, the "trees" on mobile is kinda solved by Tree Creator, even if not the best-looking trees. But for grass on mobile... if you guys at Unity did the same you did with Tree Creator, it would be wonderful.
     
    Last edited: Feb 10, 2023
    MJdev, mattb-unity and _geo__ like this.
  7. Kreshi

    Kreshi

    Joined:
    Jan 12, 2015
    Posts:
    445
    Does Unity 2023 have a different vegetation-rendering system than Unity 2021 LTS?
    What about GPU Instancer? Does anyone have experience with GPU Instancer? I would be very interested!
     
  8. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
    No, Unity vegetation system hasn't changed since Unity 2.0 practically. And GPU Instancer does the same as Vegetation Studio. It just draws indirect instances. It works well for tons of 3d meshes, but it has little to no benefit for grass on mobile. If you are using SpeedTree, rocks and such, Indirect Instancing works fine so it will be helpful (Vegetation Studio or GPU Instancer). On the other hand, do not use Vegetation Studio, the author has been gone for months and the emails bounce. It's failing and not updated.

    For grass on mobile? Nope, none of the packages are useful, unless you were so silly to try to render dense grass as 3d meshes on a mobile phone.
     
    Last edited: Feb 9, 2023
  9. DevDunk

    DevDunk

    Joined:
    Feb 13, 2020
    Posts:
    5,043
    Sadly the tree creator doesn't work properly in URP afaik (at least not with billboards etc)
     
  10. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,349
    InfiniGRASS video showcasing the various possibilities and demos on 1050GTX Laptop GPU (software recording)

    Hi. You can try InfiniGRASS system, it optimizes the grass even on older Shader Model 2.0 devices and does not require special hardware. The performance boost can be massive, e.g. use a single draw call batch for all grass in a stage etc

    The system can optimize any foliage, trees, rocks and any item in general. Also can be planted on any orientation, on Unity terrains or any mesh, can be made to follow transform rotation and translation of objects that is planted on and can be planted and perma-shaped at run time.

    Also does not use any scripted instancing of the grass, essentially there is a mode that can be used without any scripts at all, should this be required and possible in the game needs.

    I have more than three thousand users, many using it on mobile with great results, of course as all systems depends a lot on what need to be done and how is the game structured. The script-less mode is also useful for some exotic platforms that not support upload of scripts.
     
    Last edited: Feb 14, 2023
  11. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
    Well, actually I purchased Infini Grass a while ago and tested it and performance for grass was worse or the same than using standard Unity terrain system.

    Infinigrass is useful for prefab rendering (similar to vegetation studio, gpu instancer, and so on). But if you only have grass as 2d textures or just grass, I saw no benefits whatsoever.
     
  12. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,349
    I see, indeed the default grass is meant to be detailed 3D grass that looks good from above.

    Still can be faster than Unity even in that mode though, if the batch group is large enough. Imagine that in my test i get 500 draw calls from Unity simple billboards and my grass is 50 draw calls for full 3D grass, with proper shadows etc

    So if configured well can help, many users have reported great results on mobile due to that as well.

    I can help pinpoint the settings that can help as well. Let me know.

    I also work on a batched billboards version, where will use the simple grass as you mention and massive batch it for even more performance boost. This mode is already working in the upcoming InfiniGRASS STUDIO asset, but i plan to backport it to the current InfiniGRASS as well.
     
  13. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
    well, you have a chance to prove it easily. The thread here began with me posting access to a free open source demo at github joaquingrech/UnityMobileGrass: Test of Mobile Grass (github.com)
    And see how it can be sped up. I tried with your asset and I got no improvement (using the same assets) on my mobile device vs regular Unity terrain.
    I also tried with billboarding and Unity terrain beats it on mobile always.

    Do you accept the challenge? It has to be running on a mobile device, in my case I used a 4 years old android for most my tests.
     
    Last edited: Feb 14, 2023
  14. nasos_333

    nasos_333

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

    Indeed my demos are generally desktop demos, will try adapt to your github one on mobile and get back asap
     
  15. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
    yeah, there is only one Demo that says "mobile", but it has so little grass that is basically useless. I would not need any package to render 65k polys of grass, that can be done easily without any help on an 10-year-old mobile device.

    I wanted a full terrain with grass, and from the videos and description that is what Infini Grass should be for. Instead, I found that it runs horribly horribly horribly bad on mobile. I sent you screenshots in private of how bad your demo scenes look and run on a regular Android.

    So far, the best grass asset for mobile i've found has been Vegetation Studio which is now with the author missing in action. Unity should be really looking at how to render detailed grass on mobile.
     
  16. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,349
    Can you post an image from mobile with fps and the Vegetation Studio grass ? I need to understand how that grass looks and how far it is rendered etc and can try replicate with InfiniGRASS

    The desktop grass and systems are not meant for mobile, so perhaps that is why you see the bad performance, so will try tailor the system to those needs and get back, but need to understand the best you have got so can recreate something around that, as is not clear.

    A video would be even better.
     
  17. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
    If you load the GitHub and hit play, that’s exactly how it looks. It doesn’t matter if you use vegetation studio or not. It looks the same when I switch between both systems.

    this whole thread is about MOBILE rendering of grass. Now you are telling me your system is not thought for mobile. Really?

    you have everything needed to test on mobile, the source code and textures. Infini Grass is probably the worst of them all: bad quality, slow performance, no benefit whatsoever on mobile. Hit play and compare with and without Infini grass. In my case a samsung galaxy s6 using Unity terrain without any optimization renders about 4 times faster than using Infini Grass “optimization” with any grass.
     
  18. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,349
    Yes, the desktop demos are not meant for mobile, to adapt to mobile need to use special considerations. There is no magic solution for all cases, each case is different for both desktop and mobile.

    I will make a sample asap and get back, with the grass as shown in your example. Will take a bit as i work in unity 2019 and 2021.3 lts, so have to recreate the mobile building for the 2022 first that the github project uses.

    Note that you compare two completely different things, my grass is not billboard, the base is meant to look great from above

     
    Last edited: Feb 14, 2023
  19. ShilohGames

    ShilohGames

    Joined:
    Mar 24, 2014
    Posts:
    3,021
    If you want a full terrain of grass, one solution is to use Vegetation Studio Pro and integrate it with Microsplat. Basically it can render detailed vegetation up close and then simply paint the vegetation colors onto the terrain in the distance. It gives a decent illusion of grass on the entire terrain without actually rendering grass everywhere in real time.
    https://www.awesometech.no/index.php/vegetation-color-mask-setup-with-microsplat/

    As a side note, there is a similar integration for faking tree shadows in the distance using Microsplat integration.
    https://www.awesometech.no/index.php/configure-shadow-mask-with-microsplat/

    This works well on desktop. I have not tested it on mobile, though.
     
  20. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
    Yeah, the Vegetation Studio Pro works to fake the grass. The problem with Vegetation Studio is that the author has gone missing and emails bounce. So it will most likely die like many other assets that can't keep up with newer Unity versions.
     
  21. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,349



    Hi,

    No worries, i can try to super optimize the grass and get a nice look, to the extend this is possible.

    The issue is that when i load the terrain provided it only goes up to 16fps in my laptop, can you please let me know what frame rate you get in this map on the mobile and at what resolution, after you apply the Vegetation Studio optimization, to get an idea what to expect. I gather without optimization would barely run at all in mobile.

    Since this struggles on laptop, making it run well on an old mobile is a rather vast challenge in general, but i will see what i can do with my systems :)

    Some assets have even 1000 vertices, the ideal on mobile is to use a texture with billboard for most far grass, with only 4 vertices for example per piece.

    Also are the sample assets in your projects provided by Unity ? Is the any mobile friendly version of those as well ? E.g. with much less vertices.

    In general mobile is a very limited platform comparing to desktop, especially when try to use desktop assets directly on mobile, I suppose this is the main reason even a multi billion company like Unity still has not come up with a good solution to that.

    Another issue is shadows, the grass in general cant look good without shadows, in the images above i cant tell grass from ground for example, so i will try to implement a combo of near high detail, with batched billboards in distance and shadows close up.

    Look for example what a vast difference shadows make in the below video of InfiniGRASS, the lighting, snow and atmosphere is handled by Sky Master ULTIMATE, which also can make a world of difference bringing up the details.
     
    Last edited: Feb 15, 2023
  22. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
    yes, Unity default Terrain Tools sample is horrible. Their grass has over 1000 polys each. Do you suggest any other that is free so that we can use that one instead and put it on github for anyone to play around?

    As for my laptop, it is rendering that one at 120 fps.
     
    M_R_M, mattb-unity and nasos_333 like this.
  23. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,349
    I will first try to use it directly with the detailed mesh close up batched using infiniGRASS and batched billboards with the same texture a bit further ahead.

    If is still very heavy will check what else can find that is more mobile friendly and still look nice.

    What is your laptop specs ? Mine is 1050GTX and 5 years old, maybe that is why struggles so much. Still mobiles would be far below my laptop in general, so if something is not a solid 60fps in the 1050GTX will not be suitable for mobile is my guess.

    Or you mean it runs 120fps after you optimize it with Vegetation Studio on the laptop ?
     
    Last edited: Feb 15, 2023
  24. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
    120 fps without optimizations, just downloaded from the github. But my laptop is using an rtx 2070
     
    nasos_333 likes this.
  25. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,349
    With InfiniGRASS






    Without InfiniGRASS



    Ok, make sense, 2070 is massive upgrade to my old 1050GTX :)

    I will just compare on my side and we can test more after have done the main work.

    Here is a first example of how powerful InfiniGRASS can be, i use a big distance for the most detailed (1000+ verts) grass, then a stage of quads with the same texture for mid range, so can look good from various directions and billboards in last stage.

    This sample is both not fully optimized (grass overlaps a lot and need to be more carefully spread out) and also is software recorded inside Unity editor, so the recording has big overhead as well versus a build without recording in the background.


    This is a very first implementation, so will work more on the details the coming days. I also backported the Batched Billboards system from the upcoming InfiniGRASS STUDIO and seems to work directly, need only add a few more controls to the shader for the vertical shaping.

    The grass besides the large view distance, also has full shadows cast, receive and self shadowing in all stages in this demo.

    The performance ranges from 60fps to 140fps, probably because my laptop is generally overheating because is so old and creates some random issues when recording, but even at 60fps is massively faster than the 15fps with Unity terrain system. I will keep adding grass to push it more to see the max i can get with great performance and then start optimizing for mobile.

    Note the shader used is also the desktop one, with full passes, shadows, sub surface scatter emulation etc

    EDIT: Here is also a demo link to try locally (windows)
    https://drive.google.com/file/d/1A40A4EsCSiLXo-QlO6HWMDrXuSlphNZO/view?usp=sharing

    Recordings from 2060GTX in Linux with InfiniGRASS
    https://drive.google.com/file/d/1VAZEqc2ZtDCyF1Vngi1HV-KxVGeqQhcl/view?usp=sharing
    https://drive.google.com/file/d/1Du5Mf0-CcLnOHP_W0hvyCIY0wuEy4DAD/view?usp=sharing

    EDIT2: I also tested on Linux in 2060GTX GPU and get around 160fps without shadows at 3368x1261 resolution. With full shadows getting around 100-125fps at same resolution.

    The scene without InfiniGRASS in same resolution and 2060GPU works at around 50fps for comparison, without shadows, versus 160fps optimized.
     
    Last edited: Feb 16, 2023
  26. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
    Yes, all of this could be easily solved if Unity @mattb-unity simply allowed to switch from mesh to billboards on grass after certain distance. As they already do with tree creator.
    It would avoid having to use tons of external tools and complicated processes.
     
  27. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,349
    True, but in this case would require a method to create the billboards on the fly and in the format like in the trees, probably that is why they not support this mode.

    But the issue is that the rendering is also slower, notice that even when i see full detail without LODs enabled is still way faster with InfiniGRASS.

    It is still 120fps with full shadows versus 50fps without shadows, which is a massive difference before consider either the 1st LOD stage (quads) or the 2ond (batched billboards)

    Plus their batches are way smaller, this would also mean that big amounts of billboards would still be an issue, while infiniGRASS can batch them at much higher amounts.

    In general there is no fixing the Unity grass system easilly, unless you turn it to InfiniGRASS :), i suppose was one of the reasons Unity asked to hire me right after i released InfiniGRASS.

    InfiniGRASS can potentially batch the whole map grass in one group and have a single draw call batch per grass type, if was not for the tris and overdraw limitations that make use of LODs a necessity in larger maps, if need to have grass visible at much larger distances than Unity terrain allows.
     
    Last edited: Feb 16, 2023
  28. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
    Man, your posts are like info commercials about your product. You posted "with infinigrass" and "without infinigrass" two completely unrelated pictures and scenes.

    What I uploaded on github is with the free assets from Unity and obviously, it looks bad, we are talking about fixing performance here.

    Let me do the same you just did.

    Here is a picture of one of scene WITHOUT Infinigrass rendering at 150 fps:

    grass.jpg

    And here your real scene and demo included in your package, with infinigrass:
    junk2.jpg

    And this is the reason I think your asset is misleading. There is not a single scene included in the package that looks remotely close to what you post in here. All your grass scenes look horrible on mobile with no performance gain compared to Unity grass. Again, on mobile.
    I didn't want to post like this publicly and I told you in private with screenshots of how bad your assets look for mobile, but you keep posting publicly as if your assets look like that on Android and I have several of your assets and NONE look like your pictures on mobile.

    Let's focus on making a simple terrain with tons of grass perform properly in Unity using a mobile phone.

    I already figured out some solutions, but clearly, the fastest way would be for Unity to automatically generate billboards of the mesh and display them at a configurable distance.
     
    Last edited: Feb 16, 2023
    ignacio-casal likes this.
  29. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,349
    I actually used the same asset as your sample scene, the most detailed one (1000 verts)

    It is 120fps with full shadows using InfiniGRASS batching versus 50fps without shadows using Unity terrain system, which is a massive difference before consider either the 1st LOD stage (quads) or the 2ond (batched billboards). The billboards and quads can enable a much further view distance than Unity one as well.

    So far i have not gone to mobile yet, i just optimize fully for desktop, since your github demo scene is for desktop and i just added the batched billboards system, then will check what is possible and what assets to use for mobile. My thinking is that if see such a vast performance boost in desktop, will get similar for mobile when use the proper assets with InfiniGRASS.

    Mostly all my demo scenes in InfiniGRASS are for desktop. I never mentioned that are for mobile, so cant see how this is misleading in any way. The demos that are for mobile i name them as such clearly, to avoid any confusion.

    Since now i have finalized and tested the billboard system that is best suitable for the mobile case, will start working on the mobile demo, add fps counter so can preview performance, some controller to move around and do builds on mobile to gauge the system.
     
    Last edited: Feb 16, 2023
  30. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
    Again, not even remotely close. My GitHub has shadow disabled and just massive amount of grass. It looks horribly, I don’t go posting pictures of some other scene or added other stuff because it would not be a fair test.

    you used a different scene, different setup, added lighting and shadows and did not use mobile settings. You also removed TONs of grass, like not even 1/10 the grass I have on my test. Then said: look how much better mine is with that grass.

    so now, use the same scene, change to android, remove infinigrass and compare. I just did. I got almost no performance benefit on mobile, like literally, none. It rendered horribly on the phone.

    I can post a screenshot of an RTX rendering a trillion of my grass blades at 300fps. It would not mean anything. I know I can render that grass much faster if I completely ignore the requirements and create a completely different scene. That is cheating and misguided.

    This whole thread is about rendering massive amount of grass on MOBILE. And using the provided scene as a test.
     
    Last edited: Feb 16, 2023
  31. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,349
    Sure, i am working now on the mobile demo, will get back on this asap as well.

    Btw i am not exactly sure i follow on what the expectation is, is it to run well on mobile a scene with desktop oriented unoptimized assets with fully 3d grasses that barely run 15fps on a laptop, on a vastly more limited in hardware mobile ?

    Because if so, while InfiniGRASS can optimize the grass, cant make a Gameboy system run PS5 graphics for example. There is some limitations to what each platform can be pushed to render, even with max possible optimization.
     
    Last edited: Feb 16, 2023
  32. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
    The expectation is to optimize this scene so that it can run fast. Not to create a completely different scene.

    I think it's fair to use billboards or change some things, but you literally created a completely different scene with a completely different amount of grass and completely different settings. It's impossible to compare that way anything.

    In fact, I think it's fair that we change that grass on the GitHub version and a more mobile-friendly grass because the shader included in there is not thought for mobile. That's a question I asked, if you have another grass that would be more suitable and freely available so that we can put it publicly in the github. But we should keep the same amount of grass and without any other changes and then test with different systems. And I already did this (with your asset and many others), but they all failed to bring any benefit on mobile.
     
    nasos_333 likes this.
  33. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,349
    I see, so the density is what need be achieved, using a more realistic for mobile asset for grass i suppose, which makes more sense.

    Will try both ways, use the desktop one close up and use billboards and try up the density and see how it goes on mobile and then use a real mobile asset close up and see that also.

    Note that i can only test on Samsung S22 on my side, so all tests will be based on that.
     
  34. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
    Ok, i've updated the github repo to make a more suitable test base. I've changed the grass too to be more mobile friendly.

    I've created 2 scenes:
    - Test Scene Billboards. This includes a massive amount of grass only using billboards. It runs at 28 fps on my Xiaomi Redmi 9.

    - Test Scene Mesh: This is the same terrain but instead of texture grass, 3d meshes. It won't run on my mobile.

    They are both using default Unity system, nothing fancy and no tricks. I've trimmed it down to be Mobile friendly (mobile diffuse and diffuse shaders for the terrain). No shadows.

    Goals (always ON MOBILE, not on desktop):
    - Make Test Scene Billboards run faster.
    - Make Test Scene Mesh run as fast or close to the speed of Test Scene Billboards. Obviously, we cannot render that amount of polys so we are allowed to use any tricks as long as the rendering looks pretty similar (switch to billboards on distance for example).
     
    nasos_333 likes this.
  35. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,349


    Great, will check it out asap

    Btw, i have some amazing news, i did a base tests as i am working on the mobile demo scene, and added a huge amount of the most detailed grass with big draw distance and density as in your original github demo that runs with 15fps on my laptop using the unity terrain system, and i get 84-99fps or more !!!! using the InfiniGRASS optimization.

    This is an around 6x boost in performance, even when using only the most detailed (1000 vertices) grass and before use LODs.
     
  36. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,349
    Without InfiniGRASS (no shadows)



    With InfiniGRASS (no shadows)




    With InfiniGRASS (full shadows casting, receive and self shadowing on grass)




    Also adding some more tests with massive density of the highest quality grass on the 2060GTX, for reference.

    All tests not use the LODs yet as well.
     
  37. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
    That's good but let's keep in mind the goal of this thread: get this to render on mobile.
     
    nasos_333 likes this.
  38. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,349
    Yes sure, i have almost finished the first mobile demo, will post soon
     
  39. nasos_333

    nasos_333

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

    I post a first result with using my InfiniGRASS grass (3 quads) in the Samsung S22

    This is with full shadows close up and the full phone resolution (2340x1080)

    Now will add options to toggle shadows and add more options like trees and the LOD mobile grass etc

    Also must find a way to reduce the render resolution on mobile, as 2340x1080 is totally needless in such small screen.
     
  40. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,349






    Few more videos on the Laptop 1050GTX with Insane grass density - view distance - shadow distance.

    This grass type will also be part of the new mobile demo. I added a shadow on-off and distance slider, to check performance with the various shadow options as well.
     
    Last edited: Feb 18, 2023
  41. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,349








    Hi,

    I finished a first demo where can plant grass of 3 base types, one is the main that uses 3 quads, one is triangle grass without texture and one is a mobile friendly tree.

    I post few images with metrics from my Samsung S22 phone, with and without shadows and large view and shadow distances for references.

    I will soon link to a mobile demo as well.

    One note is that while the system optimizes the grass a lot, it does have one downside, that fills RAM a lot, so adding a full map with grass and trees can cause a RAM issue. This is something that the upcoming InfiniGRASS STUDIO is solving by using ram only for a single batched model, which then pools around the map, for essentially zero RAM allocations besides the one batched.
     
  42. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,349

    Hi,

    I have now exported the first mobile demo, you can try in the following APK for Android

    I get around 120fps in landscape mode in Samsung S22

    https://drive.google.com/file/d/1WaZbVTbpW1oKjMcwXi0qbc2NHjEsRK2P/view?usp=sharing

    I will now create two extra demos, one will use only batched billboards and another a more detailed grass.
     
  43. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
    Hmmm

    First, I don't think you are allowed to use that grass on your product. That grass is from an Asset Store package that although free, it's not for resell. Your package is a paid package. Make a new grass, yours was pretty bad but I don't think it's fair to take the work from someone else and include it on your package without their permission.

    Secondly, your apk takes forever to load unless it's high-end device. But what's worse, I've tried and it's a "demo" of your product, again. This thread is NOT about you promoting different photos and videos of your product, it's about using the given scene and proving that it can be sped up. You created a completely different scene, using someone else assets, and placed them as a "demo". The test scene provided is not even used but you included the assets in your selling package. There is no way to know if your product made any improvements because you completely went away from the task: use the existing scene and optimize it.

    I really don't understand why you do what you do, that you just keep posting videos and photos of your product. The task is simple: get what is on github and prove that the same scene can be optimized with your software.

    Do not create completely different scenes, with completely different packages and settings, and keep posting your advertising here. It's like trying to compare apples to running cheetahs while getting distracted by all the spam.

    And sorry if I sound so nasty, but it seems I have to be pretty explicit about the objective after several of your posts ignoring it.
     
    Last edited: Feb 22, 2023
  44. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,349
    I am not sure why there is the need for such angry responses.

    First you send me a github with desktop assets to opfimize for mobile, so is hardly my fault this did not work out.

    Also the demo i send of my asset does not contain any 3rd party assets, so i am not sure what you refer to. I did not take anyones work as you suggest.

    I sent a demo for mobile of a scene with map full of my mobile oriented grass. This is the grass supposed to use on mobile, not 1000 vertices grass, my system does not convert mobiles to 3060GTX, it is not its purpose.

    About optimizing your new github scene, i hope you understand that this can take time and have to verify first that is something that make sense on mobile, and is not again some extreme detailed model that not even desktop can handle.

    So i sent first the demo with true mobile grass to check and then will follow up with the next with more detailed grass, will use yours if makes sense.
     
    Last edited: Feb 22, 2023
  45. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
  46. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,349
    As i said, is not my fault you provided a github with desktop assets and i had to spend my time on something that did not make any sense for mobile.

    I cant work full time on this as you understand, when i have tested your new grass and if it makes sense for mobile, will follow up with a demo on this.

    For now i provided a demo with my assets that are meant for mobile

    Also i did not release any update, not sure what you read in that thread. The video is indeed not from the asset, just from my tests with your github assets.

    Btw, if these grass assets are not from Unity and are licensed assets by another publisher, i would suggest to remove them from github if not have permission to redistribute them.

    Also i cant use those assets as well, now that you informed me on this that is not free assets that you have on your github, so is best to give me the link to the asset in store, so can download and test through the proper distribution channel.
     
    Last edited: Feb 22, 2023
  47. Kreshi

    Kreshi

    Joined:
    Jan 12, 2015
    Posts:
    445
  48. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
    It’s documented on the readme included on the GitHub with links to the asset store. Which seems you did not check.

    Your infinigrass asset which sells with this on the description “The system is also ideal for mobile and globally supports all platforms including older SM2.0 mobiles” none of your demos actually ran on mobile and I pointed them out on the reviews. In fact, your first post in this thread began with "Hi. You can try InfiniGRASS system, it optimizes the grass even on older Shader Model 2.0 devices and does not require special hardware. The performance boost can be massive, e.g. use a single draw call batch for all grass in a stage"

    Remember, before I began this thread I had BOUGHT and tested your asset to find out it failed to live up to expectations. During this time and after private conversations you admitted your stuff did not run on mobile unless it looked like junk: easy to test, just download the current version on the asset store and try it on android. Basically, it was false information from the beginning and people may buy your asset with completely false expectations if they read this thread.

    My main issue here is that you flooded the thread with spam about demos, videos and pictures of your product but did nothing with the provided GitHub except use it to create more videos and marketing of your product, which does not work properly on mobile as of version 1.9.9.8 (today).

    It’s pretty simple, the idea is to get this GitHub and see how much is possible to make it run on mobile. If you can't, say so. I will be working to get it to run in the next couple of weeks with the findings I got from different sources and post the results here.

    Again, the fastest and easiest solution would be if Unity added automatic 3d to billboard on grass, as they did with the trees.
     
    Last edited: Feb 22, 2023
  49. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,349
    You mean you tested the demos with "mobile" in the name and did not work on mobile ?

    Note the asset is not only for mobile, is also for desktop, all demos without "mobile" in the name are not meant for mobile. I suppose in the next version will add a "desktop only" to the desktop demos to further clarify this.

    If you let me know the exact demo scenes you tested that had mobile in name and did not run on mobile, i can test for that also.

    Also the system runs fine on mobile, as i shown above gets to 120fps with terrain full of grass in a Samsung S22 and even with full shadows turned on and big view distance. The demos for desktop obviously wont work well on mobile, because are meant for that platform power.

    Will be working with the grass from the links in your github and get back.
     
    Last edited: Feb 22, 2023
  50. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,756
    I gave you a list of what was failing and the scenes names on private a couple of days ago. If you fix them on next update, great. There were simply not working when I purchased the asset.

    anyway, again please let’s focus on trying to get this exact scene to run on mobile. We can optimize all we want but not creating different scenes because that’s not a valid comparison.