Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

Amplify Impostors - Next Generation Billboards

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

  1. montyjack

    montyjack

    Joined:
    Jan 10, 2014
    Posts:
    43
    Hey, I just purchased AmplifyImpostors and it's failing to compile. I'm getting a number of errors in AmplifyImpostorNode.cs starting with "WirePortDataType does not contain a definition for SAMPLERSTATE" WirePortDataType is defined by Amplify Shader Editor, so I'd expect it would work well with Impostors. Additionally, MasterNode does not contain a definition for SamplingMacros and TexturePropertyNode does not contain a definition for ForceSamplingMacrosGen.

    Any idea why this is happening?
     
  2. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,387
    Hey there, welcome aboard.

    Did you update ASE? You need to be running the latest version of both to use them in the same project.

    Otherwise, there could be some sort of conflict with another script, let us know if updating does not resolve the issue.
     
  3. KB_sky

    KB_sky

    Joined:
    Apr 22, 2021
    Posts:
    2
    Hi, I like this tool, but I wish it had an option to create an atlas that takes lighting into account. Basically bake the light on the model (from the scene).
    I wanted to use these impostors on a scene with baked lighting (where there is no real-time lighting), but the impostors look bland compared to the original: 2021-09-23 14-00-28.png
     
  4. Amplify_Ricardo

    Amplify_Ricardo

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

    Before diving into that, it's important to keep in mind that you're not going to be able to have unique lightmaps per-impostor, meaning that if you use this for something like trees in a forest it's not going to work as expected, they will all use the same lightmap regardless of their position in the scene. Unique impostors(a single object in your scene) could work but this is an advanced topic, we don't recommend it lightly as it would involve using our shader editor to create custom shaders.

    If you'd like to learn more about it, please check the following links:
    Custom Bake/Runtime Shaders: http://wiki.amplify.pt/index.php?title=Unity_Products:Amplify_Impostors/Custom_Baking
    Lightmaps: http://wiki.amplify.pt/index.php?title=Unity_Products:Amplify_Impostors/Lightmap_Baking

    Ideally, you'd want to use baked lightprobes instead of lightmaps.

    Apologies for the inconvenience, we're aware that this is not ideal.
     
  5. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    This has been in "beta" for a _long_ time.

    Any chance at a few more features?

    I wonder if you plan to ever make creating imposters like these a little easier? -- I haven't used this in a while, but at least add some kind of a way to make baking lightprobes easier on a number of imposters at once (i.e. with a single-click or something). Not everyone can use realtime lighting, and I wasn't aware of the limitations with your product in this area (despite having purchased it). I'm glad I didn't have to learn about this lightmap-baking limitation the way _this_ poor guy did -- after all of my level lightmaps had been baked. :(

    And while we're at it -- any chance of _animated_ imposters? (Perhaps using a RenderTexture sort of deal?)
     
    atomicjoe likes this.
  6. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,387
    I think at this point we can say that it's a "soft beta", there's been a LOT of development put into AI since its release. One of the main features we wanted to add before concluding the beta were Runtime Impostors(which would allow for animated fx), unfortunately we ran into some limitations and specific problems; we attempted this 3 separate times... In any case, that's another discussion.

    Please allow me to clarify a few things:
    1. Baked light probe use is completely automatic; meaning that Impostors will use light probes without any action required on your part, you can even set Probe Anchors in the mesh component as you would with regular meshes.
    2. Lightmapped impostors was never a planned or advertised feature on our Roadmap, we added this due to popular demand as explained in our wiki. Our goal was always to provide next-generation impostors capable with Full Lighting and Shadowing support via Dynamic Lights and Probes.

    As always, please examine descriptions carefully and don't hesitate to ask any questions or confirm if a certain feature is available or planned. If you feel that Impostors is not a good fit to your project, contact sales@amplify.pt.

    New features are definitely coming but we've often prioritized support and SRP development due to user demand.
     
    Last edited: Sep 24, 2021
  7. iileychen

    iileychen

    Joined:
    Oct 13, 2015
    Posts:
    96
    Hi, just want to know when "Runtime baking impostors" will be supported? Thanks!
     
  8. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,387
    Hello!

    I'm afraid we don't have an ETA at the moment.
     
  9. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    Fair enough. Thanks for the explanation.


    However... I do also want to say that I really don't think you should beat up the user for this one.

    After all:

    "Full Lighting and Shadowing support" does kind of give the sense that "Full" Lighting and Shadowing should obviously include lightmapping features of the engine -- since they _are_ part of the "Full Lighting and Shadowing" workflow for some users.
    To be clear, while you _could_ be sleazy and try to blame the reader for not fully grasping your intentions in how they are "supposed to" read that statement, this is not the true problem with that statement. The statement does not inherently _exclude_ lightmapping (or other lighting/shadowing) feature support, just because it mentions a particular _way_ it might do it.

    My suggestion to prevent further confusion, if I may be so bold:

    Get rid of that "Full" in the description (or at least add another line to clarify what features it _doesn't_ support), and it would come off as a little less "false-advertisey" to people.


    Not trying to be rude -- just making a point. I'm sure others feel the same about this statement as I do.

    Otherwise, thanks for your hard work on this.
    I'm hoping runtime imposters do come at some point. :)
     
  10. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,387
    I wouldn't go as far as saying "beating the user", so to speak; a refund is always available if something is misinterpreted or does not work as expected. Our intention is always to be as specific as possible, and we'd definitely never try to shift blame around; that's just not how we work as a developer.

    Point taken, we'll make a few adjustments to the description.
     
    awesomedata likes this.
  11. ciathyza

    ciathyza

    Joined:
    Aug 16, 2015
    Posts:
    108
    Need some support here to get started...

    I imported the Amplify Impostor package and the HDRP plugin for it. I check the HDRP sample scene and the barrel impostor object is invisible. When I try to bake it I get this error:

    Code (CSharp):
    1. [AmplifyImpostors] Something went wrong with the baking process, please contact support@amplify.pt with this log message.
    2. Index was outside the bounds of the array.  at (wrapper stelemref) System.Object.virt_stelemref_class_small_idepth(intptr,object)
    3.   at AmplifyImpostors.AmplifyImpostor.GenerateTextures (System.Collections.Generic.List`1[T] outputList, System.Boolean standardRendering) [0x0012a] in ...\Assets\THIRDPARTY\Amplify\AmplifyImpostors\Plugins\Scripts\AmplifyImpostor.cs:224
    4.   at AmplifyImpostors.AmplifyImpostor.RenderAllDeferredGroups (AmplifyImpostors.AmplifyImpostorAsset data) [0x005b6] in ...\Assets\THIRDPARTY\Amplify\AmplifyImpostors\Plugins\Scripts\AmplifyImpostor.cs:1144
    5.   at AmplifyImpostors.AmplifyImpostorInspector.DelayedBake () [0x00000] in ...\Assets\THIRDPARTY\Amplify\AmplifyImpostors\Plugins\Editor\Inspector\AmplifyImpostorInspector.cs:988
    What's going on with that?

    EDIT: Nevermind, works now! Seems something went wrong during import.
     
    Last edited: Sep 29, 2021
  12. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,387

    Hey there!

    I would recommend removing the AI folder and checking your console for any other possible Warnings/Errors; re-import AI and check the console once more.

    Before moving it into another folder, just to be sure, try baking an HDRP impostors first and check the console.

    This is definitely not the intended experience we wished you had but we hope we can help.

    Please also confirm what's your current AI, Unity and HDRP version.
     
  13. Jack_Martison

    Jack_Martison

    Joined:
    Jun 24, 2018
    Posts:
    85
    Greetings,

    I have a problem with impostors cross fading. For trees or vegeation not so noticeable, but i can say quite noticeable transition for objects, such as rocks or large objects.


    This is animated crossfading, obviously even more noticeable with manual crossfading

    Also attached screenshot from BOXOPHOBIC's Discord, assuming that the problem with impostor's crossfade (red is impostor)

    HDRP 2020 LTS
     

    Attached Files:

  14. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,387
    Greetings!

    Something does look a bit off there, are the original model or impostors using custom shaders? Or is that our default impostor shader?
     
  15. Jack_Martison

    Jack_Martison

    Joined:
    Jun 24, 2018
    Posts:
    85
    The model was converted to TVE Object shader
    I'm using F̶o̶r̶w̶a̶r̶d̶ Deferred rendering, just in case
     
  16. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,387
    Sorry, I'm not fully familiar with TVE shader/object usages. If the impostor is using a TVE shader you'll need to contact the TVE developer which would then contact us directly if he finds that the problem is on our end.

    If you're using our default impostor shader, we'd be happy to test an example. (support@amplify.pt)

    ** Edit ** We're in contact with the TVE developer regarding this issue, thanks!
     
    Last edited: Sep 29, 2021
  17. tcz8

    tcz8

    Joined:
    Aug 20, 2015
    Posts:
    504
    @Amplify_Ricardo Soooooo about that animation feature.... :p

    I have 100k entity that will need an imposter soon. Instanced rendering is working, LOD is working, collision is handled, Pathfinding is next, and then I'll dive into shaders. That's you guys :eek:


    :D No pressure, just trying to plan my work. Is it still going to happen? Maybe you can help us help you. What's going on with your previous attempt? Can we try/look at some beta? Test footage? Can we start a GoFundMe page to finance your motivation to finish it?
     
    Amplify_Ricardo likes this.
  18. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,387
    Hey there, looking forward to see what you're working on!

    When you say 100k, you mean a group of prefabs repeated in your scene or something else?

    We're motivated, no worries there! The problem is more on the rendering side, both in regards to performance and consistency. We've experienced different unexpected blockers with the techniques(3 different attempts) we've explored, usually resulting in inconsistent rendering(ghosting, clipping, etc) or incorrect shadows.

    We're still exploring this, and impostors in general, it's really an R&D problem.

    Not much to look at honestly, basically a lot of coding and specific test; we prefer to share the working version instead of our progress. Looking at our older internal posts, I do see some more visual updates. For example, a Ghosting example:




    We don't have an ETA for realtime impostors, I would not recommend counting on it for your current project as we cannot guarantee that this will work for your specific needs.
     
  19. MikeUpchat

    MikeUpchat

    Joined:
    Sep 24, 2010
    Posts:
    1,055
    Does your asset support any runtime generation of imposters?
     
  20. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,387
    It does not, it's editor only.
     
  21. julianr

    julianr

    Joined:
    Jun 5, 2014
    Posts:
    1,210
    Hi, I'm experiencing a build issue with the latest Impostors release on Unity 2020.3.21f1. It tries to import something when the build runs with namespace errors. Not sure why, but the Amplify Impostors runs fine in the editor. Once I remove AI it builds fine.
     
  22. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,387
    Hey there, try the latest build we just submitted, it will hopefully correct the issue.

    Just to clarify, no scripts are added/used on your build, only shader and the impostor asset itself.
     
    julianr likes this.
  23. julianr

    julianr

    Joined:
    Jun 5, 2014
    Posts:
    1,210
    Thanks. Appreciate the update!
     
  24. achest

    achest

    Joined:
    Aug 22, 2011
    Posts:
    14
    Hi! How to bake texture for the Impostor in Cinema4D ?
    Want to bake the TurbulanceFD object in octahedron sequance.
    Thank you.
     
    Last edited: Nov 11, 2021
  25. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,387
    Hey!

    Afraid not, the bake data must be generated inside Unity. Cinema4D "impostors" would require different shader calculations.

    Additionally, our impostors do not support semi-transparent surfaces, it would not be a good application for smoke/fire etc.
     
  26. achest

    achest

    Joined:
    Aug 22, 2011
    Posts:
    14
    ok, but i want to try create texture for the Amplify Impostor by myself, thru Cinema4D and Photoshop. Can you please tell me where I can find the necessary sphere with the correct number and the correct location of the vertices so that the camera can snap to them and photograph the object for assembly in Photoshop? Only for test , not product quality.
     
  27. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,387
    I'm afraid we can't guide you in that type of process. I meant that the bake must be made inside Unity as this relates to whatever data we extract from its deferred path; this is specific to Unity's renderer, it's not solely a matter of matching baking positions.

    If you're interested, we recommend examining the bake and runtime shaders, along with the bake process itself, in order to determine if you can bring in your assets using a different technique. In any case, as much as we would like to assist you, this is beyond the intended use of the asset.
     
  28. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,387
    Just to add, this might be more suitable for what you're looking for.
    https://www.sidefx.com/tutorials/game-tools-imposter-textures/
     
    achest likes this.
  29. Migueljb

    Migueljb

    Joined:
    Feb 27, 2008
    Posts:
    562
    Any release date of any kind of when this will work with quest 2 headsets using the standard renderer? OR does it work on quest 2 already just want to make sure before purchase?
     
  30. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,387
    We cannot guarantee Quest support at this time.

    To clarify, as listed on the project page, we do not support Quest 1/2 or similar mobile-based VR devices.

    Apologies for the inconvenience.
     
  31. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    Interested what would be required to support such devices. Not having imposters is a bit of a critical issue. :(
     
  32. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,387
    An additional developer on the team :p

    But in all seriousness, it's not something we can tackle now, apologies for any inconvenience there.
     
  33. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    No worries -- I was referring to tackling it myself. I've dealt with imposters before and understand the concept pretty well. Was just curious what would genuinely be necessary as far as the math was concerned.
    I'm sure camera-specific rendering is one thing, but I can't imagine the math itself would change much. More than likely, it would just require twice the texture memory (i.e. two eyes). Just curious.
     
  34. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,387

    Hey, perhaps a addon at the Asset Store, I'm sure many AI users would love something like that ;)

    I don't think memory use would double, you might also be looking into specific optimizations that could involve altering the math behind it. In any case, the full source is available for examination.
     
    julianr likes this.
  35. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    True, good point. Thanks for the heads-up. That makes more sense. The texture portion itself would probably be fine.

    I wish the shader was written in URP / HDRP and didn't require ASE to edit, since I'm more familiar with Unity's version. Even so, I'd be curious at exactly what part of it the math might need to be modified. I'm no math whiz, but I can grasp the concepts / execution steps well enough -- it's just ASE is not a tool I'm familiar enough with, as there seems to be some black-box wizardry in it that competes with (and even outpaces) ShaderGraph itself in some cases. But for my use-case, this is a bit overkill.
     
  36. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,387
    No prob! This is really one of those problems where we're unable guide you without doing the work ourselves.

    The Amplify Impostor shaders are coded, not created with ASE; our editor is not required to make alterations to the URP and HDRP shaders included. However, we do support custom shaders via ASE, it's important to note that these shaders use specific templates, those templates are coded and can be edited manually; this is entirely separate from what you'd be looking to achieve.

    Not sure I understand what you mean by black-box wizardry, I'd have to disagree there in comparison to Shader Graph. ASE is completely open, not only does it include full source it offers a Node API for custom node development and a unique Template System that allows for far more customization than what it's possible with Shader Graph when it comes to adding custom shader types.

    If you find any aspects that you think could be improved in ASE, or particular documentation lacking, we'd love to see some bullet points in order to improve it wherever possible. Feel free to follow up on the Amplify Shader Editor thread specifics: https://forum.unity.com/threads/bes...editor-node-based-shader-creation-tool.430959
     
  37. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    Ah, it's been a while since I've looked into ASE -- I think that's where I got mixed up. I might have mixed up some of these features with the limitations of other shader editors apparently. Sorry about my misunderstanding and about the black-box comment. I see now that it is actually a very smart and well-designed system, especially when considering the template concept. I think it was the custom shader bit that had me most confused with the system. It did seem odd to require ASE when URP and HDRP shaders were provided. Sorry for the misunderstanding on this part too.

    And no worries -- I don't mind not being guided. I just needed to understand where to start looking is all -- and if I can begin my quest by starting my modifications in ShaderGraph, I'm already halfway there. That being said, I appreciate the support! Thanks for taking the time to point me in the right direction for this!
     
  38. Mojo-Game-Studio

    Mojo-Game-Studio

    Joined:
    Sep 18, 2015
    Posts:
    111
    Hi All, I'm having some trouble creating billboards in hdrp 12.1.

    Apart the pink glow, which can be solved by removing the Emission and Occlusion texture, the billboard are so dark they are almost black, any ideas

    upload_2021-11-25_14-22-42.png
     
  39. Amplify_Ricardo

    Amplify_Ricardo

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

    I'm afraid we don't support URP 12 yet.

    Apologies for the inconvenience.
     
    Mojo-Game-Studio likes this.
  40. Mojo-Game-Studio

    Mojo-Game-Studio

    Joined:
    Sep 18, 2015
    Posts:
    111
    Any ETA when you will be able to?
     
  41. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,387
    Sorry, not at the moment, we're still working on SRP 12 compatibility for our shader editor.
     
  42. TheGamery

    TheGamery

    Joined:
    Oct 14, 2013
    Posts:
    92
    Damn, looks like I'll have to use another LOD creator in the mean time :(
     
  43. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,387
    I'm afraid so, hope we can tackle this soon.
     
  44. Dirrogate

    Dirrogate

    Joined:
    Feb 18, 2014
    Posts:
    157
    @Amplify_Ricardo Before I buy, I'd like to ask if it's possible to save Imposters as .fbx objects or ideally (via git hub gltf scripts) as GLTF from Unity? Yes, I realize they would be flat billboard/polygons with textures mapped creating a cardboard cutout - but this is my intended use.

    Can these imposters be saved out this way?
     
  45. Amplify_Ricardo

    Amplify_Ricardo

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

    Impostors are saved out as a .asset and require a dedicated runtime shader and textures at runtime; the mesh used for the billboard cannot be exported as an fbx. You're free to try to extract it yourself of course, we include full source.

    If you don't mind me asking, why would you be interested in extracting the flat billboard mesh? I ask because it's a very simple mesh, just an average of the original asset if I'm not mistaken. You can however tweak it with the Amplify Impostors component; might be more straightforward to generate your own meshes than reverse engineering our plugin for your custom use.
     
    Dirrogate likes this.
  46. Dirrogate

    Dirrogate

    Joined:
    Feb 18, 2014
    Posts:
    157
    Thanks for replying. It's for a project I'm working on, sort of like card-board cut out diorama. Yes I realize the imposters would be extremely flat, at most would be two intersecting Quads, but that's exactly what I'm looking for - to be done in an automated way. The closest I came across in a search was the old ABI - https://forum.unity.com/threads/abi-automatic-3d-billboard-imposters-released.204579/
    Sadly it does not work with modern Unity and i'm no good at coding.
    None of the other billboard/imposter assets on the store currently allow you to save out the imposter as a quad with standard shader in "clipped / alpha" mode for that cookie cutter look I'm after.

    Would be great if there was an option to save from Amplify Imposters.
     
  47. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,387
    No problem, happy to elaborate!

    Amplify Impostors uses a single surface quad(simplified depending on the mesh to avoid overdraw), it does not use intersecting surfaces. I don't think we'll be able to add an option for that right now, you'd still need our runtime shader, you might as well use the impostor asset as it was designed for.

    Alternatively, if you have your own billboard shader, you're free to use the data sets generated by AI on a regular quad mesh.
     
    Dirrogate likes this.
  48. Dirrogate

    Dirrogate

    Joined:
    Feb 18, 2014
    Posts:
    157
    Completely understand. I'll have to see if a freelance coder can come up with a bit of code to "bake" and save as obj, an AI created billboard (even if single flat Quad, with just a head-on view). I definitely see a market for it.
    Cheers!
     
  49. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,387
    Thanks for understanding; getting a coder would be the best option here as this is a bit of a corner caser. While we're ok with users extracting data for uses that the plugin does not account for, this would not be considered a high-priority addition as it falls beyond the scope of what it sets out to offer.
     
  50. ge01f

    ge01f

    Joined:
    Nov 28, 2014
    Posts:
    121
    Hi, I searched the forums and wiki manual but couldnt find the answer to this.

    I am getting either all black or invisible/hidden results with new imposters on Standard shaders with the Built-In pipeline using the latest AI install. It sometimes works with The Vegetation Engine shaders, but sometimes doesnt, but with Standard shaders they are just all black, or invisible.

    Whats the fix for this? Is this documented somewhere already?

    Heres a video of me doing it on a new object: