查看原文
其他

Cocos Creator 3.1 携多线程渲染架构和 PhysX 物理支持强势登场

Santy Wang COCOS 2022-06-10

Hi,各位开发者们。v3.0 过后,引擎组就投入了 Cocos Creator 3.1 的开发,终于在今天顺利发布啦。


3.0 版本的推出标志着 Creator 迈向了一个全新的征程,而 Creator 3.1 就是征途上的第一块基石。



此次版本更新带来大量非常棒的新特性,包含华为海思团队贡献的延迟渲染管线、PhysX 物理后端的支持等等。


同时,相对 3.0 版本,各方面的性能也得到了优化,例如帧动画性能、加载性能、包体等等,相信大家能感受到我们的诚意。


接下去我们会继续在 3.x 的基础上深耕,踏实地完善产品体验,普惠所有开发者。欢迎所有开发者使用与体验!


升级前请做好相关文件备份喔,以下是详细更新内容,欢迎阅读。



What's new  


● 新增延迟渲染管线(感谢华为海思团队的贡献),可在项目设置中选择延迟渲染管线


● 引入多线程渲染架构。在原生平台上,传统的单线程架构已无法满足大规模场景的渲染,因此 Creator 在 v3.1 中将传统的单线程架构初步拆分为渲染线程设备线程两个主线程。除了主线程的拆分外,Creator 还将 command buffers 的提交过程并行化,加快渲染效率。架构图如下:


● 增加 PhysX 物理支持,目前支持除了安卓 X86 之外的原生平台,且性能相对 v3.0 有巨大提升,在 iOS 上最多能提升 100% 以上(若需要在 Web 平台上预览可以参考 example-3d 里面的 physics-3d 工程,主要修改内容在 preview-template 文件夹中)

地址
https://github.com/cocos-creator/example-3d/tree/v3.1/physics-3d


● 编辑器支持骨骼八面体展示,可以直观看到模型骨骼的分布状态


● 支持在 FBX/glTF 资源的 Inspector 上预览动画


● 开放新版曲线编辑器,支持分别编辑左右斜率,支持直接显示曲线的循环模式


● 安卓平台支持构建 x86_64 架构

● 支持在 Prefab 实例上添加/删除组件

● Mac 构建新增 支持 M1 选项,用于更好地对一些已知的引擎模块在 Apple M1(Silicon)架构的设备上的支持问题做提示

● 添加场景即时缓存的实验室功能,默认开启,可在场景异常退出后恢复数据

● 编辑器添加 ui-curve、ui-curve-editor 组件,插件开发者可在插件中直接使用



Improvement  


● 提升引擎原生平台运行性能

● 提升引擎帧动画运行性能

● 提升运行时资源加载速度(构建模式)

● 优化动画编辑器在编辑大数量关键帧时的卡顿问题

● 自动图集面板新增针对 Bundle 内使用自动图集的三个优化选项,用于剔除自动图集在 Bundle 内未被使用到的资源,以减小包体

● 优化自动图集被多个 Bundle 引用导致图片被复制的问题,减小包体

● Shadow Map 支持线性深度、深度图压缩(与线性深度功能互斥),自阴影效果,以及 normal bias 参数设置

● Lighting Map 支持 RGBE 格式



Editor 


● 优化动画编辑器的事件编辑面板,避免产生空函数数据

● 构建发布面板的发布路径调整为可切换协议头

● 构建导出 / 导入构建配置功能支持导出后跨版本导入

● 构建发布面板添加校验机制,构建选项填写错误时将无法进行构建

● 优化部分小游戏平台打包 rpk 的输出日志

● 优化构建输出 log 信息,修复日志丢失问题

● 优化资源丢失处理,可以在资源恢复后自动还原

● 新建 Button 默认对 Label 节点上锁,方便在场景中选中

● 修复从 Prefab 退出可能引起的场景数据问题

● FBX 导入时可选择动画烘焙速率

● 解决部分 FBX 导入会导致编辑器卡死的问题

● FBX/glTF 增加导入选项“提升单一根结点”

● 修复了 TiledMap 导入 .tmx 资源时丢失问题



Engine  


● 修复了 TiledMap 动画失效的问题

● 修复了 Spine 在原生下预乘不生效的问题

