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()
。