WebGL解决模型卡顿和压缩方法一babylonjs为例

251 阅读1分钟

小白容易遇到的模型太大和卡顿问题

一、模型对象定义

定义模型对象时无论是Vue还是React最好不要用响应式特性。 以Vue为例:

import { defineComponent, onMounted, reactive } from 'vue'
import * as BABYLON from 'babylonjs'
import 'babylonjs-loaders'
export default defineComponent({
  setup() {
    const babylon = {
      canvas: null,
      engine: null,
      scene: null,
      camera: null
    }

二、GLTF模型压缩

当模型文件过大是可能会导致加载缓慢,可以用GLTF压缩工具将模型压缩。

gltf-pipeline可以將blender导出的模型文件最大压缩90%

gltf-pipeline: npm install -g gltf-pipeline

将glTF转换为Draco glTF:gltf-pipeline -i model.gltf -o modelDraco.gltf -d

例:

image.png

被压缩文件:

image.png

压缩后文件:

image.png

注释:

Alcas.gltf:需要压缩的文件
modelDraco.gltf:压缩后的文件名称