gpt4 book ai didi

javascript - ThreeJS 在循环外更新

转载 作者:太空宇宙 更新时间:2023-11-04 15:52:20 25 4
gpt4 key购买 nike

这是 not clear是否可以在 animate() 循环之外更新值。

循环外的更新会影响渲染性能吗?

我看到的唯一缺点是某些更新可能部分完成,必须等待下一个动画调用完全出现。

我缺少什么缺点吗?

function animate() {
requestAnimationFrame( animate )
updatePositions()
}

对比

function animate() {
requestAnimationFrame( animate )
}

function onWebSocketUpdate() {
updatePositions()
}

另一种看待它的方式:

onWebSocketUpdate(data) {

// Option 1
// ws directly applies the update
model.update(data)

// Option 2
// ws saves data to buffer
buffer.push(data)
// when animate() runs, it pops buffer data
model.update(buffer.pop())
}

最佳答案

如果您的网络套接字发送更新来更改对象位置(我猜就是这种情况),您有两种情况:

  1. 如果更新频率高于您的帧速率,您应该在 animate() 内运行 updatePositions()。您不需要在帧之间进行多次位置更新。
  2. 如果更新频率低于您的帧速率,最好在 animate() 之外更新位置。通过不在每一帧上调用 updatePositions() 可以节省一些性能

关于javascript - ThreeJS 在循环外更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43010905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com