gpt4 book ai didi

javascript - 物理模拟基础

转载 作者:行者123 更新时间:2023-11-30 13:05:40 26 4
gpt4 key购买 nike

考虑 3D 太阳系模拟。

我的模拟循环:

[Calculate new positions]->[Render]->[Calculate new positions]->[Render] etc....

这个循环以 25FPS 的速度运行。

在我的模拟中,一颗行星正以极快的速度向太阳移动(在碰撞过程中)。让我们看看模拟循环:

  1. 计算行星和太阳的位置(它们尚未碰撞,但彼此非常接近)。
  2. 场景已渲染。
  3. 由于 FPS 不是无限的,因此在下一次迭代之前会有一个小的暂停。
  4. 计算行星和太阳的位置 - 这是我的问题的症结所在 - 它们没有发生碰撞,因为在“小停顿”期间行星已经“穿过”太阳并且它们的位置现在相距很远。碰撞检测算法不检测任何碰撞。

我在这里看到的唯一解决方案是:

  • 提高 FPS
  • 降低我行星的速度(降低引力常数??)
  • 有一个单独的模拟循环而不是与渲染循环一起运行,但速度更快

对于任何感兴趣的人,我正在使用 three.js .

最佳答案

发生在射击游戏中的射弹上。一种解决方案是让您的运动平台沿着前进路径拍摄一条线段,看看它是否会在下一帧之前击中任何东西。不过,这假设只有一个物体在快速移动。我想你也可以在最后一个位置和新位置之间运行一个段,尽管我自己没有那样做。我也成功地将我的对撞机定义向前扩展到一个覆盖未检查区域的椭圆。

关于javascript - 物理模拟基础,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15803070/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com