2019-09-14 10:14:17 +08:00

117 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Shadow Editor
## 简介
* 名称Shadow Editor
* 版本v0.3.3(开发中)
* 简介:基于`three.js`的场景编辑器。
* 源码:[GitHub](https://github.com/tengge1/ShadowEditor) [Gitee](https://gitee.com/tengge1/ShadowEditor)
* 文档:[GitHub](https://tengge1.github.io/ShadowEditor/) [Gitee](https://tengge1.gitee.io/shadoweditor/)
* 演示:[GitHub](https://tengge1.github.io/ShadowEditor-examples/) [Gitee](http://tengge1.gitee.io/shadoweditor-examples/)
## 项目截图
![image](images/scene20190825.png)
## 主要功能
1. 基于three.js/WebGL的3D场景在线编辑器服务端使用`MongoDB`保存动画、音频、类别、角色、贴图、材质、网格模型、粒子、预设体、场景数据。
2. 内置几何体平面、正方体、圆、圆柱体、球体、二十面体、轮胎、纽结、茶壶、酒杯、精灵、文本线段、CatmullRom曲线、二次贝塞尔曲线、三次贝塞尔曲线、椭圆曲线。
3. 内置光源:环境光、平行光、点光源、聚光灯、半球光、矩形光。
4. 支持多种不同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模型)的编辑器。
5. 内置材质:线条材质、虚线材质、基本材质、深度材质、法向量材质、兰伯特材质、冯氏材质、点云材质、标准材质、物理材质、精灵材质、着色器材质、原始着色器材质。
6. 支持纹理:颜色纹理、透明纹理、凹凸纹理、法线纹理、位移纹理、镜面纹理、环境纹理、光照纹理、遮挡纹理、自发光纹理。
7. 支持贴图:图片、立方体贴图、视频贴图。
8. 内置组件:背景音乐、粒子发射器、天空、火焰、水、烟、布组件。
9. 可视化修改场景、相机等物体属性提供40多种不同修改面板。
10. 在线编辑js脚本、着色器程序带智能提示。
11. 自带播放器,实时演示场景动态效果,支持全屏和新窗口播放,可以直接嵌入项目`iframe`中。
12. 支持补间动画、骨骼动画、粒子动画、mmd动画、lmesh动画lolking网站lol模型
13. 支持场景、模型、贴图、材质、音频、动画、粒子、预设体、截图、视频管理,支持自定义分类,根据汉字和拼音快速搜索。其中,粒子、预设体暂未实现相应功能。
14. 支持第一视角控制器、飞行控制器、轨道控制器、指针锁定控制器、轨迹球控制器5种控制器。
15. 支持点阵化特效、颜色偏移特效、残影特效、背景虚化、快速近似抗锯齿(FXAA)、毛刺特效、半色调特效、全屏抗锯齿(SSAA)、像素特效、可扩展环境光遮挡(SAO)、多重采样抗锯齿(SMAA)、屏幕空间环境光遮蔽(SSAO)、时间抗锯齿(TAA)。
16. 提供历史记录和日志功能,支持撤销、重做。
17. 支持导出`gltf``obj``ply``stl``Collada``DRACO`模型。
18. 支持`bullet`物理引擎。正方体、圆形、圆柱体、二十面体、酒杯、平面、球体、茶壶、轮胎、纽结和加载的模型都支持刚体组件。支持可视化设置碰撞体形状(正方体、球体)、质量和惯性。
19. 具有平移、旋转、缩放、在物体表面绘制点、线、贴花的工具,实时统计场景种物体、顶点、三角形数量。
20. 支持场景发布功能,可以将场景发布成静态资源,部署到任何一台服务器上。
21. 软件内置语言:`中文``繁體中文``English``日本語``한국어``русский``Le français`
22. 支持色调旋转(hue-rotate)、饱和度、亮度、高斯模糊(blur)、对比度、灰度、颜色反转(invert)、复古(sepia)滤镜。
23. 支持版本控制。
24. 支持截图工具,视频录制工具。
## 使用指南
**该项目仅支持Windows系统电脑上需要安装.Net Framework 4.5。**
**兼容火狐和谷歌浏览器,推荐使用最新版谷歌浏览器。**
1. 安装`NodeJs`,在最外层目录,执行以下命令。
```bash
npm install
npm run build
```
2. 下载`MongoDB`安装并启动MongoDB服务。MongoDB服务的默认端口为27017。
MongoDB下载地址:https://www.mongodb.com/download-center/community
可以下载zip版本然后在MongoDB的bin文件夹执行以下命令安装服务注意修改路径。
```bash
mongod --dbpath=D:\mongodb\db --logpath=D:\mongodb\log\mongoDB.log --install --serviceName MongoDB
net start MongoDB
```
3. 编辑文件`ShadowEditor.Web/Web.config`,将`27017`修改为你电脑上MongoDB服务的端口。
```xml
<add key="mongo_connection" value="mongodb://127.0.0.1:27017" />
```
4. 使用`Visual Studio 2017`打开项目,生成`ShadowEditor.Web`项目。
5.`ShadowEditor.Web`部署在iis上即可在浏览器中访问。
6. 为了保存各种类型文件能正常下载会在iis上添加以下两个MIME类型正式部署请注意安全。
| 文件扩展名 | MIME类型 | 说明 |
| --------- | -------- | ---- |
| .* | application/octet-stream | 各种格式后缀文件 |
| . | application/octet-stream | 无后缀文件 |
7. 编译文档请安装gitbook。
```bash
npm install -g gitbook-cli
```
然后切换到`docs-dev`目录安装gitbook插件。
```bash
gitbook install
```
然后切换到上级目录,执行以下命令生成文档。
```bash
npm run docs
```
## 常见问题
1. 上传模型时为什么都是上传失败?
需要把模型贴图等资源压缩成一个zip包而且入口文件不能嵌套文件夹。服务端会解压上传的zip包放到`~/Upload/Model`文件下并在MongoDB `_Mesh`表里添加一条数据。
2. 如何将多个模型组合在一起?
基本几何体都支持多层嵌套。可以添加一个`组`(在几何体菜单中),然后在场景树状图上,将多个模型拖动到`组`上。
## 相关链接
* Three.js官网https://threejs.org/
* LOL模型查看器https://github.com/tengge1/lol-model-viewer
* 模型下载1https://sketchfab.com/3d-models?features=downloadable
* 模型下载2https://www.3dpunk.com/work/index.html?category=downloadable