释放超凡性能,打造HarmonyOS鸿蒙Next原生游戏卓越体验
释放超凡性能,打造HarmonyOS鸿蒙Next原生游戏卓越体验 11月26日在华为Mate品牌盛典上,全新Mate70系列及多款全场景新品正式亮相。在游戏领域,HarmonyOS NEXT加持下游戏的性能得到充分释放。HarmonyOS SDK为开发者提供了软硬协同的系统级图形加速解决方案------Graphics Accelerate Kit(图形加速服务),帮助游戏应用快速集成超帧、GTX自适应稳态渲染和自适应刷新率等渲染优化能力,并解决游戏运行不流畅、卡顿掉帧等痛点体验问题,让接入HarmonyOS SDK的手游,如《决胜巅峰》等,在Mate新机上的体验实现大幅提升。
《决胜巅峰》在HarmonyOS NEXT上首发,并且在Mate X6折叠屏上首次以大视野和高帧率的形式呈现给MOBA类游戏玩家。在Mate X6折叠屏手机的超大视野下,《决胜巅峰》的可视画面提升25%,能够更全面地观察战场。通过超帧技术,将帧率突破到120帧,使得每一次技能释放、每一次推塔,都显得更加细腻、顺畅,极大地提升了游戏的沉浸感,为玩家带来前所未有的对战快感。
在对快速反应要求极高的MOBA类游戏中,超帧技术带来的120帧效果让画面更为流畅,帧率也更稳定,帮助玩家更好地掌控局势,提升整体的游戏体验。在团战中,华丽的技能和流畅的动画结合,也使得战斗画面更加震撼。
通过结合《决胜巅峰》游戏开发者主动提供的游戏过程关键信息,可以实现GTX自适应稳态渲染和自适应刷新率等游戏加速方案,帮助开发者打造高画质、高流畅、低功耗的非凡游戏体验。
自适应稳态渲染可根据游戏场景、GPU负载等信息,动态调整渲染负载,减少游戏掉帧,让玩家获得一个更加稳定的游戏体验。
自适应稳态渲染技术接入架构示意图
自适应稳态渲染接入代码:
// 初始化ABR实例,配置Buffer分辨率因子范围属性,结合具体游戏分辨率、画质设置合适的范围
// 例如设置ABR对Buffer分辨率进行0.8~1.0倍的自适应调整
errorCode = HMS_ABR_SetScaleRange(context_, 0.8f, 1.0f);
if (errorCode != ABR_SUCCESS) {
GOLOGE("HMS_ABR_SetScaleRange execution failed, error code: %d.", errorCode);
return false;
}
// 激活ABR上下文实例
errorCode = HMS_ABR_Activate(context_);
if (errorCode != ABR_SUCCESS) {
GOLOGE("HMS_ABR_Activate execution failed, error code: %d.", errorCode);
return false;
}
// 相机运动数据结构体,设置每帧实时相机运动数据
ABR_CameraData cameraData;
cameraData.position = static_cast<ABR_Vector3>(camera_.GetPosition());
cameraData.rotation = static_cast<ABR_Vector3>(camera_.GetRotation());
// 每帧相机运动数据更新
errorCode = HMS_ABR_UpdateCameraData(context_, &cameraData);
if (errorCode != ABR_SUCCESS) {
GOLOGE("HMS_ABR_UpdateCameraData execution failed, error code: %d.", errorCode);
return false;
}
//渲染前的准备,绑定目标帧缓冲索引,清空颜色缓冲 renderer_->BeginRenderTarget(fbo,BACKGROUND.x_, BACKGROUND.y_, BACKGROUND.z_, 1.0F);
//在Buffer渲染前调用,执行失败不影响Buffer正常渲染
errorCode = HMS_ABR_MarkFrameBuffer_GLES(context_);
if (errorCode != ABR_SUCCESS) {
GOLOGE("HMS_ABR_MarkFrameBuffer_GLES execution failed, error code: %d.", errorCode);
}
//调用绘制方法进行渲染
opaqueLayer_Render(sceneDelta, camera_.GetviewMatrix().lastViewProj_);
//获取每帧的缩放信息
float scale;
erorCode =HMS_ABR_GetScale(context_, &scale);
GOLOGD("Scale is %f, ", scale);
if (errorCode != ABR_SUCCESS) {
GOLOGE("HMS_ABR_GetScale execution failed, error code: %d.", errorCode);
}
//将帧缓冲索引绑定为默认值0
renderer_->EndRenderTarget();
据统计,多数游戏120FPS档位下,其实约70%渲染场景是没有变化的,因此主场景里将近7成的渲染都并非是必要的。
自适应刷新率可以根据游戏场景、玩家操作、CPU负载、GPU负载、手机温度等信息,智能地调整游戏帧率与屏幕刷新率,保证体验基础上实现降低功耗。在玩家休闲状态、游戏画面变化幅度小的情况下,帧率可适当调低,节省电量、控制温度;而在玩家操作剧烈、游戏画面急速变化时,帧率则提升到极致水平,保证玩家的游戏体验。
自适应刷新率接入架构示意图
自适应刷新率接入流程示意图
自适应刷新率接入代码:
//配置OpenGTX属性
errorCode=HMS_OpenGTX_SetConfiguration(contextGtx_, &configGtx);
if (errorCode != OPENGTX_SUCCESS) {
GOLOGE("HMS_OPENGTX_SetConfiguration execution failed, error code: %d.", errorCode);
return false;
}
//激活OpenGTX上下文实例
errorCode = HMS_OpenGTX_Activate(contextGtx_);
if (errorCode != OPENGTX_SUCCESS) {
GOLOGE("HMS_OpenGTX_Activate execution failed, error code: %d.", errorCode);
return false;
}
//发送游戏场景信息
OpenGTX_GameScenelnfo gameScenelnfo;
gameScenelnfo.scenelD=OTHERS_SCENE;
gameScenelnfo.description=OGBT_DESCRIPTION.data();
gameScenelnfo.recommendFPS=OGBT_RECOMMEND_FPS;
gameScenelnfo.minFPS=OGBT_MIN_FPS;
gameScenelnfo.maxFPS=OGBT_MAX_FPS;
gameScenelnfo.resolutionCurValue.height=OGBT_RES_HEIGHT;
gameScenelnfo.resolutionCurValue.width=OGBT_RES_WIDTH;
errorCode = HMS_OpenGTX_DispatchGameSceneInfo(contextGtx_, &gameSceneInfo);
if (errorCode != OPENGTX_SUCCESS) {
GOLOGE("HMS_OpenGTX_DispatchGameSceneInfo execution failed, error code: %d.", errorCode);
return false;
}
//发送游戏网络信息
OpenGTX_Networklnfo networklnfo;
networkInfo.networkLatency.down = OGBT_NETWORK_LATENCY_DOWN;
networklnfo.networkLatency.up= OGBT_NETWORK_LATENCY_UP;
networklnfo.networkLatency.total =OGBT_NETWORK_LATENCY_TOTAL;
networkInfo.networkServerlP=OGBT_NETWORK_SERVER_IP.data();
errorCode = HMS_OpenGTX_DispatchNetworklnfo(contextGtx_, &networklnfo);
if (errorCode != OPENGTX_SUCCESS) {
GOLOGE("HMS_OpenGTX_ DispatchNetworklnfo execution failed, error code: %d.", errorCode);
return false;
}
除了图形加速服务(Graphics Accelerate Kit),HarmonyOS SDK还提供更多图形开放能力,为游戏等重载应用的图形渲染提供帮助,帮助开发者打造高帧率、高画质、低功耗的用户体验。
探索更多
访问图形加速服务,了解更多详情开始使用。
*本文所提及数据均为内部实验室测试结果
*本文引用素材来自三方授权,因版本/机型不同可能存在变化,以实际为准。
更多关于释放超凡性能,打造HarmonyOS鸿蒙Next原生游戏卓越体验的实战教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS鸿蒙Next原生游戏卓越体验的核心在于其分布式架构和高效的系统优化。鸿蒙Next通过分布式软总线技术,实现了设备间的无缝协同,游戏可以在不同设备间流畅切换,提供一致的游戏体验。系统采用微内核设计,减少了系统资源的占用,提升了游戏的运行效率和响应速度。鸿蒙Next还支持GPU Turbo技术,通过智能调度和优化图形处理,显著提升了游戏的帧率和画质表现。此外,鸿蒙Next的AI引擎能够根据用户行为进行智能预测和资源分配,进一步优化游戏性能。这些技术共同作用,确保了鸿蒙Next原生游戏在性能、画质和流畅度上的卓越表现。
更多关于释放超凡性能,打造HarmonyOS鸿蒙Next原生游戏卓越体验的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS鸿蒙Next通过深度优化系统内核与硬件协同,为游戏提供极致的性能表现。其原生游戏引擎支持高帧率、低延迟,确保流畅操作与快速响应。同时,借助分布式技术,实现跨设备无缝切换,打造沉浸式游戏体验。开发者可充分利用鸿蒙生态,快速构建高性能游戏应用,满足玩家对极致体验的追求。