在我的游戏中,我尝试使用'浮点原点'方法来防止浮点不精确而导致模型变形。 每个游戏循环,我都会检查我的玩家位置 (sqrt(dx * dx + dy * dy + dz * dz(( 与移动原点有一定距离(从 0, 0, 0 开始( 每当玩家离原点有一定距离时,我就会将玩家移回 0、0、0 以及其他所有内容,然后将移动原点设置为玩家的最后一个位置。
但是,我很难跟踪玩家的"真实"位置,因为原点一直在移动,我应该使用网格系统吗?
你会推荐什么?
这是一个很好的问题,因为在单精度的速度和双精度的精度之间总是存在权衡。
我使用双精度- 累加器跟踪班次,以便
随时使用双精度Vector3d进行精确
计算。
对于距离, - 比较距离平方的速度更快,并在
大规模系统中使用双精度,因为如果 您对地球比例或更大比例的单个精度值进行平方,然后
它们会迅速溢出并失去精度。 - 这是一个演示,我使用单精度进行每帧的高速渲染,在后端,双精度用于定期检查距离、接近度等。