[RELEASED] Impostors - Runtime Optimization

Link to the Asset Store


Please, read the description on the Asset Store page for a detailed overview.
It’s hard to maintain up-to-date descriptions both here and on the store page.

Links:
Documentation
Tech stuff - I have no connection to this article, but it covers a big chunk of how Impostors work.

6 Likes

Today faced bug with NativeCollections. Nice:)

Spent a lot of time figuring it out.

Also:

  • Fixed updating impostors at background.
  • Added clever sorting to order impostors that require update. Sorting based on screen size and time since last update. Looks much better than without sorting.
  • Added destroying empty impostors’ chunks. Not sure if it is needed at all :slight_smile:
4 Likes

Hi everyone!
What a great day!

Finally, I have made everything I want for the beta version, including handy editors and tools.

If you are interested in trying out the new Impostors 2019 beta package, then let me know in private message or contact me at doterpoter@gmail.com.

Manual: Impostors 2019 beta Manual - Google Docs

3 Likes

Does this version support full VR?

If I buy your current version, will it include your new one for free?

I didn’t test it actually but might work. VR support is in plans but can’t promise anything right now

There will be an upgrade price, but for the first week after release upgrade will be free

Hello! The asset looks amazing. I’m trying to figure out if I can use it for my project so I’d like to clarify a few questions:

  1. Will this asset increase memory usage on mobile platforms?
  2. Is it possible to unload gameobject’s mesh and texture from memory when the gameobject switches to impostor?

In my game I have a city which I’d like to be seen even far away from it. So I think this asset is quite good for this purpose. But the main question for me is memory usage. Do you think I can use it for this case?

Thanks

1 Like

Hi!

  1. Yes, the system requires additional RenderTextures to store Impostors.
  2. It depends on what you are trying to achieve. If you know that your camera view angle will not change then yes. In another case, the system will need to update(re-render) impostors’ textures whenever your camera moves.

I had already tried to optimize city scene with another customer for mobile devices. We failed because of the way the camera moves in his game. It was a first-person free-flying camera and it was impossible to optimize with Impostors because it required to constantly update impostors’ textures. To be true, I achieved a quite performance boost but with a trade-off that there was a noticeable difference between impostors and normal objects.

The main requirement for Impostors to really improve performance is - camera must move slowly(or just not fast) relative to Impostors. So if you know your camera will not move fast, then it might work. At the end of the day, impostors are just one of the ways to hack hardware limitations, they can’t replace the standard rendering.

2 Likes

Looks very interesting. When do you plan to release this? :slight_smile:

Hi. Sorry for the late reply. For some reason missed your message.

I’m planning to release it before 1 of February.

2 Likes

Hi everyone.
Happy to announce the upcoming release to the Asset Store!:slight_smile:
Currently working on setting up the store page.

If you would like to try this before release, please reach me in DM.

5.5m triangles, 6500 draw calls.

~700k triangles, ~300 draw calls

2 Likes

That was long two days…

The package has just been submitted to the Asset Store for the review!

Coming soon;)

6802898--789197--upload_2021-2-4_18-23-53.png

1 Like

The Impostors will work with VR projects.

Stereo-rendering is supported.

1 Like

Made a quick overview of the Impostors package and how it works.

If you don’t know what impostor is then this video will answer this question.

Does it support animation system? I want to create thousands of zombies in vr(quest2)

6741043--776845--upload_2021-1-19_19-3-0.png

Thanks for the question!
No, Impostors are not meant to be used with animated objects.

Hello, I have a question:

Are there shader limitations? I need to know will it work with my own shaders made in Shader Graph.

I’m using URP for a VR project.

Thanks.

Hi
Good question. Unfortunately, I don’t know will it work, didn’t test that yet.
But there is a limitation: shader must write to Z-Buffer. Which means no transparent objects.

Is there something special in your custom shader?

Thank you for the reply. I don’t think there is anything special in my shaders and I don’t intend to use it with transparent objects, I just wanted to ask since I previously tried to use Amplify Impostors and wasted a lot of time because it was very constrained about shaders.

Hi. Can you please create apk with same scene for test on mobile devices. Preferably with some benchmark-style movement.

Also, can it work with skinned meshes ?

upd. Is the update time only global or can it be made local?