Amplify Impostors - Next Generation Billboards

Hey everyone,

You've probably noticed that this thread has slowed down quite a bit since the early days. However, our community is still thriving! We're very active over on Discord and would love for you to join us there if you haven't already, especially with the forums being officially discontinued by Unity.

While we'll be keeping an eye on the new Unity Discussions platform, we hope to see you on Discord where the conversation continues.
Join us on the Amplify Creations Server (nearing 7,000 members): https://discord.gg/XSVrsakqww

Hope to see you there!

--------------------------------------------/ / / / / / / /--------------------------------------------


Asset Store Page - Manual - FAQ - Roadmap

Amplify Impostors is a 1-click solution that allows you to optimize your projects with ease by using next-generation Billboard Impostors. Our goal is to provide a flexible, community driven, all-in-one impostor creation solution that adapts to any type of project.

As always, you can count on us for fast iteration rates and premium support. Not all planned features are currently included, and as with our shader editor, we'll continue to improve it based on the community response - we look forward to having you on board!

What exactly are Impostors?
Impostors are camera facing quads, or simple polygonal shapes, that replace complex geometry at a distance by rendering a fake 3D representation of the original asset that can either be baked in-editor or created at runtime. Our tool currently only provides the in-editor baked variant, realtime generation will be added at a later stage.


360º Next-gen Impostors

They are flexible.
Amplify impostors, pre-baked or runtime, can be moved, rotated, scaled, receive and cast shadows, and even intersect with other objects or impostors. Impostors can be used directly with Unity's LOD Group, third-party LOD systems, or by themselves - you can quickly adapt them to your pipeline, be it with existing or new projects.


Impostor Stone Props

A modern approach.
Making full use of GPU-based instancing, our tool provides Spherical and Octahedron Impostor techniques, the latter being capable of performing smart transitions between different views. It's important to note that impostors are not meant to be used as a 1-1 replacement of your standard geometry, each technique has its own pros and cons that you should consider before using it; typical workflows involve displaying the actual mesh at close range and the impostor from a certain distance.


Full Control

Why should you use them?
Instant optimization! Be it for mobile devices, less performant consoles such as the Nintendo Switch, or fully loaded desktops - it's a 1-click solution that will drastically reduce your Polygon and Draw Call count.


Immediate Results

Features

  • 1-Click Bake!
  • Octahedron and Spherical Impostors
  • Billboard Shape Editor
  • Smart Blending between views
  • Hardware Instancing
  • Depth-write for Object Intersections
  • Forward and Deferred rendering
  • Full Lighting and Shadowing
  • Custom shaders via Amplify Shader Editor

  • Dithered LOD Cross-Fade

  • LODGroup compatible

  • Lightweight and HD Scriptable Render Pipeline support

Upcoming Features

  • Dynamic Impostors
  • Batch Processing

Technical Considerations
Currently only shaders exposing a Deferred path are supported for baking, such as Unity Standard shaders. However, the Impostors created can be used in both Forward and Deferred modes.

Known Issues
Being a BETA release, there's a couple of issues that we want to iron out in the upcoming weeks. Until then we hope to improve it even further with the help of those that join us during this period. Below are some of the critical issues we are working at the moment.

  • Changing texture size in the Impostor component "freezes" momentarily due to background calculations.
  • Impostor becomes invisible when viewed directly from below.
  • Slow bake/save times.
  • Possible differences when baking in Gamma.

Visit our website for additional information on all our products. Be sure to contact us if you run into any problems or if you have any questions regarding our products, we would be happy to help. You are all premium users to us, stay in touch, we would love to hear more about your work.

10 Likes

https://www.youtube.com/watch?v=6qy4xSv84xQ

https://www.youtube.com/watch?v=v4iYQvp8kjg

2 Likes

Hey there, definitely love your products and am interested in this, but I was wondering if you might be able to let me know some benefits of going with your system over something like this that is open-source to try and justify the price?

No open source imposter system I’ve seen supports shadow casting/receiving or object intersection. I don’t know how much work it would be to add those things but for me those are important features and it seems tricky to get right. Plus amplify has always given top notch support in my opinion :slight_smile:

3 Likes

