本发明专利技术公开了一种基于记录绘图指令的游戏录像及回放方法,包括(1)程序准备阶段,为原有图形应用程序添加录像功能;(2)录像阶段,经过步骤(1)修改的图形应用程序被执行,在开启录像功能后,由于步骤(1)把程序中所有调用图形编程接口的地方都对调用的函数和参数作了记录,录像数据即由此生成;(3)回放阶段,把录像数据作为录像回放程序的输入,回放程序依次读取文件中的函数代号和函数参数,调用相应的图形编程接口中的绘图函数,使得图形显示设备上产生与录像阶段相同的动态画面。该方法录像生成的数据量少,具有通用性和平台无关性,对程序代码的改动少,易于后续升级和维护。
【技术实现步骤摘要】
本专利技术涉及一种录像及回放方法,具体是。
技术介绍
在计算机游戏中,将游戏的实时 过程进行保存,并在需要时重放给用户观看,是一种很常见的附加功能,它使得用户可以欣赏自己或他人游戏过程中的精彩片段,并对游戏过程中包含的经验教训进行回顾、总结、学习。因而录像及回放功能对于计算机游戏的用户体验具有很大的提升作用。现有的对游戏过程进行录像及回放的方案可归类为两种一种是记录输出到显示设备上的动态画面,并用常用的视频压缩编码技术(如AVI,MPEG等)对此动画作压缩,生成视频文件,回放时用相应的视频解码算法解压缩并输出显示。其典型实例为计算机上的各种屏幕录像软件,该方案的缺点是,由于动态图像数据的压缩使用的是通用的视频压缩算法,其压缩率较为有限,导致最终生成的录像数据量较大,并且其运算复杂度也较高,以至于无法在性能受限的设备诸如手机上得到实时处理。另一种是仅记录游戏过程中影响程序输出结果的关键数据,包括用户的键盘、鼠标、触摸屏等终端输入设备的操作(在采用消息机制的游戏程序里,这些数据被封装成消息体进行分发和处理)、程序中用到的伪随机数种子值等等,在需要回放时,将这些数据按照与记录时相同的时序输入给游戏程序,由于程序是相同的,它必然对相同的输入产生同样的输出结果,因此也达到了再现游戏过程的目的。该方案的缺点在于不具备通用性,针对每一种特定的游戏,都需要此游戏程序的开发者自己来实现记录和回放的程序逻辑,并且随着游戏的修改或升级,录像所需的数据也可能会随之变化,造成与录像相关的程序代码也必须变动,录像文件格式在不同版本间难以兼容,在不同平台间难以移植,维护困难。专利技术内容针对上述现有技术存在的问题,本专利技术基于对通用图形编程接口调用的记录,提供一种兼具通用性和高压缩率的游戏录像的记录和回放方法,该方法不依赖于特定的游戏程序和操作系统平台,只需要游戏的开发者对已有的代码作少许改动就能实现录像功能,并且具有较高的数据压缩率,可以在内存和处理器性能都较为受限的移动计算设备上实现实时处理和存储。为了实现上述目的,本专利技术是在图形应用程序(Graphic Application,GApp)与图形编程接口(Graphic API, GAPI)层的中间,插入一个录像接口(Recorder Interface, RI)层,用以监视并记录应用程序对绘图API的调用,实现该录像方法的前提条件是已有具备正确功能的图形应用程序,它向图形编程接口发出绘图指令,图形编程接口根据收到的指令向操作系统发出与具体硬件平台关联的绘图指令,在图形显示设备(Graphic Device,⑶)上展示出动态图像,该方法包括以下步骤(I)、程序准备阶段,为原有图形应用程序添加录像功能,具体是a.编写实现录像功能主体部分的动态/静态链接库或源码库,称作录像链接库(Recorder Linked Library, RLL),对于每个被应用程序调用的图形编程接口中的函数,录像链接库都提供一个与其具有相同接口,即具有相同的参数列表的代理函数,该函数完成两部分任务al.以相同的参数调用图形编程接口中的相应函数,a2.将表示该函数的数字代号和用以调用此函数的有关参数,记录并进行必要压缩,写入到输出数据流;b.将上一步骤所述的链接库引入到原有的图形应用程序,需要修改原图形应用程序的代码,把对于原图形编程接口的引用改为对于a步骤所述的录像链接库的引用,录像链接库的编写方式使得调用原图形编程接口的程序代码与调用录像链接库中对应接口的程序代码相同;c.将程序代码与录像链接库编译、链接,生成最终的可执行文件。(2)、录像阶段,经过步骤(I)修改的图形应用程序被执行,在开启录像功能后,由 于步骤(I)把程序中所有调用图形编程接口的地方都对调用的函数和参数作了记录,录像数据即由此生成。(3)、回放阶段,把录像数据作为录像回放程序的输入,回放程序依次读取文件中的函数代号和函数参数,调用相应的图形编程接口中的绘图函数,使得图形显示设备上产生与录像阶段相同的动态画面。本专利技术的有益效果是1、录像生成的数据量少。录像过程所记录的原始数据是图形编程接口的函数代号及函数参数,而非图像数据,因此最终生成的录像数据量大为降低,有利于实现实时地压缩和存储,以及减少网络传输所需的通信流量,特别是在内存、处理器性能和带宽资源都相对受限的移动终端上。2、该方法具有通用性和平台无关性。绝大多数图形应用程序在底层都使用与硬件和操作系统无关的开放图形编程接口(如OpenGL、DirectX等)进行图像绘制,因而该方法通过记录图形编程接口的函数调用实现录像,就在很大程度上保证了与具体的应用程序、系统及硬件平台无关,任意一个图形应用程序都可以使用该方法实现录像功能,并且生成的录像数据可以在任意平台的回放程序中播放。3、对程序代码的改动少,易于后续升级和维护。实现录像功能的链接库代码是预先编写好的,针对同一种图形编程接口只需使用同一个链接库,并且链接库的编写和导入方式都考虑到了其使用的便利性,因此游戏的开发人员在编程过程中无需考虑怎样实现录像功能,而只需在已有的不含录像功能的代码基础之上,修改少量代码,即可得到包含录像功能的程序,节约了游戏开发人员的精力,由于录像功能的添加只会对原有代码作很少量的修改,也便利了后续的升级和维护。附图说明图I是本专利技术录像功能的图形应用程序层次结构图;图2是本专利技术录像接口运行流程图;图3是本专利技术的回放流程图。具体实施方式下面结合附图对本专利技术做进一步说明。如图I、图2和图3所示,该方法在图形应用程序(Graphic Application,GApp)与图形编程接口(Graphic API, GAPI)层的中间,插入一个录像接口(RecorderInterface,RI)层,用以监视并记录应用程序对绘图API的调用,实现该录像方法的前提条件是已有功能具备正确的图形应用程序,它向图形编程接口发出绘图指令,图形编程接口根据收到的指令向操作系统发出与具体硬件平台关联的绘图指令,在图形显示设备(Graphic Device,⑶)上展示出动态图像。该录像及回放功能包括(I)程序准备阶段,为原有图形应用程序添加录像功能,具体是a.编写实现录像功能主体部分的动态/静态链接库或源码库,称作录像链接库(Recorder Linked Library,RLL)。对于每个被应用程序调用的图形编程接口中的函数,录像链接库都提供一个与其具有相同接口(即具有相同的参数列表)的代理函数,该函数完成两部分任务al.以相同的参数调用图形编程接口中的相应函数;a2.将表示该函数的数字代号和用以调用此函数的有关参数,记录并进行必要压缩,写入到输出数据流。每一种图形 编程接口对应一个录像链接库,只要使用的图形编程接口相同,同一个链接库可反复用于向不同的应用程序添加录像功能。b.将上一步骤所述的链接库引入到原有的图形应用程序,需要修改原图形应用程序的代码,把对于原图形编程接口的引用改为对于a步骤所述的录像链接库的引用。为了尽量减少该步骤的工作量,录像链接库的编写方式应使得调用原图形编程接口的程序代码与调用录像链接库中对应接口的程序代码相同。具体地,对于以C、C++或Objective-C等语言编写的程序,a步骤会提供一个供原图形本文档来自技高网...
【技术保护点】
一种基于记录绘图指令的游戏录像及回放方法,其特征在于,在图形应用程序(Graphic?Application,GApp)与图形编程接口(Graphic?API,GAPI)层的中间,插入一个录像接口(Recorder?Interface,RI)层,用以监视并记录应用程序对绘图API的调用,实现该录像方法的前提条件是已有具备正确功能的图形应用程序,它向图形编程接口发出绘图指令,图形编程接口根据收到的指令向操作系统发出与具体硬件平台关联的绘图指令,在图形显示设备(Graphic?Device,GD)上展示出动态图像,该方法包括以下步骤:(1)、程序准备阶段,为原有图形应用程序添加录像功能,具体是:a.编写实现录像功能主体部分的动态/静态链接库或源码库,称作录像链接库(Recorder?Linked?Library,RLL),对于每个被应用程序调用的图形编程接口中的函数,录像链接库都提供一个与其具有相同接口,即具有相同的参数列表的代理函数,该函数完成两部分任务:a1.以相同的参数调用图形编程接口中的相应函数,a2.将表示该函数的数字代号和用以调用此函数的有关参数,记录并进行必要压缩,写入到输出数据流;b.将上一步骤所述的链接库引入到原有的图形应用程序,需要修改原图形应用程序的代码,把对于原图形编程接口的引用改为对于a步骤所述的录像链接库的引用,录像链接库的编写方式使得调用原图形编程接口的程序代码与调用录像链接库中对应接口的程序代码相同;c.将程序代码与录像链接库编译、链接,生成最终的可执行文件。(2)、录像阶段,经过步骤(1)修改的图形应用程序被执行,在开启录像功能后,由于步骤(1)把程序中所有调用图形编程接口的地方都对调用的函数和参数作了记录,录像数据即由此生成。(3)、回放阶段,把录像数据作为录像回放程序的输入,回放程序依次读取文件中的函数代号和函数参数,调用相应的图形编程接口中的绘图函数,使得图形显示设备上产生与录像阶段相同的动态画面。...
【技术特征摘要】
【专利技术属性】
技术研发人员:邱东,
申请(专利权)人:邱东,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。