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); 复制
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('所有层级加载完成');}); 复制
// 监听单个模型加载完成事件lodModel.addEventListener('loaded', (event) => { console.log('模型加载完成:', event.value);});// 监听所有层级加载完成事件lodModel.addEventListener('complete', (event) => { console.log('所有层级加载完成');});
LOD模型构造函数
配置参数
缩进与拉远的缓冲参数,防止在临界点缩放时抖动,范围 0~1, 默认 0.1
levels 层级数据 [{distance: 1000, hysteresis: 0.1, file: 'a/b/c.glb'}]
添加一个LOD层级
模型文件路径
切换距离
该层级的缓冲参数
返回this
lodModel.addLevel('models/detail.glb', 200, 0.1) .addLevel('models/simple.glb', 800, 0.1); 复制
lodModel.addLevel('models/detail.glb', 200, 0.1) .addLevel('models/simple.glb', 800, 0.1);
获取当前层级
当前层级
获取当前模型
当前模型
获取指定层级的模型
层级索引
模型
移除指定文件的LOD层级
要移除的模型文件路径
返回this以支持链式调用
lodModel.removeLevel('models/detail.glb'); 复制
lodModel.removeLevel('models/detail.glb');
获取缩进与拉远的缓冲参数
设置缩进与拉远的缓冲参数,防止在临界点缩放时抖动
lodModel.hysteresis = 0.2; // 设置20%的缓冲区间 复制
lodModel.hysteresis = 0.2; // 设置20%的缓冲区间
获取模型是否初始化
获取LOD层级配置数组
设置LOD层级配置数组
lodModel.levels = [ { distance: 100, file: 'high.glb' }, { distance: 500, file: 'medium.glb' }, { distance: 1000, file: 'low.glb' }]; 复制
lodModel.levels = [ { distance: 100, file: 'high.glb' }, { distance: 500, file: 'medium.glb' }, { distance: 1000, file: 'low.glb' }];
获取模型变换参数
设置模型变换参数
lodModel.transform = { translate: [100, 0, 100], rotation: [0, Math.PI/2, 0], scale: 2}; 复制
lodModel.transform = { translate: [100, 0, 100], rotation: [0, Math.PI/2, 0], scale: 2};
LOD(Level of Detail)模型类,用于加载和管理不同细节层级的3D模型。 根据相机距离自动切换不同精度的模型,优化渲染性能。
示例
示例