Cocos Creator 3.8.4 来了,更快更稳更好用!


很高兴地通知大家,Cocos Creator 3.8.4 版本发布了!这个版本不仅在性能、渲染方面大幅增强,编辑器体验和稳定性也有诸多改善,建议大家升级。

自 Cocos Creator 3.8.0 发布以来, Cocos Creator 已经持续迭代了 5 个版本。每一个版本的发布,都使 Cocos Creator 3.8 更加稳定和成熟。

小版本更新围绕着性能、包体、易用性、稳定性等方面进行。如:WASM 模块、小游戏平台支撑、包体压缩、构建流程优化、脚本优化、渲染效果优化等。

我们一起来看看 Cocos Creator 3.8.1 ~ Cocos Creator 3.8.4 中,那些值得关注的更新。

一、渲染增强

1. 可定制渲染管线 CRP

基于 RenderGraph 的可定制渲染管线 CRP(Customizable Render Pipeline )在 Cocos Creator 3.8.4 中正式上线。


全新的可定制渲染管线主要有以下几个好处:

  1. Cocos Creator 3.8.4 版本及以上,引擎内置管线基于 CRP 管线构建,使引擎内置管线和用户自定义管线拥有相同的渲染机制和流程,兼容性和稳定性更强。
  2. 基于 CRP 管线,开发者能够在不修改引擎源码的情况下编写全平台兼容的渲染流程。
  3. 基于 CRP 管线,开发者能够根据项目的需求定制渲染流程,删除不必要渲染过程,节省开销提升性能。
  4. 基于 CRP 管线中的 RenderGraph 渲染架构,开发者可以很方便地复用、增加渲染流程,实现项目所需的高级渲染效果和后期效果。

新旧渲染管线的兼容机制如下:

  1. 新项目默认管线为新管线。
  2. 旧项目如果未使用自定义管线,则使用原渲染管线。
  3. 旧项目如果使用了自定义管线,则使用新渲染管线。

更多详情,请查看官方文档->图形渲染->渲染管线相关内容。

2. 渲染性能提升

在 Cocos Creator 3.8.4 版本中,渲染性能得到进一步优化。特别是小游戏平台,不管是新管线还是旧管线,相比 3.8.0 版本,性能都有大幅度提升。

后面版本中,引擎团队会继续提升引擎渲染性能,不仅是小游戏平台,其他平台的性能优化也会同步进行,大家敬请期待。

注:5%的波动属于正常范围。

3. 支持 WebGPU


WebGPU 作为全新一代的 API,不仅能够显著提升渲染效率,更能在网页环境中充分发挥 GPU 的通用计算能力,Cocos Creator 3.8.4 增加了对 WebGPU 的支持。

4. Tone Mapping 模式切换

在 Scene面板上,增加了 PostSettings 组件,Tone Mapping Type 可以选择 DEFAULT 和 LINEAR 两种选项。
image

  • DEFAULT:采用 ACES 算法做 Tone Map,会将线性空间转换到 gamma 空间后再输出,整个画面的明暗对比度会更强。适用于追求真实的 PBR 效果的渲染需求。
  • LINEAR:会将 LINEAR 空间中的像素直接输出,画面明暗对比度比 DEFAULT 弱,会保留图片原色,适用于想要 1:1 呈现美术资产颜色的情况。如无光照卡通,电商展品等。

5. 新增钢琴烤漆、车漆和玻璃材质

源码地址:GitHub - cocos/cocos-example-materials

二、小游戏平台提升

1. 支持 Box2d-wasm

Box2D 物理系统支持使用 WebAssembly 提升性能,可以在偏好设置->实验室里开启。

通过测试数据可以看到,开启 WASM 后,BOX2D 性能得到了巨大提升,特别在微信小游戏平台上,能够获得5 ~ 9 倍的性能提升效果。

2. 统一 WASM 模块的构建流程

统一了 WASM 模块的构建流程,使 WASM 的选项配置更清晰,且灵活性更好。

所有的 WASM 模块打包选项被放入了 引擎设置 -> 原生代码打包模式 下面。

原生代码打包模式统一控制所有 wasm/asmjs 模块,以下为默认最优值,若无特殊情况,不建议更改:

  • 微信小游戏:Wasm
  • 其它小游戏:AsmJS
  • 浏览器和抖音:Wasm + AsmJS

3. 抖音小游戏平台添加 WASM 支持

新版本的抖音平台添加了 WebAssembly 支持,Cocos Creator 也及时跟进了。为了兼顾旧版本,因此抖音小游戏平台会同时编译出 Wasm + AsmJS 两个版本,在不支持 Wasm 的环境下会调用 AsmJS。

4. 支持 WASM Brotli 压缩格式

抖音小游戏与微信小游戏平台添加 WASM Brotli 压缩格式 ( .br) 支持,开启后可减少 WASM 文件大小。

勾选后将会缩小大约 2/3 的体积,但运行时解压缩会稍微影响启动时间。

