自上次LayaAir 2.0.1beta新增3D动画文件压缩、内存与性能优化、开放域项目创建等功能后,一个月很快就过去,在这段时间里,我们不仅在官网新增了大量的LayaAir 2.0 3D文档,优化了一些2D文档,全面更新了官网的3D示例。在今天发布的LayaAir 2.0.2 beta版里,还围绕着2.0引擎发展的主线“性能、易用性、3D”这几个核心点做了大量的更新,更是率先完成了小米快游戏的引擎适配以及在LayaAir IDE中集成了小米快游戏的发布。

小米快游戏背景介绍

TEF 2019快应用开发者大会于3月20日在北京落下帷幕,宣布海信手机和中国移动终端公司加入快应用生态平台,厂商联盟扩展为12家。快应用具有成本低、体验好、留存高的特点,在功能和体验层面已经可以媲美原生APP,对用户的使用成本更是轻量。发展至今,快应用累计覆盖全网10亿设备,月活超过2亿;快应用打开次数超过20亿,超过1亿个桌面图标留存,7日留存率18%。

作为快应用厂商联盟成员之一的知名手机厂商小米,一旦被引擎厂商公开支持适配,势将为快速引入众多的游戏CP与优质产品铺平了道路。Layabox作为首家完成适配和公开发布小米快游戏的引擎方,已经具备完整的发布与接入流程。特别是在LayaAir IDE内提供了引擎一键发布工具,开发者可迅速将基于LayaAir引擎的游戏项目发布为小米快游戏,并且整个接入过程十分方便,极大降低了开发者的接入成本。

快游戏的入口既包括典型的原生应用,也有丰富的系统级入口场景:浏览器、应用商店、游戏中心、桌面搜索/全局搜索、负一屏、锁屏、语音助手、快应用中心、Push、日历。只要用户点亮屏幕,随时随地可快速进入小游戏中。在未来亿级用户曝光资源的支撑下,快游戏不仅会成为快应用生态的未来,还有望成为整个游戏行业的一个全新增长点。

LayaAir 2.0.2 beta 版本要点

通用部分

1、引擎新增了屏幕物理分辨率适配开关(useRetinalCanvas),启用后,适配模式可自动调整为屏幕物理分辨率,让游戏画面更加高清。

2、IDE强制升级更强大的发布版本功能、并新增了小米快游戏的发布。

2D方面

1、引擎大幅提升了spine的效率(性能、内存)。

2、IDE新增二进制文件合并功能,并优化提升了文件合并与图集压缩的易用性。

3、IDE增加wav音频的组件识别。

4、IDE全面更新了自带的UI组件资源(Assets\comp)

3D方面

1、引擎大幅提升同材质且同Mesh的MeshSprite3D性能

2、引擎优化骨骼动画性能,提升15%

3、引擎的性能统计信息增加savedRenderBatches,方便开发者查看节省的批次数量

4、引擎ShaderPass增加StateMap功能,渲染状态设置更灵活,可逐ShaderPass也可逐材质

5、Laya U3D插件大幅优化提升蒙皮Mesh导出性能,提高100倍

01

新增物理分辨率开关

我们通常在进行屏幕适配时候,要考虑的重要因素之一是设计尺寸,就是游戏按多少像素设计的,比如750*1334。游戏设计尺寸不仅会影响画面的清晰度,同时也对图片文件大小、GPU、内存会产生影响。设计尺寸较大相对于设计尺寸小的,图片资源尺寸大,GPU渲染压力大,内存占用大。所以有一些对画面精致度要求并不是太高的,或者是因为性能等原因,设计时将游戏图片尺寸设计的比较小,例如960*640。然后通过拉伸放大来适配一些高分辨率屏幕。这样带来的后果就是高清屏幕上会不清晰,图像或者文字甚至有马赛克现象(有的是锯齿感明显)。所以开发者就不能过分的将设计尺寸调小,而是要考虑到主流的机型来均衡考虑。

