LoginSignup
0
0

More than 1 year has passed since last update.

[個人用メモ]Three.jsのパフォーマンスのススメ#1

Posted at

はじめに

ワールドスケールとレイヤースケールについて考えます。
特定のワールドの広さを任意のグリッドを引き、グリッドごとにレイヤーで描画管理することで、
最適な表示非表示を切り替えます。
カメラの位置をレイヤーから特定のレイヤーまで長さを考える

途中作成

const l = 3;// 監視グリッドエリア範囲
const g = 8;// グリッド数
const n = 28;// 現在レイヤー
const r = n % g;// 現在レイヤーの列番号
const c = Math.ceil(n/g);// 現在レイヤーの行番号

const layers = [n];// 表示レイヤー

[...Array(l)].map((_, idx) => {
    const i = idx + 1;
    // 中心
    layers.push((c -1 - i)*g + r);
    layers.push((c -1 + i)*g + r);
    layers.push((c -1)*g + (r - i));
    layers.push((c -1)*g + (r + i ));
    
    // 周辺
    [...Array(l - i)].map((_none, _idx) => {
        const _i = _idx + 1;
        layers.push((c-1 - _i)*g + (r - _i ));
        layers.push((c-1 + _i)*g + (r - _i ));
        layers.push((c-1 - _i)*g + (r + _i ));
        layers.push((c-1 + _i)*g + (r + _i ));
    });
    
});

console.log("Length: ", layers.length);
console.log(layers);
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0