位置: 编程技术 - 正文
推荐整理分享测试Qt Quick在各个平台上的3D渲染性能,希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
Qt是一个跨平台的GUI框架,它的QtQuick更是支持结合OpenGL原生的代码进行渲染。我想将我以前写的程序整合到QtQuick上来,看看渲染效果是否满意,于是写了一个小小的程序,来做一下渲染基准测试。运行结果出来,不容乐观呐。
蒋彩阳原创文章,首发地址: 首先为了描述最基本的情况,我制作了一个带有纹理的立方体。它使用透视投影,并且辅以简单的着色器来完成贴图,最终得以渲染。渲染代码可能比较长,但也是相当精简了。
最终的效果是这样的:
一个非常简单的立方体,使用了个顶点、个三角形以及1个纹理图像。使用OpenGLES 2.0的代码来看,这个是非常简单的。在这个例子的基础上,我做了一些改进,使用动态载入QML文件的方法创建component,作为窗口的孩子进行渲染。同时,我也做了一个简单的FPS功能,就这样尝试在不同的平台下渲染的性能究竟如何。
首先来看看我们的Android系统,我有一个台电平板电脑A,是Android系统的,拥有1G内存。用它来测试一下渲染性能,看看是否给力。结果呢,还是挺争气的。
我发誓,为了得到这三张截图,我不知道重启程序究竟多少次。主要是因为在这么高密度的渲染下,使用Android程序自带的截图,就变得无比困难。很多时候没有等到你截图,程序就闪退了,更有甚者,还会重启系统。
在Android下,当渲染个以下的顶点时,FPS还是挺不错的,可以一直保持,但是到了个以上,系统就有些吃不消了,FPS会一直下降,而到了以上,基本到了崩溃的边缘了,我也是碰巧能够截下当顶点为时候的截图。总之看到Qt结合OpenGL在Android渲染的瓶颈了。
接下来就是Windows Phone系统了,我的WindowsPhone手机是新款的低端手机,Lumia,内存只有M。我对它能不能顶得住渲染感到怀疑。
实验结果表明,我的Lumia系统性能还是不行,由于渲染字体glyph的问题,渲染的字体都没有办法显示了。但是立方体还是能够看到的,我随便点了点,发现在创建立方体的一瞬间会卡住,但是创建了之后渲染依然很流畅。由于没有数据,我们也不知道最终的结果怎么样……
最后则是我们的PC客户端登场了。在渲染这一点PC客户端的确当仁不让,效率比手机平台好了不知道多少倍!两万个顶点也能够保持FPS为。
当然,这可能与视口更新有关。如图所见,的确PC这边的视口是比较小。
但是,我们要关注移动端的渲染性能,既然要做跨平台的程序,那么根据木桶原则,我们必须照顾性能最低的一端,也就是说,为了覆盖更多的用户群,我们在做性能测试的时候,要选用尽可能低配置的机器测试才行。
寒假捉虫记——从一段损坏的调用栈开始折腾 放假在家,继续调试《家园》。目前的进度是MinGW上的编译链接都已通过,游戏程序也已经可以跑起来并进入主菜单界面,但加载关卡之后就会闪退。这
shader漫反射模拟 给物体增加光照可以提升场景的立体感,可以用shader实现光照模拟效果.一般物体光照包括了环境光,漫反射和镜面光,通常光滑的物体可以看到镜面光效果,
学习Nehe Lesson2 && Lesson3 Lesson2和Lesson3是关于多边形绘制的内容,程序结构和第一课完全一样,只是在intDrawGLScene(GLvoid)这个函数中添加了绘图的内容。绘制的是基本图形三角形
友情链接: 武汉网站建设