Octaëdrische codering
Perst een eenheidsnormaal in twee getallen door de eenheidsbol op een octaëder te vouwen die over een vierkant is uitgevouwen.
Een oppervlaktenormaal is een eenheidsvector: drie componenten maar slechts twee vrijheidsgraden, dus alle drie opslaan verspilt ruimte, zeker in een krappe G-buffer. Octaëdrische codering projecteert de bol op een octaëder, vouwt die uit tot een eenheidsvierkant en slaat die twee coördinaten op. De precisie is vrijwel gelijkmatig over de hele bol, en coderen en decoderen kosten een paar regels rekenwerk zonder goniometrie: goedkoper en gelijkmatiger dan de oudere spheremap-transformatie die ze verdrong. Cigolle en collega's maakten de methode in 2014 bekend met hun overzicht van compacte eenheidsvectorrepresentaties; inmiddels is het de standaardmanier om normalen in twee kanalen van 8 of 16 bit te proppen.