基于three.js在线3D场景编辑器,使用mongodb保存3D模型和场景数据
星集
分享记录身边的故事,希望带给你一点感悟。
2019-11-04 09:05
关注

Shadow Editor

基于three.js的在线3D场景编辑器,使用mongodb保存3D模型和场景数据。

主要功能

基于three.js/WebGL的3D场景在线编辑器,服务端使用MongoDB保存动画、音频、类别、角色、贴图、材质、网格模型、粒子、预设体、场景数据。内置几何体:平面、正方体、圆、圆柱体、球体、二十面体、轮胎、纽结、茶壶、酒杯、精灵、文本;线段、CatmullRom曲线、二次贝塞尔曲线、三次贝塞尔曲线、椭圆曲线。内置光源:环境光、平行光、点光源、聚光灯、半球光、矩形光。支持多种不同3D格式模型和动画导入。支持3ds、3mf、amf、assimp(anim)、awd、babylon、binary、bvh(anim)、collada、ctm、draco、fbx(anim)、gcode、gltf(anim)、js(anim)、json(anim)、kmz、lmesh(anim)、md2、mmd(anim)、nrrd、obj、pcd、pdb、ply、prwm、sea3d(anim)、stl、vrm、vrml、vtk、x 31种3D文件格式,带anim的表示支持动画。多种3D文件同时支持json和二进制格式。mmd文件同时支持pmd和pmx格式,支持vmd格式的模型和相机动画。它也是唯一支持lmesh(lolking网站lol模型)的编辑器。内置材质:线条材质、虚线材质、基本材质、深度材质、法向量材质、兰伯特材质、冯氏材质、点云材质、标准材质、物理材质、精灵材质、着色器材质、原始着色器材质。支持纹理:颜色纹理、透明纹理、凹凸纹理、法线纹理、位移纹理、镜面纹理、环境纹理、光照纹理、遮挡纹理、自发光纹理。支持贴图:图片、立方体贴图、视频贴图。内置组件:背景音乐、粒子发射器、天空、火焰、水、烟、布组件。可视化修改场景、相机等物体属性,提供40多种不同修改面板。在线编辑js脚本、着色器程序,带智能提示。自带播放器,实时演示场景动态效果,支持全屏和新窗口播放,可以直接嵌入项目iframe中。支持补间动画、骨骼动画、粒子动画、mmd动画、lmesh动画(lolking网站lol模型)。支持场景、模型、贴图、材质、音频、动画、粒子、预设体、截图、视频管理,支持自定义分类,根据汉字和拼音快速搜索。其中,粒子、预设体暂未实现相应功能。支持第一视角控制器、飞行控制器、轨道控制器、指针锁定控制器、轨迹球控制器5种控制器。支持点阵化特效、颜色偏移特效、残影特效、背景虚化、快速近似抗锯齿(FXAA)、毛刺特效、半色调特效、全屏抗锯齿(SSAA)、像素特效、可扩展环境光遮挡(SAO)、多重采样抗锯齿(SMAA)、屏幕空间环境光遮蔽(SSAO)、时间抗锯齿(TAA)。提供历史记录和日志功能,支持撤销、重做。支持导出gltf、obj、ply、stl、Collada、DRACO模型。支持bullet物理引擎。正方体、圆形、圆柱体、二十面体、酒杯、平面、球体、茶壶、轮胎、纽结和加载的模型都支持刚体组件。支持可视化设置碰撞体形状(正方体、球体)、质量和惯性。具有平移、旋转、缩放、在物体表面绘制点、线、贴花的工具,实时统计场景种物体、顶点、三角形数量。支持场景发布功能,可以将场景发布成静态资源,部署到任何一台服务器上。软件内置语言:中文、繁體中文、English、日本語、한국어、русский、Le français。支持色调旋转(hue-rotate)、饱和度、亮度、高斯模糊(blur)、对比度、灰度、颜色反转(invert)、复古(sepia)滤镜。支持版本控制。支持截图工具,视频录制工具。内置权限管理:组织机构管理、用户管理、角色管理、权限管理、系统初始化、系统重置、注册、登录、修改密码。新版本更新

