版本 1.2.0
这是我们迄今为止最强大的版本发布,带来了如 Bloom 和 Tonemapping 等后期处理特效,支持 HDR 环境,图像照明的改进,动画混合,变形目标,以及基于 JavaScript/Typescript 的编辑器 API 来编写自定义工具。
增强测试
我们创建了一个测试框架,可以比较项目的渲染结果,以自动测试我们的示例。
我们将此框架开放源码,以允许您测试自己的项目。
隐藏的更改
此版本充满了隐形的基础工作,确保引擎和编辑器的架构随着即将到来的功能而扩展:
- 我们重构了编辑器的内部数据模型,使其更易于维护、更快并能捕获错误。
- 动画系统现在使用动画图。虽然它们尚未向您暴露,但它们已经启用了新的功能,例如动画混合。
- 多个场景现可在运行时进行处理。这在从 JavaScript 附加和加载场景时已经很有用,但很快也将允许高效管理跨多个场景和资源包的资源。
- 自定义组件的序列化格式已更改,支持未来更多的属性类型。
更新日志
编辑器
- 添加 “动画工具” 视图,用于为动画添加事件轨道
- 添加基于 JavaScript/Typescript 的编辑器插件 API,以构建自定义视图和工具
- 为动画组件添加 1D 和 2D 混合支持
- 重新设计 UI,修复许多 UX 问题并更有效利用窗口空间
旧:


- 修复当选择具有静态物理组件的对象时的无限打包循环
- 在项目向导中添加搜索栏以搜索最近的项目
- 添加 JSON 解析错误,当加载项目文件或其他 JSON 文件失败时
- 允许读取带有尾随逗号的 JSON 文件以更容易解决合并冲突
- 识别
.tsx
和.jsx
作为脚本扩展 - 添加对加载 HDR 图像的支持
- 场景视图:现在可以使用 Shift 加 Num7、Num1 和 Num3 从对齐方向的相反方向查看
- 场景视图:修复如果轴垂直于视图,Gizmo 轴无法点击的问题
- 场景视图:使用 Alt 加左键模拟中键
- 场景视图:修复网格可视化渲染模式
- 场景视图:添加光可视化的切换
- 项目设置:在渲染设置中也显示次级纹理坐标
- 添加关于 iOS Safari 在未压缩图集最大设置上的警告
- 显著提高整体编辑器性能
- 资源视图:为材质资源添加复制和粘贴功能
- 添加选项以禁用将 PBR 材质导入为 Phong
- 添加启动项目时使用 HTTPS 的复选框,如果 SSL 设置已完成
- 默认情况下避免打包未引用的网格
- 支持具有单独的切线和副切线属性的场景文件
- 修复
npm install
和所需 API 包升级之间的竞争状态 - 消除图像压缩期间的纹理图集错误
- 修复初次加载项目时材质缩略图未渲染
- 添加 Alt+G, Alt+R 和 Alt+S 重置选定对象的位置、旋转和缩放
- 将 “模拟物理” 快捷键移动到 Alt+Shift+S
- 用 WEBP 替换未压缩图片
- 添加
importPhysicalAsPhong
项目设置以允许禁用它 - 修复
--import
参数未正确编译导入场景的问题 - 添加对导入 EXR 文件的支持
引擎
添加对 1D 和 2D 动画混合的支持
添加对动画事件轨道的支持
添加对 HDR 环境的支持
添加从天空和 HDR 环境烘焙镜面和漫射 GI 探针
添加对球谐函数漫射 GI 探针的支持
在自定义材质中支持 16 位浮点(“半浮点”)参数,使用
mediump
声明添加对变形目标(也称为混合形状)的支持
- 添加使用 ACES、近似 ACES、Reinhard 或指数方法的色调映射支持
- 使用高度有效的移动 GPU 友好算法重新实现 bloom
- 修复禁用 SHADOW_NORMAL_OFFSET_SLOPE_SCALE 时的着色器编译错误
- shaders: 修复动态索引警告
- 切换自定义组件参数的内部序列化格式以支持未来的更多类型
- 为多绘制渲染器实现进一步的 GPU 顶点提取和过度绘制优化
- windows: 修复不同存储卷上的项目问题
运行时
- 添加通过场景句柄加载和更改多个场景以及切换活动场景的支持
- 修复通过 JavaScript API 更新网格数据时的崩溃
- 修复克隆对象根部的过时变换
JavaScript/TypeScript API
- 澄清和改进文档
- 添加
AnimationComponent.setParameterFloat
和.getParameterFloat
控制混合参数 - 添加
MeshManager.create()
和TextureManager.create()
,不推荐使用new Mesh()
和new Texture()
- 添加
AnimationComponent.onEvent
以响应动画事件轨道的事件 - 添加
PhysXComponent.sleepOnActivate
- 添加
TextComponent.getBoundingBox
以检索渲染文本的边界框 - 添加
Scene
和Prefab
:可以激活和实例化的场景部分 - 添加
Property.vector2
,Property.vector3
和Property.vector4
- 添加
TextComponent.getBoundingBox
和TextComponent.getBoundingBoxForText
- 修复
Object3D.clone()
有时会错误地克隆一个组件两次 - 修复
Object3D
和Component
在被引擎销毁时未标记为已销毁 - 在资源类中弃用
.equals()
。现在您可以使用===
或==
- 弃用
TextComponent.justification
并重命名为TextComponent.verticalAlignment
组件
- 添加
orbital-camera
组件 - 添加
input-profile
组件用于集成 webxr-input-profiles - trail: 正确处理停用
开源贡献者
特别感谢社区的开源贡献,尤其是:
Last Update: May 2, 2024