Weighted Normals 〈PLUS ›〉

In the end, weighted normals teach us a profound lesson about computer graphics: And a well-weighted lie is indistinguishable from the truth.

Imagine you’re tasked with lighting a low-polygon game asset—say, a crate, a boulder, or a character’s shoulder. The geometry is faceted, sharp, and efficient. But when a light hits it, the truth of those flat triangles screams back at you. You see every edge. The object looks like a cut gemstone, not a smooth, organic form. The problem isn't the geometry. The problem is how you’re pretending the surface curves. weighted normals

That’s where normals come in. A normal is simply an arrow pointing perpendicular to a surface. In a shader, that arrow tells the light, “I face this direction.” On a flat polygon, every pixel shares the same normal. The result? Flat shading. Harsh. In the end, weighted normals teach us a

Weighted normals are the cheat code for the "low-poly aesthetic." Artists have long manually adjusted vertex normals using tools like Maya's polyNormalPerVertex or Blender's Custom Normal Editor. Now, engines like Unreal and Unity support importing custom normals directly from FBX, and modern workflows (like using the WeightedNormal modifier in 3ds Max or MikkTSpace) automate the magic. But when a light hits it, the truth

Why? Because the standard average treats every polygon equally. A tiny sliver of a triangle has the same voting power as a large, sweeping quad. It’s democratic, but it’s wrong.

So the next time you see a low-poly rock that catches the light just right—with no faceted harshness, but also no melted edges—thank the weighted normal. It is the silent mathematician, the invisible sculptor, making your sharp, economical world feel soft and real.

Enter .