Search Unity

Amplify Impostors - Next Generation Billboards

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

  1. knup_

    knup_

    Joined:
    Feb 23, 2017
    Posts:
    19
    Would it be possible to implement "Alpha to Coverage" to avoid aliasing in VR?
     
    OP3NGL and tapawafo like this.
  2. ChezDoodles

    ChezDoodles

    Joined:
    Sep 13, 2007
    Posts:
    107
    I guess those impostor textures might take up quite a bit of memory. Is it possible to store them using "Amplify Texture 2" (which is totally awesome btw)...?
     
  3. OP3NGL

    OP3NGL

    Joined:
    Dec 10, 2013
    Posts:
    267
    1st image is the impostor
    2nd image is the original mesh, which is the vista building
    3rd image weird popping

    thisclose.png original.png wreid popping.png
     
  4. Reanimate_L

    Reanimate_L

    Joined:
    Oct 10, 2009
    Posts:
    2,788
    @Amplify_Ricardo Oh hey congrats on the release of another great product, might gonna pick this one soon since i need to render dense distant foliages.
    Got some question for this one, sorry if they are mentioned already.
    - is it support forward shading?
    - Mobile VR/Daydream compatible?
     
  5. GlitchInTheMatrix

    GlitchInTheMatrix

    Joined:
    Apr 12, 2010
    Posts:
    285
    Hi there! All looks just fantastic! great work!
    Wondering if it is compatible with Mobile devices and VR !?
    Also What about Dynamic Mesh like Characters? Will be cool in case you use many characters in screen.
     
  6. OP3NGL

    OP3NGL

    Joined:
    Dec 10, 2013
    Posts:
    267
    it already stated the asset doesnt support skinned renderers
     
    GlitchInTheMatrix likes this.
  7. kite3h

    kite3h

    Joined:
    Aug 27, 2012
    Posts:
    197
    OMG.
    You fill all that Unity has missed.

    I do not think you need to worry about shadows in particular. Contact shadow will take care of it anyway.

    But I wonder It support grass . Unreal 's grass does not use normal billboard. It used imposter.
    Grass is not LOD billboard. But Grass also need imposter.

    Anyway

    It does not matter, but the normal map at the bottom of the video is fliped.
     
    Last edited: Jul 19, 2018
  8. roseportalgames

    roseportalgames

    Joined:
    Aug 9, 2017
    Posts:
    173
    It looks like the same issue I had.
    When I baked my model it gets gaps when the camera comes too close.

    My "original mesh" was a child to another gameObject. I baked the "original mesh" (so NOT the parent!).
    Then I move the "original mesh" out of the parent, so it becomes a loose object in the Hierarchy.
    What I also changed, my "original mesh" had scale 100. I change it to scale 1.
    Then I bake it again, same settings, and it no longer has gaps.
    That worked for me anyway, the problem was parenting and scale.
     
  9. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Not sure we can take advantage of it but I'll pass it on to the devs.

    Thanks!

    It's comparable to other PBR materials, depth excluded, you can actually choose which channels you want to bake(Albedo, Normal, etc). AT2 would be interesting but it's not ideal for this type of asset.

    Assuming the player will not be able to go around the building, I would recommend using the Spherical impostor as it would prevent some blending artifacts.

    However, you do seem to be experiencing some sort of issue. Do you think you could isolate it and send it over via email to support@amplify.pt for further testing?

    Thank you!

    Our thanks on behalf of @Amplify_Paulo, he's the main developer on this project.

    1. Baking is done in deferred but the actual impostors work both in Forward and Deferred rendering. If your shaders are set to Forward only, you'll have to adjust them for the baking process.
    2. It works great in VR, I'm not sure about Daydream as we don't have the actual device but be sure to let us know if you run into any issues.

    Thanks!

    1. Works great with VR.
    2. Dynamic/runtime generation will be available soon, it's going to be great for crowds and other similar effects.

    Indeed, we're almost there ;)

    That's the great thing about the Asset Store, you can find almost anything you might need ;)

    Indeed, and you can take advantage of high-quality Ambient Occlusion to really sell the effect.

    Oh, which normal is that?

    Thanks!

    Interesting, we could really use test cases such as this one during the BETA period. If you, or any other user, would like us to test something on our side, feel free to send it over to support@amplify.pt with a brief description of the problem, or post it here.

    Thanks!
     
  10. roseportalgames

    roseportalgames

    Joined:
    Aug 9, 2017
    Posts:
    173
    If I try to remove one of the channels, then the Impostor becomes completely white. I don't have Unity open right now so I forgot which channels, but it's the two that just show the silhouette of the impostor. Greyish.

    Sure! Thank you. :)

    Eagerly awaiting the Android Build & Run fix, can't wait to see how much performance has increased on my phone.
     
  11. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    That's odd, was that with Unity 2017.1?

    We're looking into the Android issue, could be Unity related. Any luck with other Unity versions?

    Thanks!
     
  12. roseportalgames

    roseportalgames

    Joined:
    Aug 9, 2017
    Posts:
    173
    I just use Unity 2018.1.6f1, I don't have any others installed to try it out unfortunately. :(

    Let me know if I can try anything out for you (change some code, whatever, to try to debug the issue. unfortunately I don't know enough about shaders to help you debug on my own).
     
  13. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    That's alright, we should have a new update up in no time!

    Thanks!
     
  14. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hey there, use the attached custom expression to tint your ASE material for now;)

    We'll add it later when we officially support custom ASE shaders.
     

    Attached Files:

    Last edited: Jul 19, 2018
    eastes likes this.
  15. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    I've just discovered this asset, and I'm considering it to help with a large, complex environment on Oculus Go.

    The great thing about the Go is, it's only 3DOF tracking — you can't move the camera, you can only turn it. But of course we have a handful of different points around the map that you can teleport between. So ideally, rather than storing a whole bunch of renderings from a hemisphere's-worth of angles, we could store a rendering from just those specific viewpoints that we will actually be using. Then it should look perfect, and take up no more memory than is actually needed.

    Is this possible?
     
  16. Amplify_Ricardo

    Amplify_Ricardo

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

    Thank you for your interest, we really appreciate it.

    Not sure that this technique applies, can you provide an example of what you currently render?

    Thanks!
     
  17. lolclol

    lolclol

    Joined:
    Jan 24, 2013
    Posts:
    212
    would love to have a look at android demo scene with large environment.
     
  18. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    I don't have a screen shot I can share, but picture a giant oak tree, with glowing patterns in its bark and leaves. It's pushing 10,000 triangles, and it just sits out of reach at one end of the scene, a bit of set decoration that has meaning to the story but no impact on the game play. Seems like a perfect opportunity for a billboard to me.

    In addition, the player is in a rocky canyon. This canyon is composed of lots of high-poly boulder and cliff-face pieces, most of which rather far from any particular viewpoint. I get that the nearby pieces might need to stay in mesh form, but the further-away pieces seem (again) to be great candidates for imposters.

    What exactly do you mean by "not sure that this technique applies"?
     
  19. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Sounds like the perfect test case! Are you using any custom shaders?

    I was unsure if you were describing some sort of pre-rendered panorama or actual geometry ;)
     
  20. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Please try the latest version and let us know if the problem persists.

    Amplify Impostors 0.8.2 - Asset Store
    • Fixed shader compile errors on Android (gles3)
    Thanks!
     
  21. DevIsDave

    DevIsDave

    Joined:
    Aug 8, 2017
    Posts:
    19
    Hi,

    This asset looks great, just wondering if it works with WebGL? If so, does it work for both WebGL 2.0 and 1.0?

    Thanks.
     
  22. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hello,

    It's currently untested, we'll run a few test tomorrow and get back to you ASAP.

    Thanks!
     
    DevIsDave likes this.
  23. DevIsDave

    DevIsDave

    Joined:
    Aug 8, 2017
    Posts:
    19
    Perfect, thank you :)
     
  24. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    Possibly (I'm joining an existing project which contains a LOT of custom shaders, but I'm not sure which of them, if any, are involved in this specific geometry). But I haven't seen anything yet that couldn't be replicated with the standard shader.

    What about pre-rendering the imposters from the handful of specific vantage points used in the game, rather than a full sphere or hemisphere of angles? Is that possible?
     
  25. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634

    Well here is the issue with all of the newer changes and we are in the middle of a new Steam game, we just don't know yet . This will all depend on Unity and how stable the new stuff is once we are near alpha. but it will be 2018 + as we HOPE to access the new rendering,but that will all depend on where Unity is and on stable. So we will see. Right now we are using 2017 .4 because I don't trust 2018 yet.. once it becomes more stable, we will update.
     
  26. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634
    ya once we are closer to Alpha, we plan to. Right now we aren't out of NDA yet. Hopefully soon, but we been slowed a bit with Unity 2018 features that we really want.
     
  27. roseportalgames

    roseportalgames

    Joined:
    Aug 9, 2017
    Posts:
    173
    Unfortunately...

    Shader error in 'Hidden/Amplify Impostors/Spherical Impostor': '_LightCoord' : no such field in structure at line 431 (on gles)

    Compiling Vertex program with UNITY_PASS_FORWARDADD SPOT
    Platform defines: UNITY_NO_DXT5nm UNITY_NO_RGBM UNITY_ENABLE_REFLECTION_BUFFERS UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_NO_CUBEMAP_ARRAY UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER SHADER_API_MOBILE UNITY_HARDWARE_TIER1 UNITY_COLORSPACE_GAMMA UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING

    Error building Player: Shader error in 'Hidden/Amplify Impostors/Spherical Impostor': '_LightCoord' : no such field in structure at line 431 (on gles)

    Compiling Vertex program with UNITY_PASS_FORWARDADD SPOT
    Platform defines: UNITY_NO_DXT5nm UNITY_NO_RGBM UNITY_ENABLE_REFLECTION_BUFFERS UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_NO_CUBEMAP_ARRAY UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF3 UNITY_NO_FULL_STANDARD_SHADER SHADER_API_MOBILE UNITY_HARDWARE_TIER1 UNITY_COLORSPACE_GAMMA UNITY_HALF_PRECISION_FRAGMENT_SHADER_REGISTERS UNITY_LIGHTMAP_DLDR_ENCODING




    Let me know if I can test something for you, so you don't have to upload a whole new version just for this glitch without knowing if it's fixed. :)
     
  28. joshcamas

    joshcamas

    Joined:
    Jun 16, 2017
    Posts:
    1,277
    I have my own foliage system, is it possible to implement this addon into my own systems?
    Also, can I fully automate the impostor generation?

    Thanks! Oh, and this tool looks mindblowingly awesome and powerful!!
     
  29. mmarchant_mypad3d

    mmarchant_mypad3d

    Joined:
    May 8, 2018
    Posts:
    4
    re: Alpha-to-coverage:

    If I am understanding correctly how this asset works, then I'd strongly second the request for alpha-to-coverage. I haven't actually gotten to try the impostors myself, but if it is converting geometric edges to alpha-cutout edges in a flat texture, then MSAA probably won't work as expected on the impostor, leading to awful aliasing in VR. Alpha-to-coverage + a dead simple sharpening filter mostly fixes the issue though, and it's very straightforward to implement.

    Though, maybe I'm missing something, and it actually works fine as is. Has anyone gotten had a chance to try it with some geometry that produces lots of transparent-cutout edges in VR?
     
  30. roseportalgames

    roseportalgames

    Joined:
    Aug 9, 2017
    Posts:
    173
    I just deleted and re-imported Amplify but I still get the same issue.
     
  31. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    No problem!

    It's not compatible at the moment but we're going to see if we get can it working, likely just a small shader issue.


    Looking forward to your feedback, be sure to let us know if you run into any issues.

    You don't have that kind of control at the moment but you can reduce the number of frames used, for something like I that I suppose you could use a low number. If you're interested, we would be happy to test it on our side.

    No to worry, either way, we're working close with the Substance developers to ensure that our shader editor supports it; you can expect the same for our impostors.
    I think we got it fixed now, tricky Unity issues ;)

    Be sure to download the latest version!


    We would be happy to test some of your assets on our side.

    I don't see why you couldn't automate it, we include full source code.

    We do plan to add batch processing, stay tuned!


    Thank you for your input, I passed it on to the developers, I'll post additional details regarding alpha-to-coverage soon.

    Please try the latest fix we just pushed.

    Thanks!
     
    Last edited: Jul 20, 2018
    DevIsDave likes this.
  32. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    OK, that's worth a try, but certainly suboptimal — a low number means it'll be interpolating unnecessarily, and a high number means it's wasting time/memory.

    Please suggest this idea to your developers: a "Viewpoints" property, which is an array of Transform, default empty. If non-empty, then you render frames from those exact positions. Then in situations like mine, where the viewpoints are known, I can just throw in each one, and you use those from your frames instead of any other. (Or perhaps this could be a new Bake Type.)

    I second desire for that — aliasing is a very big issue in VR. Anything you can do to limit those sharp crawly edges is greatly appreciated!
     
  33. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    The information was passed on, thank you! We do plan to offer additional controls that would allow you to set up something along those lines, please keep an eye out for future updates. Performance wise, either way is comparable.

    Noted, we're going to address Alpha-To-Coverage soon.

    Thanks!
     
    JoeStrout likes this.
  34. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Just a quick heads up, Alpha-To-Coverage is on our internal roadmap. Unless we run into any issues, you can count on it!
     
    knup_, tapawafo and JoeStrout like this.
  35. knup_

    knup_

    Joined:
    Feb 23, 2017
    Posts:
    19
    Great news! You guys are fantastic.
     
  36. roseportalgames

    roseportalgames

    Joined:
    Aug 9, 2017
    Posts:
    173
    I don't see the new version available yet. :)
     
  37. sledgeman

    sledgeman

    Joined:
    Jun 23, 2014
    Posts:
    389
    It looks like it is not compatible with Unity 5.6 ?
     
  38. o1o101

    o1o101

    Joined:
    Jan 19, 2014
    Posts:
    639
    Cheers! Thanks alot!
     
  39. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Thanks!
    Will be soon.
    Unfortunately, 2017.1 and higher.
    No problem!
     
  40. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634

    Thanks, like always, I own all of your products, so I will buy this, as it looks amazing and would fit in our game perfectly. Thank you for answering all of my questions....

    PS: Not related to Imposter. but I own Motion as well, disappointed it was closed down, but I understand why, I hope to still see people using it, as I really enjoyed using it, and plan to still use it. Will you guys no longer answer questions related to Motion? even though its gone? for users in the middle of a making a game that are using it? Just wondering.

    not worried about updates and other things, but just wondering if someone where to ask questions . Thank you.
     
  41. Plumpman

    Plumpman

    Joined:
    Sep 7, 2012
    Posts:
    27
    What vegetation systems can we use for this?
    Is it possible to get Vegetation Studio support?

    For now, you recommend anything? Standard Unity Terrain Placement works I assume?
     
  42. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    After more consideration, it's become clear that what I really need is something like Amplify Imposter, but that makes a skybox (or something very much like it). That is, something like this trick, but that writes to the depth map on each frame, so that other objects will properly intersect it.

    The vast majority of my level is static, and as noted before, the camera can only move to a few very well-defined positions. So, this would allow me to bake virtually the entire level into this depth-savvy skybox. Framerates should go through the roof (at least as far as rendering time goes).

    I'm pretty sure Amplify Imposters can't do this, but (1) is there any chance it ever will, and (2) does anybody know of an asset that does do it?

    And I guess if the answer to both is "no," any idea how/whether I could use Amplify Imposter's shader to roll my own?
     
  43. MikeUpchat

    MikeUpchat

    Joined:
    Sep 24, 2010
    Posts:
    1,056
    @JoeStrout - Have you seen Horizon[ON] But I suspect with a little work you could use this great asset to make imposters for your horizon.
     
    ftejada likes this.
  44. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Thank you for using them, your support makes it all possible!

    We'll continue to support existing Amplify Motion users, nothing to worry about, feel free to contact us via the official thread or support email.

    Our apologies but we haven't run extensive tests with vegetation systems but it should work just as with other type of meshes; one of our users seems to be using Vegetation Studio without any issues.

    Let us know if you would like us to test a specific asset on our side, we would be happy to help!

    Unfortunately, this is beyond the scope of what our technique allows for. It's an interesting case, no doubt about it, I'll definitely pass it on to the team.


    Looks like an awesome test case, it should work as long as Horizon[ON] accepts custom meshes.

    Thanks!
     
  45. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    I don't think he want a skybox per see, but a complete scene replacement with dynamic object rendered properly, think old ff7 and resident evil kind of render but using depth instead of plane and cubemap instead of flat image.
     
  46. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    Is this compatible with open gl 2.0 mobile?
     
  47. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634


    No thank you for such great tools.
    I make my living doing client work for larger and indie for many years, now I went on my own, to do work for Steam games, as of the last year...soon I will be making assets art related. So this makes my life easier. Thanks!




    Fantastic.about Amp Motion!
     
  48. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634

    Yes Horizon On does, or did. as far as I remember, I used to use it. and remembering using my own meshes.
     
  49. eastes

    eastes

    Joined:
    Sep 1, 2012
    Posts:
    59
    Was so excited to try this one out and I got some errors using Unity 2018.1.0b13:

    Assets/AmplifyImpostors/Plugins/Editor/ShaderEditorNode/AmplifyImpostorNode.cs(635,56): error CS1501: No overload for method `RequestNewInterpolator' takes `3' arguments

    So I added a method that takes a string and that got rid of the errors, but then I got this error:

    Assets/AmplifyImpostors/Plugins/Editor/ShaderEditorNode/AmplifyImpostorNode.cs(663,84): error CS1061: Type `AmplifyShaderEditor.TemplateData' does not contain a definition for `FragmentFunctionData' and no extension method `FragmentFunctionData' of type `AmplifyShaderEditor.TemplateData' could be found. Are you missing an assembly reference?

    Any advices on what should I do?
     
  50. MarcinFuero

    MarcinFuero

    Joined:
    Jun 28, 2017
    Posts:
    6
    Hi,
    I'm curious how it looks in case of memory use? Is it baked some big texture per object, multiple textures or other way? Let's say that we have 1024x1024 texture for albedo and same for normal map. What textures will be added in case of impostor object/material?

    And what about transparency? Is it alpha blending or cutout?