openGL应用复杂度评价
2017-04-25 19:42
363 查看
在项目中,需要对使用openGL绘制的图形应用、场景就复杂度进行评价并预测同类应用的绘制效率。在有程序源码的条件下,从静态统计和动态运行两方面进行分析。如下图

静态统计关注的是程序代码,主要统计代码中调用图形绘制命令的种类和次数,从类别和数量上了解程序的大致规模。另一方面,在图形流水线中,基本图元在光栅化中会被拆分成点、线和三角形这三种图元,因此能够在静态分析中,用软件模拟拆分,了解光栅化处理的数据量,定位顶点和像素处理的负载。
静态统计的实现,依靠函数重载,重载openGL命令比如glBegin、glVertex和glEnd等,在重载函数中加入统计信息的处理。
动态统计根据实际运行的情况,精确计算出处理的能力,具体而言,主机处理命令的时间可以看做软件时间、用glFinish绘制图形的时间为硬件时间。在得到软硬件时间的基础上,根据静态分析的结果能够得到,顶点帧率、顶点生成能力、像素帧率、像素生成能力等。进一步,在软件层面对点、线和三角形图元进行选择,得到仅绘制点、线、三角形和字符的帧率和处理能力。从而,发现应用特性和绘制瓶颈。
应用的评价,主要依靠对代码静态统计和动态运行两方面,静态统计确定代码规模,包括图元类型和数量;动态运行根据运行的软硬件时间,计算硬件的处理能力,反过来推测应用的绘制特性和瓶颈。

静态统计关注的是程序代码,主要统计代码中调用图形绘制命令的种类和次数,从类别和数量上了解程序的大致规模。另一方面,在图形流水线中,基本图元在光栅化中会被拆分成点、线和三角形这三种图元,因此能够在静态分析中,用软件模拟拆分,了解光栅化处理的数据量,定位顶点和像素处理的负载。
静态统计的实现,依靠函数重载,重载openGL命令比如glBegin、glVertex和glEnd等,在重载函数中加入统计信息的处理。
动态统计根据实际运行的情况,精确计算出处理的能力,具体而言,主机处理命令的时间可以看做软件时间、用glFinish绘制图形的时间为硬件时间。在得到软硬件时间的基础上,根据静态分析的结果能够得到,顶点帧率、顶点生成能力、像素帧率、像素生成能力等。进一步,在软件层面对点、线和三角形图元进行选择,得到仅绘制点、线、三角形和字符的帧率和处理能力。从而,发现应用特性和绘制瓶颈。
应用的评价,主要依靠对代码静态统计和动态运行两方面,静态统计确定代码规模,包括图元类型和数量;动态运行根据运行的软硬件时间,计算硬件的处理能力,反过来推测应用的绘制特性和瓶颈。
相关文章推荐
- [转] Carmack 谈 d3d 与 ogl, 定位专业应用的OpenGL, 专注娱乐应用的DirectX, 未来:OpenGL、DirectX并行发展
- 标签的应用比较复杂
- 看护者 --- 一个用来演示在普通KJava/J2ME手机上也能做复杂应用的程序
- 复杂数据类型在Web Service 上的应用
- 字节对齐预编译指令的复杂用法及应用场合
- AJAX应用过于复杂 不能满足高级用户
- 中间件——构筑复杂分布式应用的关键技术
- OpenGL基础图形编程 - 复杂物体建模
- 网络技术在电力安全性评价中应用
- VC多文档应用中OpenGL的使用
- ESB实现SOA 企业复杂应用解决措施
- (Reflection)认识反射(反射实例化,反射评价,在工厂三层架构应用)
- 中间件讨论--构筑复杂分布式应用的关键技术
- ESB实现SOA 企业复杂应用集成的解决措施(1)
- 中间件是构筑复杂分布式应用的关键技术
- 粒子群优化算法在复杂函数参数估计中的应用
- 企业ERP应用绩效的评价
- 中间件——构筑复杂分布式应用的关键技术(转)
- OPENGL中3DMAX模型的应用
- 复杂 SQL 应用