● 修复了 Spine 开启预乘时设置透明度显示异常的问题

● 修复了部分机型 Vulkan 驱动不兼容的问题

● 修复 Metal 相关平台 Shadow Map 显示错乱的问题



Breaking Changes  


● 移除了 AudioClip 的播放接口,并且不支持 started 事件监听,AudioClip 现在是纯音频资源类型

●effect 资源中不能再直接调用 CCStandardShading 函数,统一封装进 CC_STANDARD_SURFACE_ENTRY 宏定义,建议只在 surface 函数中做自定义逻辑

● GFX 模块改名,去掉 GFX 前缀,统一使用 import { gfx } from 'cc';

● 构建面板上移除了自动图集、压缩纹理开关,项目在配置了自动图集与压缩纹理后将会直接处理

● 弃用 cc-fog 头文件,改用 cc-fog-vs 和 cc-fog-fs

● 移除了 sys 下的部分常量 sys.LINUX,sys.BLACKBERRY,sys.EMSCRIPTEN,sys.TIZEN,sys.WINRT,sys.WP8,sys.QQ_PLAY,sys.FB_PLAYABLE_ADS 



Known Issues  


● 微信 PC 端的键盘和鼠标适配有问题,我们将在 v3.1.1 里修复这个问题,你可以手动合并此 PR 修复 [8626]

● SafeArea 组件暂时无法正常使用,我们将在 v3.1.1 里修复这个问题,你可以通过手动合并此 PR 来解决此问题 [8652]

● 在 Sprite 设置完 RenderTexture 后需要手动调用下 Sprite.updateMaterial 函数,否则在某些平台下可能出来图像翻转



升级说明  


从 < 3.1.0 版本升级

从 v3.1 开始,UITransform 组件的 priority 属性已弃用,若需要调整节点树的顺序请使用 setSiblingIndex 方法。在 v3.1 之前通过代码创建并依赖 priority 属性的节点可能会出现节点树表现和之前不一致的问题,请手动调整。

RenderTexture 在不同平台上会出现正反不一致的情况,为了解决这个问题,Creator 为 effect 新增了 SAMPLE_FROM_RT 宏,在使用 RenderTexture 时,需要将 SAMPLE_FROM_RT 宏设置为 true,各后端便会统一适配至正确的效果。

从 < 2.4.5 版本升级

Cocos Creator 3.x 版本已经正式发布,2.4 版本将做为 LTS(长期支持)版本,提供后续两年的持续更新!

在 2021 年,v2.4 将继续更新版本,提供缺陷修复和新的小游戏平台支持,保障大家的项目成功上线。

在 2022 年我们还将为开发者持续提供 v2.4 的关键问题修复,保障已上线的游戏平稳运营!因此:

● 现有的 v2.x 项目可以安心继续开发,无需强制升级到 v3.x。

● 现有的 v2.x 项目因项目需求如想升级到 v3.x,可以使用 Creator 提供的 v2.x 资源导入工具。此工具将支持旧项目资源完美导入,以及代码的辅助导入。代码辅助导入会把 JavaScript 转换成 TypeScript,并自动添加组件类型声明、属性声明及函数声明,组件在场景中的引用都会得到保留,并且函数内部的代码会以注释的形式导入进来,可以减轻开发者的升级难度。

详细的升级说明请参考:
https://docs.cocos.com/creator/3.0/manual/zh/release-notes/upgrade-guide-v3.0.html 

● 新项目则建议使用 3.0 版本开发,我们会不断优化 v3.0 的开发体验和运行效率,支撑好 2D、3D 等不同品类的重度游戏顺利上线。

Cocos Creator 对项目的升级操作是不可逆的,请在升级前提交或备份旧版项目。

绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。




戳【阅读原文】前往官网下载最新版本,如果大家在升级中遇到困难,欢迎留言随时向我们反馈,我们会尽力协助

为帮助大家丝滑升级,减少开发阻碍,我们也集结引擎组所有功能开发的一线大佬,开辟《Cocos Creator 3.0 技术专栏》,有需要的同学可以点击回看喔。

Cocos Creator 3.0 TypeScript 使用答疑
Cocos Creator 3.0 的插件扩展系统
Cocos Creator 3.0 里如何玩转 npm 海量资源
Cocos Creator 3.0 3D 物理讲解

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存