I was reading your FAQ, about close range. and such, if we have objects in a distance, it seems to work well. Now would it be recommended or if someone wanted to, just to use a regular mesh for close range? I assume so, But again I like to confirm, there isn't some pitfall some where. So my question if someone had used Imposer for most LOD'S for objects in a distance, then just used a mesh for there LOD0 close range. Is there any pit falls?

Thanks.

what's the minimum shader version requirements ?

Ooooo! I have been waiting for something like this! I am also wondering the shader requirements. Will this work on mobile?! What will performance be like compared to speedtree billboards?

Hello,

Thanks, happy to hear it!

We love open software, that’s why we include most of our source code if not all of it in some products. However, one of the key differences is that we employ a small dedicated team of developers and support personnel. We have a vested interest in the continuous development and support of our tools, ensuring that they are reliable and performant on any current, or future, Unity supported version.

As Asset Store publishers, we’re directly accountable for our products quality, we proud ourselves in delivering robust solutions that our users can rely on.

  • Our responsive support team is ready to aid you, be it via the forums or email.
  • I recommend taking advantage of our dedicated download page; our award-winning shader editor is updated every week, sometimes daily.

I can’t speak at length about the referenced tool but I would say that ours is much more mature and flexible. As with our shader editor, you’ll definitely get your money’s worth, and then some! As an example, our Occlusion solution based on HBAO+ has just been completely revamped with Ground Truth Ambient Occlusion(GTAO), a vastly superior and more modern technique; FREE for all existing users.

Amplify Impostors is a flexible and extremely expandable tool.

  • It’s a 1-Click Bake solution with comprehensive LODGroup support.
  • Supports custom Amplify Shader Editor shaders (available in the next update!)
  • Offers superior Octahedral blending
  • Includes a Billboard Shape Editor for custom billboard meshes (reduces overdraw)
  • Hardware Instancing
  • Full Lighting and Shadowing
  • Multi-object baking into a single impostor asset
  • Advanced baking control and options.
  • Full console support

Upcoming features:

Let me know if have any additional questions, I would be happy to elaborate.

[quote=“DMeville_1”, post:4, topic: 707589]
No open source imposter system I’ve seen supports shadow casting/receiving or object intersection. I don’t know how much work it would be to add those things but for me those are important features and it seems tricky to get right. Plus amplify has always given top notch support in my opinion :slight_smile:
[/quote]

This was true a while back, the tools we tested were quite limited, that was a decisive factor that pushed us to develop our own product. If you know our company, you may have noticed that we also develop video games, all our tools are battle tested on external work and our own projects. We allocate quite few resources for R&D, if we can’t rely on a third-party option, we usually build our own.

We’re always happy to help our users, it’s thanks to you that we can continue to work on innovative products!

First of all, my apologies for the lack of demonstration videos, they should be up soon. Generally speaking, you should always show an actual mesh at close range but you can get away with a lot when strategically placed; impostors can actually be used individually. Amplify impostors are a great way to simplify LOD groups, you could very well simply use the LOD0 and the Impostor; some objects might work better than others, it’s always best to test for any possible issues.

Besides actual texture resolution, and depending on the type, there are a few limitations that you should be aware of:

  • Spherical: The shader is simpler and faster and the impostor looks mostly okay from close distances, but popping between frames is fairly noticeable.

  • Octahedron: This is done to guarantee a fixed neighbor count of three, so that at any given position relative to the camera we can blend the nearest three frames. This has the benefit of removing popping between frames but when looking at closes distances, the blending becomes too obvious with noticeable ghosting artifacts.

  • HemiOctahedron: The hemi variant is similar to regular octahedron, with the difference on taking the same amount of shots but only from the upper hemisphere of the object, effectively doubling the precision of the blending. The downside though is that, by not baking the lower hemisphere, it produces incorrect results when looking from below. (useful for top-down cameras).

[quote=“GCatz_1”, post:6, topic: 707589]
what’s the minimum shader version requirements ?
[/quote]

Thanks for asking!

The minimum supported version is 3.0. Our tool is quite performant but, unfortunately, I don’t have any specific SpeedTree comparisons to share at the moment.

You can rest assured that it works well on mobile, or even the Nintendo Switch, and we plan to improve it further as we move away from the BETA stage.

2 Likes

@Amplify_Ricardo Great! Going to pick it up when I get back to the office. Have purchased a few imposter tools but this seems perfect, as with anything else you guys have worked on!

