如需转载本文,请声明作者及出处。
一个浮点数有32位,一个四元数就有 32X4位。在满足1023分之一的球面精度上,可以将四元数压缩32位。
而浮点数的内存结构中,也存在一定的精度浪费,具体可以详查浮点数的存诸结构。
压缩与解压思路:
1)4选3:归一化后的四元数满足 x*x + y*y + z*z + w*w = 1, 所以, 我们只需要压缩其中三个,另外一个可以能过 1 减去被压缩的三个分量的平方的和而得到。
所以32bit的unsigned int的使用为:取四元数四个分量中,取绝对值较小的三个分量, 压入