JSAPI Three API Reference
    正在准备搜索索引...

    类 LODModel

    LOD(Level of Detail)模型类,用于加载和管理不同细节层级的3D模型。 根据相机距离自动切换不同精度的模型,优化渲染性能。

    const lodModel = new LODModel({
    hysteresis: 0.1,
    levels: [
    { distance: 100, file: 'models/high.glb' },
    { distance: 500, file: 'models/medium.glb' },
    { distance: 1000, file: 'models/low.glb' }
    ]
    });
    engine.add(lodModel);
    // 监听单个模型加载完成事件
    lodModel.addEventListener('loaded', (event) => {
    console.log('模型加载完成:', event.value);
    });

    // 监听所有层级加载完成事件
    lodModel.addEventListener('complete', (event) => {
    console.log('所有层级加载完成');
    });

    层级

    • unknown
      • LODModel
    索引

    构造函数

    • LOD模型构造函数

      参数

      • parameters: { hysteresis: number; levels: any[] }

        配置参数

        • hysteresis: number

          缩进与拉远的缓冲参数,防止在临界点缩放时抖动,范围 0~1, 默认 0.1

        • levels: any[]

          levels 层级数据 [{distance: 1000, hysteresis: 0.1, file: 'a/b/c.glb'}]

      返回 LODModel

    方法

    • 添加一个LOD层级

      参数

      • file: string

        模型文件路径

      • distance: number = 0

        切换距离

      • hysteresis: number = 0

        该层级的缓冲参数

      返回 LODModel

      返回this

      lodModel.addLevel('models/detail.glb', 200, 0.1)
      .addLevel('models/simple.glb', 800, 0.1);
    • 获取当前层级

      返回 number

      当前层级

    • 获取当前模型

      返回 Promise<Object3D>

      当前模型

    • 获取指定层级的模型

      参数

      • level: number

        层级索引

      返回 Promise<Object3D>

      模型

    • 移除指定文件的LOD层级

      参数

      • file: string

        要移除的模型文件路径

      返回 LODModel

      返回this以支持链式调用

      lodModel.removeLevel('models/detail.glb');
      

    访问器

    • get hysteresis(): number

      获取缩进与拉远的缓冲参数

      返回 number

    • set hysteresis(value: number): void

      设置缩进与拉远的缓冲参数,防止在临界点缩放时抖动

      参数

      • value: number

      返回 void

      lodModel.hysteresis = 0.2; // 设置20%的缓冲区间
      
    • get isInit(): boolean

      获取模型是否初始化

      返回 boolean

    • get levels(): Object[]

      获取LOD层级配置数组

      返回 Object[]

    • set levels(levels: Object[]): void

      设置LOD层级配置数组

      参数

      • levels: Object[]

      返回 void

      lodModel.levels = [
      { distance: 100, file: 'high.glb' },
      { distance: 500, file: 'medium.glb' },
      { distance: 1000, file: 'low.glb' }
      ];
    • get transform(): Object

      获取模型变换参数

      返回 Object

    • set transform(value: Object): void

      设置模型变换参数

      参数

      • value: Object

      返回 void

      lodModel.transform = {
      translate: [100, 0, 100],
      rotation: [0, Math.PI/2, 0],
      scale: 2
      };