在微信安卓7.0.3版本之前,安卓版的微信小游戏底层会强制把在屏Canvas的宽高按屏幕物理分辨率设置。也就是说,哪怕开发者把游戏图片尺寸设计的比较低,最终画面的表现仍然会很清晰,当然,这会影响到性能。同时,对一些不需要高清显示的游戏,更希望能节省一些性能的消耗的CP来说。相当于小游戏底层就剥夺了开发者的选择权。不过从7.0.3开始,小游戏底层不再强制把Canvas设置为物理分辨率,在性能有提升的同时,很多之前没有暴露出设计尺寸存在问题的小游戏(设计尺寸较小),会发现在高清手机上变的不清晰了或者是有轻微马赛克感。由于LayaAir引擎并不存在7.0.3的版本兼容BUG,所以碰到这些问题的基本上都是对屏幕适配理解不深,并且适配经验不足导致。

为了让适配门槛更低,也为了解决那些已有的老游戏在不改变设计尺寸的前提下,能够自动适配为高清物理分辨率模式。所以,从LayaAir 2.0.2beta版开始,我们增加了useRetinalCanvas这个强制将Canvas设置为物理分辨率的设置,当Laya.stage.useRetinalCanvas=true时,无论是使用哪种LayaAir的适配模式,在哪种设计尺寸下,canvas都将按物理分辨率大小设置。好处是,那些设计尺寸小的游戏,不用调整图片大小,不用担心内存占用增加,又可以恢复到高清模式了。缺点就是强制为高清分辨率后一定会带来GPU渲染压力,也就是开启这个功能后,需要牺牲一些性能。所以引擎默认是关闭的,如果开发者认为该产品性能更重要时,可采用LayaAir的标准适配方案来设计游戏尺寸,当开发者认为各屏幕的高清视觉表现更重要的时候,可以开启该功能。

02

发布优化与小米快游戏支持

在LayaAirIDE的发布功能方面,由于2.0正式版推出了新版的发布功能,并称为发布版本的3.0,一度引起部分开发者对于引擎版本与功能版本号的混淆或疑问。因此,从LayaAir 2.0.2beta开始模糊小功能的版本号概念,去掉发布按钮旧版指向,原发布功按钮直接指向到新版发布。如果还需要使用旧版发布功能,可以前往菜单栏的项目选项中打开。 我们推荐使用新版本发布。如有功能使用疑问,可以打开发布功能界面后,点击问号图标查看说明文档。

另外,继率先支持百度智能小游戏之后,LayaAir引擎又再次率先完成了小米快游戏的引擎适配与IDE发布支持。流量大厂的加入,让开发者又多了一个新平台流量红利的机会。

当然,在接入早期,如果开发者对于小米快游戏接入业务不太了解,也可以联系Layabox的商务获得更多的技术与上架支持。

商务合作联络邮箱:bd@layabox.com

相关链接:百度即将推出智能小游戏,Layabox率先完成引擎适配支持!

03

大幅提升Spine效率

在LayaAir 2.0.2 beta版里,我们对Spine的效率进行了大幅提升。根据三七.极光旗下大天使项目组提供的spine模型作为测试用例素材,每个模型155个骨骼和845个三角形,在小米6的内置浏览器测试环境下。针对上一版引擎,我们从性能与内存两方面进行了数据对比。

性能对比:

红线为2.0.2beta版、蓝线为2.0.1beta版

X轴为sprite数量,Y轴为相应sprite数量的FPS帧速

通过性能数据对比,我们可以直观的看到。100个精灵(sprite)时2.0.2满帧,2.0.1只能在40帧左右。在继续增加精灵数量的过程中,FPS(帧速)都在下降,但2.0.2始终保持着性能上的优势。

内存对比:

红线为2.0.2beta版、蓝线为2.0.1beta版

X轴为sprite数量,Y轴为相应sprite数量的内存占用量

通过内存占用的数据对比,我们可以直观的看到。在相同精灵数量的情况下,基于LayaAir 2.0.2的测试用例占用内存不仅比基于LayaAir 2.0.1版本的减少了不少,而且在精灵数量不断增加的情况下,内存占用增长曲线也是非常平稳缓慢。

04

VIP功能的增加与优化

