← Назад

Проблема крутого подъема и невидимая стена

2026-10-04 · 17 просмотров · ★ 5

Проблема крутого подъема и невидимая стена

Разбор проблемы невидимой стены, которая возникает на крутых подъемах.

В физическом движке есть проблема: при подъеме около 30 градусов и более возникает ошибка в расчете нормали поверхности.

В оригинальном физическом движке существует особенность, превращающая крутой переход дорожной поверхности в вертикальную collision-плоскость. Непосредственно на подъеме для возникновения проблемы также нужна небольшая Vy. Значения -0.3 м/с уже достаточно, поэтому расчеты проводились с этой величиной.

Также существует ложная стеновая реакция при проверке границ трассы.

Границы возникновения проблемы видны на графиках:

Условия возникновения проблемы

На 3D-графике показан процент потери скорости в зависимости от угла подъема. Видно, что после 30 градусов потеря становится довольно ощутимой и сохраняется примерно на одном уровне при различных углах и скоростях.

Рядом приведен отдельный график для 30-градусного подъема.

Скорости около 22 м/с уже достаточно для возникновения проблемы.

На эту проблему меня натолкнул pete9516.

У него есть временный компромиссный патч:

https://www.nfsaddons.com/downloads/nfshs/tools/11480/dynamic-uphill-crash-fix-crash-logger.html

Патч обнуляет три передние точки выборки при расчете коллизий.

Саму проблему он не решает, а просто отодвигает ее возникновение на более высокие скорости, одновременно создавая дополнительные проблемы с коллизиями:

pete9516-uphill-patch

Я попробовал сделать менее разрушительное исправление в uphill_fix.n4p.

Не вдаваясь в длинные рассуждения, суть исправления следующая: сохраняются все точки выборки, а убирается только ложный высотный признак границы.

Пока я не знаю, на что еще это может повлиять. Судя по коду, исправление не должно приводить к регрессиям реальной физики в других ситуациях, но его желательно дополнительно протестировать.

График сравнения оригинальной физики, pete9516-uphill-patch и uphill_fix.n4p:

Сравнение

3D-график для uphill_fix.n4p:

3D

На видео ниже я записал саму проблему и показал, что после исправления физики тот же replay воспроизводится без столкновения с невидимой стеной.

https://youtu.be/WrqSq-CH8ks

uphill_fix.n4p является частью работы по переносу патчей с прямого изменения EXE-файла на отдельные модули.

На данный момент список патчей пока невелик. Сначала я планирую перенести в новую систему все изменения, которые уже сделал непосредственно в EXE, а затем продолжить исправление ошибок и добавление нового функционала.

Но перед этим сделаю небольшой предварительный релиз с несколькими патчами. Это будет быстрее, чем пытаться сначала довести все существующие изменения в EXE до состояния полноценного релиза.

Сейчас доступны следующие модули:

Список патчей

race_again.n4p — добавляет кнопку "Race Again" в карьерные гонки.

replay_trace.n4p — отладочный модуль для трассировки во время воспроизведения replay.

telemetry.n4p — сбор телеметрии во время гонки.

uphill_fix.n4p — исправление проблемы с крутыми подъемами.

© 2026 nfs4.com. Копирование материалов без письменного разрешения запрещено.

Правила цитирования и использования

Комментарии

★ 5 · 0 комментариев

Пока нет комментариев.

Войдите, чтобы оставить комментарий и оценить. Войти