Polygon Counts

Introduction

The issue of polygon counts is one thing which effects all 3d systems and in particular real-time 3d such as games and worlds.

Firstly what is a polygon ?

A polygon is a N-Sided flat plane, N meaning any number. Most commonly 3 or 4 sided but can have many more. These break down into triangles (3 sided) when processed by software/hardware. As a result they are usually shown as triangles or triangles per second.

Pressing the F7 key in Blaxxun/BS Contact shows/hides the frame stats display. The number of trianges is the one we are interested in. The number of primatives is also usefull.

Other vrml plugins have a wireframe mode. You can also use this to locate overly detailed areas, holes in meshes and other problems.

The number of triangles should be kept as low as possible without reducing the detail in the scene too far. Less than 100,000 for certain but less than 20,000 means smooth movement and high framerates for most people.

3D modeling tricks and hints

Areas most commonly with too many polygons are extruded, lathed objects and revolutions. One trick is to make the object a little rough (say only 8 segments in the crosssection of an extruded shape) and use the smoothing (or creaseAngle) to make the geometry appear smoother than it is.

Another way to reduce the polygon count of objects is to one a number of Polygon reduction tools which are built into 3D applications or available as seperate programs. Then use smoothing (or creaseAngle) on the finished file.

Adverse effects of too many polygons

At first the world simply runs slower, animations appear uneven, scripting takes longer to respond. As more polygons are added navigation becomes affected and so also appears uneven or slow to respond. Switching to other programs will take a few seconds longer, memory usage will increase. At very high numbers of polygons navigation and usage of other software will become difficult or impossible. The 3d window will suffer from tearing as only half the screen can be update per frame update, producing a tear where the update finishes halfway.

CPU bound, texture bound or polygon bound ?

CPU bound simply means the CPU is being overloaded and so its the bottleneck preventing higher framerates. Texture bound means the texture memory on the 3D card is full or near full, and so the CPU has to swap textures into its own memory , or it can mean the 3D card's texture units are overloaded. Polygon bound means there are too many polygons for the 3D card to handle.

Of these Polygon bound is the most common, but CPU bound can also occur when too many LOD nodes, Switch nodes, scripting or animation is used. Animated gifs and Video files can also cause lower framerates.

Notes

Have a look at the Switch and LOD tutorials, these show how to hide geometry which isn't needed. Used well this means worlds can have a lot of polygons but not all are visable at a once.