在VIP功能方面,本次LayaAir 2.0.2 beta版本开始新增二进制文件合并。这样,对于一些琐碎的小文件,不止是json格式的文件,二进制文件也可以合并起来了。文件合并功能可大幅减少文件下载交互数量,提升游戏加载效率。

由于增加了二进制文件合并,为了统一文件合并的操作流程与规范,文本(json)文件合并的用法也有所调整。另外,关于图集纹理压缩的IDE操作流程也做了优化,不再需要开发者手动编写图集的文本信息,开发者直接将图集atlas或者png图片拖入工具栏即可自动识别,功能的易用性进一步得到了加强。以上更细节的功能使用介绍,请查看VIP功能介绍与使用介绍。

文档链接:

https://ldc2.layabox.com/doc/?nav=zh-ts-0-3-3

05

IDE的其它优化

IDE与引擎的易用性是我们一直在努力提升地方。本次版本,我们将用了好几年的IDE默认UI组件资源进行了全面替换,新版UI组件资源图片不仅美术风格更加好看了,还面向移动设备进行了美术适配,让开发者制作DEMO时组件资源更加易用,UI更加美观。

IDE另一个改进,就是支持wav音频格式组件识别,在LayaAir 2.0.2之前,IDE只能将mp3格式的文件识别为音频组件,用于可视化的场景触发使用,现在多了wav音效的支持,让LayaAir IDE的可视化编辑与创作流程更加的舒畅。

06

新增3D性能分析功能

3D游戏制作 ,批次优化是性能优化的重要方式之一,但是开启批次优化后,到底节省了多少RenderBatches,开发者很难直观的感受到。所以,从LayaAir 2.0.2beta版开始,引擎在性能统计信息面板中新增了savedRenderBatches参数,这个参数值是进行优化操作后能节省的批次数量,通过查看该参数的值,就可以大概看出,我们已优化了多少,还有多少可优化空间。而如何开启优化,从而影响savedRenderBatches参数值,大概有以下几个方面:

1、静态合并:

在Layabox的Unity插件中勾选静态标签,引擎在加载场景时会对静态物体进行合并处理,可减少RenderBatches,并大幅提升场景性能,合并原则为同材质的模型,所以开发者在编辑场景模型时尽量使用相同材质。

2、动态合并:

该优化无需开发者进行任何设置,而且物体可动态移动不受限制,但合并原则相对严格,需要同Mesh和同材质双条件满足,但在三维场景中这种模型依然是大量存在的,也可大幅减少RenderBatches。

3、动态顶点合并:

该优化同样无需开发者进行任何设置,而且物体可动态移动不受限制,合并原则为同材质且模型顶点小于10个,相对来说较严格,但目前在一些假阴影和特效的模型上依然有发挥空间,可少量减少RenderBatches。

以上几点优化的优先级为 静态合并>动态合并>动态顶点合并,综合来讲开发者的优化原则很简单,只要尽量保证场景模型的材质和Mesh相同,场景不动的物体勾选静态,即可达到节省渲染批次的目的。

07

大幅提升3D性能

极致性能是LayaAir引擎的重要标签之一, 所以在引擎性能的极致优化追求也是我们引擎发展的重点。而对于三维场景中通常存在的大量同材质和同Mesh模型,例如场景中的森林、路灯等,差异只有位置和大小,从本次引擎版本开始,针对以上特点的模型进行了深度优化,使得大量同材质和同Mesh的模型合并为一个批次,这样就可以大幅提升场景的渲染性能。当然,开发者要注意的是,尽量保障重复的模型去使用相同的Mesh和Material。并且该优化不影响物体的移动变换,这样的情况,引擎就可以动态合并优化,从而大幅提升性能。

我们在Surface Pro6这个测试机型,做了一些对比测试。 CPU是Intel i5 8250U,GPU是Intel UHD Graphics 620,测试用例的模型采用12个三角面。希望数据对比图能给开发者一些直观的效果感受。

从上图测试用例的效果可看出, LayaAir 2.0.2beta版本在2万上精灵时候,可以达到满帧,而2.0.1 beta版本仅有20多帧,在不断增加精灵的同条件下,2.0.2beta始终保持着优势。

