最近,我们与chukongtechnologie合作,开发cocos2d-x游戏引擎。我们将对此更新一系列相关文章,本文是第一篇。本文中,我将简单概述基于图形演示即fantasy warrior 3d的cocos2d-x的分析和优化过程。
何为cocos2d-x?
cocos2d-x是一套用c++编写的开源及跨平台游戏开发工具。其引擎是世界上最流行的开源游戏引擎,且根据最新的appbrain数据,这也是google play使用的继unity之后第二大流行的游戏引擎。
引擎历来都是2 d。然而过去几年里,chukongdui1引擎多元化,并添加3 d渲染来扩充其广受欢迎的2 d工具集。
何为fantasy warrior 3d?
fantasy warrior 3d是一款使用cocos2d-x 3.4的展示项目。其在cocos2d-x中是导入演示,覆盖了多个3d核心功能:
? sprite3d
? 动画3d
? 网格
? 布告板
? 摄像机
? 灯光
? 新音频引擎
其主要目的是向开发者展示如何使用cocos2d-x创建3d游戏,且其是一个理想的开端,可对使用cocos2d-x及powervr sdk工具集而创建的图形应用程序进行优化。
其代码放在github上,且在mit许可证下进行分配:
https://github.com/chukong/samplegame-fantasywarrior3d
powervr gpu架构概述
首先,让我们浏览一下powervr tbdr架构。
该架构有两个主要特点:镶嵌和延迟渲染。
镶嵌是用于提高显示器上图像渲染效率的过程。它将几何数据分为小的矩形区域,这些矩形区将显示为一个图像,即拼贴。
分别对每个拼贴进行栅格化和加工。长远来看,这对处理能力的需求更低,这是因为gpu可以使用片上缓冲对颜色、深度和模板缓冲区进行读取-修改-编写操作,而不是在系统内存中收发数据而浪费带宽。
延迟的情况下,有一个隐藏面消除(hsr)的过程,可以完全排除透支。
在典型的imr架构中,上方显示的场景为红色和紫色,但即使被接近的形状弄得含糊不清,场景的颜色也可以被计算。不过,我们的架构可以在着色器操作之前确定不透明片段的能见度,这可使gpu放弃所有片段的着色操作,不产生最终的图像颜色。排除多余的片段着色操作可以节省时间和处理功率。若您对tbdr感兴趣,可点击此处获取更多资讯。
分析图像处理器
为获得最佳性能,开始分析时需遵循三个原则。
? 使用合适的工具对性能进行分析,然后使用分析数据来识别瓶颈问题
? 找出应用程序中的瓶颈所在
? 修改程序,消除瓶颈问题
例如,如果有尚未压缩的纹理文件,而您又想减少内存带宽,您需要压缩纹理文件才能获得更好的性能。
常被忽略的一大重要要素是,可以完成整个周期并回到第一步,再运用分析工具来验证性能是否已经改善。这样进行回归分析,便不必再在应用程序中植入漏洞,避免性能损耗。
以下为完成上述步骤可使用的免费工具。
用于性能分析的powervr图像工具集
我们powervr工具和sdk可以为开发人员提供分析和调试工具。包括:
? pvrtune (图形核心性能分析工具)
? pvrtrace (opengl es分析工具)
? pvrmonitor (android应用程序,可查看实时硬件性能统计数据)
? pvrscope (在应用程序中集成pvrtune功能的工具)
? pvrshadereditor(着色器代码优化工具)。
pvrtune
pvrtune是一个实时硬件性能分析软件。它在设备上实时运行,让您可以看到所有来自gpu的数据,如定时数据。它还使您可以快速查看cpu和gpu性能,有助于缓解性能瓶颈。
结合pvrtrace记录库,pvrtune可以捕获opengl es api使用数据,如api调用时间和计数器(如,已提交的每帧的三角形数量和每帧的纹理修改数量)。pvrtrace库还允许用户实时修改opengl es渲染状态,如使所有纹理样本使用存储在图形核心缓存区的2×2图像。
想了解更多pvrtune资讯,请点击此处。
pvrtrace
pvrtrace是opengl es调用记录库和实用程序。该工具可以拦截opengl es调用,并保存到一个文件中,保存的调用可以在其他设备或台式机上运行。这样,便可以集中关注应用程序的图形api调用,而不用花费精力研究应用程序的渲染引擎代码。
记录可以在其他设备的linux系统、windows等上运行,以确定其在哪些系统中可以运行。pvrtrace也是一个图形用户界面(gui),可以分析api调用流,并允许以用户友好的方式对调用进行简单的检测。该工具一个强大的功能便是静态分析,可以反馈api中的错误信息,如哪些未压缩纹理已经被使用。
想了解更多pvrtrace资讯,请点击此处。
pvrmonitor
此工具是android应用程序,可以查看实时硬件性能统计数据。统计数据显示信息有关cpu上的处理器使用情况和powervr图形硬件,对性能的影响可以忽略不计。
数据展现形式为条形图,可以实时更新,并覆盖整个正在运行的应用程序。
想了解更多pvrmonitor资讯,请点击此处。
预告内容和扩展阅读
下一篇文章中,我将阐释如何使用上述工具来分析参考设备上fantasy warrior 3d的性能。
以下有关此类优化系列的文章,请供参考:
? 分析和调试powervr图形工具
? powervr图形sdk工具说明:pvrtune gui基础
? powervr图形sdk工具说明:使用pvrtune分析渲染
? powervr图形sdk工具说明:pvrtracegui基础
? powervr图形sdk工具说明:使用pvrtrace获取渲染
? powervr图形sdk工具说明:pvrtracegui的高级性能
? pvrtracegui内的规则表达式搜索
技术制造——pcb电路板的流程
推动云计算产业发展规范化的五个方面
视频AI进化论:从人脸识别1.0到智能视觉2.0 算力赋能智能视觉产品
浙江一学生发明“红外线隔空感应按钮” 可应用于非接触式电梯开关
盘点华为自研ARM服务器计算芯片
分析和优化使用PowerVR GPU的Cocos2d-x游戏引擎
超声波塑焊机焊接不牢固的原因和解决办法
对物联网在2018年需要关注其15个方面的趋势
薄膜和厚膜电阻有什么区别?
过压/欠压保护电路操作的分析
工业设计上索尼PK苹果,谁胜谁负?
对于服务器我们该如何搭建会比较好呢
射极输出器的7个特点及其7大应用领域
浅谈继电器知识及工作原理和作用
这么简单!G2L开发板安装Docker
PCB板怎样运用FC技术
网络连接存储器,什么是网络连接存储器
电源基础知识:电压调节 线性(模拟)稳压器
什么是基带同轴电缆
安卓端的串口通信实践讲解1