参与贡献
ShadowEditor是一个为用户和开发者而生的项目。在这个项目上,你可以提交代码,尝试你的想法。没有报酬,但是有很多乐趣。提交代码,你需要:
- Fork 本仓库。
- 新建 Feat_xxx 分支。
- 提交代码。
- 新建 Pull Request。
注意: 不要提交大的二进制文件,否则可能会被拒绝。如果需要,你可以把想忽略的文件或目录添加到.gitignore文件中。
常见问题
1、上传模型失败。
需要把模型贴图等资源压缩成一个zip包,而且入口文件不能嵌套文件夹。服务端会解压上传的zip包到./build/public/Upload/Model文件夹,并在MongoDB _Mesh表里添加一条记录。
2、如何将多个模型组合在一起?
基本几何体都支持多层嵌套。可以添加一个组(在几何体菜单中),然后在场景树状图上,将多个模型拖动到组上。
3、如何开启权限系统?
编辑config.toml文件,将authority.enabled设置为true。默认管理员用户名是admin,密码是123456。
4、前端报asm.js 已被禁用,因为脚本调试程序已连接。请断开调试程序的连接,以启用 asm.js。的错误。
完整错误:asm.js 已被禁用,因为脚本调试程序已连接。请断开调试程序的连接,以启用 asm.js。 ammo.js (1,1) SCRIPT1028: SCRIPT1028: Expected identifier, string or number ShadowEditor.js (3948,8) SCRIPT5009: 'Shadow' is not defined。
解决方法:腾讯浏览器不支持使用Emscripten编译的ammo.js(WebAssembly),建议换成谷歌浏览器或火狐浏览器。
5、怎么从C#版本升级到golang版本?
数据结构和客户端都没变,只需要把文件夹./ShadowEditor.Web/Upload/复制到build/public/Upload/即可。
6、桌面版打不开。
说明:Windows需要Visual C++ Redistributable for Visual Studio 2015。你可以从这安装:https://www.microsoft.com/en-us/download/details.aspx?id=48145
说明:如果桌面版打不开,可以查看logs.txt;如果端口冲突,可以修改resources/app/config.toml中的MongoDB和网站端口。
更新日志
v0.5.6
* 发布日期:2020年7月26日
* 更新日志:
- 三维GIS。(开发中)
- v0.4.6-csharp分支将在8月1日删除。
- 修复上传完图片,上传模型,提示“只允许上传jpg、png或mp4格式文件!”的bug。
- 修复上传完模型,上传图片,提示“只允许上传zip格式文件!”的bug。
- 纹理属性前面的复选框改为启用禁用,后面增加了删除纹理按钮。
v0.5.5
* 发布日期:2020年7月12日
* 更新日志:
- 增加WebGL扩展窗口,可以查看浏览器支持的WebGL扩展名称和描述,并可以跳转到MDN。
- 三维地球。(开发中)
- 软件载入页面增加加载遮罩。
- 桌面版从配置文件中读取MongoDB和网站端口。
说明:如果桌面版打不开,可以查看logs.txt;如果端口冲突,可以修改resources/app/config.toml中的MongoDB和网站端口。
v0.5.4
* 发布日期:2020年6月27日
* 更新日志:
- 使用Electron创建桌面应用程序。
Windows桌面版:https://github.com/tengge1/ShadowEditor/releases/download/v0.5.4/ShadowEditor-win32-x64.zip
Ubuntu桌面版:https://github.com/tengge1/ShadowEditor/releases/download/v0.5.4/ShadowEditor-linux-x64.zip
说明:Windows需要Visual C++ Redistributable for Visual Studio 2015。你可以从这安装:https://www.microsoft.com/en-us/download/details.aspx?id=48145
- 使用命令行在Windows上安装和启动ShadowEditor服务。
.\ShadowEditor install: 在Windows上安装服务。
.\ShadowEditor remove: 在Windows上移除服务。
.\ShadowEditor start: 在Windows上启动服务。
.\ShadowEditor stop: 在Windows上停止服务。
你也可以在Windows服务管理器中管理这个服务。
- 使用nodejs重写脚本,现在你可以使用npm管理这个项目。
v0.5.3
* 发布日期:2020年6月14日
* 更新日志:
- 修复windows上上传模型和发布场景bug。
- 添加开源项目链接。
- THREE.js数学模块翻译为Go语言,点此查看详情。
- 使用Travis CI作为持续集成工具。
- 注释掉index.html文件中的ServiceWorker,因为它带来了很多问题。
v0.5.2
* 发布日期:2020年5月31日
* 更新日志:
- MongoDB用户名和密码设置。
- 文档移动到gitee wiki。详情
- 使用JSON Web令牌(JWT)进行用户身份验证。
- 默认禁用自动保存。
- 修复非管理员用户上传数据不显示的bug。
- 修复用户不具有所有资源查看权限时,资源列表不加载的bug。
- 修复贴图无法设置缩略图bug。
- 修复向场景中添加gltf格式的模型报错。
- 非管理员无法编辑、删除其他人的公开场景。
- 修复连续保存两次会变为另存为的bug。
- 资源和权限管理测试完成,golang服务端几乎没有bug了。
v0.5.1
* 发布日期:2020年5月17日
* 更新日志:
- 修复烟组件播放报错的bug。
- 修复播放时渲染器尺寸错误。(导致烟组件播放时变小)
- 修复由于three.js升级,导致水组件报错的bug。
- 修复Ubuntu上资源类型过滤器,列出了所有类型的bug。
- 修复列出字体、上传字体和创建3D文字的bug。
- 修复备份mongodb的bug。
- 更新Windows构建指南。
- 安装为Windows服务。
- 当端口冲突或config.toml丢失时,程序不会再闪退。
- 安装为Ubuntu服务。
- 修复开启权限时,资源数量显示错误。
- 修复保存系统设置错误。
- 修复导出所有示例的bug。
- 修复点标注选中高亮区域错误bug。
v0.5.0
* 发布日期:2020年5月5日
* 更新日志:
- 使用Go语言重写服务端。
- 修复由于three.js升级,导致draco模型无法加载的bug。
- 不再支持.json格式的模型。
- 修复类别列表窗口最下面一行被按钮遮挡的bug。
- 修复几何体带漫反射贴图时,无法加载贴图的bug。
- 修复音频、截图、录制视频资源无法设置缩略图的bug。
- 修复无法使用取消和关闭按钮关闭确认对话框的bug。
- 修复删除角色,列表不刷新的bug。
跟asp.net相比,go语言具有非常多的优势:
- 兼容Windows、Linux、Mac三大操作系统。
- 类似C语言。支持goroutine,充分发挥CPU多核优势,性能高。
- 简单易学,标准库和第三方库丰富,开发效率高。
- 可编译成单个文件,发布时不需要安装go语言和NodeJs。
- 不需要iis。
- 网络数据启用了gzip压缩,显示和场景加载速度极大提高。
- 不需要Visual Studio,使用Visual Studio Code即可舒适的开发服务端和Web端。
从C#版本升级:
数据结构和Web客户端均未发生变化,只需要把./ShadowEditor.Web/Upload/文件夹复制到build/public/Upload/即可。
v0.4.6
* 发布日期:2020年4月5日
* 更新日志:
- 修复加载自动保存场景确认对话框无法取消bug,取消按钮改为清空。
- 修复保存示例场景报ID不合法的错误,现在可以正常保存示例场景。
- 修复一打开页面,立刻添加背景音乐组件报错bug。
- 修复背景音乐组件发布场景时,未导出音乐文件bug。
- 修复视频贴图发布场景后,视频地址不正确bug。
- 修复获取服务端配置,未使用配置的服务端地址的bug。
- Go语言服务端。(开发中)
- 修复脚本中多次调用clock.getDelta和clock.getElapsedTime导致动画异常的bug。现在脚本中可以多次调用这两个函数。
v0.4.5
* 发布日期:2020年3月22日
* 更新日志:
- 播放场景,默认的轨道控制器启用惯性设置。
- EnableDamping的翻译由启用减震改为启用惯性。
- DampingFactor的翻译由减震系数改为惯性系数。
- 脚本面板新增新建文件夹,支持树状结构,支持拖动排序,支持修改文件夹和脚本名称。
- 控制器模式选择由状态栏移动到选项菜单中。
- 添加模式由绘制工具栏移动到选项菜单中,默认改为添加到场景中心。
- 选择模式由状态栏移动到选项菜单中。
- 修复点击场景添加模型,添加过程中不出现模型预览bug。
- app.editor.scripts由Object改为Array,不会对以前的场景造成影响。
- 场景脚本第三方编辑器支持,场景中创建的脚本自动同步到SceneScript文件夹中。(未完成)
- 新增自动保存场景功能,每10秒保存一次。刷新浏览器询问是否加载自动保存的场景,避免数据丢失。
- 修复部分情况下javascript格式化插件报错,导致页面崩溃的bug。
v0.4.4
* 发布日期:2020年3月8日
* 更新日志:
- three.js从r107升级到r113。
- 状态栏添加three.js版本信息。
- 状态栏实时显示鼠标位置,不再对性能造成影响。
- 只有用到GPU Pick的时候才启用GPU Pick,提高性能。
- 由于需要支持SameSite属性,支持的.net framework最低版本由4.5(2012-08-15)改为4.7.2(2018-04-30)。
- 对服务端依赖的第三方模块进行升级。
- 修复eslint找到的所有错误和警告。
- 设置HttpOnly=true, SameSite=Lax,js不再能访问.ASPXAUTH,提高安全性。
v0.4.3
* 发布日期:2020年2月22日
* 更新日志:
- 新增新建小区和室内功能,默认自动添加一个地面。
- 常见问题新增404 Not Found和访问被拒绝的解决方法。
- 帮助菜单新增下载模型功能,可以快速访问sketchfab和3dpunk下载模型。
- 贴图面板新增上传天空球功能。
- 组件菜单添加天空球组件。
- 修复未保存材质的模型和多材质模型发布场景报错的bug。
- 性能监视器、网格、视角帮助器、物理引擎、扔小球设置由状态栏移动到视图菜单中。
- 状态栏新增鼠标坐标显示,发现对性能有严重影响,暂时注释该功能。
- 视图菜单新增动态显示隐藏资源面板、侧边栏、工具栏、时间轴面板、状态栏功能,并保存在本地存储中。
- 控制台不再显示DevTools failed to load SourceMap: Could not load content for gunzip.min.js.map的警告信息。
- 修复错误的cookie导致服务端报错bug。
- 修复新版谷歌浏览器无法正常注销bug。
- 新增发布场景权限。
- 发布场景后的地址不再需要加sceneFile参数。
旧:http:~/~/localhost:2000/temp/20200221194655/view.html?sceneFile=5e4fc1334859d12808dd9264
新:http:~/~/localhost:2000/temp/20200221194655/view.html
- 给ShadowEditor.Web\temp目录设置只读权限。
- 发布场景提示正在导出...改为发布中...。
- 添加常见问题发布场景后没反应。。
- 自由控制器优化,平移和旋转增加惯性,限制仰角为0~~85°。
v0.4.2
* 发布日期:2020年2月8日
* 更新日志:
- 保存场景,如果设置不保存子组件,则不保存模型内部组件。这可以加快场景保存和载入速度,减小场景大小。
- 保存场景,如果设置不保存材质,则不保存模型内部材质。这用于修改了模型内部组件名称和结构,没修改材质的情况。
- 修复场景中存在点标注或不缩放文字时,发布场景报错bug。
- 通用工具栏新增第一视角功能。使用WSAD或方向键控制前后左右移动,鼠标控制视线方向。
- 将状态栏添加模式选择,移动到绘制工具栏中。
- 物体菜单新增添加正交相机和透视相机功能。
- 物体菜单新增添加箭头帮助器和坐标轴帮助器功能。
- 新增自由控制器。
v0.4.1
* 发布日期:2020年1月11日
* 更新日志:
- 新增字体转换器,可以.ttf字体文件转换成.json文件。
- 修复不缩放文字保存重新载入,无法修改文字的bug。
- Web.config增加说明:
1*. customErrors: 远程显示服务端错误,正式部署建议改成RemoteOnly。
1*. directoryBrowse: 允许目录浏览,正式部署建议改成false。
1*. mimeMap: 允许下载任意类型文件,正式部署建议改成所需类型文件。
1*. Access-Control-Allow-Origin: 允许跨域,不跨域的话建议去掉。
- Web.config中增加.json的MIME-Type,避免去掉.*和.的MIME-Type后,由于部分iis缺少.json的MIME-Type导致整个后端报500错误。
- 禁用资源、上传、备份目录的执行权限。
- 修复添加不缩放文字,点击关闭按钮无法关闭窗口的bug。
- 添加三维文字,支持数字、英文和汉字,支持保存载入。
- 模型编辑中,新增模型下载功能。
- 添加模式改为保存在浏览器缓存中,默认改为点击场景添加模型。
v0.4.0
* 发布日期:2019年12月29日
* 更新日志:
- 新增距离测量工具。
- 新增导出场景到JSON文件功能。
- 新增导出场景到Collada文件功能。
- 新增导出场景到OBJ文件功能。
- 新增导出场景到PLY文件功能。
- 新增导出场景到STL文件功能。
- 修复标注对话框点击关闭,然后点击确定,报错的bug。
- 修复播放MMD动画报错的bug。
- 编辑场景,新增载入历史版本场景功能。
- 工具菜单,新增一键备份MongoDB数据库功能。
v0.3.9
* 发布日期:2019年12月15日
* 更新日志:
- 修复不缩放文字显示模糊的bug。
- 修复浏览器窗口缩放后,鼠标放到物体上,高亮不准的bug。
- 修复浏览器窗口缩放后,文件大小发生改变bug。
- 修复物体平移旋转缩放后,鼠标放到物体上,高亮不准的bug。
- 移除d3.js,不再使用d3开发可视化功能,使用d3-dispatch代替完整版d3.js。
- 点标注改为不会缩放的三角形标注,可以正常保存载入和通过属性面板修改文字。
- 选中效果由保存在场景中,改为保存在浏览器上。
- 鼠标高亮效果,改为保存在浏览器上,默认不开启。可以通过选项、显示菜单设置是否开启高亮和高亮颜色。
- 优化消息弹窗,不再遮挡编辑区,使用背景和文字颜色区分消息、成功、警告、错误四种情景。
- 修复正投影下,鼠标hover高亮不正确bug。
- 制作功能演示视频:微博 Bilibili 百度云
- 修复录制视频过程中,切换工具栏,导致录制视频失败的bug。
- 新增打砖块、相机、粒子、乒乓球、着色器示例。(three.js自带)
- 新增天气设置:无、下雨、下雪。
v0.3.8
* 发布日期:2019年12月1日
* 更新日志:
- 新增快捷键Ctrl+Z撤销、Ctrl+Y重做、Ctrl+C复制、Delete删除。
- 修复模型复制多个后,保存场景后载入场景,只显示第一个的bug。
- 机构、角色、用户、权限、系统设置、系统初始化、系统重置全部测试完成,没有任何bug。
- 双击场景中的物体,不再跳转到这个物体的视角。
- 修复无法设置环境贴图和环境贴图强度bug。
- 修复资源面板最大化时,每行只有两个bug。
- 使用GPU选取方式,高亮鼠标指向的物体。
- 修复上传文件时点取消报错的bug。
- 修复材质组件Flat Shading翻译为平滑的错误,改为平坦着色。
- 使用点击场景添加模型方式时,模型放置到场景之前出现一个预览效果。
- 新增编辑工具栏:撤销、重做、清空历史记录、复制、删除。
- 几何体菜单添加文字功能,修改为不缩放的文字。
v0.3.7
* 发布日期:2019年11月17日
* 更新日志:
- 还原以前删除的C#版THREE.js项目。
- 禁用Session,避免第一次打开网页时会话状态已创建一个会话 ID,但由于响应已被应用程序刷新而无法保存它。的报错。
- 修复一些由于无权限报错,导致页面变空白的bug。
- 选中效果优化,默认选中颜色修改。
- 新增选择模式设置:选择整体、选择部分。
- 删除整理贴图、整理模型、整理缩略图功能。
- 点击场景中的物体,场景树状图上展开该节点和它的所有父节点,并将该节点滚动到可视范围内。
- 修复点击场景中的物体,场景中的物体不高亮bug。
- 工具栏改为横向,并进行分类:通用工具、绘制工具、编辑工具、地形工具、标注工具、测量工具。(待开发完善)
- 新增添加模型模式:添加到中心、点击场景添加。点击场景如果碰撞不到物体,则添加到y=0的平面上。
- 状态栏上的选中边框颜色和粗细设置移动到显示选项菜单中。
- 新增BufferGeometry组件,查看BufferGeometry的顶点数量、法线数量、UV坐标数量、索引数量。提供计算顶点法线功能。
- 新增多材质组件,对于有多个材质的Mesh,可以使用多材质组件选择一个材质进行编辑。
- 修复正投影视图上选中效果边缘不正确bug。
- 状态栏增加物理引擎设置,添加的基本几何体默认开启物理引擎。
- 截图和录制视频工具由状态栏移动到通用工具栏。
- 修复新窗口播放报错Ammo.btSoftBodyRigidBodyCollisionConfiguration is not a constructor。
- 优化角色管理和用户管理列表显示和搜索功能。
- 不具有资源列表权限,将不显示对应的资源面板。
- 修复一个严重bug:非管理员角色登录,所有接口都是无权限。
v0.3.6
* 发布日期:2019年11月3日
* 更新日志:
- 点击系统菜单中的初始化命令,系统会默认创建管理员、用户、游客三个角色和管理员用户。管理员用户名是admin,默认密码是123456,角色是管理员。
- 点击右上角登录按钮,输入admin和123456登录系统。点击右上角的修改密码,可以修改登录用户的密码。
- 点击系统菜单下的角色管理,可以添加、修改、删除角色。系统内置角色:管理员(具有所有权限)、用户(注册是默认角色所具有的权限)、游客(未登录时的权限)。
- 点击系统菜单下的用户管理,可以添加、修改、删除用户,为用户设置角色。
- 点击系统菜单下的权限管理,可以为角色设置权限。
- 点击系统菜单下的重置系统,会删除所有配置、角色、用户、机构、权限,恢复初始化前的状态。
- 系统菜单只有在Web.config里面开启权限,系统未初始化或使用管理员用户登录后出现。
- 未登录时,点击注册按钮,输入用户名、密码、姓名注册,默认角色是用户。
- 登录后,点击右上角注销按钮,可以退出登录状态。
- 组织机构管理:添加机构、添加子机构、编辑机构、删除机构。
- 开启权限后,每个用户只能看到自己的场景、模型、贴图、材质、音频、动画、粒子、预设体、截图、视频资源。
- 删除模型、贴图、截图、视频改为直接删除文件所在文件夹,请注意备份。
- 管理员Administrator组拥有全部权限,不受权限设置限制;其他用户组根据设置的访问权限访问后台接口。
- 系统设置:修改默认注册用户的角色。
- 场景编辑增加是否公开设置,设置公开时,所有人都能查看,但是编辑后不能保存;设置私有时,只能自己查看编辑。
- Web.config中新增登录时长设置。
- 用户管理新增重置密码功能。
- 添加、修改用户,新增设置用户所属组织机构功能。
- 为组织机构设置管理员功能。
- 不登录可以查看所有公开场景。
- 不登录,只显示菜单栏(少数几个菜单)、场景面板、任务栏,登录后显示所有功能。
- 登录和注销自动刷新页面。
v0.3.5
* 发布日期:2019年10月20日
* 更新日志:
- 修复原点移到视野外,视角指示器消失bug。
- 使用eslint检查代码问题。
- 用户注册、登录、系统初始化、用户管理、角色管理、权限管理。(完成部分)
v0.3.4
* 发布日期:2019年10月6日
* 更新日志:
- 删除旧场景的加载方法。
- 下载的模型不再缓存在userData里面,改为缓存在模型上,_obj表示下载的原始模型数据,_root表示模型根节点,修复复制模型等一系列bug。
- 角色管理:添加角色、编辑角色、删除角色、查找角色。
- 用户管理:添加用户、编辑用户、删除用户、查找用户。
- DataGrid控件大幅度优化:每页显示条数设置;跳转第一页、前一页、后一页、最后一页;当前页和总页数;刷新按钮;每页条数和总记录数展示,加载数据显示LoadMask。
- 修复高光颜色编辑、序列化和反序列化中的一系列bug。
- 修复一部分模型在载入场景时,变黑bug。
- 修复一部分模型在载入场景时,组成部分显示不全的bug。
- 不再保存没用的矩阵数据,提高场景保存和载入速度。
- 修复由于导出的json格式文件组件被误认为是服务器组件,导致同一个模型下载两次的bug。
- 修复场景由于其中一个模型不存在,导致场景整体加载失败的bug。
- 修复添加模型时,错误清除_children属性,导致保存场景后,无法显示模型的bug。
- 是否开启权限管理,修改到Web.config文件中,只有开启权限管理时,系统菜单才显示。
- 场景菜单中新增导出场景到GLTF文件功能。
- 新增选中颜色和选中选中边框设置,该设置可保存到场景中。
v0.3.3
* 发布日期:2019年9月22日
* 更新日志:
- 一键清理没用的场景和场景历史记录工具。
- 不再依赖服务端模型userData.changed属性还原修改过的组件名称。
- 为了让模型之间可以交换组件,修改了场景数据结构。请尽快重新保存一次旧场景,并关注控制台的警告信息。旧场景加载方式将于9月22日新版发布后删除。
- 修复上传大模型时,413 Entity Too Large报错,已经由30M限制改为300M。
- 修复材质光泽度、镜面度、发射颜色序列化bug。
- Obj格式文件可以自动下载绑定材质了。
- 材质控件各种贴图,不再直接上传,改为从贴图面板选取。
- 状态栏增加显示隐藏网格复选框。
- 修复多材质模型序列化bug。
- 修复ply文件缺少法线,显示黑色的bug。
- 修复贴图路径为blob:http:~/~/,导致加载场景,模型显示黑色bug。
- 服务端国际化完成。
- 发布新版演示程序:GitHub Gitee
- 修复使用视频当贴图bug。
- 暂时去掉编辑器的几个选择功能。
- 更新了编辑器文档。GitHub Gitee
- 新增网格模式工具。
- 修复在二级目录下,播放器无法加载贴图,视频无法跨域播放bug。
- 暂时隐藏挖坑工具。
- Three.js信息查看窗口。
- 贴图面板可选择上传图片、天空盒、视频,新增添加天空盒窗口。
v0.3.2
* 发布日期:2019年9月8日
* 更新日志:
- 导出Collada模型文件。
- 导出DRACO模型文件。
- 菜单栏新增场景编辑器、模型编辑器、纹理编辑器、材质编辑器、地形编辑器、AI编辑器选项卡。(未实现)
- 新增渲染器属性窗口。
- 新增截图工具,截图资源管理,截图查看工具。
- 录制视频工具优化,新增录制视频资源管理,视频查看工具。
- 基于Tensorflow的可视化编辑器框架搭建。(Python, Tensorflow, Flask)
v0.3.1
* 发布日期:2019年8月25日
* 更新日志:
- 新增录制屏幕工具,可将编辑器界面录制成视频,目前该视频只能使用浏览器播放。
- 增加正视图、侧视图、顶视图,支持平移和缩放。
- 使用i18next模块重构了国际化模块,英文界面不再包含任何中文字符。
- 新增以下语言支持:繁體中文、日本語、한국어、русский、Le français。
- 完成补间动画模块的改版。
- 修复移动物体时的性能问题。
- 新增性能监视器和视角帮助器设置。
- 新增调试模式,启用时,可显示开发者工具和不完善的功能。
- 新增纹理生成器。(演示)
v0.3.0
* 发布日期:2019年8月11日
* 更新日志:
- 从v0.3.0开始,将发布基于react.js的新版编辑器,v0.2.6_old分支将于2019年8月17日删除。
- 除了补间动画和少量bug外,新版编辑器已经达到旧版水平。
- 跟旧版编辑器相比,新版有以下特点:
11. 使用react.js重写前端UI,界面美观度提升,相应速度提升。
11. 升级three.js到r107版本,three.js各组件也升级到最新版。
11. 修复大量影响性能的bug和逻辑,渲染不再由事件驱动,渲染速度大幅提升。
11. 支持模型内部组件名称和位置的修改,支持将几何体、组、光源等放到模型内部。
11. 属性面板分组可折叠,默认折叠一部分属性组,方便使用。
11. 资源面板放置到左侧,支持分页。资源数量多时,加载速度更快。
11. 对火狐浏览器兼容性调整。
11. 点击场景树状图右侧的眼镜图标,可以快速对某个分支进行显示隐藏控制。
11. 根据浏览器语言,确定编辑器的初始语言。
- 服务端和数据结构未作任何改动,如果您没有改过前端的话,可以直接升级到新版。
v0.2.6
* 发布日期:2019年7月28日
* 更新日志:
- 修复播放MMD动画,缺少ammo.js的bug。
- 完成BasicComponent、CameraComponent、FireComponent、LightComponent、LMeshComponent、MMDComponent、ParticleEmitterComponent、ReflectorComponent、SceneComponent、ShadowComponent、SmokeComponent、TransformComponent、BoxGeometryComponent、CircleGeometryComponent、CylinderGeometryComponent、IcosahedronGeometryComponent、LatheGeometryComponent、PlaneGeometryComponent、SphereGeometryComponent、TeapotGeometryComponent、TorusGeometryComponent、TorusKnotGeometryComponent、组件的重构。(dev分支)
v0.2.5
* 发布日期:2019年7月14日
* 更新日志:
- 新增npm run dev命令,保存文件自动生成,速度有了很大提升。(8秒->1秒)
- 新版编辑器菜单栏、工具栏、资源管理器、场景编辑区、场景树状图,历史面板、脚本面板、脚本编辑器改写完成。(dev分支)
v0.2.4
* 发布日期:2019年6月30日
* 更新日志:
- 新增UI控件:AccordionLayout, SearchField。(开发中)
- 修复播放器脚本camera被赋值为scene的bug。
v0.2.3
* 发布日期:2019年6月16日
* 更新日志:
- 使用采样法和全屏抗锯齿(FXAA)重新实现了描边算法。
- 场景树状图选中节点时,子节点不再显示选中效果。
- 更新优化以下控件:Timeline, Tree, Window。(开发中)
v0.2.2
* 发布日期:2019年6月2日
* 更新日志:
- 修复加载可视化场景的一些问题。(开发中)
- 使用reactjs为以下组件添加属性和事件。(参照项目截图1)
表单:Button, CheckBox, Form, FormControl, IconButton, Input, Label, Radio, TextArea, Toggle。
图标:Icon。
布局:AbsoluteLayout, BorderLayout, Content, HBoxLayout, TabLayout, VBoxLayout。
媒体:Canvas, Image, SVG。
菜单:MenuBar, MenuItem, MenuItemSeparator。
面板:Panel。
表格:DataGrid, Table, TableBody, TableCell, TableHead, TableRow。
工具栏:Toolbar, ToolbarSeparator。
v0.2.1
* 发布日期:2019年5月19日
* 更新日志:
- 新增完善UI控件:AccordionLayout, SearchField, ImageList, SearchField。(开发中)
- 部分UI替换。(请勿使用dev分支,开发中)
- 修复播放器脚本camera被赋值为scene的bug。
v0.2.0
* 发布日期:2019年5月3日
* 更新日志:
- 默认不再加载ammo.js。只有场景中存在刚体或柔软体时,才在播放时自动加载ammo.js,提升编辑器启动速度和非物理场景运行速度。
- 新增二维菜单:按钮、标签、面板、水平线、条形图、时间、竖直线、日期、时间圆盘、键值标签、表单、仪表、柱状图、折线图、侧边栏、柱状图2、散点图、饼状图、弦图、力导向图、树状图、集群图、包图、分区图。可拖动、保存、载入,可在播放器中查看。(开发中,仅供测试)
v0.1.9
* 发布日期:2019年4月20日
* 更新日志:
v0.1.8
* 发布日期:2019年4月7日
* 更新日志:
- 设置面板放到选项菜单中。
- 新增色调旋转(hue-rotate)、饱和度、亮度、高斯模糊(blur)、对比度、灰度、颜色反转(invert)、复古(sepia)滤镜。
- 滤镜设置保存在场景配置中,并在编辑器和播放器解析。
- 创建GIS场景。(演示)
- 修复当模型最外层是Scene时,属性面板显示物体环境组件和各种后期处理组件的bug。
- 场景层次树,节点前面添加一个矩形,表示该节点类型。
v0.1.7
* 发布日期:2019年3月23日
* 更新日志:
- 修复物体改变后,场景树状图无法及时响应,无法记住树节点展开状态,树节点顺序错乱的bug。
- 物体名称超长自动显示省略号。鼠标移到节点上,显示完整名称。
- 新增全屏播放功能、新窗口播放功能。播放器和编辑器彻底解除耦合,播放器可独立运行。
- 可将编辑好的场景嵌入iframe运行。地址:/view.html?sceneID=sceneID。可使用新窗口播放功能获取该地址。
- 物体选中效果优化:等宽描边。
- 修复整理模型工具,复制模型时未复制文件夹中所有文件的bug。
- 所有设置改为存储在localStorage中,不再保存在场景配置中。
- 重构平行光帮助器、半球光帮助器、点光源帮助器、矩形光帮助器、聚光灯帮助器,采用事件驱动方式,不再对编辑器严重依赖。
- 整理文件夹结构。重写历史面板模块,彻底删除耦合度高的Outliner控件。
- 英文翻译优化。
- 新增场景一键导出功能,自动分析场景所需模型和资源,所有所需资源放在/temp/yyyyMMddHHmmss文件夹。
- 导出不带资源的编辑器功能。
- 重新发布了演示项目:Gitee GitHub
- 修复渲染器设置中,阴影、γ输入、γ输出、γ因子设置无效bug。
- 平面上点、线、喷涂工具一次只能绘制一个。
- 修复补间动画无法播放问题。
v0.1.6
* 发布日期:2019年3月10日
* 更新日志:
- 使用xtype.js,采用非侵入式开发方式重构UI框架。
- 主框架使用绝对定位重新布局。
- 底部面板支持最大化和还原。
- 底部面板显示资源统计信息。
- 搜集整理大量贴图和模型,并进行分类。
- 整理贴图工具。
- 整理模型工具。
- 整理缩略图工具。
- 添加点光源,默认不再添加圆球和光晕。
- 添加半球光,默认不再添加天空球。
- 添加矩形光,默认不再添加矩形白色屏幕。
- 由于原来的选中效果是使用后期处理实现的,产生了严重性能损耗和锯齿。所以用法线挤出和模板测试的方法重新实现选中效果。
- 重写后的选中效果不再产生锯齿,不默认开启快速抗锯齿(FXAA)功能,提高了性能。旧场景请在场景属性中取消勾选快速近似抗锯齿(FXAA),并重新保存。
- 默认启用时不再加载任何后期处理(postprocessing)相关着色器和特效类库,提高加载速度。
- 修复创建脚本注释未汉化bug。
- 折叠底部面板功能。
- 重写场景树状图控件,支持折叠、拖动、选中。
- 点击场景选中模型时,场景树状图优先选中整个模型,而不是模型的一部分,而且会自动展开并滚动到所选模型。
v0.1.5
* 发布日期:2019年2月23日
* 更新日志:
- 线段、CatmullRom曲线、二次贝塞尔曲线、三次贝塞尔曲线、椭圆曲线可视化编辑、保存和载入。
- 修复时间轴上的动画无法拖动的bug。
- 修复无法在场景树状视图将物体拖动到组上的bug。
- 基本几何体都支持多层嵌套,可以正常保存载入。
- 修复视角控件尺寸计算bug。
- 修复视角控件可能被其他物体遮挡的bug。
v0.1.4
* 发布日期:2019年2月11日
* 更新日志:
- 新增一个指示方向的控件。
- 新增线段、CatmullRom曲线、二次贝塞尔曲线、三次贝塞尔曲线、椭圆曲线。(暂不支持保存)
v0.1.3
* 发布日期:2019年1月28日
* 更新日志:
- 多语言支持:支持中文和英文,支持语言动态切换。
- 新增曲线几何体。
v0.1.2
* 发布日期:2019年1月11日
* 更新日志:
- 场景新增版本控制。场景表仅保存最新场景,历史数据保存在 场景名称_history表中。
- 保存材质自动生成材质球缩略图。
- 保存载入服务端模型修改后的材质。
- 正方体、圆形、圆柱体、二十面体、酒杯、平面、球体、茶壶、轮胎、纽结、加载模型都支持刚体组件。支持可视化设置碰撞体形状(正方体、球体)、质量和惯性。
- 新增正方体和球体物理形状帮助器。
v0.1.1
* 发布日期:2018年12月30日
* 更新日志:
- 修复mmd动画和音频不同步问题。支持多个mmd模型与模型动画、相机动画同步。
- 新增点阵化特效、颜色偏移特效、残影特效、背景虚化、快速近似抗锯齿(FXAA)、毛刺特效、半色调特效、全屏抗锯齿(SSAA)、像素特效、可扩展环境光遮挡(SAO)、多重采样抗锯齿(SMAA)、屏幕空间环境光遮蔽(SSAO)、时间抗锯齿(TAA)。
- 新增粒子、预设体、角色面板。(暂未实现具体功能)
v0.1.0
* 发布日期:2018年12月15日
* 更新日志:
- 重新梳理模型导入功能。目前支持3ds、3mf、amf、assimp(anim)、awd、babylon、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种控制器,在相机面板设置。
- 场景面板,编辑场景分类,根据类别、名称、全拼、拼音首字母实时过滤。
- 模型面板,编辑模型分类,根据类别、名称、全拼、拼音首字母实时过滤。
- 贴图面板,编辑贴图分类,根据类别、名称、全拼、拼音首字母实时过滤。
- 材质面板,编辑材质分类,根据类别、名称、全拼、拼音首字母实时过滤。
- 音频面板,编辑音频分类,根据类别、名称、全拼、拼音首字母实时过滤。
- 材质组件,新增保存材质和从材质面板选择材质功能。
- 纹理、透明纹理、凹凸纹理、法线纹理、置换纹理、粗糙纹理、金属纹理、环境纹理、光照纹理、遮挡纹理、发光纹理从贴图面板选择贴图功能。
- 删除上个版本场景窗口、模型窗口、贴图窗口、音频窗口。
v0.0.9
* 发布日期:2018年11月25日
* 更新日志:
- 新增布料带动画。
- gltf模型导入带动画。
- skinned morph(*.js)模型导入带动画。(新版three.js示例中已经移除该模型。)
- 平面画点工具。
- 平面画线工具。
- 平面贴花工具。
- 选中物体效果优化。
v0.0.8
* 发布日期:2018年10月27日
* 更新日志:
- 编辑器文档更新。
- 立体贴图上传服务端,并可设置为场景背景。
- 所有场景一键发布静态网站,便于部署到GitHub Pages服务上。
- 柏林地形组件、序列化和反序列化,并可在播放器中展示。
- 上传mp4视频贴图,并可以设置到材质上,在三维场景中播放视频。
- 增加水组件。
v0.0.7
* 发布日期:2018年10月14日
* 更新日志:
- 场景、模型、纹理、音频、mmd资源编辑功能,可上传预览图。
- 材质纹理属性编辑功能。
- 播放器重新架构。
- 粒子发射器、天空、火焰、烟保存、载入、播放优化。
- 刚体组件不再默认添加,改为从组件菜单中手动添加。
v0.0.6
* 发布日期:2018年9月30日
* 更新日志:
- 提供补间动画支持。可以在时间轴上可视化修改补间动画,并在播放器中播放。
- 新增上传mmd模型(pmd和pmx格式)和mmd动画,可以在播放器中播放。
- 新增上传lmesh模型,可在播放器中播放。
- 基本几何体、光源、地形封装,便于进一步开发。
v0.0.5
* 发布日期:2018年9月16日
* 更新日志:
- 布局修改:右侧改为两栏,左边栏提供场景层次图和js脚本管理功能,右边栏是属性、设置和历史面板。
在编辑场景下方新增动画编辑(未完成),并把日志查看移动到这里。
- 属性面板组件化改造,新增基本信息、相机、几何体、光源、材质、粒子发射器、物理配置、场景、影子、
位移、音频监听器、背景音乐等多个组件。
- 背景音乐支持保存载入,提供音频管理。
- 修复编辑着色器程序功能,实时查看着色器效果。
- 新增茶壶参数编辑组件。
- 各种几何体都可以开启反射。
v0.0.4
* 发布日期:2018年9月2日
* 更新日志:
- 脚本编辑优化,脚本不再跟物体绑定,可以跟场景一起保存载入,提供javascript、vertexShader、fragmentShader、programInfo示例脚本。自定义脚本支持init、start、update、stop、onClick、onDblClick、onKeyDown、onKeyUp、onMouseDown、onMouseMove、
onMouseUp、onMouseWheel、onResize 13种事件。
- 背景支持纯色、背景图片、立体贴图三种不同类型,可以保存载入。
- 新增网格、相机、点光源、平行光、聚光灯、半球光、矩形光、帮助器、骨骼9种帮助器的显示隐藏设置。
- 新增日志面板。
- 平板新增镜面特效。
v0.0.3
* 发布日期:2018年8月15日
* 更新日志:
- 使用asp.net开发web服务端,使用MongoDB保存模型和场景数据。
- 15种格式3D模型的上传,并可以保存到场景。
- 场景的创建、保存、载入。
- 组、12种内置几何体、5种光源可以保存场景并载入。
- 85种three.js对象的序列化和反序列化。
v0.0.2
* 发布时间:2018年6月9日
* 更新日志:
- 使用rollup重构three.js自带编辑器的代码。
v0.0.1
* 发布时间:2017年6月21日
* 更新日志:
- 主要完成three.js自带编辑器的翻译。
开源项目
感谢以下开源项目。
https://github.com/BurntSushi/toml
https://github.com/dgrijalva/jwt-go
https://github.com/dimfeld/httptreemux
https://github.com/inconshreveable/mousetrap
https://github.com/json-iterator/go
https://github.com/mozillazg/go-pinyin
https://github.com/otiai10/copy
https://github.com/sirupsen/logrus
https://github.com/spf13/cobra
https://github.com/spf13/viper
https://github.com/urfave/negroni
https://go.mongodb.org/mongo-driver
https://github.com/facebook/react
https://github.com/mrdoob/three.js
https://github.com/rollup/rollup
https://github.com/babel/babel
https://github.com/eslint/eslint
https://github.com/rollup/rollup-plugin-babel
https://github.com/rollup/rollup-plugin-commonjs
https://github.com/rollup/rollup-plugin-json
https://github.com/rollup/rollup-plugin-node-resolve
https://github.com/egoist/rollup-plugin-postcss
https://github.com/rollup/rollup-plugin-replace
https://github.com/mjeanroy/rollup-plugin-strip-banner
https://github.com/andyearnshaw/rollup-plugin-bundle-worker
https://github.com/tweenjs/tween.js
https://github.com/JedWatson/classnames
https://github.com/d3/d3-dispatch
https://github.com/i18next/i18next
https://github.com/js-cookie/js-cookie
https://github.com/facebook/prop-types
https://github.com/codemirror/CodeMirror
https://github.com/jquery/esprima
https://github.com/tschw/glslprep.js
https://github.com/zaach/jsonlint
https://github.com/acornjs/acorn
https://github.com/kripken/ammo.js
https://github.com/dataarts/dat.gui
https://github.com/toji/gl-matrix
https://github.com/squarefeet/ShaderParticleEngine
https://github.com/mrdoob/stats.js
https://github.com/mrdoob/texgen.js
https://github.com/yomotsu/VolumetricFire
https://github.com/jonbretman/amd-to-as6
https://github.com/chandlerprall/ThreeCSG
https://github.com/mapbox/mapbox-gl-js
https://github.com/CesiumGS/cesium
https://github.com/NASAWorldWind/WebWorldWind
https://github.com/mapnik/mapnik