考慮三維太陽系模擬。物理模擬基礎知識
我的模擬循環:
[Calculate new positions]->[Render]->[Calculate new positions]->[Render] etc....
這個循環的,比方說,25FPS運行。
我的模擬中的一顆行星非常快地向着太陽行進(在碰撞過程中)。讓我們看看模擬循環:
- 位置計算爲行星和太陽(他們還沒有相互碰撞,但彼此非常接近)。
- 場景呈現。
- 由於FPS不是無限的,在下一次迭代之前會有一個小的停頓。
- 位置是計算行星和太陽 - 這是我的問題的關鍵 - 他們沒有相撞,因爲在'小暫停'行星已經'穿過'太陽,他們的位置現在是一個很大的距離。碰撞檢測算法不檢測任何碰撞。
唯一的解決方案,我可以在這裏看到:
- 提高FPS
- 下我的行星的速度(降低引力常數?)
- 有一個獨立的仿真循環比沿着渲染循環運行,但速度更快
對於任何感興趣的人,我使用的是three.js。
很高興聽到我並不孤單。感謝DrC。我會解決你的問題。 – JoeRocc 2013-04-04 16:15:55