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

共 3849字,需浏览 8分钟

 ·

2021-05-12 23:38

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 物理讲解

浏览 47
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报