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

[RELEASED] Imposter System OPTIMIZATION

Discussion in 'Assets and Asset Store' started by MUGIK, Aug 18, 2016.

?

Are you interested in this project?

  1. Yes.

    168 vote(s)
    92.8%
  2. Maybe.

    11 vote(s)
    6.1%
  3. No.

    2 vote(s)
    1.1%
Thread Status:
Not open for further replies.
  1. MUGIK

    MUGIK

    Joined:
    Jul 2, 2015
    Posts:
    476
    THIS THREAD IS DEPRECATED



    Finally IMPOSTERS in Unity! Imposter System in a few clicks will speed up your scene 20 times! System replace complex 3D objects with 2D sprites (imposters).
    Now available on ASSET STORE!!!
    (full source code)

    HIGH RES Large Key Image 2.jpg


    Unique features of Imposter System:
    • Fully realtime
    • Works with multiple cameras(VR support, see known issues)
    • Works with non-static objects
    • Internal imposters mesh combining, allows to render 4k objects with one drawcall
    • Super fast water reflection
    • Fading between imposters
    Some of the advantages of Imposter System:
    • Full source code included
    • Increases FPS in the scene 20-30 times
    • No preprocessing
    • Works on any platform
    • Easy to install
    In the future:
    • Viewport imposters (v1.3)
    • Terrain-like imposters (v1.4)
    Your feedback may change the priority of development

    Known issues:
    • Unity 2017.2 and patches of 2017.1 - incorrect work. Problem: unity bug in Instantiate() method. Workaround: set 'isStatic' field of ImposterController to false and hit 'Apply'.
    • Unity 5.6 and later - incorrect rendering. Fix: disable "Allow HDR" on imposterCamera gameobject. issue.PNG
    • You cant use image effects on 'imposterCamera' otherwise you will have incorrect atlas rendering. not allowd image effects.PNG
    • VR doesn't work with native VR integration like in Unity5.6 and later due to the limitation of changing fieldOfView on cameras.


     
    Last edited: Jan 12, 2022
  2. mitia-guliaew1997

    mitia-guliaew1997

    Joined:
    Apr 21, 2014
    Posts:
    1
    Полезная вещь!
    Думаю, если совместить с Occlusion Culling, то результат будет весьма фееричным.
     
    Last edited: Aug 19, 2016
  3. Ecocide

    Ecocide

    Joined:
    Aug 4, 2011
    Posts:
    293
    Very impressive, I will definitely follow this thread :)

    A smooth transition between 3d model and billboard could be useful, because I think it's really hard to get an instant trnasition between model and billboard where the play really sees absolutely nothing.
     
    Spoken_OS likes this.
  4. CSCAPromo

    CSCAPromo

    Joined:
    Aug 5, 2015
    Posts:
    4
    Very nice. Is each billboard its own gameobject (or graphics.drawmesh)?
     
  5. MUGIK

    MUGIK

    Joined:
    Jul 2, 2015
    Posts:
    476
    Each billboard its own gameobject because graphics.drawmesh quite slowly when 2000 GO on the scene.
    Test:
    - Drawmesh - 75 FPS.
    - MeshRenderer - 120 FPS
     
    Last edited: Aug 19, 2016
  6. MUGIK

    MUGIK

    Joined:
    Jul 2, 2015
    Posts:
    476
    Thanks for the reply!
    Here is video that shows "transition between 3d model and billboard".

    I think its hard to see when actually the transition occurs.

    One bad point is the transition between billboards. I think I will add smooth transition for billboards in future.
     
    Last edited: Mar 19, 2019
    TerraUnity likes this.
  7. MUGIK

    MUGIK

    Joined:
    Jul 2, 2015
    Posts:
    476
    Check out NEW demonstrational video!!!
     
  8. MUGIK

    MUGIK

    Joined:
    Jul 2, 2015
    Posts:
    476
    Realtime Billboard System with Directional Light 4100 OBJECTS.
    Duration of the original video - 15 minutes. Billboards are updated every 8 seconds.
     
    Last edited: Aug 27, 2016
  9. HiThatGirl

    HiThatGirl

    Joined:
    Nov 12, 2014
    Posts:
    19
    1.How can down?
    2.Can be affected by GI?
    3.Memory usage will increase?
    4.Shadow how to deal with?
    5.The far people how to into the room
     
  10. MUGIK

    MUGIK

    Joined:
    Jul 2, 2015
    Posts:
    476
    New video about Realtime Billboard System OPTIMIZATION!!! Check this out!!!!
     
    punk likes this.
  11. MUGIK

    MUGIK

    Joined:
    Jul 2, 2015
    Posts:
    476
    Now you can try Realtime Billboard System for FREE!!!​

     
    Last edited: Jul 14, 2017
  12. MUGIK

    MUGIK

    Joined:
    Jul 2, 2015
    Posts:
    476
    Last edited: Jul 20, 2017
    cwmanley likes this.
  13. MUGIK

    MUGIK

    Joined:
    Jul 2, 2015
    Posts:
    476
    1. "How can down?"
    Currently system in revision in Asset Store, but you can download TRIAL VERSION and buy asset directly from me.
    2. "Can be affected by GI?"
    It's works like a normal unity rendering. Anyway, do you really need GI for very far objects?
    3. "Memory usage will increase?"
    Yes, memory usage depends on detalisation level. For example: 'example' scene with 4096 objects use only 24 MB - this is for one RenderTexture with size 2048x2048.
    memory usage.PNG
    4. "Shadow how to deal with"
    In future you will can enable shadow rendering and maybe shadow casting.
    5. "The far people how to into the room"
    How to start work with asset? I shared video tutorial where you find how to work with this asset.
     
  14. MUGIK

    MUGIK

    Joined:
    Jul 2, 2015
    Posts:
    476
    Currently I'm working on new feature of Billboard System.
    Check this out!
     
  15. MUGIK

    MUGIK

    Joined:
    Jul 2, 2015
    Posts:
    476
    So, today I made a little research. I was looking for competitors and I found them! Real Imposter LOD optimization - very similar to my Billboard System Optimization, but has many defects.
    For example:
    • works only with one camera
    • produce one draw call for every single object
    • doesnt work with transparent object
    • creator stop developing.
    Billboard System Optimization does not have such problems.

    But that's not all!
    According to this posts:
    I must change the name of my asset to something like 'Imposter System Optimization'... I'm very confused!
    So, I asking You, guys: What you think about changing the name?
     
    Gekigengar likes this.
  16. UnityLighting

    UnityLighting

    Joined:
    Mar 31, 2015
    Posts:
    3,866
    Tested and works fine in editor without lags .Real Imposter LOD optimization had lags .I will test it more
     
  17. MUGIK

    MUGIK

    Joined:
    Jul 2, 2015
    Posts:
    476
    wow... Where you attach post processign image effect? And what is that image effect? What version of Unity?
     
  18. UnityLighting

    UnityLighting

    Joined:
    Mar 31, 2015
    Posts:
    3,866
    Problem still exist after remove it.
    So i think problem was not post effects
     
  19. UnityLighting

    UnityLighting

    Joined:
    Mar 31, 2015
    Posts:
    3,866
    After removing all Post Processing Stack components from all cameras
    Unity 5.6.1p4
    Untitled.jpg
     
  20. MUGIK

    MUGIK

    Joined:
    Jul 2, 2015
    Posts:
    476
    So what version of Unity?
    if Unity 5.6 or later Fix: disable "allowMSAA" on 'billboardCamera' gameobject.
     
  21. UnityLighting

    UnityLighting

    Joined:
    Mar 31, 2015
    Posts:
    3,866
    Another issue when i have tested its on a new scen when i drag your building prefab :
    Code (CSharp):
    1. Destroy may not be called from edit mode! Use DestroyImmediate instead.
    2. Also think twice if you really want to destroy something in edit mode. Since this will destroy objects permanently.
    3. UnityEngine.Object:Destroy(Object)
    4. BillboardSystem.Helper:Destroy(Object)
    5. BillboardSystem.BillboardContoller:RenderForSceneCamera(Camera)
    6. BillboardSystem.BillboardControllerEditor:OnSceneGUI()
    7. UnityEditor.DockArea:OnGUI()
    You need to use DestroyImmediate in editor codes
     
  22. UnityLighting

    UnityLighting

    Joined:
    Mar 31, 2015
    Posts:
    3,866
    Attached video
     

    Attached Files:

  23. MUGIK

    MUGIK

    Joined:
    Jul 2, 2015
    Posts:
    476
    Thank you to spending time on this! But You didnt reply yet about your version of Unity.
     
  24. UnityLighting

    UnityLighting

    Joined:
    Mar 31, 2015
    Posts:
    3,866
    5.6.1p4
    I will try different settings non different projects Because i need this tool to render lots of trees and grass
     
  25. MUGIK

    MUGIK

    Joined:
    Jul 2, 2015
    Posts:
    476
    That how my Destroy() method looks:
    Code (CSharp):
    1.  
    2. public static class Helper{
    3. public static void Destroy(Object obj) {
    4.             if (Application.isPlaying)
    5.                 Object.Destroy(obj);
    6.             else
    7.                 Object.DestroyImmediate(obj);
    8.         }
    9. }
    So I could not expect such output...
     
  26. StaffanEk

    StaffanEk

    Joined:
    Jul 13, 2012
    Posts:
    380
    This looks like a solid product. Is the time when pixels are captured controlled by script, or is there some automatic update loop? Would it be possible to control how often imposters are created based on distance from camera .etc
     
  27. MUGIK

    MUGIK

    Joined:
    Jul 2, 2015
    Posts:
    476
    There is automatic update loop depending on changing direction between camera and object. But you can manually update imposter.

    In general the further the object the less direction changes, the less imposters updates. But additional controls on this is good idea.
     
  28. UnityLighting

    UnityLighting

    Joined:
    Mar 31, 2015
    Posts:
    3,866
    Everything is ok on the new project even with post effecs
     
  29. UnityLighting

    UnityLighting

    Joined:
    Mar 31, 2015
    Posts:
    3,866
    Unity 2017.2 beta

    And another error about removed if(!isWebPlayer) webplayer support
     
    Last edited: Jul 23, 2017
  30. UnityLighting

    UnityLighting

    Joined:
    Mar 31, 2015
    Posts:
    3,866
    Last edited: Jul 23, 2017
  31. MUGIK

    MUGIK

    Joined:
    Jul 2, 2015
    Posts:
    476
    Sorry, that's my fault. You need to disable 'AllowHDR' on 'billboardCamera' gameobject. Here is image, that illustrate where you can find that. issue.PNG
     
  32. UnityLighting

    UnityLighting

    Joined:
    Mar 31, 2015
    Posts:
    3,866
    Solved Thank you
    Don't forget to fix Billboard activator toggle box on UI in the new release.. It does not work.
    Also fix errors on 2017.2 because your files are DLL and we cannot modify them
     
    Last edited: Jul 24, 2017
  33. UnityLighting

    UnityLighting

    Joined:
    Mar 31, 2015
    Posts:
    3,866
    New comparison:

    Webp.net-gifmaker (53).gif Webp.net-gifmaker (54).gif
    note: some guys asked about tree leaves that disappear on far billboards. This is not related to imposter system. This is a normal rendering limitation on leave shaders on the all game engines.
    How to fix it?
    You must use tree LOD with Billboard texture on last LOD channel. Similar to SpeedTree sample trees
     
    Last edited: Jul 24, 2017
  34. MUGIK

    MUGIK

    Joined:
    Jul 2, 2015
    Posts:
    476
    It is quite simple to fix: just set minTextureResolution to 64. tree issue fix.PNG
     
    hopeful and UnityLighting like this.
  35. MUGIK

    MUGIK

    Joined:
    Jul 2, 2015
    Posts:
    476
    Fix all these errors(and little more) in the new version.

    Also now you can render self-shadows of the object. Make sure that shadows are enabled in the light settings.
    new self-shadows.PNG
     
    Last edited: Jul 24, 2017
  36. UnityLighting

    UnityLighting

    Joined:
    Mar 31, 2015
    Posts:
    3,866
    Works like a charm with speed tree:
     
    magique, John3D, hopeful and 3 others like this.
  37. Migueljb

    Migueljb

    Joined:
    Feb 27, 2008
    Posts:
    562
    how does it work tho if speed trees have different LOD setups LOD0, LOD1, LOD2 then the billboard. Does this system overide that stuff and goes straight from LOD0 to billboard?
     
  38. UnityLighting

    UnityLighting

    Joined:
    Mar 31, 2015
    Posts:
    3,866
    Yes. My test was using LODs.
    This is a similar LOD system with realtime Billboard support
     
  39. UnityLighting

    UnityLighting

    Joined:
    Mar 31, 2015
    Posts:
    3,866
    Image comparison: 90 m tri => 2.1 m triangles
    Note: front trees has been used AO from post effects
    Webp.net-gifmaker (55).gif

    I will test it on android build
     
    Last edited: Jul 24, 2017
    John3D, MUGIK and Archviz3d like this.
  40. UnityLighting

    UnityLighting

    Joined:
    Mar 31, 2015
    Posts:
    3,866
    Tested on low-end android device (Huawei Y5 4G)
    1. Performance is OK but with "10 or lower" update per frame. More update time value = more spike
    Why ?
    Memory limitation
    but result is OK from GPU side
    Always set queue type to simple for reducing spike screenshot-1500920827568.jpg screenshot-1500920863304.jpg
     
  41. UnityLighting

    UnityLighting

    Joined:
    Mar 31, 2015
    Posts:
    3,866
    I find spelling issue on BillboardController component
     
  42. MUGIK

    MUGIK

    Joined:
    Jul 2, 2015
    Posts:
    476
    Oops, I did not notice this mistake for about a month =)
     
    blitzvb likes this.
  43. MUGIK

    MUGIK

    Joined:
    Jul 2, 2015
    Posts:
    476
    Can you try this WebGL Demo please. Cuz in general I have a very bad performance with WebGL.
     
  44. UnityLighting

    UnityLighting

    Joined:
    Mar 31, 2015
    Posts:
    3,866
    In my system is OK. 43 fps 48*48
    4790K + GTX 960 + 32GB Memory + Opera
     
    MUGIK likes this.
  45. sylon

    sylon

    Joined:
    Mar 5, 2017
    Posts:
    246
    On my laptop (i5-6200) with Radeon R7

    (64x64)
    25fps when moving, 70fps when standing still.

    <5 when system is disabled
     
  46. UnityLighting

    UnityLighting

    Joined:
    Mar 31, 2015
    Posts:
    3,866
    The main problem is always from cpu side (or memory) when updating billboards. You may needs to find a better solution for updating billboard.
    For example when we have set update rate to 3, performance is great but billboards does not faced to the camera. You can face billboard always to the camera even are not in update state
     
    Last edited: Jul 25, 2017
  47. MUGIK

    MUGIK

    Joined:
    Jul 2, 2015
    Posts:
    476
    You tried WebGL version? If so I have bad performance too. If you check WebPlayer demo with Internet Explorer or Firefox you will see much better FPS.
     
  48. UnityLighting

    UnityLighting

    Joined:
    Mar 31, 2015
    Posts:
    3,866
    My settings was 64*64 and not 48*48
    90fps without moving
    40 fps when moving

    Firefox:
    130
    73
     
    Last edited: Jul 25, 2017
    MUGIK likes this.
  49. ranaUK

    ranaUK

    Joined:
    Mar 1, 2017
    Posts:
    166
    Looks really good; can't wait to try it out; any idea about expected release date and price?

    Edit: found it on assetStore: a tad bit too pricey for me.
     
    Last edited: Aug 17, 2017
  50. Black_Raptor

    Black_Raptor

    Joined:
    Nov 3, 2014
    Posts:
    181
    Not work for me :/. ( I use Unity Tree & Unity Tree material ).
     
    Last edited: Aug 20, 2017
Thread Status:
Not open for further replies.