一种对2d控件实现3d转场动画的方法和装置的制造方法
【技术领域】
[0001]本发明涉及通信技术领域,特别是涉及对2D (two-dimens1nal, 二维)控件实现3D (three-dimens1nal,三维)转场动画的方法、装置和终端。
【背景技术】
[0002]目前,几乎所有的智能终端都会涉及用户界面的切换。随着硬件技术的快速发展,相比智能终端发展的初期生硬的页面切换,用户界面的切换效果越来越丰富多彩。比如,在安卓Android操作系统中,存在很多种页面的跳转,在用户界面上点击一个应用时,则这个应用会打开一个页面,并且从中间外四周扩张,最后覆盖原来的用户界面。
[0003]通过这种转场动画可以使用户界面在变化时具有丰富的动态效果及艺术过度效果,从而给用户更好的观看体验。现有技术中,用户界面从当前页面到下一个页面切换过程中,对当前页面消失的控件和/或下一个页面出现的控件执行的转场动画一般都是使用淡入淡出或者简单平移等二维切换效果。不同页面间的切换都是采用传统的平面切换技术,无法针对二维页面平滑的实现三维的转场动画,用户体验感低。
【发明内容】
[0004]本发明实施例提供了一种对2D控件实现3D转场动画的方法、装置及终端,能够实现对在转场切换时的2D控件实现平滑的3D转场动画。
[0005]第一方面,本发明实施例提供了一种对2D控件实现2D转场动画的方法,包括:当接收到对所述2D控件执行3D转场动画的请求时,获取所述2D控件的标识以及与所述2D控件对应的3D动画标识;根据所述2D控件标识,获取所述2D控件在用户界面上的2D控件位置、2D控件宽度、2D控件高度和2D控件的渲染图像;根据所述3D动画标识,获取对应的3D网格模型;将所述2D控件的渲染图像映射到所述3D网格模型上;根据所述2D页面位置、所述2D页面宽度和所述2D页面高度,通过3D变换来设置3D网格模型的初始位置和初始大小;从所述初始位置和初始大小开始执行所述3D动画标识对应的3D动画。
[0006]结合第一方面,在第一方面的第一种实施方式中,所述根据所述2D页面位置、所述2D页面宽度和所述2D页面高度,通过3D变换来设置3D网格模型的初始位置和初始大小,具体为:所述根据所述2D页面位置、所述2D页面宽度和所述2D页面高度,通过三维空间中的平移、旋转、放大缩小或设置3D网格模型的顶点坐标的方法,使得3D网格模型渲染显示的图像在用户界面上与所述2D控件重叠。
[0007]结合第一方面或第一方面的第一种实施方式,在第一方面的第二种实施方式中,所述3D动画标识包括唯一标识3D动画的字符串、枚举类型或通用资源标识符。
[0008]结合第一方面或第一方面的第一种实现方式至第一方面第二种实现方式中任一实现方式,在第一方面的第三种实现方式中,所述根据所述3D动画标识,获取对应的3D网格模型,具体为:根据所述3D动画标识,获取对应的3D网格模型标识,再根据所述3D网格模型标识获取保存在资源目录中对应的3D网格模型;或根据所述3D动画标识,获得预先设置的算法;根据所述预先设置的算法创建3D网格模型。
[0009]结合第一方面或第一方面的第一种实现方式至第一方面第三种实现方式中任一实现方式,在第一方面的第四种实现方式中,所述3D动画为3D空间变换动画和/或3D顶点变形动画和/或淡入淡出动画。
[0010]第二方面,本发明实施例还提供了一种对二维2D控件实现三维3D转场动画的装置,包括:用户界面模块,用于向3D转场动画模块发送对2D控件执行3D转场动画的请求,其中,所述3D转场动画请求包括所述2D控件的2D控件标识和所述2D控对应的3D动画标识;3D转场动画模块,用于根据用户界面模块发送的2D控件标识,获取所述2D控件在用户界面上的2D控件位置、2D控件高度、2D控件宽度以及2D控件的渲染图像;根据用户界面模块发送的3D动画标识,获取对应的3D网格模型;3D渲染模块,用于将所述2D控件的渲染图像映射到所述3D网格模型上;所述3D转场动画模块,还用于根据所述用户界面模块返回的所述2D页面位置、所述2D页面宽度和所述2D页面高度,通过3D变换,设置所述3D网格模型的初始位置和初始大小;从所述初始位置和所述初始大小开始执行对应的3D动画。
[0011]结合第二方面,在第二方面的第一种实现方式中,所述3D转场动画模块,还用于根据所述用户界面模块返回的所述2D页面位置、所述2D页面宽度和所述2D页面高度,通过3D变换,设置所述3D网格模型的初始位置和初始大小,具体为:3D转场动画模块根据所述所述根据所述2D页面位置、所述2D页面宽度和所述2D页面高度,通过三维空间中的平移、旋转、放大缩小或设置3D网格模型的顶点坐标的方法,使得3D网格模型渲染显示的图像在用户界面上与所述2D控件重叠。
[0012]结合第二方面或第二方面的第一种实现方式,在第二方面的第二种实现方式中,所述3D动画标识是唯一标识3D动画的字符串、枚举类型或通用资源标识符。
[0013]结合第二方面或第二方面的第一种实现方式至第二方面第二种实现方式中任一实现方式,在第二方面的第三种实现方式中,所述3D转场动画模块,用于根据所述3D动画标识,获取对应的3D网格模型,具体为:根据所述3D动画标识,获取对应的3D网格模型标识,再根据所述3D网格模型标识获取保存在资源目录中对应的3D网格模型;或根据所述3D动画标识,获得预先设置的算法;根据所述预先设置的算法创建3D网格模型。
[0014]结合第二方面或第二方面的第一种实现方式至第二方面第三种实现方式中任一实现方式,在第二方面的第四种实现方式中,所述3D动画为3D空间变换动画和/或3D顶点变形动画和/或淡入淡出动画。
[0015]第三方面,本发明实施例还提供了一种对2D控件实现3D转场动画的终端,包括:处理器、存储器以及总线,所述处理器和所述存储器通过所述总线进行通信;其中,所述存储器中存有计算机可读程序;所述处理器通过运行所述存储器中的程序,以用于当接收到对所述2D控件执行3D转场动画的请求时,获取所述2D控件的标识以及与所述2D控件对应的3D动画标识;根据所述2D控件标识,获取所述2D控件在用户界面上的2D控件位置、2D控件宽度、2D控件高度和2D控件的渲染图像;根据所述3D动画标识,获取对应的3D网格模型;将所述2D控件的渲染图像映射到所述3D网格模型上;根据所述2D页面位置、所述2D页面宽度和所述2D页面高度,通过3D变换来设置3D网格模型的初始位置和初始大小;从所述初始位置和初始大小开始执行所述3D动画标识对应的3D动画。
[0016]本发明实施例在接收到对2D控件实现3D转场动画的请求时,终端可以实现三维的转场动画效果,并且通过设置3D网格模型合适的3D动画初始值,使得3D网格模型渲染显示的图像与所述2D控件位置、2D控件宽度以及2D控件高度一致,从而所述3D网格模型渲染显示的图像在用户界面上与所述2D控件重叠,解决了从2D页面转换到3D动画时的“闪屏”问题,改善了用户的体验。
【附图说明】
[0017]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018]图1为本发明一实施例提供的对2D控件实现3D转场动画方法的流程图;
[0019]图2为本发明一实施例提供的对2D控件实现3D转场动画的装置结构示意图;
[0020]图3为本发明一实施例提供的对2D控件实现3D转场动画方法的流程图;
[0021]图4为本发明又一实施例提供的对2D控件实现3D转场动画方法的流程图;
[0022]图5为本发明一实施例提供的对2D控件实现3D转场动画的终端结构示意图。
【具体实施方式】
[0023]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0024]本发明实施例中的对2D控件实现3D转场动画的方法可以实现在任一终端设备上,比如手机、智能电视、平板电脑、电子阅读器、PDA (Personal Digital Assistant,个人数字助理)、P0S(Point of Sales,销售终端)、车载电脑等终端设备。本发明实施例中,2D控件是指一个二维的平面图形,可以接收用户的输入命令,比如,可以是一个平面按钮或者平面布局。3D动画是指使用3D空间或顶点变换技术,实现三维空间中的平移、旋转、放大缩小、扭曲等3D动画效果。转场动画是指用户界面从当前页面到下一个页面切换过程中,对当前页面消失的控件和/或下一个页面出现的控件执行的衔接动画。本发明实施例中,用户可以通过按键或者触屏等方式触发2D控件,从
而对2D控件实现3D转场动画。通过3D转场动画可以使用户界面在变化时具有丰富的动态效果及艺术过渡效果,从而给用户更好的观看体验。
[0025]请参阅图1,图1示出了本发明一实施例提供的对2D控件实现3D转场动画方法的流程图,本实施例方法包括:
[0026]步骤102:当接收到对2D控件执行3D转场动画的请求时,获取所述2D控件的标识以及与所述2D控件对应的3D动画标识;
[0027]可选的,所述对2D控件执行3D转场动画的请求由用户通过终端按键输入或者触摸屏的触摸信号来触发。可预先在终端中设定具体的触发动作,例如可设置用户在所述2D控件上进行点击、双击或者指定轨迹的滑动等动作来触发所述3D转场动画的请求。所述2D控件具体可以是终端运行的应用程序的页面或文件等。比如,应用程序可以包括但不限于电话、短信和播放器等等。文件可以包括但不限于图片、文档等等。
[0028]具体的,终端接收到对2D控件执行3D转场动画的请求后,获取当前2D控件的标识以及所述2D控件对应的3D动画标识。所述3D动画标识对应一个3D动画,该3D动画标识可以是唯一标识3D动画的字符串、枚举类型或通用资源标识符(URI,Uniform ResourceIdentifier)。
[0029]终端接收到对2D控件执行3D转场动画的请求后,进一步还获取3D动画持续时间、3D动画结束值等参数。所述3D动画持续时间表现为页面切换速度的快慢。所述3D动画结束值是指当前2D控件对应的3D动画结束的位置,比如3D动画最后在某一点消失,则3D动画结束值具体可以是一个三维坐标。所述3D动画持续时间和所述3D动画结束值可以是开发人员预先设置好的,也可以是用户设置的。
[0030]步骤104:根据所述2D控件标识,获取所述2D控件在用户界面上的2D控件位置、2D控件宽度、2D控件高度和2D控件的渲染图像;
[0031]具体的,所述2D控件位置是指所述2D控件的一个二维坐标,比如,可以是所述2D控件左下角的顶点坐标、所述2D控件右下角顶点坐标或者所述2D控件对称中心点的坐标等。所述2D控件位置、所述2D控件宽度和所述2D控件高度确定了所述2D控件在所述用户界面上的布局。
[0032]步骤106:根据所述3D动画标识,获取对应的3D网格模型;
[0033]可选的,所述3D网格模型是预先保存在资源目录中的,其中,所述资源目录可以是应用程序资源目录或用户界面系统资源目录。具体的,终端根据获得的3D动画标识,获取对应的3D网格模型标识,再根据所述3D网格模型标识获取保存在资源目录中对应的3D网格模型。所述终端解析所述3D网格模型获取3D网格模型数据,获取的3D网格模型数据中至少包括一组三维空间顶点坐标,对应的二维纹理坐标和顶点坐标如何组成几何图元的类型。
[0034]可选的,所述3D网格模型是所述终端根据所述3D动画标识创建的,其中所述3D动画标识对应一个预先设置的算法,终端根据所述预先设置的算法创建所述3D网格模型。所述3D网格模型包括至少一组三维空间顶点坐标,对应的二维纹理坐标和设置顶点坐标如何组成几何图元的类型作为3D网格模型。
[0035]步骤108:将所述2D控件的渲染图像映射到所述3D网格模型上;
[0036]具体的,所述终端生成一个纹理标识,并且将所述2D控件的渲染图像绑定到所述纹理标识对应的纹理上。所述终端根据所述3D网格模型的顶点对应的纹理坐标和所述纹理标识,将所述2D控件的渲染图像映射到所述3D网格模型上作为纹理。
[0037]步骤110:根据所述2D控件位置、2D控件宽度和2D控件高度,通过3D变换来设置3D网格模型的初始位置和初始大小;
[0038]具体的,所述3D变换包括3D空间变换和/或设置模型顶点坐标。所述3D空间变换是指三维空间中的平移、旋转、放大缩小的变换。所述终端根据所述2D控件位置、2D控件宽度以及2D控件高度,通过3D变换来设置3D网格模型的初始位置和初始大小。3D网格模型的初始位置和初始大小由3D动画的初始值来表征。所述3D动画的初始值是指设置3D网格模型的初始位置和初始大小时设置的3D空间变换和/或模型顶点坐标,使得3D网格模型渲染显示的图像与所述2D控件位置、2D控件宽度以及2D控件高度一致,从而所述3D网格模型渲染显示的图像在用户界面上与所述2D控件重叠。通过合理的设置3D动画初始值,有效的解决了在页面切换实现3D转场动画时,因为相对于待切换的所述2D控件突然变大、变小或位置偏移而导致的“闪屏”问题。
[0039]步骤112:从所述初始位置和初始大小开始执行所述3D动画标识对应的3D动画。
[0040]具体的,终端根据所述3D转场动画请求,从所述3D动画初始值开始执行所述3D动画标识对应的3D动画,并记录3D动画开始时间。所述3D动画可以是3D空间变换动画和/或3D网格模型顶点变形动画和/或淡入淡出(Alpha)动画。
[0041]具体的,终端在渲染每帧3D图像之前,依据所述3D动画初始值、所述3D动画持续时间、所述动画结束值和当前动画已经运行的时间,通过插值方式计算3D动画当前值。所述当前动画已经运行的时间由当前时间和所述3D动画开始时间确定。所述插值方式可以是线性插值或多项式插值等插值方式,所述3D动画当前值可以是3D空间变换和/或3D网格模型顶点坐标和/或3D网格模型顶点透明度(Alpha)的当前值;终端根据所述3D动画当前值,渲染变化后的3D网格模型为图像,再由用户界面模块显示;
[0042]进一步的,终端判断3D动画是否结束;如果3D动画没有结束,则继续执行3D动画。否则,终端结束3D动画,移除3D网格模型,停止3D渲染。具体的,终端将所述3D动画持续时间和所述当前动画已经运行的时间做比较,当所述当前动画已经运行的时间小于所述3D动画持续时间,则确定3D动画没有结束;当所述当前动画已经运行的时间大于等于所述3D动画持续时间,则确定3D动画已经结束。
[0043]从本发明实施例提供的技术方案可以看出,在接收到对2D控件执行3D转场动画的请求时,终端可以实现三维的转场动画效果,并且通过设置3D网格模型合适的3D动画初始值,使得3D网格模型渲染显示的图像与所述2D控件位置、2D控件宽度以及2D控件高度一致,从而所述3D网格模型渲染显示的图像在用户界面上与所述2D控件重叠,解决了从2D页面转换到3D动画时的“闪屏”问题,改善了用户的体验。
[0044]图2为本发明一实施例提供的对2D控件实现3D转场动画的装置结构示意图。参见图2,所述对2D控件执行3D转场动画的装置包括用户界面模块202、3D转场动画模块204和3D渲染模块206。
[0045]其中,用户界面模块202,用于向3D转场动画模块204发送对2D控件执行3D转场动画的请求,其中,所述3D转场动画请求包括所述2D控件的2D控件标识和所述2D控对应的3D动画标识;
[0046]3D转场动画模块204,用于根据用户界面模块202发送的2D控件标识,获取所述2D控件在用户界面上的2D控件位置、2D控件高度、2D控件宽度以及2D控件的渲染图像;根据用户界面模块202发送的3D动画标识,获取对应的3D网格模型;
[0047]3D渲染模块206,用于将所述2D控件的渲染图像映射到所述3D网格模型上;
[0048]进一步的,所述3D转场动画模块204,还用于根据所述2D页面位置、所述2D页面宽度和所述2D页面高度,通过3D变换来设置3D网格模型的初始位置和初始大小;从所述初始位置和初始大小开始执行所述3D动画标识对应的3D动画。
[0049]具体的,所述根据所述2D页面位置、所述2D页面宽度和所述2D页面高度,通过3D变换来设置3D网格模型的初始位置和初始大小,具体为:所述根据所述2D页面位置、所述2D页面宽度和所述2D页面高度,通过三维空间中的平移、旋转、放大缩小或设置3D网格模型的顶点坐标的方法,使得3D网格模型渲染显示的图像在用户界面上与所述2D控件重叠。
[0050]可选的,所述3D动画标识包括唯一标识3D动画的字符串、枚举类型或通用资源标识符。
[0051]可选的,所述3D动画包括3D空间变换动画和/或3D顶点变形动画和/或淡入淡出动画
[0052]本发明实施例提供的对2D控件执行3D转场动画的装置,与图1所述的方法实施例属于同一个构思,其具体实现过程详见图1所述的方法实施例,这里不再赘述。
[0053]图3为本发明一实施例提供的对2D控件实现3D转场动画方法的流程图。如图3所述,该方法包括如下步骤:
[0054]步骤301:用户界面模块向3D转场动画模块发送3D转场动画请求;其中,所述3D转场动画请求包括所述2D控件的2D控件标识和所述2D控对应的3D动画标识;
[0055]可选的,所述3D转场动画请求进一步还包括3D动画持续时间等参数、3D动画结束值等参数;
[0056]具体的,在用户界面模块向3D转场动画模块发送3D转场动画请求之前,用户界面模块显示2D控件,并监
控用户是否有对所述2D控件进行3D转场动画的触发操作。例如可设置用户在所述2D控件上进行点击、双击或者指定轨迹的滑动等动作来触发所述3D转场动画的请求。当用户界面模块检测到所述触发动作时,用户界面模块获取所述2D控件的2D控件标识和所述2D控件标识对应的3D动画标识,向3D转场模块发送3D转场动画请求。
[0057]步骤302:3D转场动画模块根据3D动画标识,获取对应的3D网格模型;
[0058]具体的,所述3D网格模型包括一组3D顶点坐标、对应的2D纹理坐标和所述一组3D顶点坐标组成几何图元的类型。
[0059]可选的,所述3D网格模型是预先保存在资源目录中的,其中,所述资源目录可以是应用程序资源目录或用户界面系统资源目录。具体的,所述3D转场动画模块根据获得的3D动画标识,获取对应的3D网格模型标识,再根据所述3D网格模型标识获取保存在资源目录中对应的3D网格模型。所述3D转场动画模块解析所述3D网格模型获取3D网格模型数据,获取的3D网格模型数据中至少包括一组三维空间顶点坐标,对应的二维纹理坐标和顶点坐标如何组成几何图元的类型。
[0060]可选的,所述3D网格模型是所述终端根据所述3D动画标识创建的,其中所述3D动画标识对应一个预先设置的算法,终端根据所述预先设置的算法创建所述3D网格模型。所述3D网格模型包括至少一组三维空间顶点坐标,对应的二维纹理坐标和设置顶点坐标如何组成几何图元的类型作为3D网格模型。
[0061]步骤303:3D转场动画模块向用户界面模块发送获取所述2D控件位置的请求,所述获取所述2D控件位置的请求包含所述2D控件标识;3D转场动画模块向用户界面模块发送获取所述2D页面宽度的请求,所述获取所述2D控件宽度的请求包含所述2D控件标识;3D转场动画模块向用户界面模块发送获取所述2D控件高度的请求,所述获取所述2D控件高度的请求包含所述2D控件标识;3D转场动画模块向用户界面模块发送渲染所述2D控件的请求,所述渲染所述2D控件的请求包含所述2D控件标识;
[0062]具体的,所述获取所述2D控件位置的请求、获取所述2D控件宽度的请求、获取所述2D控件高度的请求以及渲染所述2D控件的请求都是终端的用户界面模块通过调用相应的函数实现的。
[0063]步骤304:用户界面模块向3D转场动画模块返回所述2D控件位置、所述2D控件宽度、所述2D控件高度以及渲染的2D控件图像;
[0064]具体的,所述2D控件位置、所述2D控件宽度和所述2D控件高度可以准确确定所述2D页面在用户界面上的布局。
[0065]步骤305:3D转场动画模块通过3D变换,设置所述3D网格模型的初始位置和初始大小;
[0066]具体的,所述3D变换包括3D空间变换和/或3D网格模型的顶点坐标变换;所述3D空间变换是指三维空间中的平移、旋转、放大缩小的变换。所述终端的3D转场模块根据所述2D控件位置、2D控件宽度以及2D控件高度,通过3D变换来设置3D网格模型的初始位置和初始大小,使得3D网格模型渲染显示的图像与所述2D页面的位置、宽高一致,从而所述3D网格模型渲染显示的图像在用户界面上与所述2D页面重叠。3D网格模型的初始位置和初始大小由3D动画的初始值来表征。所述3D动画的初始值是指设置3D网格模型的初始位置和初始大小时设置的3D空间变换和/或模型顶点坐标。
[0067]步骤306:3D转场动画模块向3D渲染模块发送生成纹理的请求;
[0068]步骤307:3D渲染模块生成一个纹理和对应的纹理标识;
[0069]步骤308:3D渲染模块向3D转场动画模块返回所述纹理标识;
[0070]步骤309:3D转场动画模块向3D渲染模块发送绑定纹理请求,所述绑定纹理请求包含所述渲染的2D控件图像和所述纹理标识;
[0071 ] 步骤310:3D渲染模块将所述渲染的2D控件图像绑定到所述纹理标识对应的纹理上;
[0072]可选的,当3D渲染模块将所述2D页面的渲染图像绑定到所述纹理标识标示的纹理上之后,向3D转场动画返回成功响应。
[0073]步骤311:3D转场动画模块向3D渲染模块发送初始3D渲染请求,其中,所述初始3D渲染请求包括所述3D网格模型数据、所述纹理标识和所述3D变换信息;
[0074]具体的,所述3D渲染模块接收到所述初始3D渲染请求后,获取所述并保存所述3D网格模型数据、所述纹理标识和所述3D变换信息。其中所述所述3D网格模型数据是步骤302中获取的,包括一组3D顶点坐标、所述对应的纹理坐标和所述几何图元类型;所述纹理标识为步骤309中生成的纹理标识;所述3D变换为步骤307中3D转场动画模块设置所述3D网格模型的初始位置和初始大小时,使用的3D变换,所述3D变换包括3D空间变换和/或3D网格模型的顶点坐标变换。
[0075]步骤312:3D渲染模块根据所述初始3D渲染请求渲染3D网格模型;
[0076]具体的,3D渲染模块根据所述初始3D渲染请求中的所述3D网格模型数据、所述纹理标识和所述3D变换信息,在透明的图层上渲染所述3D网格模型,得到3D渲染初始图像。
[0077]步骤313:3D渲染模块向用户界面模块发送显示所述3D渲染初始图像的请求;
[0078]步骤314:用户界面模块显示所述3D渲染初始图像;
[0079]步骤315:3D转场动画模块向用户界面模块发送隐藏页面的请求,所述隐藏页面的请求包括所述2D控件标识;
[0080]具体的,3D转场动画模块向用户界面模块发送隐藏页面的请求,所述隐藏页面的请求包括所述2D控件标识;用户界面模块接收到所述隐藏页面的请求后,获取所述2D控件标识,停止所述2D控件的渲染显示。由于所述3D渲染初始图像在用户界面上与所述2D控件重叠,所以隐藏所述2D控件时,不会出现用户界面上的图像突然变大、变小或位置偏移而导致的“闪屏”问题。
[0081]步骤316:3D转场动画模块执行3D动画;
[0082]具体的,3D转场动画模块根据步骤303中接收到的3D转场动画请求,从步骤307中所述的初始位置和初始大小开始执行对应的3D动画,并记录3D动画开始时间。所述3D动画可以是3D空间变换动画和/或3D网格模型顶点变形动画和/或淡入淡出(Alpha)动画。
[0083]步骤317:3D转场动画模块在渲染每帧3D图像之前,计算3D动画当前值。
[0084]具体的,3D转场动画模块在渲染每帧3D图像之前,依据所述3D动画初始值、所述3D动画持续时间、所述动画结束值和当前动画已经运行的时间,通过插值方式计算3D动画当前值。所述当前动画已经运行的时间由当前时间和所述3D动画开始时间确定。所述插值方式可以是线性插值或多项式插值等插值方式,所述3D动画当前值可以是3D空间变换和/或3D网格模型顶点坐标和/或3D网格模型顶点透明度(Alpha)的当前值。所述3D动画的初始值是指设置3D网格模型的初始位置和初始大小时设置的3D空间变换和/或模型顶点坐标。
[0085]步骤318:3D转场动画模块向3D渲染模块发送3D渲染请求,所述3D渲染请求中包含计算得到的3D动画当前值;
[0086]具体的,3D渲染模块接收到所述3D渲染请求后,获取所述3D动画当前值,渲染变化后的3D网格模型为图像,再由用户界面模块显示。
[0087]步骤319:判断3D动画是否结束;如果3D动画没有结束,跳转到步骤318继续执行3D动画。否则,执行步骤221 ;
[0088]具体的,终端将所述3D动画持续时间和所述当前动画已经运行的时间做比较,当所述当前动画已经运行的时间小于所述3D动画持续时间,则确定3D动画没有结束,跳转到步骤318继续执行3D动画;当所述当前动画已经运行的时间大于等于所述3D动画持续时间,则确定3D动画已经结束,执行步骤221。
[0089]步骤320:3D转场动画模块结束3D动画,移除3D网格模型,向3D渲染模块发送停止3D渲染的请求;3D渲染模块接收所述停止3D渲染的请求请求,停止3D渲染。
[0090]从本发明实施例提供的技术方案可以看出,在接收到对2D控件执行3D转场动画的请求时,终端可以实现三维的转场动画效果,并且通过设置3D网格模型合适的3D动画初始值,使得3D网格模型渲染显示的图像与所述2D控件位置、2D控件宽度以及2D控件高度一致,从而所述3D网格模型渲染显示的图像在用户界面上与所述2D控件重叠,解决了从2D页面转换到3D动画时的“闪屏”问题,改善了用户的体验。
[0091]图4为本发明一实施例提供的对2D控件实现3D转场动画方法的流程图。本方法实施例描述的在安卓系统中终端对安卓应用程序不同页面之间实现3D转场动画的处理流程。当终端安装所述安卓应用程序时,所述安卓应用程序请求终端的存储模块将携带在所述安卓应用程序中的3D网格模型数据保存在安卓应用资源资产目录中,所述携带在安卓应用程序中的3D网格模型数据以DAE格式保存,在该实施例中有三个3D网格模型,分
别为twistDisappearModel.dae、rotateModel.dae 和 cubicModel.dae。3D 网格模型数据至少包括一组三维空间顶点坐标,对应的二维纹理坐标和所述一组三维空间顶点坐标组成几何图元的类型;终端通过层叠方式布局前层图像控件和后层图像控件,假设前层图像控件位置是(10,20),宽度是100,高度是200,设置在切换前层图像控件时执行3D转场动画,设置前层图像控件对应的3D动画标识为3D扭曲消失动画标识,应用程序保存这些设置。上述设置通过设置所述安卓应用程序的相关参数实现。如图4所述,该方法包括如下步骤:
[0092]步骤401:用户界面模块接收到用户切换前层图像控件的操作命令;
[0093]具体的,安卓应用程序启动后,用户界面模块显示通过层叠方式布局的前层图像控件和后层图像控件。所述用户切换前层图像控件的操作命令可以是用户通过终端按键输入也可以为触摸屏的触摸信号。比如,所述操作命令可以是点击安卓退出(return)按钮从而切换前层图像控件的操作命令,或所述用户操作命令可以是双击前层图像控件从而切换前层图像控件的操作命令,或所述用户操作命令可以是点击下一张图像按钮从而切换前层图像控件的操作命令。本发明实施例对具体的操作命令形式不做限定。
[0094]步骤402:用户界面模块向3D转场动画模块发送3D转场动画请求;其中,所述3D转场动画请求包括所述前层图像控件的标识和所述3D扭曲消失动画标识;
[0095]步骤403:3D转场动画模块根据3D扭曲消失动画标识,获取对应的3D网格模型;
[0096]具体的,3D转场动画模块根据获得的3D扭曲消失动画标识,找到对应的3D网格模型标识,再根据3D网格模型标识向存储模块请求获取保存在安卓应用资源资产目录中对应的3D网格模型twistDisappearModel.dae, 3D转场动画模块解析DAE格式的3D网格模型获取3D网格模型数据,获取的3D网格模型数据中包括一组三维空间顶点坐标{(0,0,0)(1,0,0) (2, 0, 0) (0,1,0) (1,1,0) (2,1,0) (0,2,0) (1,2,0) (2,2,0) }、对应的二维纹理坐标{(0,0) (0.5,0) (1,0) (0.5,0) (0.5,0.5) (0.5,1) (1,0) (1,0.5) (1,1)}和所述一组三维顶点坐标组成几何三角形图元的类型GL_TRANGLES_STRIP ;
[0097]步骤404:3D转场动画模块向用户界面模块发送获取所述前层图像控件位置的请求,所述获取所述前层图像控件位置的请求包含所述前层图像控件标识;3D转场动画模块向用户界面模块发送获取所述前层图像控件宽度的请求,所述获取所述前层图像控件宽度的请求包含所述前层图像控件标识;3D转场动画模块向用户界面模块发送获取所述前层图像控件高度的请求,所述获取所述前层图像控件高度的请求包含所述前层图像控件标识;3D转场动画模块向用户界面模块发送渲染所述前层图像控件的请求,所述渲染所述前层图像控件的请求包含所述前层图像控件标识;
[0098]具体的,3D转场动画模块向用户界面模块发送获取所述前层图像控件位置的请求,用户界面模块向所述3D转场动画模块返回所述前层图像控件在用户界面上的位置,在本实施例中,该位置是(10,20) ;3D转场动画模块向用户界面模块发送获取所述前层图像控件宽度的请求,用户界面模块向所述3D转场动画模块返回所述前层图像控件的宽度,在本实施例中,该宽度值是100 ;3D转场动画模块向用户界面模块发送获取所述前层图像控件高度的请求,用户界面模块向所述3D转场动画模块返回所述前层图像控件的高度,在本实施例中,该高度值是200 ;3D转场动画模块向用户界面模块发送渲染所述前层图像控件的请求,用户界面模块向所述3D转场动画模块返回所述前层图像控件的渲染图像。
[0099]步骤405:3D转场动画模块设置所述3D网格模型的初始位置和初始大小;
[0100]具体的,根据步骤404获得位置(10,20)、宽度值100、高度值200,3D转场动画模块通过设置3D空间变换设置3D网格模型的初始位置和初始大小,使得3D网格模型在初始位置和初始大小时渲染显示的图像和所述前层图像控件的位置、宽高一致;所述3D空间变换具体可以是在X方向平移10,在Y方向平移20,同时以左上顶点为原点,在X方向放大50倍,在Y方向放大100倍。
[0101]步骤406:3D转场动画模块向3D渲染模块发送生成纹理的请求,请求将所述前层图像控件的渲染图像绑定到生成的纹理上;
[0102]具体的,3D渲染模块接收所述生成纹理的请求后,生成一个纹理和对应的纹理标识,并将所述纹理标识返回给3D转场动画模块;3D转场动画模块向3D渲染模块发送绑定纹理请求,所述绑定纹理请求包含所述前层图像控件的渲染图像和所述纹理标识;3D渲染模块接收到所述绑定纹理请求后,获取所述绑定纹理请求中的所述前层图像控件的渲染图像和所述纹理标识,将所述前层图像控件的渲染图像绑定到所述纹理标识标示的纹理上。
[0103]步骤407:3D转场动画模块向3D渲染模块发送初始3D渲染请求,请求渲染所述3D网格模型;
[0104]具体的,3D转场动画模块向3D渲染模块发送初始3D渲染请求,其中,所述初始3D渲染请求包括所述3D网格模型数据、所述纹理标识和所述3D空间变换信息。
[0105]具体的,所述3D渲染模块接收到所述初始3D渲染请求后,获取并保存所述初始3D渲染请求中的所述3D网格模型、所述纹理标识和所述3D空间变换信息。其中所述3D网格模型数据是步骤403中获取的,包括一组3D顶点坐标、对应的纹理坐标和几何图元类型;所述纹理标识为步骤406中生成的纹理标识;所述3D空间变换为步骤405中3D转场动画模块设置所述3D网格模型的初始位置和初始大小时,使用的3D空间变换。3D渲染模块根据所述一组3D顶点坐标、所述对应的纹理坐标、所述几何图元类型、所述纹理标识和所述3D空间变换信息,在透明的图层上渲染所述3D网格模型,得到3D渲染初始图像,再由用户界面模块显示所述3D渲染初始图像。
[0106]步骤408:3D转场动画模块向用户界面模块发送隐藏页面的请求,所述隐藏页面的请求包括所述前层图像控件标识;
[0107]具体的,3D转场动画模块向用户界面模块发送隐藏页面的请求,所述隐藏页面的请求包括所述前层图像控件标识;用户界面模块接收到所述隐藏页面的请求后,获取所述前层图像控件标识,停止所述前层图像控件的渲染显示。由于所述3D渲染初始图像在用户界面上与所述前层图像控件重叠,所以隐藏所述前层图像控件时,不会出现用户界面上的图像突然变大、变小或位置偏移而导致的“闪屏”问题。
[0108]步骤409:3D转场动画模块从所述初始位置和所述初始大小开始执行对应的3D动画;
[0109]具体的,3D转场动画模块依据步骤402获得的3D扭曲消失动画标识,从步骤405所述的初始位置和初始大小开始执行对应的3D扭曲消失动画,并且记录3D扭曲消失动画开始的时间;所述3D扭曲消失动画是3D网格模型顶点变形动画的一种,可以是3D网格模型中所有顶点{(0,0,0) (1,0,0) (2,0,0) (0,1,0) (1,1,0) (2,1,0) (0,2,0) (1,2,0) (2,2,0)}从各自坐标变化到结束坐标(2,2,0);
[0110]步骤410:3D转场动画模块在渲染每帧3D图像之前,计算3D动画当前值;
[0111]具体的,3D转场动画模块在渲染每帧3D图像之前,依据所述3D动画初始值、所述动画持续时间、所述动画结束值和所述当前动画已经运行的时间,通过线性插值方式计算3D网格模型顶点坐标的当前值。每个顶点的坐标的当前值计算公式是(初始坐标(X,y, z) + (结束坐标(2,2,0)-初始坐标(X,y, z))*当前动画已经运行时间/3D动画持续时间)。其中,所述当前动画已经运行的时间由当前时间和所述3D动画开始时间确定;所述初始坐标由3D网格模型中所有顶点{(0,0,0) (1,0,0) (2,0,0) (0,1,0) (1,1,0) (2,1,0)(0,2,0) (1,2,0) (2,2,0)}按照步骤305的3D空间变换得到,比如顶点(0,0,0)对应的初始坐标为(10,20,0)。
[0112]进一步的,3D转场动画模块向3D渲染模块发送3D渲染请求,所述3D渲染请求中包含计算得到的3D动画当前值,即3D网格模型各个顶点坐标的当前值;3D渲染模块接收到所述3D渲染请求后,获取所述3D动画当前值,渲染变化后的3D网格模型为图像,再由用户界面模块显示。
[0113]步骤411:判断3D动画是否结束;如果3D动画没有结束,跳转到步骤410继续执行3D动画。否则,执行步骤412;
[0114]具体的,3D转场动画模块将所述3D动画持续时间和所述当前动画已经运行的时间做比较,当所述当前动画已经运行的时间小于所述3D动画持续时间,则确定3D动画没有结束,跳转到步骤41
0继续执行3D动画。当所述当前动画已经运行的时间大于等于所述3D动画持续时间,则确定3D动画已经结束,执行步骤412。
[0115]步骤412:3D转场动画模块结束3D动画,移除3D网格模型,向3D渲染模块发送停止3D渲染的请求;3D渲染模块接收所述停止3D渲染的请求请求,停止3D渲染。
[0116]需要说明的是,3D转场动画执行过程中,所述前层图像控件逐渐从用户界面上消失,所述后层图像控件在用户界面上逐渐显现。
[0117]从本发明的实施例提供的技术方案可以看出,在接收到用户切换前层图像控件的操作命令后,根据所述前层图像控件的位置、宽度和高度以及前层图像控件的渲染图像设置该前层图像控件对应的3D网格模型的纹理、初始位置和初始大小。这种对安卓应用程序不同页面之间实现3D转场动画的方法,可以实现三维的转场动画效果,并且通过设置3D网格模型合适的初始位置和初始大小,解决了从2D控件转换到3D动画时的“闪屏”问题,改善了用户的体验。
[0118]参见图5,本发明实施例还提供对2D控件执行3D转场动画的设备结构示意图,可包括:总线503、与总线503相连的处理器502以及与总线803相连的存储器501。处理器502可以采用通用的中央处理器(Central Processing Unit, CPU),微处理器,应用专用集成电路(Applicat1n Specific Integrated Circuit, ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本发明实施例所提供的技术方案。存储器501可以是只读存储器(Read Only Memory, ROM),静态存储设备,动态存储设备或者随机存取存储器(RandomAccess Memory,RAM)。存储器501可以存储操作系统和其他应用程序。在通过软件或者固件来实现本发明实施例提供的技术方案时,用于实现本发明实施例提供的技术方案的程序代码保存在存储器501中,并由处理器502来执行。
[0119]具体的,所述处理器502和所述存储器501通过所述总线503进行通信;其中,所述存储器501中存有计算机可读程序;所述处理器502通过运行所述存储器501中的程序,以用于当接收到对所述2D控件执行3D转场动画的请求时,获取所述2D控件的标识以及与所述2D控件对应的3D动画标识;根据所述2D控件标识,获取所述2D控件在用户界面上的2D控件位置、2D控件宽度、2D控件高度和2D控件的渲染图像;根据所述3D动画标识,获取对应的3D网格模型;将所述2D控件的渲染图像映射到所述3D网格模型上;根据所述2D页面位置、所述2D页面宽度和所述2D页面高度,通过3D变换来设置3D网格模型的初始位置和初始大小;从所述初始位置和初始大小开始执行所述3D动画标识对应的3D动画。
[0120]可以理解的是,本实施例的对2D控件执行3D转场动画的设备可用于实现上述方法实施例中的功能,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
[0121]以上对本发明实施例所提供的一种安全认证方法及终端进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在【具体实施方式】及应用范围上均会有改变之处,因此,本说明书内容不应理解为对本发明的限制。
【主权项】
1.一种对二维2D控件实现三维3D转场动画的方法,其特征在于,当接收到对所述2D控件执行3D转场动画的请求时,获取所述2D控件的标识以及与所述2D控件对应的3D动画标识; 根据所述2D控件标识,获取所述2D控件在用户界面上的2D控件位置、2D控件宽度、2D控件高度和2D控件的渲染图像; 根据所述3D动画标识,获取对应的3D网格模型; 将所述2D控件的渲染图像映射到所述3D网格模型上; 根据所述2D页面位置、所述2D页面宽度和所述2D页面高度,通过3D变换来设置3D网格模型的初始位置和初始大小; 从所述初始位置和初始大小开始执行所述3D动画标识对应的3D动画。2.如权利要求1所述的方法,其特征在于,所述根据所述2D页面位置、所述2D页面宽度和所述2D页面高度,通过3D变换来设置3D网格模型的初始位置和初始大小,具体为: 所述根据所述2D页面位置、所述2D页面宽度和所述2D页面高度,通过三维空间中的平移、旋转、放大缩小或设置3D网格模型的顶点坐标的方法,使得3D网格模型渲染显示的图像在用户界面上与所述2D控件重叠。3.如权利要求1或2所述的方法,其特征在于,所述3D动画标识包括唯一标识3D动画的字符串、枚举类型或通用资源标识符。4.如权利要求1至3任一所述的方法,其特征在于,所述根据所述3D动画标识,获取对应的3D网格模型,具体为: 根据所述3D动画标识,获取对应的3D网格模型标识,再根据所述3D网格模型标识获取保存在资源目录中对应的3D网格模型;或 根据所述3D动画标识,获得预先设置的算法;根据所述预先设置的算法创建3D网格模型。5.如权利要求1-4任一所述的方法,其特征在于,所述3D动画为3D空间变换动画和/或3D顶点变形动画和/或淡入淡出动画。6.一种对二维2D控件实现三维3D转场动画的装置,其特征在于,包括: 用户界面模块,用于向3D转场动画模块发送对2D控件执行3D转场动画的请求,其中,所述3D转场动画请求包括所述2D控件的2D控件标识和所述2D控对应的3D动画标识; 3D转场动画模块,用于根据用户界面模块发送的2D控件标识,获取所述2D控件在用户界面上的2D控件位置、2D控件高度、2D控件宽度以及2D控件的渲染图像;根据用户界面模块发送的3D动画标识,获取对应的3D网格模型; 3D渲染模块,用于将所述2D控件的渲染图像映射到所述3D网格模型上; 所述3D转场动画模块,还用于根据所述用户界面模块返回的所述2D页面位置、所述2D页面宽度和所述2D页面高度,通过3D变换,设置所述3D网格模型的初始位置和初始大小;从所述初始位置和所述初始大小开始执行对应的3D动画。7.如权利要求6所述的装置,其特征在于,所述3D转场动画模块,还用于根据所述用户界面模块返回的所述2D页面位置、所述2D页面宽度和所述2D页面高度,通过3D变换,设置所述3D网格模型的初始位置和初始大小,具体为: 3D转场动画模块根据所述所述根据所述2D页面位置、所述2D页面宽度和所述2D页面高度,通过三维空间中的平移、旋转、放大缩小或设置3D网格模型的顶点坐标的方法,使得3D网格模型渲染显示的图像在用户界面上与所述2D控件重叠。8.如权利要求6或7所述的装置,其特征在于,所述3D动画标识是唯一标识3D动画的字符串、枚举类型或通用资源标识符。9.如权利要求6-8任一所述的装置,其特征在于,所述3D转场动画模块,用于根据所述3D动画标识,获取对应的3D网格模型,具体为: 根据所述3D动画标识,获取对应的3D网格模型标识,再根据所述3D网格模型标识获取保存在资源目录中对应的3D网格模型;或 根据所述3D动画标识,获得预先设置的算法;根据所述预先设置的算法创建3D网格模型。10.如权利要求6-10任一所述的装置,其特征在于,所述3D动画为3D空间变换动画和/或3D顶点变形动画和/或淡入淡出动画。11.一种对二维2D控件上实现三维3D转场动画的终端,其特征在于,包括:处理器、存储器以及总线,所述处理器和所述存储器通过所述总线进行通信;其中,所述存储器中存有计算机可读程序;所述处理器通过运行所述存储器中的程序,以用于当接收到对所述2D控件执行3D转场动画的请求时,获取所述2D控件的标识以及与所述2D控件对应的3D动画标识;根据所述2D控件标识,获取所述2D控件在用户界面上的2D控件位置、2D控件宽度、2D控件高度和2D控件的渲染图像;根据所述3D动画标识,获取对应的3D网格模型;将所述2D控件的渲染图像映射到所述3D网格模型上;根据所述2D页面位置、所述2D页面宽度和所述2D页面高度,通过3D变换来设置3D网格模型的初始位置和初始大小;从所述初始位置和初始大小开始执行所述3D动画标识对应的3D动画。
【专利摘要】本发明涉及通信技术领域,提供了一种对2D控件实现3D转场动画的方法、装置及终端,包括:当接收到对所述2D控件执行3D转场动画的请求时,获取所述2D控件的标识以及与所述2D控件对应的3D动画标识;根据所述2D控件标识,获取所述2D控件在用户界面上的2D控件位置、2D控件宽度、2D控件高度和2D控件的渲染图像;根据所述3D动画标识,获取对应的3D网格模型;将所述2D控件的渲染图像映射到所述3D网格模型上;据所述2D页面位置、所述2D页面宽度和所述2D页面高度,通过3D变换来设置3D网格模型的初始位置和初始大小;从所述初始位置和初始大小开始执行所述3D动画标识对应的3D动画。使用本发明,能够对在转场切换时的2D控件实现平滑的3D转场动画。
【IPC分类】G06T13/20
【公开号】CN105488833
【申请号】CN201410529130
【发明人】蒋飞虎, 谢军安
【申请人】华为技术有限公司
【公开日】2016年4月13日
【申请日】2014年10月9日