Kodowanie oktaedryczne
Pakuje wektor normalny do dwóch liczb, składając sferę jednostkową na ośmiościan rozłożony na kwadracie.
Normalna powierzchni to wektor jednostkowy: trzy składowe, ale tylko dwa stopnie swobody, więc zapisywanie wszystkich trzech to marnotrawstwo, zwłaszcza w ciasnym G-bufferze. Kodowanie oktaedryczne rzutuje sferę na ośmiościan, rozkłada go na kwadrat jednostkowy i zapisuje te dwie współrzędne. Precyzja jest niemal równomierna na całej sferze, a kodowanie i dekodowanie to kilka linijek arytmetyki bez trygonometrii — taniej i równiej niż w starszej transformacji spheremap, którą wyparło. Upowszechnione przez Cigolle’a i współautorów w przeglądzie zwartych reprezentacji wektorów jednostkowych z 2014 roku, jest dziś domyślnym sposobem upychania normalnych w dwóch kanałach 8- lub 16-bitowych.