ThreeJS翻译场景位置

时间:2016-07-26 18:33:30

标签: three.js

我一直在一个太空中设置的游戏中工作,这意味着玩家可以穿过太阳系。

当玩家走得更远时,问题就出现了,并且会出现Float32精度问题。 我一直在寻找几个小时来找到解决方案,但到目前为止没有任何帮助。

我还尝试过将所有网格重新缩放为微小的..比它们的初始比例小约100倍,但在达到更大的坐标时表现相同。

另一个解决方案是翻译世界位置,而不是玩家,这将完成这项任务......但老实说,我不知道如何在不改变每个网格位置的情况下实现这一目标。

我还将渲染器设置为使用{ logarithmicDepthBuffer: true},但仍然无法帮助我......播放器模型开始跳跃,闪烁。

我花了很多时间试图找到一个解决方案来帮助我解决这个问题,所以我很感激任何建议。

1 个答案:

答案 0 :(得分:2)

要移动场景,您可以使用:

scene.translateX(i);
scene.translateY(i);
scene.translateZ(i);

其中i是现有位置偏移量的增量。这可以给你一个第一人称运动的幻觉。 这是非常大的场景的常见解决方案。