Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LimitAngle機能でNaNが入るためフリーズ #16

Open
monguri opened this issue Feb 2, 2023 · 1 comment
Open

LimitAngle機能でNaNが入るためフリーズ #16

monguri opened this issue Feb 2, 2023 · 1 comment

Comments

@monguri
Copy link

monguri commented Feb 2, 2023

AngleLimitレベルで、t.MaxFPS 60のようにしてフレームレートを制限すると再現させやすいです。
120FPS出ていると再現しませんでした。
bLimitAngleをtrueにしておくと、位置にNaNの値が入り、どこかでエンジン内のensure()にひっかかります。

@monguri
Copy link
Author

monguri commented Feb 2, 2023

こちらですが、LockAngles()の呼び出し箇所をApplyToBone()から削除し153行目のコリジョン処理のあとに移動して
for (auto&& Points : _PointsTbl)
{
for (auto&& Point : Points)
{
if (Point.bVirtual) continue;
LockAngles(&Point);
}
}
サブステップ内ループでやるようにしたらゲームが低フレームレートでも安定しました。

LockAngles()によるPositonの変化が1フレームに一回だけで大きな値が入ると速度変化が大きいために
それが積み重なり発散するのではないかと推測しています。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant