See [Building an Orthonormal Basis from a 3D Unit Vector Without Normalization ](http://orbit.dtu.dk/files/126824972/onb_frisvad_jgt2012_v2.pdf) and [Building an Orthonormal Basis, Revisited ](https://graphics.pixar.com/library/OrthonormalB/paper.pdf)