Keeping The Polycount Down for Faster Rendering

The Problem of Too Many Triangles

These past few days I’ve been struggling a bit with which way to approach the forest within the Leweria level of Super Space Trooper, the indie game I’m developing.  The ‘problem’, if I can call it that, is that the triangle count in the scene is too high.  Somewhere in the 1.2 million range.  From what I understand, the PS3 has a maximum of about 750k, and I have a feeling that’s really if you push the hardware.

Leweria - Struggling with Poly Count

Leweria – Struggling with Poly Count

My Approach

My approach so far has been to model just about everything needed in any particular level, set up a script on each item to check it’s distance from the player every 1 second, and if it’s within a certain distance to activate the game object.  However within this level, I can use Unity’s built-in terrain generator, which will save a lot of modeling time on the environment.  So what I’ve done is combine the two approaches.  Trees that are not in the direct path of the player are handled by the terrain system in Unity, whereas trees that the player can impact are game objects with 3D mesh.

The Results

Doing the combination of two approaches allowed me to get the triangle count down to about the 400k-500k range.  Amazing!  Except that when I add in the water to the level, I assume that because it’s reflective that any mesh that is mirrored by the water also counts as new triangles.  So I’m back to square one with about 1 million triangles.

Next up, I think I’ll minimize the size of the water mesh so that Unity isn’t trying to calculate any reflections that would never be able to happen, such as mesh that sits under the ground, or that’s too far to the left or right of the player’s viewing angle, and see if there’s a noticeable reduction in the triangle count.

Posted in Super Space Trooper, Unity 3D, Video Game Development

Leave a Reply

Your email address will not be published. Required fields are marked *



You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>