mirror of
https://github.com/tengge1/ShadowEditor.git
synced 2026-01-25 15:08:11 +00:00
Shadow Editor
- 名称:Shadow Editor
- 版本:v0.1.3(开发中)
- 简介:基于
three.js的场景编辑器。
| 源码 | GitHub | 码云 | 文档 | GitHub | 码云 |
| 演示 | GitHub | 码云 | 更新日志 |
v0.1.2更新
- 场景新增版本控制。场景表仅保存最新场景,历史数据保存在
场景名称_history表中。 - 保存材质自动生成材质球缩略图。
- 保存载入服务端模型修改后的材质。
- 正方体、圆形、圆柱体、二十面体、酒杯、平面、球体、茶壶、轮胎、纽结、加载模型都支持刚体组件。支持可视化设置碰撞体形状(正方体、球体)、质量和惯性。
- 新增正方体和球体物理形状帮助器。
主要功能
- 基于three.js/WebGL的3D场景在线编辑器,服务端使用
MongoDB保存动画、音频、类别、角色、贴图、材质、网格模型、粒子、预设体、场景数据。 - 内置几何体:平面、正方体、圆、圆柱体、球体、二十面体、轮胎、纽结、茶壶、酒杯、精灵、文本。
- 内置光源:环境光、平行光、点光源、聚光灯、半球光、矩形光。点光源增加发光体和光晕特效;半球光增加天空特效;矩形光增加发光体特效。
- 支持多种不同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、x31种3D文件格式,带anim的表示支持动画。多种3D文件同时支持json和二进制格式。mmd文件同时支持pmd和pmx格式,支持vmd格式的模型和相机动画。它也是唯一支持lmesh(lolking网站lol模型)的编辑器。 - 内置材质:线条材质、虚线材质、基本材质、深度材质、法向量材质、兰伯特材质、冯氏材质、点云材质、标准材质、物理材质、精灵材质、着色器材质、原始着色器材质。
- 支持纹理:颜色纹理、透明纹理、凹凸纹理、法线纹理、位移纹理、镜面纹理、环境纹理、光照纹理、遮挡纹理、自发光纹理。
- 支持贴图:图片、立方体贴图、视频贴图。
- 内置组件:背景音乐、粒子发射器、天空、火焰、水、烟、布、刚体组件。
- 可视化修改场景、相机等物体属性,提供40多种不同修改面板。
- 在线编辑js脚本、着色器程序,带智能提示。
- 自带播放器,实时演示场景动态效果,播放音频。
- 支持补间动画、骨骼动画、粒子动画、mmd动画、lmesh动画(lolking网站lol模型)。
- 支持场景、模型、贴图、材质、音频、动画、粒子、预设体、角色资源管理,支持自定义分类,根据汉字和拼音快速搜索。其中,粒子、预设体、角色资源管理暂未实现相应功能。
- 支持第一视角控制器、飞行控制器、轨道控制器、指针锁定控制器、轨迹球控制器5种控制器。
- 支持点阵化特效、颜色偏移特效、残影特效、背景虚化、快速近似抗锯齿(FXAA)、毛刺特效、半色调特效、全屏抗锯齿(SSAA)、像素特效、可扩展环境光遮挡(SAO)、多重采样抗锯齿(SMAA)、屏幕空间环境光遮蔽(SSAO)、时间抗锯齿(TAA)。
- 提供历史记录和日志功能,支持撤销、重做。
- 支持导出
gltf、obj、ply、stl模型。 - 支持地形:柏林地形、着色器地形。现仅提供示例,待开发完善。
- 支持
bullet物理引擎。正方体、圆形、圆柱体、二十面体、酒杯、平面、球体、茶壶、轮胎、纽结和加载的模型都支持刚体组件。支持可视化设置碰撞体形状(正方体、球体)、质量和惯性。 - 具有平移、旋转、缩放、在物体表面绘制点、线、贴花的工具,实时统计场景种物体、顶点、三角形数量。
项目截图
混乱的世界。(物理引擎刚体组件演示)
点击此处查看更多截图。
使用指南
该项目仅支持Windows系统,电脑上需要安装.Net Framework 4.5。
推荐使用最新版谷歌浏览器,不保证兼容其他浏览器。
- 安装
NodeJs,在当前目录,执行以下命令。
npm install
npm run build
- 下载
MongoDB,安装并启动MongoDB服务。MongoDB服务的默认端口为27017。
mongod --dbpath=D:\mongodb\db --logpath=D:\mongodb\log\mongoDB.log --install --serviceName MongoDB
net start MongoDB
- 编辑文件
ShadowEditor.Web/Web.config,将27017修改为你电脑上MongoDB服务的端口。
<add key="mongo_connection" value="mongodb://127.0.0.1:27017" />
-
使用
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 build-docs
常见问题
- 发布静态网站功能不能用。
Shadow Editor需要服务端支持,请按照使用指南配置好相关环境。
- 上传模型时为什么都是上传失败?
需要把模型贴图等资源压缩成一个zip包,而且入口文件不能嵌套文件夹。服务端会解压上传的zip包放到~/Upload/Model文件下,并在MongoDB _Mesh表里添加一条数据。
相关链接
- Three.js官网:https://threejs.org/
- LOL模型查看器:https://github.com/tengge1/lol-model-viewer
Description
Cross-platform 3D scene editor based on three.js, golang and mongodb for desktop and web. https://tengge1.github.io/ShadowEditor-examples/
Languages
JavaScript
89.7%
Go
4.9%
GLSL
3.6%
CSS
0.9%
HTML
0.9%