此功能默认关闭,可以根据项目的实际情况在构建面板中按需开启。

5. 淘宝小游戏平台 Websocket 多实例

淘宝小游戏平台添加了 Websocket 多实例能力,Cocos Creator 更新支持,以满足一些需要保持多个 Websocket 链接的情况。

三、引擎功能增强

1. 支持 Mesh 压缩,减小包体

FBX 在导入时,支持多种压缩方式,减少包体。

编码(Encode) 使用二进制编码
压缩(Compress) zlib 算法,使用 LZ77 和哈弗曼进行编码
量化(Quantize) 量化,压缩浮点信息,减小包体

2. 构建任务对应独立的构建模板

例如 build-templates/wechatgame-001 内的模板,会在构建任务名 wechatgame-001 的任务构建时作为其构建模板拷贝使用。

项目可以根据实际需求为同一平台定制不同的构建模板,比如 wechatgame-debug 与 wechatgame-release 将使用不同的构建模板。

3. 优化构建任务的进度显示

优化了构建任务的进度显示,并且增加详细的子日志信息显示,更易定位打包问题。

4. 构建面板引擎设置

支持在构建面板上单独配置物理、渲染后端、Wasm 模式等引擎设置,方便为不同的平台、渠道选择不同的配置。

5. Bundle 增强

Bundle 文件夹专用图标

使用专用的图标标识,能够快速识别哪些是 Bundle 文件夹。

image

Bundle 支持命令行构建

命令行发布 Bundle 与普通的命令行构建类似,不过 stage 参数需要指定为 bundle,同时将在 bundle 构建面板上导出的配置指定为 configPath 参数。详情参考用户手册。

6. Tween 增强,更易使用

  1. **新增更多便利接口:**为 Tween 添加 reverse, id, union(fromId), timeScale, duration, pause, resume, pauseAllByTarget, resumeAllByTarget, update, start(time) 接口
  2. **允许使用不同的 target:**Tween 中使用 sequence/parallel/then 级联子 Tween 的时候,子 Tween 允许使用不同 target。
  3. **与 Node 行为同步:**如果 Tween 绑定的目标对象是 Node 类型,Tween 系统会根据 Node 的激活和销毁状态自动做暂停、恢复、停止的操作。
  4. **字符串缓动:**Tween 支持缓动字符串、定制任意属性类型的 progress/easing 函数。

7. 支持插件脚本排序

8. 压缩纹理功能增强

  • 优化纹理压缩任务调度,优化压缩时的构建进度显示
  • 支付宝小游戏平台支持 ASTC 压缩纹理格式
  • 升级 ASTC 工具到 4.6.0 版本,纹理压缩速度提升1倍。
  • 纹理压缩支持小游戏平台单独配置格式

9. 升级 V8,提升原生性能

引擎使用的 V8 从 9.1 升级到了 11.6.189.22 版本,使得原生平台的性能有了显著提升。Android 平台提升 14%,iOS 平台提升 8%。

以下为测试结果数据:

四、未来继续前行

感谢各位开发者对 Cocos 引擎的支持,使 Cocos 在多个赛道上都取得了显著的成绩。

Cocos 引擎团队会继续努力,在运行性能、渲染效果、包体与加载时间、易用性、编辑器稳定性等多个方面持续打磨,将 Cocos Creator 打造得更快、更稳、更好用。

7赞

一直升级,一直爽,
找空尝试一下新管线CRP

助力 3.x 游戏开发:

3x 高性能多纹理合批

3x 高性能割草碰撞框架

3.8.5 和 3.8.6 还会在今年吗,还是明年

3.8版本可以使用自己的wasm了吗?比如Fairy-Stockfish的 .wasm文件?

.3到.4用了3 4个月,今年应该别想了

tween更新好评

3.8.5应该问题不大3.8.6就不知道了

发 3.8.4,把 3.8.x 的所有改动都复读一遍 :sweat_smile:

image 5个月

意思是苹果小游戏性能下降了挺多呗 :thinking:

2赞

新管线性能还降了 :grimacing:

旧管线新能更加好 为什么要用新管线呢

新管线不是可以自己定制渲染过程嘛

自己定制一下可能性能会变好 :joy:

3.8.5 预计12月!

升级失败… 底层逻辑说改就改了… 有种深思熟虑的随意… 改了也就改了. 竟然不兼容 3.8.3 :upside_down_face:
浪费了2天去搞老代码去适配. 还是搞不动. 修好了脑袋屁股又不对劲了. 心累. 放弃了

这次版本. 周期长. 所以可能改了什么东西, 开发的人都记不清了.

可以理解为, 是一个全新的引擎, 全新项目可以尝试. 老项目还是放弃吧…

此次升级完全兼容旧管线和自定义管线。 但对于本身有许多自定义的项目,确实难以保持兼容。

应该是吧,不是可以做一些剔除功能或者啥骚操作吗 :rofl: :rofl:

是的,自定义可以删除不必要的流程,并且在渲染流程中加入自己的一些快速剔除判断,让性能最大化。