Animator动画是LayaAir3D中的动画组件,骨骼动画是其最常用的功能,因此优化骨骼动画的性能和内存也一直作为LayaAir3D的重点优化任务,自从LayaAir2.0发布以来Animator动画组件性能已经优化多次,本次LayaAir2.0.2版本同样优化了骨骼动画性能,再次提升了15%。除此之外,Layabox的Unity导出插件对骨骼动画资源格式也进行了优化,使用新版Unity插件导出资源也有可能减少模型的渲染批次提升性能。

最后必须要提下对Layabox的Unity插件优化,本次版本的插件,大幅优化提升了蒙皮Mesh导出性能,让导出时间获得了大幅度的缩短,效率可提升100倍。 原来要300秒干的事,3秒即可完成。

08

本次新增的3D引擎功能

在本次LayaAir2.0.2 beta版本的新增功能里,3D引擎ShaderPass增加了StateMap功能,这样可以使渲染状态设置更加灵活,可逐ShaderPass设置,也可以逐材质设置。

另外,还增加了一些3D引擎的常用功能。例如:

  • Texture2D增加setSubPixels接口

  • 纹理增加mipmapCount属性

  • 增加Laya.Loader.create批量加载回调事件参数

  • 增加Mesh克隆接口

  • 增加BLEND_ENABLE_SEPERATE混合模式

写在最后

引擎在这一个月干了很多的事,写到这里,我已经码了好久的字,版本发布相关的都写完了。能看到这里的开发者也都是Layabox的真爱。感谢你们的支持,也欢迎大家来转发分享本文,将本次众多的更新告知更多开发者。未来在引擎方面,我们还会有更大的动作。除了引擎本身,对于官网的学习文档,也曾是大家一直在吐槽地方,但是可以明显看到我们在年后有不断的改进,对于文档,示例,视频,我们会持续投入,继续完善,为能降低大家的学习门槛而努力。

近期推荐阅读:

MOBA、SLG、ARPG类型3D HTML5游戏案例精品推荐

LayaAir 2.0 正式版发布了,重要特性全面介绍

开源,不是一种道德绑架

微信3D小游戏已达数百款,这里肯定有你没玩过的小游戏!

百度即将推出智能小游戏,Layabox率先完成引擎适配支持!

边锋、君海、智明星通、途游、开心网等16家游戏企业急招LayaAir引擎游戏前端程序猿与高级攻城狮!

Layabox为开发者免费获得游戏流量,推出小游戏流量共享平台!

Layabox推出“贡献者支持计划”,扶持开发者生态的贡献者!

超级好玩的空中跑酷3D游戏《极速奔跑少年》点击进入试玩

全民热玩的IO游戏《围地大作战》点击进入试玩

