我发现的所有平面定义都使用四个数字(对于平面法线和距原点定义的距离)或六个数字(对于平面法线和平面定义上的点)。
也许我错过了一些东西,但是不应该用矢量的方向作为平面法线和矢量的大小来定义一个只有三个数字(nx,ny,nz)的平面。与原点的距离?
我正在尝试编写一款可以生成数十亿架飞机的游戏,并且从我的飞机结构中获得25%的折扣确实会有所帮助。
答案 0 :(得分:0)
有可能以每次需要时重新计算到原点的距离为代价。
答案 1 :(得分:0)
如果您需要使用3个没有退化情况的参数的解决方案,请使用两个方向角(U, V)
和到原点D
的距离。
飞机的公式:cos(U).X + sin(U).cos(V).Y + sin(U).sin(V).Z = D
。
如果没有强制要求高精度,你可以将角度存储为短路,并进行适当的缩放,达到0°00'20“分辨率。使用float D
,每个平面打包8个字节。