2017-03-24 32 views
1

如果可以更新animate()环路以外的值,则为not clearThreeJS环路更新

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

我能看到的唯一缺点是有些更新可能会部分完成,不得不等待下一个动画电话完全显示。

我缺少什么缺点?

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()) 
} 

回答

0

如果你的web套接字发送更新改变对象的位置(这是我猜的情况下),你有两种情况:

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