Direct3D应用程序分析与调试软件的研究与设计

论文价格:免费 论文用途:其他 编辑:mjt1985 点击次数:83
论文字数:67200 论文编号:sb201301261925566207 日期:2013-01-27 来源:硕博论文网

第一章绪论

1.1论文的研究背景

    Direct3D是微软公司在Microsoft Windows操作系统上所开发的一套3D绘l纠编程接口,是 DirectX的二维部分,目前广为各家显卡厂商所支持,与OpenGL同为电脑绘图软件和电脑游戏最常使用的两套绘图编程接口之一。Direct3D在计算机游戏设计中应用最为广泛,当前流行的二维射击、动作、冒险等类型的游戏绝大多数都是采用Direct3D开发完成的。由十Direct3D编程自身的复杂性,导致其应用程序尤其是大型游戏设计调试难度较大,开发周期较长,质量不易保证。同日寸对于显卡硬件厂商来说,无法预知Direct3D应用程序的行为导致驱动开发人员不易快速定位和查找驱动程序中存在的问题。在此背景下,研究和设计一套可以对Direct3D应用程序进行准确分析和方便调试的工具有着极其重要的意义。

1.2国内外相关的研究概况

    目前,为了满足游戏编程和驱动开发的需求,各大显卡硬件厂商纷纷推出了自己的性能分析和调试工具。NVIDIA公司开发的PerfHUD以及AMD公司开发的GPU PerfStudio,已经被众多游戏开发人员广泛的用在Direct3D应用程序中分析性能和调试设计,帮助他们在程序开发周期内就可以定位到程序中存在的性能瓶颈和质量问题,从而在一定程度上减少了程序开发周期。但是,出十商业竞争的考虑,这些软件被严格限制只能用在自家的显卡上,兼容性较差。另外,由于大部分商业游戏软件的版权限制,现有的工具软件一般来说只能用来分析调试自己的应用程序,通用性不够好。

1.3本文的主要研究工作

    本文设计实现了一套新的软件工具专门用来分析和调试Direct3D应用程序行为,软件由两大系统组成:Logger系统和Player系统。Logger系统可以在无法获知应用程序源代码的情况下,通过在操作系统底层安装Direct3D虚拟驱动层,在应用程序运行过程中实时拦截和记录应用程序行为,并翻译为自定义格式的脚本文件存储。Player系统以脚本文件为基础,通过脚本命令的回放实现了对Direct3D应用程序行为的分析和调试。Player系统支持回放过程中脚本命令的编辑和修改,同时还提供了多种不同的回放模式和控制方式,大大增强了脚本命令回放的操作性和可控性。除此之外,Player系统还支持回放过程中脚本命令渲染结果的实时显示和Direct3D流水管线上资源内容的实时查看,方便脚本命令的分析和调试。最后,Player系统专门设计了脚本简化功能,在保证渲染结果正确性的前提下,最大可能地去除脚本文件中冗余的和无用的脚本命令,精简脚本文件规模,提高脚本命令的回放速度和调试效率。

1.4本文的组织结构

    本文的组织结构如下:
    第二章介绍Direct3D的基础知识。主要介绍 Direct3D的流水管线,并对流水管线各个部分的功能和概念做了详细的阐述。
    第二章介绍Logger系统的设计和实现。主要介绍Logger系统的工作原理和工作方式,对脚本文件的组成和格式进行了描述,并阐述了脚本文件的解码实现。
    第四章介绍Player系统的设计和实现。主要介绍了Player系统几大功能模块的工作原理和实现方式,包括脚本文件管理,脚本文件回放和脚本文件简化。

 

    3.3 脚本文件组成........ 29-31
    3.4 脚本文件的解码........ 31-33
    3.5 本章小结 ........33-34
第四章 Direct3D 应用程序的 Player........ 34-78
    4.1 Player 系统概述........ 34-36
    4.2 脚本文件的管理........ 36-38
    4.3 脚本文件的解析........ 38-49
        4.3.1 Keyword ........ 39-44
        4.3.2 Name-Index ........ 44-45
        4.3.3 脚本命令的........ 45-49
    4.4 脚本文件的回放........ 49-63
        4.4.1 Direct3D 接口对象........ 49-51
        4.4.2 脚本文件回放........51-58
        4.4.3 资源查看器........ 58-63
    4.5 脚本文件的简化........ 63-77
        4.5.1 脚本命令解析........ 64-74
        4.5.2 脚本命令简化........ 74-77
        4.5.3 脚本简化实验........ 77
    4.6 本章小结........ 77-78
第五章 总结与展望........ 78-80
    5.1 总结 ........78-79
    5.2 展望 ........79-80


总结
    Direct3D是微软公司在Windows操作系统上开发的一套3D绘图编程接口,目前已经在电脑绘图软件和电脑游戏中得到了广泛应用。由于Direct3D编程自身的复杂性,导致其应用程序尤其是大型游戏设计调试难度较大,开发周期较长,质量不易保证,同时对十显卡硬件厂商来说,无法预知Direct3D应用程序的行为导致驱动开发人员不易快速定位和查找驱动程序中存在的问题。基于此研究背景,本文设计实现了一套新的软件工具专门用来分析和调试Direct3D应用程序行为,软件由两大系统组成:Logger系统和Player系统。
    Logger系统可以在无法获知应用程序源代码的情况下,通过在操作系统底层安装Direct3D虚拟驱动层,在应用程序运行过程中实时拦截和记录应用程序行为,并翻译为自定义格式的脚本文件存储。Logger系统支持多种工作模式包括Full Log,  Auto Log和Hotkey Log,用户可以在应用程序运行过程中的任意时间节点开启和关闭脚本文件的记录,控制方式非常灵活,也使得对应用程序行为的拦截和记录更有针对性。Logger系统支持脚本文件的解码功能,用十完成脚本文件从二进制格式到文本格式的转换,文本格式的脚本文件可以直接打开阅读和编辑,大大增强了脚本文件的可读性和操作的方便性以及灵活性,同时也是后续Player系统工作的基础。


参考文献
1.谢明.基于DirectX 9.0的3D游戏设计[D].成都:四川大学,2004.
2.土德才,杨关胜,孙玉萍.精通DirectX 3D图形与动画程序设计[M].北京:人民邮电出版社,2007.
3.Microsoft. Microsoft DirectX Documentation for C++[M].US: Microsoft Press,2009.
4.叶至军,于忠德.DirectX实时渲染技术详解[M].重庆:重庆大学出版社,2006.
5.GREG Snook. Real-T    ime 3D Terrain Engines Using C++ and DirectX 9[M].US: Charles River Media, 2003.
6.盛磊,于晓波.用Direct3 D描绘运动物体的轨迹[J].微计算机信息,2007,23(34):310一311.
7.Alan Watt.  3D Computer Graphics, Third Edition[M].US: Addison-Wesley,2000.
8.齐敏,郝重阳,咚明安.二维地形生成及实时显示技术研究进展[J].中国
9.秀明.基于桌面虚拟现实技术的虚拟驾驶系统的研究与开发[D].济南:济南大学,2008.
10.徐黎明.Visual C++下Direct3D坐标变换的实现[J].软件导刊,2008

 

 


 


QQ 1429724474 电话 18964107217