Мне было интересно, как лучше всего реализовать рендерер в JavaScript.Здесь важна не контентная часть рендеринга - мне бы хотелось услышать, когда и как эффективно выполнить код рендерера.
В настоящее время у меня есть window.setInterval(renderFunc, 1000 / 20)
, который будет рендерить кадр каждый50 мс (т. Е. Fps = 20).
Дело в том, что более быстрые компьютеры не будут воспроизводить больше кадров, более того, более медленные компьютеры не смогут догнать 20 кадров в секунду, поэтому функция вызывается более чемкомпьютер может справиться.
Я думал о цикле while(true)
, но он использует 100% ЦП и зависает сам компьютер - так что на самом деле моя игра (рендерер моей 3D-игры)больше не будет играть, так как вы больше не можете нажимать на кнопки.
Какой самый эффективный вариант в этом сценарии или есть лучший метод, который мне не пришёл в голову?
Заранее спасибо.