You are currently viewing Impostors – Runtime Optimization

Impostors – Runtime Optimization

Next generation of Imposter System asset with DOTS in mind.

When creating big worlds it’s important to show users the large-scale scenes with lots of objects in the background. That’s a tough task that requires optimizing shaders, materials, meshes, and so on.

With the help of Impostors, you can greatly simplify this task!

Impostor – fake object(quad), that tries to look like its original object. It’s very cheap to render but with a trade-off between performance and visual quality.

To be honest, we don’t really need high visual quality at distance, because distant objects take tiny space on the screen. That’s why there are techniques like LODs (Level Of Details).

Impostors expand this approach, and in some cases can completely replace it.

Why impostors?

There are several problems with LODs

it requires manually creating additional assets for each object – meshes with fewer polygons and materials,
these additional assets increase build size,
there might be a noticeable difference between LODs, which pops in and out when player moves.

Poping problem is really hard to solve because it’s just the trade-off between performance and visual quality. But with Impostors we can solve the first two issues:

impostors don’t require manually creating additional assets,
impostors don’t increase build size,
in perfect scenarios impostors look exactly like the original objects.

How impostors work

The concept of impostors is quite simple. We just take a photo of the object from a specific angle, and then show this photo instead of the original object. When camera changes its position we need to regenerate the photo to represent object from the new angle.

Important note

Again, we stuck with the trade-off between performance and visual quality.

Impostors are not a panacea and cannot replace standard rendering.

But it provides the opportunity to fill your scene with lots of distant details if your project fits several conditions.

When to use impostors

Before we continue with this chapter I want to mention: if you have any doubts or questions about impostors working with your project, feel free to contact me with some gameplay footage or at least a high-level overview of what is going on in your game. I will try my best to answer your question and let you know whether Impostors fits you project.

Last note, Asset Store provides refunds, and I have never rejected refund requests, so you are covered.

1. Camera rarely changes position

The best scenario for impostors!

Regenerating impostor’s image is a rendering operation, which we are trying to avoid as much as possible. When camera doesn’t move we don’t need to update anything.

Genres: VR with teleportation movement or steady gameplay, visual novels, side-scrollers.

2. First-person character camera

Works perfectly with impostors!

Genres: open-world FPS, battle-royal, survivals.

Leave a Reply