使用滴答处理程序调整 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
这里是新手。我正在尝试使用滴答处理程序将 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