Better Spheres, Fewer Triangles

Gen­er­at­ing spheres through recur­sive sub­di­vi­sion of icosa­he­drons

UV spheres are one of the eas­i­est and most com­m­mon ways to gen­er­ate a sphere for com­put­er graph­ics.

UV sphere generated by revolving a circle about an axis planar to itself
UV sphere gen­er­at­ed by revolv­ing a cir­cle about an axis pla­nar to itself

It has its charms: it looks kind of like a globe, with its clear lon­gi­tu­di­nals and lat­i­tu­di­nals, it’s ridicu­lous­ly easy to imag­ine and cre­ate, and it works well with UV tex­ture map­ping. Still, its uneven dis­tri­b­u­tion of points can cause wast­ed tex­ture res­o­lu­tion as well as com­pu­ta­tion time at best, fun­ny-look­ing bunch­ing of points near the “poles” at slight­ly worse, and dis­gust­ing visu­al arti­facts at worst due to hav­ing to ren­der many sliv­ers of tri­an­gles often of widths less than a pix­el.

A far bet­ter solu­tion is the geo­des­ic sphere, cre­at­ed by divid­ing up the faces of a pla­ton­ic solid and then pro­ject­ing the ver­tices onto a sphere*.

Icosa­he­dron after two iter­a­tions of sub­di­vi­sion

To be com­plet­ed…

*Of course, fol­low­ing this log­ic, you could make a spher­i­cal look­ing mesh by basi­cal­ly tak­ing any con­vex mesh and pro­ject­ing its points onto a sphere. But then its points wouldn’t real­ly be even dis­trib­ut­ed. That’s why we sub­di­vide an icosa­he­dron.