一种基于交互操作产生图片动态效果的方法和装置的制造方法_3

文档序号:8260270阅读:来源:国知局
照每个顶点的纹理坐标对绘制图形中的像素点进行纹理映射,产生包含一帧或多帧变化图片的动态效果。
[0109]在具体实现中,图形绘制接口可以采用OpenGL,其可以提供纹理映射(TextureMapping),即是将纹理空间中的纹理像素映射到屏幕空间中的像素的过程。
[0110]通常,使用纹理映射的步骤可以如下:
[0111]第一步:定义纹理对象
[0112]const int TexNumber4 ;
[0113]GLuint mes—Texture [TexNumber] ;// 定义纹理对象数组
[0114]第二步:生成纹理对象数组
[0115]glGenTextures(TexNumber, m_Texture);
[0116]第三步:通过使用glBindTexture选择纹理对象,来完成该纹理对象的定义。
[0117]glBindTexture(GL—TEXTURE 2D,m—Texture[O]);
[0118]glTexImage2D (GL—TEXTURE—2D,0,3,mes—Texmapl.GetWidth (),mee—Tex map 1.GetHeight(),0,GL—BGR—EXT,GL—UNSIGNED—BYTE,mse—Texmapl.Get DibBitslitrQ);
[0119]第四步:在绘制景物之前通过glBindTexture,为该景物加载相应的纹理。
[0120]glBindTexture(GLes—TEXTURE—2D,mse—Texture[0]);
[0121]第五步:在程序结束之前调用glDeleteTextures删除纹理对象。
[0122]glDeleteTextures(TexNumber, mee_Texture)0
[0123]在一个示例中,如图4所示,绘制图形为三角形,其包括一个或多个像素点,其中,顶点在纹理空间中具有纹理坐标,顶点a的纹理坐标为(0.2,0.8),顶点b的纹理坐标为(0.4,0.2),顶点c的纹理坐标为(0.8,0.4),将该绘制图形移动的顶点进行移动,使得绘制图形发生变形,进行OpenGL纹理映射到获对象空间,渲染出来后,绘制图形产生了拉伸、压缩等效果,特征区域就会呈现出移动的现象。
[0124]如图5A所示,若运特征区域中的至少部分像素点的运动方向往特征区域的左侧,则特征图像中整体可以往左侧扭曲;图5B所示,若特征区域中的至少部分像素点的运动方向往特征区域的右侧,则特征图像中整体可以往右侧扭曲。
[0125]通过OpenGL的纹理映射,可以将静态图片的特征区域中心区域附近的绘制图形的顶点模拟弹簧的简谐运动,使得图片被规律的进行拉升,产生类似于弹力水球的抖动效果O
[0126]进一步地,若运动方向根据指定的交互操作事件确定,则特征区域中的至少部分像素点的运动方向可以沿指定的交互操作事件对应的方向(如摇晃事件的摇晃方向、指向发生屏幕点击事件的方向)在特征区域的两侧(如左侧和右侧、上方和下方),则按照简谐运动模式和/或阻尼振动模式,特征区域映射出的扭曲图片可以沿指定的交互操作事件对应的方向来回扭曲,产生抖动效果,并最终静止。
[0127]其中,根据传感器可以判断手机摇动的方向,静态图片中特征区域可以会沿着摇动方向运动,当设备左右上下剧烈摇动时,特征区域可以绕着中心旋转以模拟猛烈摇动的动态效果。
[0128]通过判断手指点击屏幕的位置,特征区域中心可以沿着中心位置和点击位置的方向进行抖动,当手指按住抖动区域内,并在屏幕上来回滑动时,特征区域中心可以跟随手指运动的方向,产生被拖拽的效果,并通过微抖动算法,使得抖动区域产生水球被拖拽时产生的微微抖动的效果,增强其物理真实性。
[0129]例如,设备左右摇晃或者用户在特征区域中左右来回滑动,使得特征区域中的至少部分像素点沿水平轴方向上做震荡移动,特征区域中每个绘制图形的顶点在每一个时间点移动到一个位置就会生成一个扭曲图片,扭曲图片逐帧播放,可以产生如图5A和图5B所示的特征区域内的图像表现出左右震动的动态效果。
[0130]本发明实施例基于监听到指定的交互操作事件,确定静态图片的特征区域中的至少部分像素点的运动方向,按照预设模式对特征区域中的至少部分像素点进行纹理映射,产生包含一帧或多帧扭曲图片变化的动态效果,一方面,对特征区域生成动态效果,减少了动态效果的体积,减少了传输时的带宽占用,方便传输,另一方面,由于纹理映射效率很高,减少了生成动态效果的耗时,对于网络图片或者系统相册里的图片等均可以很快的产生动态效果,快速、方便地生成动态效果,实现了动态效果可以和用户的交互行为的实时互动。
[0131]对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0132]参照图6,示出了根据本发明一个实施例的一种基于交互操作产生图片动态效果的装置实施例的结构框图,具体可以包括如下模块:
[0133]选取模块601,适于在静态图片中选取特征区域;
[0134]确定模块602,适于在监听到指定的交互操作事件时,根据指定的操作事件确定所述特征区域中的至少部分像素点的运动方向;
[0135]映射模块603,适于在所述运动方向上,按照预设模式对所述特征区域中的至少部分像素点进行纹理映射,产生包含一帧或多帧扭曲图片变化的动态效果。
[0136]在本发明的一种可选实施例中,所述指定的交互操作事件可以包括摇晃事件,所述确定模块602还可以适于:
[0137]设置摇晃事件的摇晃方向为所述特征区域中的至少部分像素点的运动方向。
[0138]在本发明的一种可选实施例中,所述指定的交互操作事件可以包括屏幕点击事件,所述确定模块602还可以适于:
[0139]设置指向发生屏幕点击事件的位置为所述特征区域中的至少部分像素点的运动方向。
[0140]在本发明的一种可选实施例中,所述映射模块603还可以适于:
[0141]将所述特征区域划分一个或多个绘制图形;每个绘制图形中具有多个顶点,每个顶点具有纹理坐标;
[0142]在所述运动方向上,按照预设模式在一个或多个时间点移动每个绘制图形的顶占.V,
[0143]针对每个绘制图形,使用图形绘制接口按照每个顶点的纹理坐标对绘制图形中的像素点进行纹理映射,产生包含一帧或多帧变化图片的动态效果。
[0144]在本发明的一种可选实施例中,所述预设模式包括简谐运动模式和/或阻尼振动模式;所述映射模块603还可以适于:
[0145]在所述运动方向上,按照简谐运动模式和/或阻尼振动模式在一个或多个时间点移动每个绘制图形的顶点。
[0146]在本发明实施例的一种可选示例中,所述映射模块603还可以适于:
[0147]确定每个绘制图形的顶点的加速度;每个绘制图形的顶点具有原始坐标;
[0148]按照所述加速度和/或预设的阻尼系数,计算在一个或多个时间点内沿所述运动方向移动每个绘制图形的顶点的移动距离;
[0149]由所述原始坐标和所述移动距离计算每个绘制图形的顶点的目标坐标。
[0150]对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0151]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0152]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0153]类似地
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1