Threejs in autonomous driving-(2)モデルの簡略化


開発準備段階でモデリングする学生は 、前段から考えると一般的に100 kbを超えるのは大きなファイルですが、このモデルは一般的にobj + mtlファイルで、この2つは一般的にMBを超えます.簡素化を推進するのは非常に難しい.

シン・スキーム

  • モデルの および
  • を削除する.
  • モデル圧縮
  • 第1種の専門性は比較的に強くて、私達は決められないので、それでは第2種の構想から出発点にすることができます.万能の検索エンジン検索では、3 d業界と呼ばれるjsonフォーマットのgltfを見つけることができます.
    gltfの概要.
    ここでは2つのツールをお勧めします
  • obj2gltf https://www.npmjs.com/package...
  • gltf-pipeline https://www.npmjs.com/package...

  • obj 2 gltfとgltf-pipeline

    obj2gltfとgltfというツールを用いてobj+mtlフォーマットをgltfに変換することができ、gltf-pipelineはgltfをさらにglb(binary)に変換することができ、非常に小さなモデルファイルを得ることができる.
    $user obj2gltf -i car_r.obj -o car.gltf
    

    変換後に非常に小さなファイルが得られることがわかり、gltf-pipelineの使用は後述しない.threejsではgltfloaderを使用してgltfまたはglbファイルを使用できます!
    
    export
    let gltfLoader = function (gltfSrc) {
        return new Promise((resolve, reject) => {
            new THREE.GLTFLoader()
                .load(gltfSrc,
                    ({scene}) => resolve(scene),
                    noop,
                    error => reject({
                        type: 'gltf'
                    })
                );
        });
    };
    

    結び:glbフォーマットのモデルの使用によりobjフォーマットに対するモデルを発見した.読み込み速度も解析レンダリング速度も質的に飛躍しました.objがもたらすカートン感覚は全くありません.
  • 私のブログ:neverland.github.io
  • 私の[email protected]