版本发布 0.8.5
现代 JavaScript 支持、改进的植被渲染管道、项目模板,以及大量错误修复和性能优化,极大地提高了稳定性。
深入探讨
此版本加入了一些非常强大的新功能,值得深入了解:
现代 JavaScript 支持
虽然这使您可以在 ES6+ 中构建您的自定义组件,利用 const
、=>
和 class
,但这项功能远不止于此。
您将能够使用整个 NPM 生态系统,自行打包 JavaScript 代码,甚至可以使用其他语言如 TypeScript!
为了让 Wonderland Engine 能很好地与您的打包流程集成,我们发布了两个软件包:[@wonderlandengine/api] 和 @wonderlandengine/components。
管道
对 GPU 管道功能(如混合)的更精细控制,使您能够构建各种效果。管道还允许禁用部分着色器,通过只使用真正需要的功能来提升性能。
其中包括一个强大的新“植被”管道,为带有 alpha 遮罩的植物模型提供更高的质量。
项目模板
Wonderland Engine 的快速开发流程已让您非常高效,而不必从头开始即可让您_更快_。为减少必要的模板化工作,我们现在提供了启动项目的模板。
如果您需要更多,您还可以创建自己的模板并与社区分享。
更新日志
编辑器
- 支持通过 V8 使用 JavaScript ES2018
- 现在编辑器解析的是结果包而非源 js 文件
- 增加了通过 npm 脚本构建 JavaScript 包的选项
- 开源内建编辑器组件
- 将编辑器组件发布为 npm 包
- 添加了创建项目的项目模板
- 增加了对自定义项目模板的支持
- 添加了管道支持
- 支持透明度覆盖(“alpha masking with MSAA”)
- 支持任意混合配置
- 支持禁用深度测试和深度写掩码
- 支持双面材质
- 为双面材质添加了带有透明度覆盖的“植被”管道
- 为 JavaScript 包生成了源映射
- 为压缩纹理地图增加了实验性多重渐远纹理支持
- 增加了从属性视图到场景大纲的 Ctrl + 拖拽功能,以复制组件到其他对象
- 在项目设置中增加了
framebufferScalingFactor
设置 - 场景视图中启用了 MSAA,与运行时效果一致
- 改进了场景加载时间
- 在资源浏览器的文件区域增加了文件夹功能
- 修复了在打包时进行更改时出现的少数罕见崩溃问题
- 修复了将空白拖入资源浏览器时的崩溃问题
- 解决了使用
--windowless
标志时失败时的返回值问题 - 修复了资源视图中的表行高亮显示问题
- 修正了资源视图中某些资源不可重命名的问题
- 解决了属性下拉列表中某些资源不可选的问题
- 修复了场景视图中父对象的缩放工具错误
- 改进了用户界面样式和布局
- 改善了大量对象的转换工具在场景中的流畅性
- 改进了对 OBJ 文件导入的支持
- 删除了多余的日志输出以减少混乱
模板
- 增加了具有命中测试的“移动 AR”模板
- 增加了具有手势追踪、控制器、传送移动和光标交互的“VR”模板
运行时
- 模块化 JavaScript API
- 开源 API (https://github.com/WonderlandEngine/api)
- 将 API 发布为 npm 包 (https://www.npmjs.com/package/@wonderlandengine/api)
- 默认请求并选择最先进的所有 WebXR 参考空间
- 修复了开发大型项目时 Oculus Quest 上无法分配 WasmMemory 的问题
- 修复了停用蒙皮网格时的崩溃问题
- 改进了进入 VR/AR 的按钮
- 增加了背景渐变,以改善首次运行时绘制前的外观
- 修复了浏览器控制台中错误记录为错误的警告
- 修复了在编辑器中停用的 JavaScript 组件上调用
start()
引擎
- 修复了启用辉光时的抗锯齿
- 改进了对 Box 和 AxisAlignedBox 的射线投射性能
- 改进了文本更新的性能
- 显著提升了包含大量动态对象树(蒙皮网格)的场景图性能
JS API
- 修复了访问
WL.Material.*
参数时的异常 - 增加了
WL.PhysXComponent.shape
、extents
和其他属性的 setter,以修改 PhysX 刚体 - 增加了
WebXR.refSpace
用于选择参考空间 - 修复了
WL.Object.getComponents()
有时返回错误组件类型的问题 - 增加了
WL.Object.active
用于(停用)激活对象上的所有组件 - 增加了
set WL.Object.transformWorld
和set WL.Object.transformLocal
- 修复了
active
状态在onActivate()
时更改后的无效问题 - 显著改善了堆内存波动和垃圾回收行为
JavaScript 组件
- cursor: 增加了
cursorRayScalingAxis
以缩放光线对象在特定轴上 - cursor: 修复了
onHover()
现在接收悬停对象参数 - teleport: 重新设计以支持 VR 会话中的摇杆和方向输入
- teleport: 修复了传送到空间中心而非玩家的问题
- vr-mode-active-switch: 修复了停用后的行为,现在避免自我停用
- hand-tracking: 增加了根据是否提供姿态来(显示)停用显示网格和控制器对象的选项
- 增加了
finger-cursor
组件通过碰撞重叠与cursor-target
互动(例如在手势识别时通过食指尖)
Docker 镜像
- 切换基础镜像至 ubuntu:20.04
- 为候选版本测试者增加了
edge
标签
Last Update: March 28, 2025