Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.7k views
in Technique[技术] by (71.8m points)

three.js 三维模型整个场景数据如何存储到数据库

使用场景:
一个场景中可以动态加载10多个模型(或者更多),模型摆放到场景里,每个模型位置,大小,缩放都可以修改,修改完成后,保存整个场景。

保存好的多个场景,可以根据场景id 来预览

目前存储整个场景的数据到MongoDB数据库里面,但是场景下的glb模型特别大,把所有的数据存储进入,导致数据库存储不进去 ,数据格式是仿照three editor 项目里的格式,它是临时存在indexedDB里面,对文档数据大小几乎没有限制
image.png

有什么好的建议吗? 存储在什么数据库里面(关系、非关系数据库), 以什么数据格式来存储,读取数据来渲染场景没那么困难?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

不同模型用不同json文件存,数据库里存json文件的路径,用的时候THREE.ObjectLoader()拿

let loader = new THREE.ObjectLoader();
let obj = loader.parse(<json obj>);
scene.add(obj);

页面中如果有大量相同的geometry material,只是位置、角度、缩放不一样,可以用InstancedMesh可以减少页面重绘,提高性能。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...