Topology and Edge Flow
Why production meshes are built from quads, where 3- and 5-poles belong, and how edge loops decide whether a surface subdivides cleanly and deforms without pinching.
On this page
Overview#
Topology is the arrangement of a mesh's vertices, edges and faces — not the shape it currently holds, but the wiring underneath it. Two models can sit on exactly the same silhouette and be worth very different amounts. One subdivides cleanly, deforms without pinching and unwraps in five minutes; the other tears at the elbow, dimples under a smooth shader, and has to be rebuilt before it can be rigged.
Edge flow is the directional half of that. In a quad mesh, edges chain into long continuous loops, and where those loops run relative to the form is what "flow" refers to. Good flow follows the structure of the object — the seam of a panel, the boundary between two anatomical masses, the crease a limb folds along. Bad flow cuts across those lines, and every operation afterwards fights them.
The fact worth stating first, because it reframes everything else: renderers do not care. Every surface is triangulated before it is rasterised or intersected. Topology is an authoring-time property. It matters because subdivision, skinning, baking, UV unwrapping and every modelling tool that walks a loop all care — and because a human has to keep editing the thing.
Prerequisites#
Familiarity with the basic mesh elements (vertex, edge, face) and with the subdivision-surface modifier in whichever package you work in. No animation experience is required, though the deformation sections land harder once you have skinned something and watched it fail.
Definitions#
- Valence — the number of edges meeting at a vertex.
- Quad — a four-sided face. Triangle — three sides. N-gon — five or more.
- Edge loop — a chain of edges that passes through each vertex entering and leaving on opposite sides. Through an all-quad region the chain continues unambiguously; it terminates, or has to guess, the moment it reaches a vertex of valence other than four.
- Edge ring — the complementary set: the edges a loop crosses, one per quad along its path. A loop cut inserts a new loop by subdividing a ring.
- Pole — a vertex in a quad mesh whose valence is not four. Three-edge and five-edge poles (commonly called N-poles and E-poles) are the two used deliberately; six or more is almost always a mistake. Subdivision literature calls the same thing an extraordinary vertex.
- Support loop, or holding edge — a loop placed close beside another to tighten a radius that subdivision would otherwise round away.
- Manifold — every edge borders at most two faces, and the faces around each vertex form a single fan. Non-manifold geometry breaks subdivision, booleans, baking and most exporters.
- Edge flow — the paths the loops take across the surface.
Mental Model#
Treat a quad mesh as fabric stretched over the form, with the loops as its warp and weft. Where the weave lies naturally along the form, everything downstream is easy: the grid is already a local coordinate system, so UVs come out near-rectangular, subdivision converges to a clean surface, and a fold happens between threads rather than across one.
Poles are darts — the places where the weave changes direction or changes density. You cannot cover a closed form with pure grid, so darts are compulsory; the craft is entirely in where you put them. A dart on a flat, hidden, motionless panel is invisible. The same dart on the point of a shoulder puckers every time the arm moves.
Triangles and n-gons are where the weave simply stops. That is tolerable in a rigid flat region and expensive anywhere else.
Formal Treatment#
Two results turn the usual advice from stylistic preference into constraint.
Poles are forced by the surface itself. For a closed quad-only mesh, count edges twice: each face has four edges and each edge borders two faces, so E = 2F, and the valences sum to 2E. Substituting into Euler's formula V - E + F = X gives
sum over all vertices of (4 - valence) = 4X, where X = 2 - 2g for a closed orientable surface of genus g.
A sphere has X = 2, so its total pole charge must be exactly 8 — which a subdivided cube spends as its eight valence-3 corners. A torus has X = 0 and can therefore be built entirely from valence-4 vertices, which is why a donut is the one shape a beginner gets perfect topology on by accident. On anything sphere-like you cannot delete the poles. You can only move them.
Poles cost surface continuity. A Catmull-Clark limit surface is curvature-continuous (C2) across its regular regions and only tangent-continuous (C1) at extraordinary vertices. C1 means there is no visible crease, but curvature is discontinuous there — and curvature is precisely what a specular highlight or a reflection reads. That is the formal statement of "poles pinch". The severity scales with how much curvature the surface actually carries at that point, which is why the same pole is invisible on a flat panel and unacceptable on a shoulder.
Worked Examples#
Closing a cylinder. Cap a 16-sided cylinder with a triangle fan and you get a single valence-16 pole that dimples the instant you subdivide. Cap it with an n-gon and the subdivider puts an extraordinary vertex of valence 16 in the same place. The standard fix is a grid cap: fill the circular boundary with a square grid, which leaves four valence-3 poles at the grid corners instead of one catastrophic one, each on a region of low curvature. Two such caps contribute 4 + 4 = 8, exactly the charge the sphere-like result requires.
Changing density. Loop terminations and insertions come in charge-cancelling pairs: a three-pole carries charge +1 and a five-pole carries -1, so pairing them changes edge density locally while leaving the mesh's global count untouched. This is why every clean reduction pattern you have seen contains both, and why a lone pole added "to fix" something usually forces a second one somewhere less convenient.
Loops through a deforming joint. Run loops around the limb, encircling it, so the fold happens between adjacent loops rather than across the middle of a face. Three is the working minimum at an elbow or knee — one at the crease and one either side — because a two-loop joint has nothing to compress into and collapses. Tighter radii want more, biased toward the inside of the fold where skin bunches.
Face loops. Around the eyes and mouth, run concentric loops following the orbicularis muscles, with the surrounding flow blending between the two masks and along the nasolabial fold. The loops are literally the lines the face creases along, which is why this layout survives expression work when a uniform grid does not.
Hard surface after a boolean. A boolean leaves n-gons and dense triangle fans along the intersection. For a rigid prop rendered as modelled, that is often fine, provided the n-gons stay planar. If it must subdivide, the intersection has to be rebuilt in quads with support loops either side of the edge and the resulting poles pushed out onto the flat faces, away from the fillet.
Implementation#
- Block the form first. Topology is a second pass; committing to loops before the silhouette is settled means rebuilding both.
- Model with subdivision preview on. Pinches invisible on the cage are obvious on the limit surface.
- Inspect under a sharp specular or a reflective matcap. Curvature error is nearly invisible under flat lighting and glaring under a studio HDRI.
- Sculpt-first pipelines invert the problem: form is authored freely, then clean topology is built over it by retopology — by hand or with a quad remesher — and the sculpted detail is projected back as a normal or displacement map.
- Test deformation topology by posing it, not by looking at it. Bend the joint to its extreme and read the silhouette and the shading.
- Keep the mesh manifold as you go. Interior faces, doubled vertices and edges shared by three faces are cheap to fix on discovery and expensive to find at export.
Complexity / Cost#
Catmull-Clark quadruples face count per level: a cage of F faces becomes F times 4^n after n levels. That is what makes cage density the real budget decision — a loop added for insurance costs four times as much at level one and sixteen times at level two. Support loops are the usual offender, because they arrive in pairs and run the full length of an edge.
Density also has a floor set by deformation rather than by shading. A joint needs enough loops to fold no matter how smooth the render is. Adding those loops locally instead of globally is exactly what the pole pairs above are for.
Experiments#
Nothing recorded here yet. Topology claims in this chapter are geometric rather than measured, so anything that belongs in this section would be a render or deformation test run specifically to check one of them.
Performance Characteristics#
In real-time work, cost is counted in triangles and in unique vertices after the mesh is split along UV seams, hard normals and material boundaries. A continuous quad grid splits less than a scattered triangle soup, so the same triangle count can cost measurably less. Skinning is per-vertex and per-influence, so every extra loop through a deforming region is paid each frame.
None of the quads survive the trip. glTF 2.0 defines no quad primitive, and FBX polygons are triangulated on import by every mainstream engine. In a shipped game asset the topology's value is entirely in what it bought during baking, UV layout and skinning.
Failure Modes#
- Triangles in a deforming region. A triangle terminates the loops running through it and introduces a pole. Under skinning it bends stiffly relative to the quads around it, and under subdivision it drags a curvature discontinuity through an area whose shape is changing every frame — so the artifact moves, which is far more visible than a static one.
- N-gons on curved surfaces. Subdividing an n-gon places an extraordinary vertex of valence n at its centre, dimpling in proportion to the curvature underneath it. Worse, a non-planar n-gon has no defined surface at all until something triangulates it, and different tools choose different triangulations — so shading can change between the modelling package, the baker and the engine.
- Pinching. Almost always one of three causes: a pole sitting on curvature, loops converging until density collapses toward a point, or support loops so tight that the limit surface must turn through a large angle across a very small distance.
- Triangulation mismatch when baking. A normal map baked against one triangulation and rendered against another shows a faint diagonal seam across each affected quad. Triangulate before baking and ship the triangulated mesh.
- Uneven density. Abrupt jumps in edge length distort UVs, and make displacement, cloth and simulation behave differently either side of the boundary.
- Poles on the silhouette. A pole's curvature error reads most strongly exactly where the surface turns away from camera, which is where the eye is already looking.
- Spiralling loops. A loop that fails to close and instead wraps around one row over. Loop selection and edge sliding behave unpredictably along it from then on.
Alternatives#
- Triangle meshes. Correct for anything that is only ever rendered — scan data, terrain, and any game mesh past the export step.
- Sculpting with dynamic tessellation. Topology is regenerated continuously so the artist never thinks about it. Excellent for exploration, useless as a deliverable: the output is dense unstructured triangles that must be retopologised before rigging or UVs.
- Automatic quad remeshers — ZRemesher, QuadriFlow, Instant Meshes. They produce quad-dominant meshes at controllable density and, given guide curves, respectable flow. Good enough for props and for a sculpt base. Hand retopology still wins wherever the deformation is specific: faces, hands, shoulders.
- NURBS and CAD surfaces. The model is defined by analytic surfaces and a tolerance; the mesh only appears at tessellation time. A different discipline with different failure modes.
- Not caring. Genuinely correct for a single frame of a rigid object. Every rule in this chapter exists to serve subdivision, deformation or baking. Remove all three and topology stops mattering.
Real-World Systems#
- Catmull-Clark is the subdivision scheme the industry effectively standardised on. Pixar's OpenSubdiv is the reference implementation, and is what Blender, Maya and Houdini evaluate subdivision with.
- Pixar's Geri's Game (1997) is the production that moved character work from stitched NURBS patches to subdivision surfaces; the SIGGRAPH paper that followed it is still the clearest account of why. Maintaining continuity across patch boundaries on a deforming character is a problem subdivision surfaces simply do not have.
- Game engines triangulate at import, and glTF 2.0 has no quad primitive at all, so quad topology is a pipeline convenience rather than a runtime format.
- Retopology tools — Blender's poly build and shrinkwrap workflow, TopoGun, Maya's Quad Draw — exist for no other purpose than translating sculpted form into deliberate edge flow.
Connections#
- Form and Silhouette — topology serves form; the silhouette decides how much of it you need.
- Subdivision Modeling — the workflow most of these constraints come from.
- Booleans and Cleanup — where bad topology gets generated fastest.
- Retopology — building deliberate flow over a finished sculpt.
- UV Layout — a quad grid is already most of a UV parameterisation.
- Rigging and Weight Painting — the consumer of deformation topology.
- Polygon Budgets — where density stops being a modelling decision and becomes a shipping constraint.
Exercises#
- Cap a 16-sided cylinder three ways — n-gon, triangle fan, grid fill. Subdivide each and compare under a reflective material. Locate the poles in each result.
- Count valences on a subdivided cube and on a quad-sphere and confirm both reach a total pole charge of 8. Then do the same on a UV sphere and work out why it does not: its two apexes are triangle fans, so it is not the quad-only mesh the derivation above assumes.
- Model a rigid prop with booleans and leave the result untouched. Render it. Then subdivide the same file and write down everything that breaks.
- Build a cylindrical arm with two, three and five loops through the elbow. Bind each to a single bend and pose to a hard fold. Compare silhouette and volume loss.
- Move one five-pole from a flat panel onto a curved shoulder, changing nothing else, and render both under a strong specular highlight.
Oral Exam Questions#
- Why can a torus be modelled with no poles at all when a sphere cannot? Derive it.
- Renderers triangulate everything regardless. Defend spending time on quads.
- What exactly goes wrong at an extraordinary vertex under Catmull-Clark, and why is it more visible on a curved surface than a flat one?
- Where would you place the poles when reducing edge density along a forearm, and why there?
- A normal-mapped asset shades correctly in the modelling package but shows faint diagonal seams in the engine. What is the most likely cause?
- Under what precise conditions is topology genuinely irrelevant?
References#
- Catmull, E. and Clark, J. "Recursively generated B-spline surfaces on arbitrary topological meshes." Computer-Aided Design 10(6), 1978.
- DeRose, T., Kass, M. and Truong, T. "Subdivision Surfaces in Character Animation." SIGGRAPH '98.
- Jakob, W., Tarini, M., Panozzo, D. and Sorkine-Hornung, O. "Instant Field-Aligned Meshes." SIGGRAPH Asia 2015.
- Pixar OpenSubdiv — https://github.com/PixarAnimationStudios/OpenSubdiv
- Blender Manual, Modeling — https://docs.blender.org/manual/en/latest/modeling/index.html
- glTF 2.0 specification — https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html