Vi3W
Skip to content

Guides

What's a good poly count for game assets?

Poly counts depend on platform, camera distance and how many copies are on screen. How to set a budget, with sourced reference points.

Aman PorwalFounder @ Vi3W

3 min read

A pencil sketch of a brass lantern on paper, with the same lantern rising off the page as a solid, lit object

Quick answer

What is a good poly count for game assets?

There is no single number. Start from your platform's per-frame budget, divide it across what's on screen at once, and give more to assets that are close, large or important. Hard limits also apply on some platforms, such as Roblox's 20,000 triangles per mesh. Measure triangles, not quads, and use LODs for anything repeated or distant.

Why "how many polygons?" has no single answer

A model doesn't have a good or bad poly count in isolation. It's good or bad for a platform, a camera distance and a scene. A 30,000 triangle statue is fine as the centrepiece of a PC level and wasteful as one of 200 rocks on a phone. So instead of a magic number, use a method.

Count triangles

Engines render triangles. Modelling tools often show quads or "faces". A quad is two triangles, so a 2,000-face quad model is about 4,000 triangles in the engine. In Blender, enable Statistics in the viewport overlays and read the "Triangles" figure.

Step 1: Find your per-frame budget

The total number of triangles you can draw per frame depends on the hardware and how heavy your shaders and effects are. Some platforms publish guidance. Meta, for example, lists recommended per-frame triangle counts for its headsets in its Unreal Quest performance documentation: roughly 750k–1m for Quest 2 and Quest Pro, and 1.3m–1.8m for Quest 3 and 3S, with the caveat that results vary.

If your platform doesn't publish a figure, measure: build a test scene, profile it on your lowest target device, and find where frame time breaks.

Step 2: Divide by what's on screen

Estimate the heaviest view in your game. How many characters, props and environment pieces are visible at once? Split the budget:

  • Environment (terrain, buildings, large pieces) usually takes the biggest share.
  • Characters are few but close, so each gets a lot.
  • Props are many, so each gets little.
  • Effects and UI take some too.

Then divide each share by the number of instances. Fifty crates on screen from a 100k prop share means about 2k triangles per crate, before LODs.

Step 3: Adjust for distance and importance

  • Close to the camera, often: more triangles. First-person weapons and hands, the player character.
  • Silhouette matters: spend triangles on the outline. Flat areas need few.
  • Far away or small: few triangles, and LODs.
  • Repeated many times: lighter than you think. Count multiplies.

Step 4: Respect hard limits

Some platforms cap meshes directly. Roblox, for example, limits a mesh to 20,000 triangles in its mesh specifications; see the Roblox triangle limit. Check your platform's documentation for anything similar.

Step 5: Use LODs and other tools

  • LODs swap in simpler versions as an object gets further away.
  • Nanite in Unreal Engine 5 handles very dense static meshes differently; see Nanite and AI-generated models.
  • Instancing reduces the cost of many identical objects.
  • Normal maps carry surface detail so the mesh doesn't have to.

Checking a generated model

AI-generated meshes vary a lot in density. Vi3W retopologises every model automatically into a lighter mesh. Still check the triangle count against your budget from step 2 before importing. If it's over:

  • Reduce it in Blender (decimate vs retopology).
  • Make LODs.
  • Ask whether the object needs that many on-screen copies.

A worksheet

  1. Target platform and lowest device: __
  2. Per-frame triangle budget (published or measured): __
  3. Heaviest view: environment / characters / props / effects (%)
  4. Instances on screen per asset type: __
  5. Per-asset budget = share ÷ instances: __
  6. LOD levels for repeated or distant assets: __

Fill it in once per project and every asset gets a number. For mobile specifics, see low poly assets for mobile games.

Have a budget? Generate a prop in Vi3W and check its count against your number before it goes into the scene.

Last reviewed