How impostors affect performance.

1-Click Impostor Creator

How impostors affect performance.

Postby ScottS » Thu Nov 29, 2018 6:11 am

Hi!
I am working on a small team developing a 3D game in Unity 2018.2. We are hoping to support somewhat low-end platforms (e.g. Nintendo Switch) and have been looking for ways to improve rendering performance. We view our levels from the top-down and have ~3000 small plant meshes (~200 tris) The plants eat up a lot of our rendering time so we were hoping to replace them with impostors. The Amplify plugin worked great to generate the impostors and they look great in the game.
We have one impostor per plant.
Bake Type: Octahedron
Texture Size: 1024 (we apply crunch compression to the textures)
Axis Frames: 16
This took the Tri count from 1,700,000 to 375,000.
But somehow this actually made our frame time slightly worse. On a computer with a GTX1060 we went from 6.4ms per frame to 7.3ms with the impostors. On our target hardware we saw a similar small decrease in performance.

This was surprising to me. I'm wondering if the problem is:
- fill rate, the impostor sprites take up more area on the screen than the meshes did.
- shader complexity, the plants used a relatively simple shader. Is the fragment shader of the impostors really costly?
- There is some extra cost per impostor I'm not aware of.

Do you have any suggestions for how I might improve the performance of my impostors?

Thank you!
ScottS
 
Posts: 4
Joined: Thu Nov 29, 2018 5:48 am

Re: How impostors affect performance.

Postby Ricardo Teixeira » Thu Nov 29, 2018 11:39 am

Hello,

Thank you for using Amplify Impostors, I hope we can help you identify the problem as this is not the expected behavior.

Let me start by saying that we use Amplify Impostors on the Switch version of our own game and the results have been quite good. It's hard to know what's causing the issue on your side without additional information. The shaders are fairly simply but do you see a difference with Spherical(simpler) impostors?

How is the performance without impostors?

We'll need to examine a small sample, or specific profiler information in order to best advise you. If you would prefer not to post it here, we're available via [email protected], under NDA if necessary.

Thanks!
Sales & Customer Relations at Amplify Creations
Learn more about our offering: Amplify Creations Products
Amplify Shader Editor won the Asset Store Best Tool Award - Thank you for your support!
User avatar
Ricardo Teixeira
 
Posts: 954
Joined: Fri Aug 09, 2013 2:26 pm

Re: How impostors affect performance.

Postby ScottS » Fri Nov 30, 2018 10:14 am

I have setup a test scene. But in the test scene the impostor DO improve performance. So something very strange is going on. I will investigate further and let you know if I find anything.
ScottS
 
Posts: 4
Joined: Thu Nov 29, 2018 5:48 am

Re: How impostors affect performance.

Postby Ricardo Teixeira » Fri Nov 30, 2018 11:12 am

ScottS wrote:I have setup a test scene. But in the test scene the impostor DO improve performance. So something very strange is going on. I will investigate further and let you know if I find anything.


Could be related to the fill rate as you put it, please do share a few videos or shots of the more problematic areas; accompanying profiler information would be awesome.

Thanks!
Sales & Customer Relations at Amplify Creations
Learn more about our offering: Amplify Creations Products
Amplify Shader Editor won the Asset Store Best Tool Award - Thank you for your support!
User avatar
Ricardo Teixeira
 
Posts: 954
Joined: Fri Aug 09, 2013 2:26 pm

Re: How impostors affect performance.

Postby ScottS » Mon Dec 03, 2018 2:03 am

I have sent a screenshot of the game to the support email.

I have figured something out with regards to the Impostor performance.
Because we have so many meshes, we are static batching them to improve performance.
I'm finding that WITHOUT static batching, the meshes are slower than the Impostors, but WITH static batching they are faster than the Impostors.
That being said, looking in RenderDoc it looks like the impostors all get drawn in a single draw call. So I'm not sure what to think.
ScottS
 
Posts: 4
Joined: Thu Nov 29, 2018 5:48 am

Re: How impostors affect performance.

Postby ScottS » Mon Dec 03, 2018 2:24 am

OK, I've found one more piece of the puzzle.
The meshes have Light Probes and Reflection Probes turned OFF, whereas the mesh renderer that's created for the impostor has them turned ON.
Turning them off in the prefab for the impostors makes them faster than the original meshes.

This seems pretty crazy, but that's what I'm seeing.
It's not a big deal to have to turn them off manually, but would it make sense for the Impostor generation tool to take the mesh renderer settings from the original mesh and copy them to the impostor mesh renderer? Just a thought.
ScottS
 
Posts: 4
Joined: Thu Nov 29, 2018 5:48 am

Re: How impostors affect performance.

Postby Ricardo Teixeira » Mon Dec 03, 2018 11:21 am

ScottS wrote:OK, I've found one more piece of the puzzle.
The meshes have Light Probes and Reflection Probes turned OFF, whereas the mesh renderer that's created for the impostor has them turned ON.
Turning them off in the prefab for the impostors makes them faster than the original meshes.

This seems pretty crazy, but that's what I'm seeing.
It's not a big deal to have to turn them off manually, but would it make sense for the Impostor generation tool to take the mesh renderer settings from the original mesh and copy them to the impostor mesh renderer? Just a thought.


Thank you for the additional details, I think we'll need additional information in order to best determine what's happening.

I will contact you via email.

Thank you for understanding.
Sales & Customer Relations at Amplify Creations
Learn more about our offering: Amplify Creations Products
Amplify Shader Editor won the Asset Store Best Tool Award - Thank you for your support!
User avatar
Ricardo Teixeira
 
Posts: 954
Joined: Fri Aug 09, 2013 2:26 pm


Return to Amplify Impostors

Who is online

Users browsing this forum: No registered users and 0 guests

cron