CN103279968B - 检测移动端设备上gpu渲染动画像素碰撞的方法和装置 - Google Patents
检测移动端设备上gpu渲染动画像素碰撞的方法和装置 Download PDFInfo
- Publication number
- CN103279968B CN103279968B CN201310168448.XA CN201310168448A CN103279968B CN 103279968 B CN103279968 B CN 103279968B CN 201310168448 A CN201310168448 A CN 201310168448A CN 103279968 B CN103279968 B CN 103279968B
- Authority
- CN
- China
- Prior art keywords
- framing bit
- transformation matrix
- pixel
- primary bitmap
- primary
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明提供一种检测移动端设备上GPU渲染动画像素碰撞的方法,包括以下步骤:当需要检测对象A和对象B是否发生像素碰撞时,获取当前时刻对象A对应的变换矩阵A以及位置A,还获取对象B对应的变换矩阵B以及位置B;然后通过读取所述配置文件,获取当前帧对象A的帧位图A和当前帧对象B的帧位图B;结合帧位图A、变换矩阵A和位置A,生成模拟的原生位图A;结合帧位图B、变换矩阵B和位置B,生成模拟的原生位图B;比对原生位图A和原生位图B的像素,从而检测原生位图A和原生位图B是否发生像素碰撞,进而直接检测得到对象A和对象B在当前时刻是否发生像素碰撞。能够有效提高碰撞检测精度,从而提高玩家游戏体验。
Description
技术领域
本发明属于移动终端技术领域,具体涉及一种检测移动端设备上GPU渲染动画像素碰撞的方法和装置。
背景技术
GPU渲染,就是像素渲染或像素填充,通过GPU渲染,可以提高图形显示效果,同时,降低CPU负担。尤其对于智能手机等移动终端,已广泛采用GPU渲染技术。
电脑等终端设备,动画碰撞检测方式主要包括:(一)矩形碰撞检测方式:每个物体记录一个能够将自己框住的最小矩形的左上角坐标和矩形长宽,通过判断两个物体的矩形与矩形之间是否发生重叠,从而判断这两个物体是否发生碰撞。该种方法具有碰撞检测精度低的问题。(二)像素碰撞检测方式:通过判断两个对象的像素是否发生重叠,从而判断判断两个对象是否碰撞。由于已精确到像素级,所以,具有碰撞检测精度高的优点,但由于碰撞检测算法通常较复杂,所以,对硬件要求较高。
但是,对于移动端的GPU渲染动画,虽然画面显示效果大幅度提升,但是,由于动画被GPU渲染,无法获取对象的像素,因此,无法采用上述的像素碰撞检测方式,而通常只能采用矩形碰撞检测方式,所以,具有碰撞检测不准确的问题,对于各类游戏,会导致玩家游戏体验差的问题。
发明内容
针对现有技术存在的缺陷,本发明提供一种检测移动端设备上GPU渲染动画像素碰撞的方法和装置,能够有效提高碰撞检测精度,从而提高玩家游戏体验。
本发明采用的技术方案如下:
本发明提供一种检测移动端设备上GPU渲染动画像素碰撞的方法,包括以下步骤:
S1,获取GPU渲染动画生成过程中所使用的各个对象的序列图以及配置文件;其中,每个对象的序列图包括多个帧位图;通过所述配置文件定位各个对象的帧位图;
S2,单独存储获取到的所述各个对象的序列图以及配置文件;
S3,当需要检测对象A和对象B是否发生像素碰撞时,获取当前时刻对象A对应的变换矩阵A以及位置A,还获取对象B对应的变换矩阵B以及位置B;然后通过读取所述配置文件,获取当前帧对象A的帧位图A和当前帧对象B的帧位图B;
S4,结合帧位图A、变换矩阵A和位置A,生成模拟的原生位图A;结合帧位图B、变换矩阵B和位置B,生成模拟的原生位图B;
S5,比对原生位图A和原生位图B的像素,从而检测原生位图A和原生位图B是否发生像素碰撞,进而直接检测得到对象A和对象B在当前时刻是否发生像素碰撞。
优选的,S1中,每个对象的各个帧位图存储在一张图片上;所述配置文件由多个配置表组成,每一个所述配置表用于记录一个对象的各个帧位图的位置信息。
优选的,每一个帧位图被最小矩形框包围;所述配置表记录各个帧位图名称、最小矩形框角坐标、最小矩形框长度值和最小矩形框宽度值。
优选的,所述变换矩阵A用于:通过对所述对象A的帧位图A进行变换矩阵A运算,得到在显示屏幕上显示的对象A的图片;
所述变换矩阵B用于:通过对所述对象B的帧位图B进行变换矩阵B运算,得到在显示屏幕上显示的对象B的图片。
优选的,所述变换矩阵A用于对对象A的帧位图A进行缩放操作和旋转操作;所述变换矩阵B用于对对象B的帧位图B进行缩放操作和旋转操作。
优选的,S5具体包括以下步骤:
S51,原生位图A中的对象A被最小矩形A包围,原生位图B中的对象B被最小矩形B包围,首先对原生位置A和原生位图B进行矩形碰撞检测,判断最小矩形A和最小矩形B是否有重叠;如果没有重叠,则得到对象A和对象B没有发生碰撞的结论;如果有重叠,则执行S52;
S52,对最小矩形A和最小矩形B的重叠区域进行像素碰撞检测,得出对象A和对象B是否发生像素碰撞的结论。
本发明提供一种检测移动端设备上GPU渲染动画像素碰撞的装置,包括:
获取模块,用于获取GPU渲染动画生成过程中所使用的各个对象的序列图以及配置文件;其中,每个对象的序列图包括多个帧位图;通过所述配置文件定位各个对象的帧位图;
存储模块,用于单独存储所述获取模块获取到的所述各个对象的序列图以及配置文件;
检测模块,用于检测对象A和对象B是否发生像素碰撞;
其中,所述检测模块包括:
获取子模块,用于获取当前时刻对象A对应的变换矩阵A以及位置A,还获取对象B对应的变换矩阵B以及位置B;然后通过读取所述配置文件,获取当前帧对象A的帧位图A和当前帧对象B的帧位图B;
模拟子模块,用于结合帧位图A、变换矩阵A和位置A,生成模拟的原生位图A;结合帧位图B、变换矩阵B和位置B,生成模拟的原生位图B;
检测子模块,用于比对原生位图A和原生位图B的像素,从而检测原生位图A和原生位图B是否发生像素碰撞,进而直接检测得到对象A和对象B在当前时刻是否发生像素碰撞。
本发明的有益效果如下:
本发明提供的检测移动端设备上GPU渲染动画像素碰撞的方法和装置,显卡上显示GPU渲染动画,由存储器单独保存原生序列图,通过CPU将原生序列图模拟生成原生位图,通过判断两个原生位图是否发生像素碰撞,最终推导出两个对象物是否发生像素碰撞,因此,能够有效提高碰撞检测精度,从而提高玩家游戏体验。
附图说明
图1为本发明提供的检测移动端设备上GPU渲染动画像素碰撞的方法流程示意图;
图2为本发明提供的检测移动端设备上GPU渲染动画像素碰撞的装置结构示意图。
具体实施方式
以下结合附图对本发明进行详细说明:
如图1所示,本发明提供一种检测移动端设备上GPU渲染动画像素碰撞的方法,包括以下步骤:
S1,获取GPU渲染动画生成过程中所使用的各个对象的序列图以及配置文件;其中,每个对象的序列图包括多个帧位图;通过所述配置文件定位各个对象的帧位图;
为方便存储,可以将每个对象的各个帧位图存储在一张图片上;配置文件由多个配置表组成,每一个配置表用于记录一个对象的各个帧位图的位置信息。其中,每一个帧位图被最小矩形框包围;配置表可以记录各个帧位图名称、最小矩形框角坐标、最小矩形框长度值和最小矩形框宽度值,通过最小矩形框角坐标、最小矩形框长度值和最小矩形框宽度值三个信息,可以定义得到唯一一个矩形,从而实现通过配置表定位所需帧位图的目的。
S2,单独存储获取到的所述各个对象的序列图以及配置文件。
所存储的各个对象的序列图为原生图片,没有经过GPU渲染。
S3,当需要检测对象A和对象B是否发生像素碰撞时,获取当前时刻对象A对应的变换矩阵A以及位置A,还获取对象B对应的变换矩阵B以及位置B;然后通过读取所述配置文件,获取当前帧对象A的帧位图A和当前帧对象B的帧位图B。
例如,对于对象A,配置文件共存储编号为1-10共10个帧的帧位图,每一个帧位图均对应一个播放时刻,例如:第1分钟、第2分钟...第10分钟。当动画展示到第3分钟播放时刻时,通过查找配置文件,即可查找到第3帧的帧位图为所需的帧位图。
但是,由于所存储的帧位图需要经过一定的处理才被显示到屏幕上,变换矩阵A和变换矩阵B即是该种作用。具体的,通过对对象A的帧位图A进行变换矩阵A运算,得到在显示屏幕上显示的对象A的图片;通过对所述对象B的帧位图B进行变换矩阵B运算,得到在显示屏幕上显示的对象B的图片。进一步的,变换矩阵用于对帧位图进行缩放操作或旋转操作。
S4,结合帧位图A、变换矩阵A和位置A,生成模拟的原生位图A;结合帧位图B、变换矩阵B和位置B,生成模拟的原生位图B;
由于帧位图需要经过变换矩阵的处理,才会被显示到屏幕上。因为,为了准确的在后台模拟还原帧位图的实际显示效果,需要在后台对帧位图进行相应操作,从而得到模拟的原生位图,因此,所得到的模拟原生位图与屏幕上显示的位图相比,除没有进行GPU渲染外,其他表现形式完全相同。从而达到通过判断两个原生位图是否碰撞,而得到屏幕上显示的对象物是否发生碰撞的效果。
S5,比对原生位图A和原生位图B的像素,从而检测原生位图A和原生位图B是否发生像素碰撞,进而直接检测得到对象A和对象B在当前时刻是否发生像素碰撞。
本步骤具体包括以下步骤:
S51,原生位图A中的对象A被最小矩形A包围,原生位图B中的对象B被最小矩形B包围,首先对原生位置A和原生位图B进行矩形碰撞检测,判断最小矩形A和最小矩形B是否有重叠;如果没有重叠,则得到对象A和对象B没有发生碰撞的结论;如果有重叠,则执行S52;
S52,对最小矩形A和最小矩形B的重叠区域进行像素碰撞检测,得出对象A和对象B是否发生像素碰撞的结论。
在比对两个原生位图时,首先采用矩形碰撞检测方法,如果没有发生矩形碰撞,则可以毫无疑义的得出两个位图没有发生碰撞的结论。只有当发生矩形碰撞时,才进行像素碰撞检测。通过该种方式,可以简化碰撞检测的复杂度,提高碰撞检测的效率。
如图2所示,本发明还提供一种检测移动端设备上GPU渲染动画像素碰撞的装置,包括:
获取模块,用于获取GPU渲染动画生成过程中所使用的各个对象的序列图以及配置文件;其中,每个对象的序列图包括多个帧位图;通过所述配置文件定位各个对象的帧位图;
存储模块,用于单独存储所述获取模块获取到的所述各个对象的序列图以及配置文件;
检测模块,用于检测对象A和对象B是否发生像素碰撞;
其中,所述检测模块包括:
获取子模块,用于获取当前时刻对象A对应的变换矩阵A以及位置A,还获取对象B对应的变换矩阵B以及位置B;然后通过读取所述配置文件,获取当前帧对象A的帧位图A和当前帧对象B的帧位图B;
模拟子模块,用于结合帧位图A、变换矩阵A和位置A,生成模拟的原生位图A;结合帧位图B、变换矩阵B和位置B,生成模拟的原生位图B;
检测子模块,用于比对原生位图A和原生位图B的像素,从而检测原生位图A和原生位图B是否发生像素碰撞,进而直接检测得到对象A和对象B在当前时刻是否发生像素碰撞。
本发明提供的检测移动端设备上GPU渲染动画像素碰撞的方法和装置,显卡上显示GPU渲染动画,由存储器单独保存原生序列图,通过CPU将原生序列图模拟生成原生位图,通过判断两个原生位图是否发生像素碰撞,最终推导出两个对象物是否发生像素碰撞,因此,能够有效提高碰撞检测精度,从而提高玩家游戏体验。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (7)
1.一种检测移动端设备上GPU渲染动画像素碰撞的方法,其特征在于,包括以下步骤:
S1,获取GPU渲染动画生成过程中所使用的各个对象的序列图以及配置文件;其中,每个对象的序列图包括多个帧位图;通过所述配置文件定位各个对象的帧位图;
S2,单独存储获取到的所述各个对象的序列图以及配置文件;
S3,当需要检测对象A和对象B是否发生像素碰撞时,获取当前时刻对象A对应的变换矩阵A以及位置A,还获取对象B对应的变换矩阵B以及位置B;然后通过读取所述配置文件,获取当前帧对象A的帧位图A和当前帧对象B的帧位图B;
S4,结合帧位图A、变换矩阵A和位置A,生成模拟的原生位图A;结合帧位图B、变换矩阵B和位置B,生成模拟的原生位图B;
S5,比对原生位图A和原生位图B的像素,从而检测原生位图A和原生位图B是否发生像素碰撞,进而直接检测得到对象A和对象B在当前时刻是否发生像素碰撞。
2.根据权利要求1所述的检测移动端设备上GPU渲染动画像素碰撞的方法,其特征在于,S1中,每个对象的各个帧位图存储在一张图片上;所述配置文件由多个配置表组成,每一个所述配置表用于记录一个对象的各个帧位图的位置信息。
3.根据权利要求2所述的检测移动端设备上GPU渲染动画像素碰撞的方法,其特征在于,每一个帧位图被最小矩形框包围;所述配置表记录各个帧位图名称、最小矩形框角坐标、最小矩形框长度值和最小矩形框宽度值。
4.根据权利要求2所述的检测移动端设备上GPU渲染动画像素碰撞的方法,其特征在于,所述变换矩阵A用于:通过对所述对象A的帧位图A进行变换矩阵A运算,得到在显示屏幕上显示的对象A的图片;
所述变换矩阵B用于:通过对所述对象B的帧位图B进行变换矩阵B运算,得到在显示屏幕上显示的对象B的图片。
5.根据权利要求4所述的检测移动端设备上GPU渲染动画像素碰撞的方法,其特征在于,所述变换矩阵A用于对对象A的帧位图A进行缩放操作和旋转操作;所述变换矩阵B用于对对象B的帧位图B进行缩放操作和旋转操作。
6.根据权利要求1所述的检测移动端设备上GPU渲染动画像素碰撞的方法,其特征在于,S5具体包括以下步骤:
S51,原生位图A中的对象A被最小矩形A包围,原生位图B中的对象B被最小矩形B包围,首先对原生位置A和原生位图B进行矩形碰撞检测,判断最小矩形A和最小矩形B是否有重叠;如果没有重叠,则得到对象A和对象B没有发生碰撞的结论;如果有重叠,则执行S52;
S52,对最小矩形A和最小矩形B的重叠区域进行像素碰撞检测,得出对象A和对象B是否发生像素碰撞的结论。
7.一种检测移动端设备上GPU渲染动画像素碰撞的装置,其特征在于,包括:
获取模块,用于获取GPU渲染动画生成过程中所使用的各个对象的序列图以及配置文件;其中,每个对象的序列图包括多个帧位图;通过所述配置文件定位各个对象的帧位图;
存储模块,用于单独存储所述获取模块获取到的所述各个对象的序列图以及配置文件;
检测模块,用于检测对象A和对象B是否发生像素碰撞;
其中,所述检测模块包括:
获取子模块,用于获取当前时刻对象A对应的变换矩阵A以及位置A,还获取对象B对应的变换矩阵B以及位置B;然后通过读取所述配置文件,获取当前帧对象A的帧位图A和当前帧对象B的帧位图B;
模拟子模块,用于结合帧位图A、变换矩阵A和位置A,生成模拟的原生位图A;结合帧位图B、变换矩阵B和位置B,生成模拟的原生位图B;
检测子模块,用于比对原生位图A和原生位图B的像素,从而检测原生位图A和原生位图B是否发生像素碰撞,进而直接检测得到对象A和对象B在当前时刻是否发生像素碰撞。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310168448.XA CN103279968B (zh) | 2013-05-09 | 2013-05-09 | 检测移动端设备上gpu渲染动画像素碰撞的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310168448.XA CN103279968B (zh) | 2013-05-09 | 2013-05-09 | 检测移动端设备上gpu渲染动画像素碰撞的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103279968A CN103279968A (zh) | 2013-09-04 |
CN103279968B true CN103279968B (zh) | 2015-11-18 |
Family
ID=49062475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310168448.XA Active CN103279968B (zh) | 2013-05-09 | 2013-05-09 | 检测移动端设备上gpu渲染动画像素碰撞的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103279968B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105865469B (zh) * | 2016-03-31 | 2019-06-04 | 百度在线网络技术(北京)有限公司 | 一种导航信息标签布局方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101038669A (zh) * | 2007-04-12 | 2007-09-19 | 上海交通大学 | 全局异常信号环境下基于联合显著图的鲁棒图像配准方法 |
CN101071515A (zh) * | 2007-06-25 | 2007-11-14 | 北京金山软件有限公司 | 一种在服务器端实现三维游戏碰撞检测的方法 |
CN101458825A (zh) * | 2009-01-04 | 2009-06-17 | 腾讯科技(深圳)有限公司 | 显卡中实现3d骨骼动画模型的碰撞检测方法及显卡、系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6653776B1 (en) * | 2000-06-28 | 2003-11-25 | International Business Machines Corporation | Discrete magnets in dielectric forming metal/ceramic laminate and process thereof |
JP4382117B2 (ja) * | 2007-07-25 | 2009-12-09 | 株式会社スクウェア・エニックス | 画像生成装置及び方法、並びにプログラム及び記録媒体 |
-
2013
- 2013-05-09 CN CN201310168448.XA patent/CN103279968B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101038669A (zh) * | 2007-04-12 | 2007-09-19 | 上海交通大学 | 全局异常信号环境下基于联合显著图的鲁棒图像配准方法 |
CN101071515A (zh) * | 2007-06-25 | 2007-11-14 | 北京金山软件有限公司 | 一种在服务器端实现三维游戏碰撞检测的方法 |
CN101458825A (zh) * | 2009-01-04 | 2009-06-17 | 腾讯科技(深圳)有限公司 | 显卡中实现3d骨骼动画模型的碰撞检测方法及显卡、系统 |
Non-Patent Citations (2)
Title |
---|
3D游戏程序设计中碰撞检测的数学方法;张云苑;《电脑知识与技术》;20100925;第16卷(第27期);全文 * |
浅谈手机游戏中的碰撞检测;车念;《技术研发》;20091115;第16卷(第11期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103279968A (zh) | 2013-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102800065B (zh) | 基于二维码识别跟踪的增强现实设备及方法 | |
US9183675B2 (en) | Apparatus and method for augmented reality | |
US20190392648A1 (en) | Image display method and device | |
CN105512377A (zh) | 实时虚拟场景中圆柱碰撞体与凸体碰撞探测的方法和系统 | |
CN105635848A (zh) | 一种弹幕显示方法及终端 | |
CN105872820A (zh) | 添加视频标签的方法和装置 | |
CN108924538A (zh) | Ar设备的屏幕拓展方法 | |
CN108322359A (zh) | 一种页面首屏时间的获取方法和装置 | |
CN112055254B (zh) | 视频播放的方法、装置、终端及存储介质 | |
US20210374902A1 (en) | Method and Apparatus for Generating Sample Image and Electronic Device | |
CN104995622A (zh) | 用于图形函数的合成器支持 | |
CN110807161A (zh) | 一种页面骨架渲染方法、装置、设备及介质 | |
CN110727825A (zh) | 动画播放的控制方法、装置、服务器和存储介质 | |
CN112700519A (zh) | 动画展示方法、装置、电子设备及计算机可读存储介质 | |
CN111182338A (zh) | 一种视频处理方法、装置、存储介质及电子设备 | |
CN106569805A (zh) | 一种画布存储、图形绘制方法和设备 | |
WO2024174971A1 (zh) | 视频处理方法、装置、设备和存储介质 | |
CN115082788A (zh) | 气压中心识别方法、装置、电子设备及存储介质 | |
CN103279968B (zh) | 检测移动端设备上gpu渲染动画像素碰撞的方法和装置 | |
CN105635703A (zh) | 基于图像几何矫正坐标压缩的投影方法和装置以及投影仪 | |
CN104517309A (zh) | 帧循环中的动画处理方法和装置 | |
CN106775634B (zh) | 一种展示块显示方法及装置 | |
KR102494584B1 (ko) | 디스플레이 장치 및 그 컨텐츠 디스플레이 방법 | |
US20090180033A1 (en) | Frame rate up conversion method and apparatus | |
CN108198232B (zh) | 一种轨迹框绘制的方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |