Size: a a a

2021 January 02

AM

Anton Matrosov in GameDev for Web
Нужен многочлен от dt в степенях
источник

К

Константин in GameDev for Web
Один фиг ошибка будет
источник

AM

Anton Matrosov in GameDev for Web
С какими-то коэффами
источник

AM

Anton Matrosov in GameDev for Web
Да, но после 2 - 3 порядка пофигу на нее а моем случае
источник

К

Константин in GameDev for Web
Ну ты так сказал, что тебе важно чтобы на любом железе при разнобойном DT строго совпадали симуляции за конечное время
источник

К

Константин in GameDev for Web
Но оно уже промахнется, если кадры не смогут верно разбить промежуток на dt
источник

К

Константин in GameDev for Web
Те у тебя будет 10 шагов по 100мс , или 9 по 110 мс, и ты перескочишь на 100мс или не доедешь на 10
источник

К

Константин in GameDev for Web
По этому тебе один фиг делать коррекцию
источник

A

Anon in GameDev for Web
Там ещё проблемы с неточностью флоатовой математики умножаются, особенно с физикой. Если нужен хоть какой-то уровень детерминизма, то только фиксированный шаг катит.
источник

AM

Anton Matrosov in GameDev for Web
я прогулялся, подумал, короч мне нужна аппроксимация вот этого уравнения )
dv / dt = -k * v
источник

AM

Anton Matrosov in GameDev for Web
это air drag, поэтому нельзя считать через t общее
источник

AM

Anton Matrosov in GameDev for Web
v будет также меняться каждый кадр, понятно
источник

AM

Anton Matrosov in GameDev for Web
и нужно его так аппроксимировать многочленом, чтобы погрешность была терпимой
источник

AM

Anton Matrosov in GameDev for Web
аппроксимация первого порядка:
v = v * (1 - k * dt)
источник

AM

Anton Matrosov in GameDev for Web
я помню было на дискретной математике такое, но не помню уже как решается
источник

К

Константин in GameDev for Web
Anon
Там ещё проблемы с неточностью флоатовой математики умножаются, особенно с физикой. Если нужен хоть какой-то уровень детерминизма, то только фиксированный шаг катит.
Я про это и хотел объяснить, что если считать шагом, с шумом - пздец симуляции.
Для этого физика и тикает с фиксированным шагом и коррекцией
источник

AM

Anton Matrosov in GameDev for Web
ладно, пока забьем на плавающий dt
но даже если у нас есть 2 клиента - один с 60 фпс физикой, другой с 120 - air drag будет на них по-разному действовать
источник

AM

Anton Matrosov in GameDev for Web
для 60 скорость уменьшится в (1 - k * 1 / 60)
для 120 будет в (1 - k * 1 / 120)^2
источник

AM

Anton Matrosov in GameDev for Web
если найти аппроксимацию, которая устраняет хотя бы это - то с плавающим фреймрейтом в моем случае она тоже справится
источник

AM

Anton Matrosov in GameDev for Web
(1 - k * 1 / 120) *  (1 - k * 1 / 120) = (1 - k * 1 / 60) + (k * k * 1 / 60 * 1 / 60)
источник