Layabox率先支持小米快游戏,LayaAir 2.0.2版本大幅提升3D性能、spine性能和内存优化、新增屏幕适配设置!...相关推荐

  1. Laya_小米快游戏调试相关

    一.下载调试器 去官网文档找调试器下载 二.扫码安装和本地安装 小米发布成功后会出现一个二维码和打开文件夹的选项 1.扫码安装 有了这个二维码的话就可以直接使用快游戏调试工具去扫码安装调试了. 也可以 ...

  2. 业界率先支持 MCP-OVER-XDS 协议,Nacos 2.0.1 + 1.4.2 Release 正式发布

    来源 | 阿里巴巴云原生公众号 ​ Nacos 是阿里巴巴开源的服务发现与配置管理项目,本次同时发布两个版本: ​ 发布 2.0.1 版本,主要致力于支持 MCP-OVER-XDS 协议,解决 Nac ...

  3. ac9560不支持承载_IPFS 最新进展:0.5 版本改进较大,已出现系统级支持 | 火星号精选...

    免责声明:本文旨在传递更多市场信息,不构成任何投资建议.文章仅代表作者观点,不代表火星财经官方立场. 小编:记得关注哦 来源:IPFS原力区 原文标题:IPFS 最新进展:0.5 版本改进较大,已出现 ...

  4. LayaAir已支持vivo小游戏适配与IDE内一键发布!

    6月底,我们本该发个引擎版本,由于计划搞点大动作.所以很抱歉,我们跳票了. 引擎语言从AS3全面转向TS,这个动静有点大,很多引擎小细节变了(不影响API),不止是代码迁移的工作量,还有各种测试. 为 ...

  5. LayaAir2.8新增适配华为快游戏!

    为了让开发者尽快的体验到华为快游戏,我们在LayaAir 2.8.0正式版之前,追加了华为快游戏的适配,提前推出支持华为快游戏LayaAir 2.8.0beta2版本. 华为快游戏平台简介 快应用是一 ...

  6. 小米S2手机刷android5.0原生版

    小米2S MIUI6 android5.0系统 想装一个原声的android5.0系统.... 于是,惨痛的一天就开始了.... 一:小米系统自带的系统更新直接安装ROM的zip包 我下载了一个又一个 ...

  7. 华为正式推出快游戏,Cocos 率先支持

    华为快游戏正式发布,进一步推动了小游戏生态的发展! 2018 年 12 月 25 日,华为宣布其 2018 年智能手机出货量成功将突破两亿台,为 2018 年的表现画上了一个辉煌的句号. 庞大的出货量 ...

  8. LayaAir已支持OPPO小游戏适配与IDE内一键发布!

    LayaAir 2.1.0版本中,已完成对OPPO小游戏的适配与发布功能.今天,我们开启了该功能的开关.已下载使用LayaAirIDE2.1.0版本的开发者,重启IDE进入即可看到功能.老版本IDE的 ...

  9. QC4+充电协议_原来那么多手机支持QC4+快充,小米最多,只是之前用错了充电头...

    随着智能手机技术的不断发展,如今的智能手机承担的角色越来越重要,不仅用于打电话还用于游戏.社交.工作等,而电池技术却没有同步跟上,导致很多手机用户抱怨手机用半天就没有电了,经常带着充电宝也不方便,那么 ...

最新文章

  1. 软件开发文档模板 (学习)
  2. 数据库--循环语句:loop exit when/ end loop
  3. JavaWeb-SpringBoot_一个类实现腾讯云SDK发送短信
  4. sql server取某个时间段内所有日期或者所有月份
  5. android 数组赋值字符串_c语言中的字符数组与字符串
  6. 生成有控制台的WIN32程序
  7. python cnn识别图像_笨方法学习CNN图像识别(一)—— 图片预处理
  8. 快速的找出元素是否在list中 python
  9. PyTorch 1.0 中文官方教程:训练分类器
  10. Python稳基修炼之计算机等级考试易错细节题1(含答案和解析)
  11. 利用screen和nohup让Linux服务器后台运行程序
  12. android bin目录是什么,android bin目录下的.ap_是神马文件?
  13. 企业数字化转型:构建“感知—思考—响应—反馈优化”闭环
  14. 佳能600D入门秘籍(三)
  15. Python连载(0011): 十分钟理解元组
  16. 甲每秒跑3米,乙每秒跑4米,丙每秒跑2米,三人沿600米的环形跑道从同一地点同时同方向跑步,经过多少时间三人又同时从出发点出发?
  17. 包装严重的 IT 圈,作为面试官,是如何甄别应聘者呢?
  18. c语言怎么移位,C语言中的移位操作
  19. 部署Unbound实现DNS服务
  20. linux上安装NVIDIA显卡驱动以及深度学习需要的cudn、cudnn、pytorch

热门文章

  1. spring cloud微服务分布式云架构 - Spring Cloud集成项目简介(三)
  2. Scatter Plot
  3. 图像处理函数详解——bwareaopen
  4. win10及win2012之后系统的明文抓取方式
  5. OSChina 周日乱弹 ——用你独特的大脑设计终极安全密码
  6. Go语言学习之下划线_作用分析
  7. CenterPoint:3D目标检测与跟踪
  8. vue项目中使用lodop实现打印
  9. 芯片内部存储器介绍(转载)
  10. OpenCV下实现单窗口显示多幅图像(C++源码)