2017-03-24 7 views
1

animate()ループ外の値を更新しても問題がなければnot clearです。ThreeJS外部ループ更新

ループ外の更新がレンダリングのパフォーマンスに影響しますか?

私が見ることができる唯一の欠点は、次回のアニメーションコールが完全に表示されるのを待たなければならない場合があることです。

私には欠点がありますか?

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

ウェブソケットが(私が推測するケースである)オブジェクトの位置を変更することができ、更新を送信した場合次の2つのケースがあります。

  1. アップデートにはフレームレートが高くなると、animate()の内部でupdatePositions()を実行する必要があります。フレーム間で複数の位置更新を行う必要はありません。
  2. アップデートの頻度がフレームレートより低い場合は、animate()以外の位置を更新することをお勧めします。すべてのフレームでupdatePositions()を呼び出さないでパフォーマンスを保存します。
関連する問題