栏目分类
你的位置:Aimedis (new)中文网 > Moonriver中文网 >
前言
1.因为之前工作过的可视化大屏项目开发3d大屏组件模块需要用到Three.js来完成,其主功能是实现对3d模型的材质,灯光,背景,动画。等属性进行可视化的编辑操作以及模型编辑数据的存储和模型在大屏上面的拖拽显示
2.因为是第一次使用Three.js开发实际的项目,在开发这些功能的过程中也遇到了许多Three.js的坑(好在最终都解决了)
3.同时在开发这个项目模块的过程中也发现github能够搜索到的Three.js3d模型可视化编辑相关的开源项目非常的少,许多的three.js相关问题和功能的实现在网上也很难搜索到答案
4.因此在参考了之前工作项目中做过的可视化大屏项目的3D模型编辑模块的功能和three.js 官方编辑器 https://threejs.org/editor/的部分功能的基础之上开发了一款基于Three.js+Vue3的3d模块可视化编辑器系统,其主要目的是尽可能更多的将three.js提供的API结合在实际的项目中去使用,作为自己个人学习three.js的记录,也供大家学习和参考
项目的在线访问地址:https://zhang_6666.gitee.io/three.js3d/
系统界面图:
实现的主要功能模块
背景模块:实现背景图、全景图、背景颜色的编辑功能材质模块:实现模型材质颜色、透明度、网格、材质显示/隐藏、材质贴图、模型材质类型切换等编辑功能后期处理模块:实现模型材质的辉光效果强度、半径、阈值、色调曝光度、模型的拖拽和分解等编辑功能灯光模块:实现环境光、点光源、半球光、聚光灯等参数的编辑功能动画模块:实现模型自带动画的播放、播放速度、播放类型、动作幅度和模型x,y,z轴动画等编辑功能辅助线/轴配置模块:实现模型的轴坐标、轴位置、网格辅助线、模型骨架、模型坐标轴辅助线等编辑功能几何体模型配置模块:实现对Three.js中的几何体API函数的参数编辑功能模型加载模块:实现模型的点击切换功能、外部模型加载的功能、几何体模型拖拽加载功能、支持多类型(.glb,.obj,.gltf,.fbx)格式的模型文件加载,模型加载进度条功能导出模块:实现模型场景封面下载、模型文件导出功能数据保存模块:实现模块编辑数据的预览、模型编辑数据的保存模型库模块:支持多个编辑模型数据的拖拽展示和保存
主要功能模块实现的代码
1.这里首先将three.js相关的API操作封装在一个renderModel.js的class类函数中去方便在vue页面中调用
2.将不同模块的功能都写入函数方法中去,将需要编辑操作的一些three.js的API属性定义在constructor中去然后在通过this去修改
2.在vue页面中去使用
3.ok这样一个模型编辑器的初始化场景功能就完成了
如何将编辑的模型数据进行存储和回显???
模型数据的存储和回显应该是这个编辑器最核心的东西了吧,我想你也不希望自己编辑操作了半天的模型数据被浏览器的F5一键重置了吧。这里我的思路是将模型的背景、灯光、材质、动画、辅助线、位置等属性值存储在localStorage ,在页面刷新或者进入页面时候获取到这些保存的数据值,然后将这些值进行数据回填。这种思路同样也适用于将数据存储在服务端然后在通过调用接口获取。新建一个initThreeTemplate.js 文件 用于专门处理模型数据回填 (renderModel) 方法 和创建模型渲染 (createThreeDComponent) 方法。renderModel 方法内容和上面的基本一致,只是在传递和接收参数时新增一个模型数据的参数 config,这里只列举部分不同处的代码作为解释
6 在页面中调用方法,获取到 localStorage 然后传入 createThreeDComponent 方法中去这样一个模型渲染和数据回填的功能就实现了。没错就是这么简单
模型编辑的数据 MODEL_PRIVEW_CONFI 的结构
数据回显效果
如何实现多模型的数据回显展示
1 这里通过列表循环渲染和 vue3-draggable-resizable 插件实现 可拖拽的多模型展示功能
DraggableResizableItem.vue 代码
数据回显效果
结语
1.好了这样一个基于Three.js开发的3d模型可视化编辑系统就开发完成了
2.完整的项目代码可访问:
gitee:https://gitee.com/ZHANG_6666/Three.js3D
github:https://github.com/zhangbo126/Three3d-view
以上就是基于Vue3+Three.js实现一个3D模型可视化编辑系统的详细内容,更多关于Vue3+Three.js实现3D模型可视化系统的资料请关注脚本之家其它相关文章!
下一篇:浙江嘉兴召开氢能环卫车现场观摩交流会