Wonderland Engine 1.4.0 - GI 探测体积, Reverse-Z, 数组属性
稀疏全局光照探测体积, Reverse-Z, 新的自定义组件参数类型(数组和记录)。查看完整变更日志如下。
稀疏全局光照探测体积
本次发布的亮点是我们高端的探测体积实现技术。我们的方法是通过对场景进行体素化,在场景中放置球谐函数漫射光探测器,并在表面附近分布这些探测器。由于我们仅在必要的地方放置探测器并高效地利用数据,因此在 GPU 和下载时间上都非常轻量。
探测器直接从编辑器中烘焙。间接光照甚至应用到动态和蒙皮对象上。
上述场景大约有 52,000 个探测器,总共需要下载约 2.5MB 的 GI 数据。
Reverse Z
感谢 Playko 对此功能的赞助。

由于 32 位浮点数在接近零时具有较高的精度,因此通常用于 NDC 坐标(投影结果)的精度范围从 -1 到 1 是次优的,可能导致在近距离和远距离产生明显的 z-fighting 伪影。非常近或远的裁剪平面距离设置会加剧这一效果。
Reverse-Z 配置 NDC 空间和投影矩阵,以便最佳地利用 32 位浮点数的精度分布,从而能渲染非常近和非常远的对象,没有通常的 z-fighting 伪影。
始终使用 SIMD
由于 WebAssembly SIMD 的广泛采用,我们去除了所有非 SIMD 版本的运行时。这意味着,-simd
后缀不再使用并隐含在运行时名称中。
支持旧版本 1.0.0 之前的项目
很难相信 Wonderland Engine 1.0.0 已经在两年前发布。
在 1.4.0 版本中,我们移除了 38 个用于更新 1.0.0 之前版本项目文件的迁移。这表明我们对向后兼容性是多么看重。
如果您有一个旧版本少于 1.0.0 的项目文件,并希望在 1.4.0 中继续使用它,可以首先在 1.3.4 或更早版本的 Wonderland Engine 中打开并迁移到 1.0.0 之后的版本。
变更日志
编辑器
- 在项目设置中新增全局光照部分,用于创建和配置探测体积。
- 修复了删除的场景文件导入导致实例化旧文件内容的问题。
- 在资源视图 > 图片中公开图像压缩质量和率失真优化(RDO)设置。
- Linux: 启用崩溃报告。
- 改进编辑器内的登录界面,实现从浏览器登录(方便密码管理器使用)。
- 修复各种崩溃问题。
引擎
- 在
EXT_clip_control
可用时使用 Reverse-Z。 - 通过稀疏 GI 探测体积引入新的烘焙全局光照。
- 修复 EPSILON_F 常量在低端安卓设备上无效的问题。
- 更新到 meshoptimizer 0.23(可能带来约 5-10% 的网格文件大小优化)。
- 修复插件热重载可能导致插件视图中多余插件条目的问题。
- 优化在低端设备上的瓦片反馈缓冲区评估。
- 修复点光源阴影上的伪影。
运行时
- 去除 WebAssembly 运行时的非 SIMD 版本。
- 通过 ImageBitmap 优化未压缩纹理上传。
- 允许从 ImageBitmap 上传纹理。
运行时 API
- 增加
Property.array()
和Property.record()
。
Docker 镜像
- 基础镜像从 Ubuntu 20.04 切换到 22.04。
插件 API
- 我们现在要求插件的
package.json
中必须存在"wonderlandengine"
键。 - 增加实验性
tools.computeMeshBounds(mesh)
。 - 增加
ui.inputTextMultiline()
。