low poly

LOW POLY 3D MODELS: RESOURCES AND TECHNIQUES

A low-poly 3D model isn't just a high-poly model with fewer polygons. It's a different way of thinking about form. Every vertex is a decision. Every edge defines a shape. Every face is visible. There's no mesh density to hide behind, no subdivision surface to smooth over mistakes. The geometry is the art.

Building low-poly models from scratch

Start with primitives. A cube, a cylinder, a sphere, a cone. Almost every low-poly model begins life as one of these four shapes, extruded, scaled, and repositioned until it becomes something recognizable. A tree is a cone on a cylinder. A car is a box with smaller boxes for wheels. A character is a collection of cylinders and spheres connected at joints.

The temptation is to start detailed and simplify later. This is backwards. Start with the minimum geometry that reads as the object you're making. A barrel is a cylinder with eight sides and a slight taper. That's five or six operations in Blender: add cylinder, set vertices to eight, scale top face slightly smaller, maybe bevel the top and bottom edges. Done. A barrel that reads as a barrel in thirty seconds.

Adding detail should be surgical. Each polygon you add should serve a purpose: defining a critical edge, supporting deformation for animation, or creating a shape that the viewer's brain requires for recognition. If a polygon doesn't do one of those things, it's wasted geometry.

Blender workflow

Blender is the standard tool for low-poly modeling, and its free price tag is almost unfair given how capable it is. The workflow I use for every model follows a consistent pattern.

Start in edit mode with a primitive. Tab into edit mode immediately after adding a mesh. Extrude faces to build the basic shape. Scale, rotate, and move vertices to refine. Use the mirror modifier for symmetric objects so you only model half and get the other half free. Apply the mirror when you need asymmetric details.

Loop cuts add controlled geometry where you need it. A loop cut across a character's elbow gives the mesh a place to bend cleanly during animation. A loop cut across a building's facade creates a line where one material can end and another can begin.

Proportional editing is essential for organic shapes. Select a vertex, enable proportional editing, and nearby vertices move in a falloff pattern. This creates smooth deformations that would take forever to do vertex by vertex. Mountains, terrain, character poses. Anything organic benefits from proportional editing.

The shrinkwrap modifier is useful when you need a low-poly model to roughly match a high-poly reference. Model the shape loosely, apply shrinkwrap to snap the vertices to a reference mesh, then clean up the result. This is particularly useful for characters where proportions need to match concept art.

Materials over textures

For game-ready low-poly models, I prefer material assignments over UV-mapped textures. Each face or group of faces gets a material with a flat color. No texture file, no UV unwrapping, no texture resolution to worry about. The colors are defined by the materials, and adjusting them is instantaneous.

This approach works because low-poly models don't have enough geometry to display complex textures meaningfully. A texture mapped onto a 200-polygon character has so few pixels per face that the texture provides less visual information than a solid color would. Flat materials look cleaner, render faster, and are infinitely easier to adjust.

When textures are necessary (signs, labels, patterns that can't be represented by geometry), a small texture atlas works well. A 64x64 or 128x128 pixel sheet with color blocks mapped to specific UV regions gives you the benefits of texturing without the overhead. Every model in the scene can share the same small atlas, which is friendly to GPU memory and batching.

Where to find low-poly models

If you're not making your own models, or if you need placeholder assets while prototyping, several sources are worth knowing.

Kenney.nl offers hundreds of free low-poly asset packs. Characters, vehicles, buildings, nature, UI elements. Everything is CC0 (public domain), so there are no licensing restrictions. The quality is consistent and the style is clean. If you're prototyping a game and need assets fast, Kenney is the first place to look.

The Unity Asset Store and itch.io have paid low-poly packs ranging from a few dollars to around $30. Synty Studios makes some of the most popular ones, with themed packs covering sci-fi, fantasy, city, nature, and more. The consistency within each pack makes it easy to build a visually cohesive game from purchased assets.

Sketchfab has a large library of user-uploaded 3D models, many with Creative Commons licenses. The quality varies more than curated asset stores, but the variety is enormous. Filtering by polygon count and license type helps narrow the results.

Turbosquid and CGTrader have professional-grade models at higher price points. These are more relevant for studios than for solo indie developers, but they're worth knowing about if you need a specific model at high quality.

Optimization for games

Low-poly models are already optimized by nature, but there are still techniques that improve performance further. Combining meshes reduces draw calls. If a scene has fifty separate tree objects, combining them into a single mesh means the GPU draws one object instead of fifty. The visual result is identical but the performance cost drops dramatically.

Backface culling should be enabled for opaque objects. This tells the GPU not to render the insides of polygons, which halves the rendering work for closed meshes. Low-poly models sometimes have open geometry (planes, single-sided surfaces) that need backface culling disabled, so check each model.

LOD (level of detail) systems are less critical for low-poly games because the base polygon count is already low. But for scenes with many objects at varying distances, even simple LOD (reducing an 80-polygon tree to a 20-polygon tree at distance) can improve frame rates meaningfully.

Atlas textures, as mentioned above, improve batching. When every model in a scene uses the same material or the same small texture atlas, the GPU can render them in fewer batches. Fewer batches means better performance with no visual change.

The mindset

Building low-poly 3D models well requires a shift in thinking. You're not removing detail from a realistic form. You're constructing a readable form from minimal geometry. The difference is philosophical and it affects every decision you make.

When I model a chair, I don't think "what can I remove from a realistic chair?" I think "what is the minimum geometry that reads as chair?" A seat, a back, four legs. That's six or seven faces. If the chair needs to be specific (an office chair, a rocking chair, a throne), I add the geometry that distinguishes it from a generic chair and nothing more.

This reductive mindset produces models that are clean, efficient, and visually clear. Every polygon justifies its existence. The result isn't a simplified version of something better. It's a complete object expressed in the language of low-poly geometry. That's the difference between low poly as a limitation and low poly as a craft.

← Back to the Sketchbook