webgl軽量化メモ

これすごく参考になった。
Case Study: Inside World Wide Maze

■軽量化方法

  • draw.callを減らす。
    meshをまとめる。
    WebGL best practices

  • 頂点の計算をglslでやる。

  • tracingでどいつが時間食ってるか調べる。
    Profiling your WebGL Game with the about:tracing flag
    console.time, console.timeEnd仕込む。

  • 環境ごとにエフェクトを切ったりする
    45 fps を切ったら、環境マップの更新をやめる。
    それでも 40 fps を切ったら、レンダリング解像度を 70% にする。(面積比 50%)
    それでも 40 fps を切ったら、FXAA (アンチエイリアス) をやめる。
    それでも 30 fps を切ったら、グローをやめる。

  • しっかりdispose

※20160.0108追記
Meshを作るんじゃなくて制限版のcloneにするとか
Scene Optimization in Babylon.js Part 1 – Meshes

Pocket