NextLeveL & TrueElseFalse
NextLeveL NextLeveL
Здоро́в, только что придумал, как поддерживать стабильные шестьдесят кадров в секунду, даже когда голосования в чате заставляют меня менять стиль на ходу. Поможешь разобраться с математикой, которая за этим стоит?
TrueElseFalse 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 кадров в секунду. Отрегулируй количество вызовов или уменьши дрожание опросений – и все будет в порядке. Удачи в отладке!