使用滴答处理程序调整 Aframe FPS

Aframe FPS adjustment using tick handler

这里是新手。我正在尝试使用滴答处理程序将 FPS 从默认值 60、72 90 调整为 30。在花费大量时间尝试理解游戏循环、FPS 以及本例中的滴答处理程序之后,我仍然无法掌握如何实现这一点。这是我一直在摆弄但没有快乐的代码。

    AFRAME.registerComponent('FPS-30', {
  init: function () {

    this.tick = AFRAME.utils.throttleTick(this.tick, 33, this);
  },

  tick: function (t, dt) {}
});

    AFRAME.registerComponent('FPS-30', {
tick: utils.throttleTick(function(t, dt){}, 33);
});

here, and also here 中所述。我已将组件附加到 a-scene 元素以及 a-entity 但到目前为止没有成功!有人可以阐明如何实现这一目标吗?谢谢!

您无法将 FPS 锁定为特定值。 A-Frame 渲染循环在 2D 模式下以 requestAnimationFrame(通常为 60)定义的速率触发,在 VR 模式下以可用耳机的本机刷新率(60、72、90 ...)定义。不建议应用程序进行干扰,因为有时间敏感的操作,如帧提交、重新投影或传感器读数,如果没有正确同步,可能无法按预期工作。

您可以通过 throttleTick 控制组件 tick 方法触发的速率。下面是它工作的一个例子。请注意控制台消息以毫秒为单位打印 tick 调用之间经过的时间:

https://glitch.com/edit/#!/congruous-weak-thumb?path=index.html%3A12%3A10