Thanks, we really appreciate the support!

1 Like

How far can you go with this? What are some scenarios where this concept doesn't work?
Lets ignore close-ups and assume that the full/normal mesh is then used.

I mean, does this work in all cases? What about transparent geometry in front or behind the impostor?
What about shadow receiving and casting?

What about geometry that's intersecting the impostor? (Assume that impostor<>impostor intersection is impossible since you only have a sphere-like geometry to work with right?) But will the impostor intersect with other things correctly?
Or are there any limitations there, and if so, how are they best resolved or hidden?

The Octahedron mode and below seem pretty magical, I'm very impressed.
Other than some slight blurriness (which will be totally unnoticeable at a distance anyway) it looks like the real thing... I'm stunned.

1 Like

As far as you can! But in all seriousness, there’s no specific set of limits, or use cases, it really depends on the project. You could use it for simple props or you could very well take an entire mountain filled with other props and bake it down to a single distant impostor; or entire buildings, it’s completely up to you.

You do have to take into account the added memory use, we’re trading off draw call and polygon counts for it. In any case, it shouldn’t be a problem for most assets, you can think of it as costing more or less the same as any other PBR material.

It does not work in all cases, until we add support for realtime impostor creation, your’re limited, so to speak, to in-editor baked impostors; this limits you to a specific set of objects, something like an animated crowd is currently not possible. Some props can be a bit problematic, especially if they have a lot of empty space, but it really depends how it’s used.

Transparent geometry shouldn’t be an issue, the Impostors handle depth.

We actually store depth information so that we can display intersection and full lighting; be it between impostors or geometry.

There are some limitation as it’s not a 1-1 replacement, you might see some artifacts depending on the resolution available. You might need to tweak the amount of sides baked and the actual padding, or even change impostor type, in order to mitigate possible issues.

Happy to know it caught your attention, it’s a really cool technique!

1 Like

Interesting. Any examples with a moving light source?

@GroZZleR

https://imgur.com/a/ibphjed

5 Likes

[quote=“Amplify_Ricardo”, post:8, topic: 707589]
First of all, my apologies for the lack of demonstration videos, they should be up soon. Generally speaking, you should always show an actual mesh at close range but you can get away with a lot when strategically placed; impostors can actually be used individually. Amplify impostors are a great way to simplify LOD groups, you could very well simply use the LOD0 and the Impostor; some objects might work better than others, it’s always best to test for any possible issues.
[/quote]

Right, I see the other things you are showing on your wiki. So I just wanted to be sure if someone wanted to use Imposters for all of your LOD’s, but the close up, you don’t, and just want to use an actually mesh, would that work I assume so? and if so , are there any pitfalls doing so?

I love your Amplify Shader Editor, and once this supports custom ASE shaders (in the next update?) I'm 100% on board.

My question is: would there be any limitations in supporting custom ASE shaders? I'm using a custom lighting toon shader I've made in ASE and I'm wondering if it would support something like that. I'm doing toon lighting by mapping light attenuation * NdotL onto a toon ramp gradient texture (via UV.x).

Thanks for developing and sharing such high quality tools!

Yes, additional examples soon in our demo and tutorial videos.

AlertJitteryGlowworm

[quote=“DMeville_1”, post:14, topic: 707589]
@GroZZleR
https://imgur.com/a/ibphjed
[/quote]

Thanks for the gif!

My apologies, I don’t fully understand what you meant. Do you mean fading between a mesh(LOD0) and an Impostor, or between several impostors in a LOD Group? Either case works great!

Awesome, really happy to hear it!

I’m not absolutely sure but I’ll confirm with the developer, the idea is to allow for custom types.

I’ll keep you posted!

1 Like

Hi
This is phenomenal, I am instantly interested. Could you explain a little bit what is dynamic imposter?

Happy to hear it!

The actual asset is generated/updated at runtime, you could use it for something like a crowd of skinned characters.

We’ll cover it as soon as we add it, stay tuned!

2 Likes

[quote=“Amplify_Ricardo”, post:17, topic: 707589]
My apologies, I don’t fully understand what you meant. Do you mean fading between a mesh(LOD0) and an Impostor, or between several impostors in a LOD Group? Either case works great!
[/quote]
no worries ty for info.