Skip to main content
geeks have feelings

Better Spheres, Fewer Triangles

Generating spheres through recursive subdivision of icosahedrons

UV spheres are one of the easiest and most commmon ways to generate a sphere for computer graphics.

UV sphere generated by revolving a circle about an axis planar to itself
UV sphere
UV sphere generated by revolving a circle about an axis planar to itself

It has its charms: it looks kind of like a globe, with its clear longitudinals and latitudinals, it’s ridiculously easy to imagine and create, and it works well with UV texture mapping. Still, its uneven distribution of points can cause wasted texture resolution as well as computation time at best, funny-looking bunching of points near the “poles” at slightly worse, and disgusting visual artifacts at worst due to having to render many slivers of triangles often of widths less than a pixel.

A far better solution is the geodesic sphere, created by dividing up the faces of a platonic solid and then projecting the vertices onto a sphere*.

Icosphere
Icosphere
Icosahedron after two iterations of subdivision

To be completed…

*Of course, following this logic, you could make a spherical looking mesh by basically taking any convex mesh and projecting its points onto a sphere. But then its points wouldn’t really be even distributed. That’s why we subdivide an icosahedron.

Every Post by Year

  1. 2023
    1. Ducati Timing Belt Replacement
    2. C++ Corrections
  2. 2016
    1. Liftlord
    2. Sensorless Brushless Can’t Even
  3. 2015
    1. Big Data: Test & Refresh
  4. 2014
    1. The Orange Involute
    2. Big Data EVT
  5. 2013
    1. Integer Arithmetic Continued
    2. Real Talk: Integer Arithmetic
    3. Why Microsoft’s 3D Printing Rocks
    4. Flapjack Stator Thoughts
    5. Delicious Axial Flux Flapjack
  6. 2012
    1. How to teach how to PCB?
    2. Fixed-point atan2
    3. It Was Never About the Mileage
    4. Trayrace
    5. BabyCorntrolling
    6. Conkers
    7. BabyCorntroller
    8. Templated numerical integrators in C++
  7. 2011
    1. Bringing up Corntroller
    2. Assembly-izing Tassel
    3. Corn-Troller: Tassel
    4. 5 V to 3.3 V with Preferred Resistors
  8. 2010
    1. HÄRDBÖRD: Interesting Bits
    2. HÄRDBÖRD: Hardcore Electric Longboard
    3. Mistakes to Make on a Raytracer
    4. US International Dvorak
  9. 2009
    1. Raxo
    2. Better Spheres, Fewer Triangles
    3. Donald Knuth Finally Sells Out
    4. Harpy – Sumo Bots 2009