点击系统菜单中的初始化命令,系统会默认创建管理员、用户、游客三个角色和管理员用户。管理员用户名是admin,默认密码是123456,角色是管理员。点击右上角登录按钮,输入admin和123456登录系统。点击右上角的修改密码,可以修改登录用户的密码。点击系统菜单下的角色管理,可以添加、修改、删除角色。系统内置角色:管理员(具有所有权限)、用户(注册是默认角色所具有的权限)、游客(未登录时的权限)。点击系统菜单下的用户管理,可以添加、修改、删除用户,为用户设置角色。点击系统菜单下的权限管理,可以为角色设置权限。点击系统菜单下的重置系统,会删除所有配置、角色、用户、机构、权限,恢复初始化前的状态。系统菜单只有在Web.config里面开启权限,系统未初始化或使用管理员用户登录后出现。未登录时,点击注册按钮,输入用户名、密码、姓名注册,默认角色是用户。登录后,点击右上角注销按钮,可以退出登录状态。组织机构管理:添加机构、添加子机构、编辑机构、删除机构。开启权限后,每个用户只能看到自己的场景、模型、贴图、材质、音频、动画、粒子、预设体、截图、视频资源。删除模型、贴图、截图、视频改为直接删除文件所在文件夹,请注意备份。管理员Administrator组拥有全部权限,不受权限设置限制;其他用户组根据设置的访问权限访问后台接口。系统设置:修改默认注册用户的角色。场景编辑增加是否公开设置,设置公开时,所有人都能查看,但是编辑后不能保存;设置私有时,只能自己查看编辑。Web.config中新增登录时长设置。用户管理新增重置密码功能。添加、修改用户,新增设置用户所属组织机构功能。为组织机构设置管理员功能。不登录可以查看所有公开场景。不登录,只显示菜单栏(少数几个菜单)、场景面板、任务栏,登录后显示所有功能。登录和注销自动刷新页面。使用指南

该项目仅支持Windows系统,电脑上需要安装.Net Framework 4.5。

兼容火狐和谷歌浏览器,推荐使用最新版谷歌浏览器。

安装NodeJs,在最外层目录,执行以下命令。

npm installnpm run build下载MongoDB,安装并启动MongoDB服务。MongoDB服务的默认端口为27017。

MongoDB下载地址:https://www.mongodb.com/download-center/community

可以下载zip版本,然后在MongoDB的bin文件夹执行以下命令安装服务,注意修改路径。

mongod --dbpath=D:\mongodb\db --logpath=D:\mongodb\log\mongoDB.log --install --serviceName MongoDBnet start MongoDB编辑文件ShadowEditor.Web/Web.config,将27017修改为你电脑上MongoDB服务的端口。

使用Visual Studio 2017打开项目,生成ShadowEditor.Web项目。将ShadowEditor.Web部署在iis上即可在浏览器中访问。为了保存各种类型文件能正常下载,会在iis上添加以下两个MIME类型,正式部署请注意安全。文件扩展名MIME类型说明.*application/octet-stream各种格式后缀文件.application/octet-stream无后缀文件

编译文档,请安装gitbook。

npm install -g gitbook-cli然后切换到docs-dev目录,安装gitbook插件。

gitbook install然后切换到上级目录,执行以下命令生成文档。

npm run docs常见问题

上传模型时为什么都是上传失败?需要把模型贴图等资源压缩成一个zip包,而且入口文件不能嵌套文件夹。服务端会解压上传的zip包放到~/Upload/Model文件下,并在MongoDB _Mesh表里添加一条数据。

如何将多个模型组合在一起?基本几何体都支持多层嵌套。可以添加一个组(在几何体菜单中),然后在场景树状图上,将多个模型拖动到组上。

项目截图

特别声明:本文为人民日报新媒体平台“人民号”作者上传并发布,仅代表作者观点。人民日报仅提供信息发布平台。
打开客户端发表评论