Search Unity

Amplify Impostors - Next Generation Billboards

Discussion in 'Assets and Asset Store' started by Amplify_Ricardo, Jul 10, 2018.

  1. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389

    Hey there!

    Sorry for your troubles, that is not a common issue with the standard shader. I'm quite confused to what could be causing it. Can you try baking a default Unity sphere? Just curious to see what would happen.

    I would recommend trying to bake that rock model on a new project, just the rock and AI so we can be sure that the problem is not specific to the project you're currently on. If so, we'll try to debug possible issues on your current project of course.

    Please confirm your Unity version, and if the problem is also present in a new empty scene in your current project.

    Thanks!
     
  2. DragonmoN

    DragonmoN

    Joined:
    Nov 27, 2016
    Posts:
    26
    Any updates on HDRP 12 support?
     
  3. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Sorry, not quite yet!
     
  4. pako

    pako

    Joined:
    Nov 21, 2012
    Posts:
    111
    Hi,

    I run Unity 2020.3.25f1 on Windows 10, and Amplify Impostors v0.9.7 rev013. I use the Built-in Render Pipeline.

    The Impostors show just fine in the Editor Play mode. However, when I build for Android they disappear. No Impostors visible.

    Please help!
     
  5. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hey there!

    Are those impostors part of a LOD Group?
     
  6. pako

    pako

    Joined:
    Nov 21, 2012
    Posts:
    111
    No, I don't have any LOD groups
     
  7. pako

    pako

    Joined:
    Nov 21, 2012
    Posts:
    111
    The problem seems to be related to the Android API level. The Impostors don't work when testing on an old phone with android 6 (API level 23), but work properly on Android 11 (API level 30).

    Is this a bug or by design? Also, I wonder what's the minimum API level needed for the Impostors to work properly?
     
  8. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hey there!

    Sounds like the Graphics API might be an issue there, not necessarily the API level. Amplify Impostors requires OpenGL ES 3.x or higher.

    The old device, what model is it?
     
    pako likes this.
  9. pako

    pako

    Joined:
    Nov 21, 2012
    Posts:
    111
    No, I don't ha
    It's a Huawei P8 Lite, which has OpenGL ES 2.x.

    OK, mystery solved. :)

    Thank you for your prompt responses!!!
     
    Amplify_Ricardo likes this.
  10. LumaPxxx

    LumaPxxx

    Joined:
    Oct 3, 2010
    Posts:
    339
    Please at least make ambient light working in hdrp12.
    hdrp12 is out more than half year and we are still suffering for the dark color in shadow area.
    we don't ask other things will work immediately, just ambient light, please.
    AI is being broken too long time in hdrp12.
     
  11. Amplify_Support

    Amplify_Support

    Joined:
    Jul 19, 2013
    Posts:
    121
    Common misconception, we don't support Beta/Alpha/Experimental releases, HDRP 12 was officially released on 2021-01-11 and not more than half a year ago.

    Anyway, we'd love to support ambient light with HDRP 12 but this involves updating the entire shader template. We'll be transparent about this, updating our editor to support SRP 12 was quite the endeavor; we can see that getting Impostors up to speed on this will definitely pose some challenges.

    Apologies for inconvenience, we'll post progress when possible.
     
    DragonmoN likes this.
  12. Recon03

    Recon03

    Joined:
    Aug 5, 2013
    Posts:
    845
    Hey Amplify_Ricardo You do fantastic work, I bought all of your work over the years, but this one. I been waiting for • Dynamic Impostors, before I buy it.
    Do you have an ETA??

    ( Not trying to rush you, just wondering ) Thanks
     
  13. Amplify_Support

    Amplify_Support

    Joined:
    Jul 19, 2013
    Posts:
    121
    Sorry, no ETA at the moment. As we mentioned in the past, our attempts have not yield the results we expected, throw some Unity related problems into the mix, so we need to consider some alternatives in this.

    It's not really a matter of rushing at the moment, more finding something that works well for most cases without compromising the features provided by AI.
     
  14. Recon03

    Recon03

    Joined:
    Aug 5, 2013
    Posts:
    845
    Ya I don't really follow, much here. So, not sure what has been said in the past, but thanks for that info.
     
  15. Amplify_Support

    Amplify_Support

    Joined:
    Jul 19, 2013
    Posts:
    121
    No problem! In short, there have been a couple of attempts, we got something working but it had some shadowing issues(among other), not great for production. In general, keeping up with SRP version puts some additional pressure on our dev time.

    In other words, we need to make sure we have a solid solution.
     
    Recon03 likes this.
  16. Mojo-Game-Studio

    Mojo-Game-Studio

    Joined:
    Sep 18, 2015
    Posts:
    111
    AI HDRP12 support pleeeeeeeeeeeaaaaaaaaaaaaaaaaassssssssssssssssssseeeeeeeeeeeeeeeeeeee!!!!!!
     
  17. Amplify_Support

    Amplify_Support

    Joined:
    Jul 19, 2013
    Posts:
    121
    We hear you loud and clear! ;)
     
    LumaPxxx and Mojo-Game-Studio like this.
  18. ge01f

    ge01f

    Joined:
    Nov 28, 2014
    Posts:
    121
    Since it's working with Vegetation Engine shaders, Im going to stick with that for now. Thanks for offering though.
     
    Amplify_Support likes this.
  19. Sir_patrickl

    Sir_patrickl

    Joined:
    Jun 24, 2013
    Posts:
    62
    Hi, I'm interested in getting this asset but I'm not 100% clear on the custom material baking based on the info in the wiki. I'm using a non standard shader (Quibli from the asset store) which uses Shader Graph. Are there Shader graph examples on how to do this in the samples?
     
  20. Amplify_Support

    Amplify_Support

    Joined:
    Jul 19, 2013
    Posts:
    121
    Hi!

    I'm afraid that would be a problem, we're unable to support custom Shader Graph shaders at the moment. We're only able to support it using Amplify Shader Editor, this is mainly due to changes on Shader Graph's side as this used to be possible.

    Sorry for the inconvenience.
     
  21. modena3d

    modena3d

    Joined:
    Sep 28, 2010
    Posts:
    12
    In HDRP is working correctly in version 2020.3.26f1 ????
     
  22. Amplify_Support

    Amplify_Support

    Joined:
    Jul 19, 2013
    Posts:
    121
    HDRP 10.x is supported, did you run into any issues? There's always a chance something may have changed, any input appreciated so that we may check it on our end. (specifics)
     
  23. BoppyGamesLLC

    BoppyGamesLLC

    Joined:
    May 1, 2020
    Posts:
    4
    Hello!

    Hopefully this is the correct place to ask this, but I am trying to make an imposter of a tree asset and its just coming out white. The tree uses a custom shader but I'm just looking to make a static asset. The albedo texture after the bake is completely white, do I need to use the custom shader editor in order to bake a static asset that's using a shadergraph shader?

    Thanks!
     
  24. DirtyHippy

    DirtyHippy

    Joined:
    Jul 17, 2012
    Posts:
    224
    Hi -

    I finally got around to playing around with this asset today, and I immediately ran into problems - Unity 2020.3.25, Built-In, Linear, Deferred.

    Impostors would not bake with a very simple use case.

    I had to replace this line of code in AmplifyImposter.cs since it always returned null:

    Code (CSharp):
    1.                         targetPrefab = PrefabUtility.GetPrefabInstanceHandle( ( Selection.activeObject as GameObject ).transform.root.gameObject );
    with this line:

    Code (CSharp):
    1.                         targetPrefab = PrefabUtility.GetCorrespondingObjectFromOriginalSource( ( Selection.activeObject as GameObject ) );
    (or use GetCorrespondingObjectFromSource depending on your intent)

    Also note: targetPrefab is a UnityEngine.Object here. It should really be a GameObject since the prefab methods all return GameObjects anyway. Also, it would be better here to use Selection.activeGameObject instead of Selection.activeObject because you can avoid the casting and the code is cleaner.

    This line appears to be trying to load the prefab asset, again, for some reason:

    Code (CSharp):
    1.                         GameObject targetGO = AssetDatabase.LoadAssetAtPath( folderPath + ( Selection.activeObject as GameObject ).transform.root.gameObject.name + ".prefab", typeof( GameObject ) ) as GameObject;
    2.  
    Since targetPrefab is already a reference to the prefab, you can just cast it to GameObject:

    Code (CSharp):
    1.                         var targetPrefabAsGameObject = (GameObject) targetPrefab;
    2.  
    And use targetPrefabAsGameObject to instantiate your temporary prefab instance (although it would be cleaner to just change targetPrefab to a GameObject instead so you didn't need this line).

    After these changes everything worked fine. This was a super quick review, and it is very possible I missed something in your intent here, and if so, I apologize.
     
  25. Amplify_Support

    Amplify_Support

    Joined:
    Jul 19, 2013
    Posts:
    121
    Greetings, the issue is likely the custom shader as custom shaders are not supported out of the box; try something like the Unity Standard or SpeeTree shader for example.

    Please confirm your current Unity version, AI also does not support URP/HDRP 12 yet.

    Thanks for reporting this issue but we do have some additional questions.

    -What object are you adding the AI component to? (an example would be great)
    -Is this is in the Scene view or Prefab view? (prefab view is not supported by design, for now)
    -What's the actual console log on this "null"?

    You're not supposed to see any errors at all, even if you add it to incompatible objects. I'm quite curious to learn what exactly caused it on your end, if you could supply an example to support@amplify.pt that would be extremely helpful.

    Thanks in advance.
     
  26. Ema-DF

    Ema-DF

    Joined:
    Apr 2, 2020
    Posts:
    3
    I am using unity version 2021.2.8 with URP
    and when I go to create the impostor gives me this error:

    [AmplifyImpostors] Custom render pipeline was detected but necessary files for baking are missing, please make sure the appropriate files were imported.
    You can find them at 'RenderPipelinePackages' folder.

    But I don't know how to fix it
    someone can help me?
    Thanks
     
  27. fendercodes

    fendercodes

    Joined:
    Feb 4, 2019
    Posts:
    191
    I have a dense forest of trees spawned using Vegetation Studio Pro. They have their own billboard/impostor system but they do not look as pretty as amplify impostors.

    However, the performance of the VSP billboard system is better because at runtime they are merging together all the meshes into a single mesh and sending it in 1 draw call to the GPU.

    I'm working on a hack for VSP that merges together amplify imposter meshes instead. Here, you can see what they look like merged when I inspect the mesh using RenderDoc.

    Screenshot 2022-02-18 233917.png

    I think I need to make changes to the Amplify Impostor shader for it to work with multiple imposters merged into a single mesh? I'd really appreciate any pointers on what I would need to change in the shader for them all to render.
     
  28. Amplify_Support

    Amplify_Support

    Joined:
    Jul 19, 2013
    Posts:
    121
    Greetings,

    This one is on us, there seems to be an issue in detecting that specific URP version. We'll have to look into a fix on our end.

    Apologies for the inconvenience.

    Cool stuff! But I'm afraid that's beyond the scope of our support, you are free to alter it as you see fit of course.

    I recommend contacting the VSP developer if you want to explore custom solutions with AI.
     
  29. fendercodes

    fendercodes

    Joined:
    Feb 4, 2019
    Posts:
    191
    It's actually not really anything to do with VSP at this point. It's simply a mesh with multiple imposter meshes merged together. I'd need to modify your shader but I would really appreciate any tips on if it's even possible or tips on what parts of the shader to look at.
     
  30. Amplify_Support

    Amplify_Support

    Joined:
    Jul 19, 2013
    Posts:
    121
    Sorry, I was not clear in my reply. I mean, if you want to explore that behavior you have to do it with the other developer because it's beyond the scope of our support. Our impostors solution relies on Unity provided GPU instancing, anything beyond that is custom development and we cannot assist you.

    If it was something we had details on we'd gladly share it, but it's not the case in this instance.
     
  31. fendercodes

    fendercodes

    Joined:
    Feb 4, 2019
    Posts:
    191
    Forget I mentioned any other asset! The question is simply - can multiple Amplify Impostor meshes be merged together into a single mesh and still work? If not, what is preventing that? In general it'd give a bigger performance boost than GPU Instancing so its not a bad idea to consider.
     
  32. Amplify_Support

    Amplify_Support

    Joined:
    Jul 19, 2013
    Posts:
    121
    Got it! No ready way to do that, AI uses GPU Instancing, it does not combine your meshes in any way. Batching itself will break the effect, just for reference, we don't have any additional details on that to point you to.
     
    dyox likes this.
  33. fendercodes

    fendercodes

    Joined:
    Feb 4, 2019
    Posts:
    191
    Thanks! I appreciate the info. Grest asset. :)
     
    Amplify_Support likes this.
  34. Amplify_Support

    Amplify_Support

    Joined:
    Jul 19, 2013
    Posts:
    121

    Sorry, I must correct my previous reply. This is indeed expected as we do not support URP 12 yet!

    Apologies for the inconvenience.
     
  35. Tropobor

    Tropobor

    Joined:
    Mar 24, 2014
    Posts:
    73
    +1 ;)... for URP 12 Support...:)
     
  36. bitinn

    bitinn

    Joined:
    Aug 20, 2016
    Posts:
    961
    Hi Amplify team, did you come up with a solution for the speedtree 7 shader baking problem? Or do we have to modify speedtree shaders?

    With URP 12 and its Speedtree shader, we tested out the TreeForest scene included in the package, but still get white albedo bake result at the end.

    (What we did was putting the default URP Preset in the Bake Preset settings, we see the bake is successful for all textures, but albedo RGB is white instead of leave color; we checked using a Lit shader for leaves, and it did bake correctly, but the result is not what we want.)
     
  37. Amplify_Support

    Amplify_Support

    Joined:
    Jul 19, 2013
    Posts:
    121
    URP 12 is not supported yet, there's also an active SpeedTree ticket on our side.
     
    bitinn likes this.
  38. TheGamery

    TheGamery

    Joined:
    Oct 14, 2013
    Posts:
    94
    When you do come around to HDRP 12+, you might want to start on HDRP 12.1.4 or later as it fixes some bugs that causing warnings in the Impostor HDRP shaders.

    I don't know if this also affected URP as well though.
     
  39. Amplify_Support

    Amplify_Support

    Joined:
    Jul 19, 2013
    Posts:
    121
    No worries, our policy is to support the latest official SRP release.
     
  40. dyox

    dyox

    Joined:
    Aug 19, 2011
    Posts:
    619
    Batching all impostors with TextureArray is possible but extremely complex.
    Custom static batching improves a lot performance and it requires a lot of changes on Amplify shaders.

    Instanced: 337 Fps
    Batched = 800 Fps

    Desktop Screenshot 2022.02.25 - 01.58.47.23.png Desktop Screenshot 2022.02.25 - 01.56.34.43.png Desktop Screenshot 2022.02.25 - 01.56.45.84.png

    Combined Amplify Shader:
    Capture.PNG
     
    Last edited: Feb 25, 2022
    blueivy and Willbkool_FPCS like this.
  41. Amplify_Support

    Amplify_Support

    Joined:
    Jul 19, 2013
    Posts:
    121
  42. dyox

    dyox

    Joined:
    Aug 19, 2011
    Posts:
    619
    The gain is substancial:
    Desktop Screenshot 2022.03.04 - 04.30.13.54.png

    Desktop Screenshot 2022.03.04 - 04.31.41.30.png
    Desktop Screenshot 2022.03.04 - 04.26.32.58.png
    Desktop Screenshot 2022.03.04 - 04.27.01.67.png



    Amplify Impostors:


     
    Last edited: Mar 4, 2022
  43. Amplify_Support

    Amplify_Support

    Joined:
    Jul 19, 2013
    Posts:
    121
  44. Bwacky

    Bwacky

    Joined:
    Nov 2, 2016
    Posts:
    205
    Hi!
    Regarding this, did you have a chance to add support for baking impostors with Better Lit?
    Would save a lot of headache for switching back and forth between standard lit and better lit.
     
  45. yasmeen_unity

    yasmeen_unity

    Joined:
    Jan 6, 2021
    Posts:
    2
    Hi, amazing tool! I wanted to ask if you had a release date on batching? (creating imposters for multiple objects)

    Thanks!
     
  46. Amplify_Support

    Amplify_Support

    Joined:
    Jul 19, 2013
    Posts:
    121
    Hi!

    Not at the moment, not officially at least. But we do include an option for custom Bake and Runtime shaders; does require Amplify Shader Editor and shader programing experience, it's not too beginner friendly.


    Hey,
    Sorry, no ETA for now.
     
  47. Gibbonuk

    Gibbonuk

    Joined:
    Dec 10, 2013
    Posts:
    175
    Hi,

    I am trying to find a solution to the awful looking tree billboard system used in the unity (built in pipeline). I am trying to get close to something like the forests within MSFS. I know the engine used (Asobo) is obviously very capable and so I'm not expecting to be able to match the results, but there is a huge (HUGE!) difference between Unity's tree rendering and MSFS.

    It has been suggested to me that they are probably using a imposter system along with some fancy AO shader for the "dark dense" look inside and around the forest.

    I have since come across Distance Field Ambient Occlusion which UE has built in but unfortunately unity doesn't yet offer anything alike, nor has anyone appeared to integrate it yet (a few seem to have tried).

    However, I would be quite happy with just a good imposter system that also offered lighting and shadows.

    So first, the bigger question is, would the amplify imposter system enable me to get results close to the attached ref photo.

    But at the very least would it allow me to place trees (as imposters) that receive lighting and cast shadows BUT when close (ish) up they become the original mesh?

    MSFS Photo attached for ref. msfs-trees.jpg
     
  48. Amplify_Support

    Amplify_Support

    Joined:
    Jul 19, 2013
    Posts:
    121

    Hey there!

    Yes, Impostors would work well for that, and not just with trees. It also works with Ambient Occlusion, and dynamic lights/shadows. (Impostors can't be baked but they do use baked probe data)

    Keep in mind that custom shaders may not work out of the box. Are you using any specific package for the trees?
     
  49. Gibbonuk

    Gibbonuk

    Joined:
    Dec 10, 2013
    Posts:
    175
    Thank you for getting back to me. I'm not using any specific packages currently other than standard Terrain and Placement tools. I do have some tools and was going to buy some newer ones such as Vegetation Studio or TC2 but to be honest, I'm a little confused about what can do what. Recommendations if using Amplify Imposters?

    But correct me if I'm wrong, with this system I can make an imposter from a tree model and then place that on my terrain using standard or other tree placement tools?

    And is there an option for close transition back to the 3D mesh model?
     
  50. Amplify_Support

    Amplify_Support

    Joined:
    Jul 19, 2013
    Posts:
    121
    Hey, the issue is really usually the shader, the Impostor can be used on any prefab like a regular mesh; you should be able to distribute it in your terrain.

    We recommend The Vegetation Engine, the developer offer an Amplify Impostors add-on. Also works well with objects using the Unity Standard material.

    Just one side note, AI does not support URP/HDRP 12 yet.
     
    Last edited: Mar 8, 2022