New Optimization Solution: Amplify Impostors

Ricardo Teixeira from Amplify Creations presented their smart optimization solution that uses next-generation Billboard Impostors. Amplify Impostors will allow you to optimize your assets of any size in no time.

Ricardo Teixeira from Amplify Creations presented their smart optimization solution that uses next-generation Billboard Impostors. Amplify Impostors will allow you to optimize your assets of any size in no time.

What is Amplify Impostors about?

It’s about effortless Instant Optimization! Developed by Paulo de Pinho, Amplify Impostors is a 1-click solution , that allows you to optimize your projects with ease by using next-generation Billboard Impostors.

I think the biggest question users usually have is “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. The great thing about this type of optimization is that it can be done entirely in-editor without needing to crunch your assets beforehand. You could conceivably bring in even higher-poly geometry specifically for Impostor creation (large forests and buildings). Additionally, we’re also going to provide a dynamic Impostors that will enable runtime baking in cases where we’re dealing with animated objects, such as crowds or foliage.

Traditional LOD assets are great but there was a need for a more flexible and immediate solution fit for specific cases, and that didn’t require any drastic pipeline changes. Once created, our impostors work great by themselves, with Unity LOD Groups, or with any other third-party LOD system as you would expect with any other asset. For users not familiar with Unity, this means that you have full control of how and when impostors are displayed, the type of transition between the impostor asset and the actual model, and how it should scale depending on the hardware.

How does it work?

Amplify impostors are created by rendering a set of perspectives into different atlas textures, storing information ranging from material data to volumetric information. This pre-baked or runtime data is then used by our advanced shader to display the correct view depending on the camera position. What really sells the effect is the fact that our impostors provide full lighting support, cast and receives shadows, can be moved/rotated/scaled, and even intersected with other objects or impostors.

1 of 2

*Note: Checker Plane used as an example only, not actual impostor mesh.

Goals

Our main focus is to give the users a way to customize every aspect of the baking process, from the shaders used to the amount and layout of the data we store. Most notably, we provide automated Impostor polygonal mesh generation, that can be tweaked manually, in order to reduce waste while maximizing savings in bandwidth and overdraw.

Going forward, users will also be able to extend any Impostor baking or surface shaders, for any given material, to fit any particular pipeline requirements.

The Novelty of the Approach

The aforementioned ability to render them from any angle, with proper lighting and shadowing, intersecting any other object as expected, combined with the ability to freely transform them is truly what sets them apart from traditional billboards. They convey an accurate perception of volumetry.

We implemented a technique known as Octahedron impostors that allows for smart/smooth transitions between different views. This technique, developed by Ryan Brucks and popularized by its use in Fortnite, has been around for some time but, after exhausting the existing options for our own game, we decided to focus on developing a more stable, community-driven, and feature complete alternative.

We also provide Spherical impostors, although they don’t display smooth blending between each view, they make use of a low complexity shader that’s quite useful for some assets such as higher-resolution impostors or distant large assets for backdrops.

Impostor creation works in a very simple manner, you just need to add the component to your object and bake, it’s quite flexible even when it comes to working with existing LOD Groups.

GPU-based instancing plays a big part in draw call reduction but the tool also allows you to bake large sets of objects into a single impostor asset that makes use of a single material regardless of the original count; it’s great for objects constructed using large quantities of models and materials or single models using large quantities of materials.

For even greater flexibility, Amplify impostors will soon be fully compatible with Amplify Shader Editor, our award-winning and shader editor for Unity, allowing for unique custom shader use with a next-generation impostor system in Unity. Scriptable Render Pipeline support, both for HD and Lightweight, will also be added soon ensuring that you can make the most out of the latest Unity technology.

Scope of Use

The sky’s the limit, even though impostors are not meant to be used as a 1-1 replacement for standard geometry, we’re very curious to see what developers come up with. Typical workflows do involve displaying the actual mesh at close range and the impostor from a certain distance, but there’s nothing wrong in using the impostor by itself if it works well for your project, be it for stylized or realistic assets.

Higher polycount models, or repeated assets, are usually a great place to start; complex trees, rocks, and boulders, or even entire houses, street props, and vehicles seen from a distance; you’ll even be able to create runtime impostors soon, perfect for animated meshes such as characters or swaying vegetation. Since it allows for object intersection and translations, it’s a great way to populate large spaces such as forests or open terrains; imagine taking high-resolution Megascans content and scattering it without worrying about managing LOD levels by drastically reducing draw call and overall polycount using impostors – it’s extremely fun to play with!

Photogrammetry is a great use case, with impostors you can rest assured that you go from thousands of tris to single digits with a single click. There’s nothing like trying it out for yourself, you could very well get away with a close-up impostor in some situations; fast paced or even driving games are great candidates.

Impostors work great on Desktops, Consoles, Mobile (Fortnite is an excellent example), and even VR. In our own case, we use it extensively, it really makes a difference on lower spec hardware such as the Nintendo Switch.

Product Availability 

Amplify Impostors can be purchased directly at the Unity Asset Store:

Amplify Impostors [BETA]

You can only use it in your own projects for now but we plan to offer you the means to distribute your own pre-baked impostors as you see fit. This is not as straightforward as it seems as it involves distributing parts of our tool but, regardless of the solution, it will come at no additional cost to existing users.

For larger studios with specific requirements, we’re always available at sales@amplify.pt to discuss possible solutions.

Thanks!

Ricardo Teixeira, a member of Amplify Creations

Interview conducted by Kirill Tokarev

 

Join discussion

Comments 11

  • Ricardo Teixeira

    @SammIO No problem, be sure to reach out to us at info@amplify.pt or pings us Twitter @AmplifyCreates

    0

    Ricardo Teixeira

    ·5 years ago·
  • SammIO

    The answer was standing there in front of me 3 days ago .....

    0

    SammIO

    ·5 years ago·
  • SammIO

    Great job guys ! :) @Ricardo, do you have any infos regarding Amplify Texture 2 ? It seems to be there and not there at the same time :) .

    0

    SammIO

    ·5 years ago·
  • Ricardo Teixeira

    @surferHalo You already have one ;) http://shaderbits.com/blog/octahedral-impostors/

    0

    Ricardo Teixeira

    ·5 years ago·
  • Ricardo Teixeira

    @sanek94cool It would but at the moment it's really tied to Unity.

    0

    Ricardo Teixeira

    ·5 years ago·
  • sanekjedi27

    That will be great if you can make this wonderful thing to be cross-engine!

    0

    sanekjedi27

    ·5 years ago·
  • surferHalo

    hi @Mykhaylo , please make an UnrealEngine implementation,

    0

    surferHalo

    ·5 years ago·
  • Ricardo Teixeira

    @Mykhaylo Still working on AT2, HDRP support could be made available via our Shader Editor, we're still looking into it as the new HD pipeline changes a few things.

    0

    Ricardo Teixeira

    ·5 years ago·
  • Ricardo Teixeira

    @Ghostlag More info can be found in our official wiki. http://wiki.amplify.pt/index.php?title=Unity_Products:Amplify_Impostors/Manual

    0

    Ricardo Teixeira

    ·5 years ago·
  • Mykhaylo

    @Ghostlag it's not sorcery and it can't be used outside of a game engine as this is not a geometry-editing and texture-packing solution, this solution also involves a specially-made shader that is required for this thing to work properly. I assume they use cube textures or 3d textures too so really it won't work anywhere else unless you are willing to go the extra mile to inject this thing in whatever app you want to use it in.

    0

    Mykhaylo

    ·5 years ago·

You might also like

We need your consent

We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more