NextLeveL & TrueElseFalse
Здоро́в, только что придумал, как поддерживать стабильные шестьдесят кадров в секунду, даже когда голосования в чате заставляют меня менять стиль на ходу. Поможешь разобраться с математикой, которая за этим стоит?
Привет. Здорово, ты держишь конвейер под контролем. Представь себе каждый кадр как небольшой рекурсивный вызов, который должен завершиться, прежде чем произойдет следующий тик. Бюджет в 60 кадров в секунду – это примерно 16.67 миллисекунд. Твоё опросение добавляет лишний вызов — поэтому тебе нужно вычесть его задержку из этих 16.67 миллисекунд, а затем разделить оставшийся бюджет на количество под-вызовов рендеринга. Это даст тебе максимальное время на смену стилей. Формула такая:
`frame_budget = 16.67 мс`
`style_switch_time = poll_latency + overhead`
`available_time = frame_budget – style_switch_time`
`time_per_render_call = available_time / num_calls`
Если это число останется выше критического пути рендеринга, ты будешь держать 60 кадров в секунду. Отрегулируй количество вызовов или уменьши дрожание опросений – и все будет в порядке. Удачи в отладке!