Этот подход может также работать, используя ТРИ. Часы для измерения дельты.
let clock = new THREE.Clock();
let delta = 0;
// 30 fps
let interval = 1 / 30;
function update() {
requestAnimationFrame(update);
delta += clock.getDelta();
if (delta > interval) {
// The draw or time dependent code are here
render();
delta = delta % interval;
}
}
Объем работы, который должен выполнять ваш процессор и графический процессор, зависит от рабочей нагрузки, и они устанавливают верхний предел плавной частоты кадров.
Графический процессор работает в основном линейно и всегда может выталкивать на экран одинаковое количество полигонов.
Тем не менее, если вы удвоили количество объектов, ЦП должен приложить больше усилий, чтобы оживить все эти объекты (матричные преобразования и т. Д.). Это зависит от вашей модели мира и другой работы, выполняемой Javascript. Также важны такие условия, как количество видимых объектов.
Для простых моделей, где все многоугольники находятся на экране всегда, тогда оно должно в значительной степени следовать правилу «половина частоты кадров, удвоение объектов». Для сцен, похожих на 3D-шутер, это определенно не так.