CN113902609B - 一种基于OpenGL嵌入式设备流畅渲染控件动画方法及设备 - Google Patents
一种基于OpenGL嵌入式设备流畅渲染控件动画方法及设备 Download PDFInfo
- Publication number
- CN113902609B CN113902609B CN202110598519.4A CN202110598519A CN113902609B CN 113902609 B CN113902609 B CN 113902609B CN 202110598519 A CN202110598519 A CN 202110598519A CN 113902609 B CN113902609 B CN 113902609B
- Authority
- CN
- China
- Prior art keywords
- control
- animation
- total
- playing
- opengl
- 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
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000009877 rendering Methods 0.000 title claims abstract description 18
- 238000006073 displacement reaction Methods 0.000 claims abstract description 7
- 239000012634 fragment Substances 0.000 claims abstract description 7
- 230000001133 acceleration Effects 0.000 claims description 5
- 238000007781 pre-processing Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 4
- 238000001914 filtration Methods 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 11
- 238000013507 mapping Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/80—2D [Two Dimensional] animation, e.g. using sprites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/40—Analysis of texture
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开一种基于OpenGL嵌入式设备流畅渲染控件动画方法及设备,所述方法包括:加载需要渲染到控件上的纹理贴;预设OpenGL的顶点着色器和片段着色器的位置属性和纹理属性;预设控件的相关属性;当监听到动画播放指令后,控件从初始位置开始播放;计算出控件当前移动所消耗的总时长,根据消耗的总时长进行对应策略控件移动;将位置属性和纹理属性绘制在控件上加载的纹理贴图上,并刷新显示界面;重复步骤5和步骤6,直至控件当前移动所消耗的总时长等于控件动画播放总时长,且控件的总位移等于起始位置到终点位置的总距离,则结束。本发明提高显示效果的平滑度,进而提高动画美感,流畅地渲染控件动画播放效果,提高用户体验。
Description
技术领域
本发明涉及控件渲染动画播放技术领域,具体涉及一种基于OpenGL嵌入式设备流畅渲染控件动画方法。
背景技术
现有的嵌入式设备很多都是基于arm-l inux系统,其应用领域丰富,应用变得越来越丰富。嵌入式设备界面的图形渲染要求也越来越高,更高清的图片素材可以使动画播放后的观感更为丰富,更高的动画帧率能够营造流畅的播放切换效果。对于嵌入式设备而言,出于成本需求,其芯片通常都以低功耗为主,使得嵌入式设备的图形渲染一般都是交由其CPU处理,当在高分辨率环境下渲染动画,容易出现卡顿等不流畅现象,继而影响用户的视觉效果,给用户不好的体验。针对上述问题,需要一种低功耗实现流畅控件移动渲染播放效果。
发明内容
针对现有技术的不足,本发明的目的在于提供一种基于OpenGL嵌入式设备流畅渲染控件动画方法,其能够解决控件动画渲染效率低、播放效果不平衡的问题。
实现本发明的目的的技术方案为:一种基于OpenGL嵌入式设备流畅渲染控件动画方法,包括如下步骤:
步骤1:完成OpenGL接口初始化,通过OpenGL加载需要渲染到控件上的纹理贴图;
步骤2:预设OpenGL的顶点着色器和片段着色器的位置属性和纹理属性,顶点着色器用于控制控件动画播放时的位置,片段着色器用于控制控件动画播放时的颜色和纹理显示;
步骤3:预设控件在开始动画播放的起始位置和结束动画播放的终点位置,并预设控件开始动画播放时的原始大小和结束动画播放时的目标大小,以及预设控件动画播放总时长和动画移动间隔时长;
步骤4:监听动画播放指令,当监听到动画播放指令后,控件从初始位置开始播放,并按动画移动间隔时长进行位置移动,在每个位置属性上,控件显示对应位置上的纹理属性;
步骤5:计算出控件当前移动所消耗的总时长,若消耗的总时长大于等于控件动画播放总时长,则将终点位置设置为控件下一个移动位置,控件移动到终点位置,
若消耗的总时长小于控件动画播放总时长,则计算出消耗比例因子,消耗比例因子=当前移动所消耗的总时长/控件动画播放总时长,然后按公式①计算出控件下次需要移动到的目标位置L:
L=L总*a2+L′------①
其中,L总为控件从起始位置到终点位置所需要移动的总距离,a表示所述消耗比例因子,L′表示控件当前所在位置;
步骤6:将步骤5中新计算出的目标位置作为位置信息更新到顶点着色器的位置属性,并刷新显示界面;
步骤7:重复步骤5和步骤6,直至控件当前移动所消耗的总时长等于控件动画播放总时长,且控件的总位移等于起始位置到终点位置的总距离,则结束处理。
进一步地,所述步骤1中,在加载需要渲染到控件上的纹理贴图之前,还包括通过双线性过滤模式对纹理贴图进行预处理,以放大纹理贴图中的纹理。
进一步地,所述动画移动间隔时长通过定时器完成。
一种嵌入式设备,包括支持OpenGL的图形加速硬件,图形加速硬件内置有存储器和处理器,
存储器,用于存储程序指令;
处理器,用于运行所述程序指令,以执行所述基于OpenGL嵌入式设备流畅渲染控件动画方法的步骤。
本发明的有益效果为:本发明能够很好地提供一种通过算法输出非线性的移动速度,提高显示效果的平滑度,进而提高动画美感,流畅地渲染控件动画播放效果,提高用户体验。
附图说明
图1为本发明的流程示意图。
具体实施方式
下面,结合附图以及具体实施方案,对本发明做进一步描述。
如图1所示,一种基于OpenGL嵌入式设备流畅渲染控件动画方法,所述嵌入式设备内置有图形加速硬件,图形加速硬件支持OpenGL,包括如下步骤:
步骤1:在完成OpenGL函数接口初始化后,通过OpenGL从图片库中加载需要渲染到控件上的纹理贴图,纹理贴图是贴合在控件上的图片,以使得控件播放时具有颜色、纹理变化等动画效果。在将纹理贴图加载到控件上之前,还包括通过双线性过滤模式对纹理贴图进行预处理,主要用于放大纹理贴图中的纹理,将预处理后的纹理贴图再加载到控件上。
步骤2:预设好OpenGL的顶点着色器和片段着色器的位置属性和纹理属性,位置属性和纹理属性具有对应映射关系,即不同位置上具有不同的纹理,顶点着色器用于控制控件动画播放时的位置,片段着色器用于控制控件动画播放时的颜色和纹理显示,当改变位置属性和/或纹理属性信息时,并通过渲染即可实现对控件移动播放效果。
步骤3:预设控件在嵌入式设备显示器上开始动画播放的起始位置和结束动画播放的终点位置,并预设控件开始动画播放时的原始大小和结束动画播放时的目标大小,以及预设控件动画播放总时长和动画移动间隔时长。
控件从开始播放到结束播放时,控件位置会发生移动,即起始位置和终点位置有差异(当然若位置不发生变化,则起始位置和终点位置设置相同即可),在移动的过程中,控件尺寸大小也可能发生变化,也即是控件的原始大小和目标大小可能发生变化,。例如从小变大或从大变小。控件从起始位置移动到终点位置的时间即为控件动画播放总时长,而控件从当前位置移动到下一个位置的时间即是动画移动间隔时长。动画移动间隔时长可通过定时器完成,也即当定时器每计时到某一时间,则控件进行一次移动。
步骤4:监听动画播放指令,当监听到动画播放指令后,控件从初始位置开始播放,并按动画移动间隔时长进行位置移动,在每个位置属性上,控件显示对应位置上的纹理属性。
步骤5:计算出控件当前移动所消耗的总时长,若消耗的总时长大于等于控件动画播放总时长,则将终点位置设置为控件下一个移动位置,控件移动到终点位置,也即控件下一个移动位置即是终点位置。
若消耗的总时长小于控件动画播放总时长,则计算出消耗比例因子,消耗比例因子=当前移动所消耗的总时长/控件动画播放总时长,可见消耗比例因子的取值范围在0-1之间,然后按公式①计算出控件下次需要移动到的目标位置L:
L=L总*a2+L′------①
其中,L总为控件从起始位置到终点位置所需要移动的总距离,a表示所述消耗比例因子,L′表示控件当前所在位置,也即是控件移动到下一个位置的起始位置。
通过本步骤处理,公式①相当于是控件缓动公式,能够计算出控件单次位移量,从而能够输出非线性位移量,优化空间动画显示效果,得出下次需要渲染的目标位置,从而从视觉效果上实现移动。
计算控件下次需要移动到的目标位置可以通过下述函数程序实现,具体如下:
static float EaseInQuad(float start,float distance,
float elapsedTime,float duration)
{
float ratio=(elapsedTime>duration)?1.0f:elapsedTime/duration;
return distance*ratio*ratio+start;
}
其中,start为起始位置,即是件当前所在位置,distance为总移动距离,即是控件从起始位置到终点位置所需要移动的总距离,elapsedTime为动画移动已消耗的时间值,即是控件当前移动所消耗的总时长,duration为总时长,即是控件动画播放总时长,ratio即是消耗比例因子。
其中,控件每一次移动都是一个二维坐标的转换,也即每一次移动均需要计算出控件横坐标和纵坐标移动目标值,计算出移动目标值后,对应在顶点着色器上修改二维坐标。
步骤6:将步骤5中新计算出的目标位置作为位置信息更新到顶点着色器的位置属性,并刷新显示界面。也即控件根据位置属性每移动到一个新位置上时,则在纹理贴图上绘制对应纹理属性。
步骤7:重复步骤5和步骤6,直至控件当前移动所消耗的总时长等于控件动画播放总时长,且控件的总位移等于起始位置到终点位置的总距离,即控件的总位移等于目标移动位置,则控件移动完成,控件播放动画全部加载完成,结束处理,并且定时器也停止工作。
通过以上步骤处理,本发明能够很好地提供一种通过算法输出非线性的移动速度,提高显示效果的平滑度,进而提高动画美感,流畅地渲染控件动画播放效果,提高用户体验。
本说明书所公开的实施例只是对本发明单方面特征的一个例证,本发明的保护范围不限于此实施例,其他任何功能等效的实施例均落入本发明的保护范围内。对于本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及变形,而所有的这些改变以及变形都应该属于本发明权利要求的保护范围之内。
Claims (4)
1.一种基于OpenGL嵌入式设备流畅渲染控件动画方法,其特征在于,包括如下步骤:
步骤1:完成OpenGL接口初始化,通过OpenGL从加载需要渲染到控件上的纹理贴图;
步骤2:预设OpenGL的顶点着色器和片段着色器的位置属性和纹理属性,顶点着色器用于控制控件动画播放时的位置,片段着色器用于控制控件动画播放时的颜色和纹理显示;
步骤3:预设控件在开始动画播放的起始位置和结束动画播放的终点位置,并预设控件开始动画播放时的原始大小和结束动画播放时的目标大小,以及预设控件动画播放总时长和动画移动间隔时长;
步骤4:监听动画播放指令,当监听到动画播放指令后,控件从初始位置开始播放,并按动画移动间隔时长进行位置移动,在每个位置属性上,控件显示对应位置上的纹理属性;
步骤5:计算出控件当前移动所消耗的总时长,若消耗的总时长大于等于控件动画播放总时长,则将终点位置设置为控件下一个移动位置,控件移动到终点位置,
若消耗的总时长小于控件动画播放总时长,则计算出消耗比例因子,消耗比例因子=当前移动所消耗的总时长/控件动画播放总时长,然后按公式①计算出控件下次需要移动到的目标位置L:
L=L总*a2+L′------①
其中,L总为控件从起始位置到终点位置所需要移动的总距离,a表示所述消耗比例因子,L′表示控件当前所在位置;
步骤6:将步骤5新计算出的目标位置作为位置信息更新到顶点着色器的位置属性,并刷新显示界面;
步骤7:重复步骤5和步骤6,直至控件当前移动所消耗的总时长等于控件动画播放总时长,且控件的总位移等于起始位置到终点位置的总距离,则结束处理。
2.根据权利要求1所述的基于OpenGL嵌入式设备流畅渲染控件动画方法,其特征在于,所述步骤1中,在加载需要渲染到控件上的纹理贴图之前,还包括通过双线性过滤模式对纹理贴图进行预处理,以放大纹理贴图中的纹理。
3.根据权利要求1所述的基于OpenGL嵌入式设备流畅渲染控件动画方法,其特征在于,所述动画移动间隔时长通过定时器完成。
4.一种嵌入式设备,包括支持OpenGL的图形加速硬件,图形加速硬件内置有存储器和处理器,
存储器,用于存储程序指令;
处理器,用于运行所述程序指令,以执行如权利要求1-3任一项所述基于OpenGL嵌入式设备流畅渲染控件动画方法的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110288676 | 2021-03-17 | ||
CN2021102886765 | 2021-03-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113902609A CN113902609A (zh) | 2022-01-07 |
CN113902609B true CN113902609B (zh) | 2022-06-10 |
Family
ID=79187471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110598519.4A Active CN113902609B (zh) | 2021-03-17 | 2021-05-28 | 一种基于OpenGL嵌入式设备流畅渲染控件动画方法及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113902609B (zh) |
WO (1) | WO2022193474A1 (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107154068A (zh) * | 2017-05-11 | 2017-09-12 | 腾讯科技(深圳)有限公司 | 一种动画生成方法、装置、客户端以及计算机可读存储介质 |
CN107846585A (zh) * | 2016-09-18 | 2018-03-27 | 中兴通讯股份有限公司 | 一种视频播放流畅度检测方法和装置 |
CN108235086A (zh) * | 2017-12-18 | 2018-06-29 | 广州华多网络科技有限公司 | 视频播放控制方法、装置及相应的终端 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6734848B2 (en) * | 2001-09-07 | 2004-05-11 | Business Animation Inc. | Animated 3D visualization of super multivariate equations |
CN1936964A (zh) * | 2006-10-20 | 2007-03-28 | 珠海金山软件股份有限公司 | 一种实现3d场景中的动画纹理的方法 |
US8711204B2 (en) * | 2009-11-11 | 2014-04-29 | Disney Enterprises, Inc. | Stereoscopic editing for video production, post-production and display adaptation |
CN102169596B (zh) * | 2011-03-09 | 2013-08-14 | 深圳市酷开网络科技有限公司 | 一种在嵌入式设备上实现3d渲染的方法及装置 |
CN103177465B (zh) * | 2011-12-26 | 2016-04-13 | 腾讯科技(深圳)有限公司 | 动画控制方法及系统 |
CN104142807A (zh) * | 2014-08-02 | 2014-11-12 | 合一网络技术(北京)有限公司 | 基于安卓控件利用OpenGL绘制图像的方法和系统 |
CN107071556B (zh) * | 2017-04-18 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 一种界面渲染方法和装置 |
CN107786886A (zh) * | 2017-11-01 | 2018-03-09 | 深圳市雷鸟信息科技有限公司 | 智能电视的焦点控制方法、智能电视及存储介质 |
CN109785417B (zh) * | 2018-11-29 | 2023-06-09 | 武汉凌久微电子有限公司 | 一种实现OpenGL累积操作的方法及装置 |
CN109814970B (zh) * | 2019-01-22 | 2021-09-10 | 西安电子科技大学 | 一种基于OpenGL-ES的动态进度条绘制方法 |
CN112116522A (zh) * | 2019-09-05 | 2020-12-22 | 北京无线电测量研究所 | 一种基于现代可编程图形管线的雷达数据可视化框架 |
CN110969690B (zh) * | 2019-12-19 | 2023-05-23 | 福建天晴数码有限公司 | 一种基于纹理的顶点动画数据存储方法及其系统 |
CN111145321B (zh) * | 2019-12-25 | 2023-06-27 | 河南蜻蜓云智能科技有限公司 | 一种利用序列帧实现场景旋转和转换的方法及系统 |
CN111311716B (zh) * | 2020-02-27 | 2023-05-12 | Oppo广东移动通信有限公司 | 动画播放方法、装置、终端设备以及存储介质 |
GB2596104B (en) * | 2020-06-17 | 2022-07-06 | Imagination Tech Ltd | Input/output filter unit for graphics processing unit |
CN112489183A (zh) * | 2020-11-26 | 2021-03-12 | 北京邮电大学 | 基于Unity3D的骨骼动画渲染方法及系统 |
CN112489171A (zh) * | 2020-12-25 | 2021-03-12 | 珠海金山网络游戏科技有限公司 | 一种动画效果模拟方法及装置 |
-
2021
- 2021-05-28 CN CN202110598519.4A patent/CN113902609B/zh active Active
- 2021-06-30 WO PCT/CN2021/103740 patent/WO2022193474A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107846585A (zh) * | 2016-09-18 | 2018-03-27 | 中兴通讯股份有限公司 | 一种视频播放流畅度检测方法和装置 |
CN107154068A (zh) * | 2017-05-11 | 2017-09-12 | 腾讯科技(深圳)有限公司 | 一种动画生成方法、装置、客户端以及计算机可读存储介质 |
CN108235086A (zh) * | 2017-12-18 | 2018-06-29 | 广州华多网络科技有限公司 | 视频播放控制方法、装置及相应的终端 |
Also Published As
Publication number | Publication date |
---|---|
WO2022193474A1 (zh) | 2022-09-22 |
CN113902609A (zh) | 2022-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10510183B2 (en) | Graphics processing enhancement by tracking object and/or primitive identifiers | |
US10438396B2 (en) | Method for efficient construction of high resolution display buffers | |
CN109840931B (zh) | 骨骼动画的合批渲染方法、装置、系统及存储介质 | |
US20080284798A1 (en) | Post-render graphics overlays | |
EP2245598B1 (en) | Multi-buffer support for off-screen surfaces in a graphics processing system | |
US20100265254A1 (en) | Graphics filled shape drawing | |
WO2011158446A1 (ja) | アニメーション制御装置、アニメーション制御方法およびアニメーション制御プログラム | |
EP2241970B1 (en) | System for accelerating composite graphics rendering | |
US9214036B1 (en) | Animation engine for blending computer animation data | |
US20170249925A1 (en) | Method and device for switching playing mode of a mobile terminal, storage medium and program | |
KR100809522B1 (ko) | 지형의 효율적인 뷰-의존 lod 렌더링 방법 | |
US6501474B1 (en) | Method and system for efficient rendering of image component polygons | |
CN113902609B (zh) | 一种基于OpenGL嵌入式设备流畅渲染控件动画方法及设备 | |
CN100543777C (zh) | 用于在一个存储桶绘制系统中确保向后兼容的方法和装置 | |
JP3186240B2 (ja) | 図形編集装置 | |
US20210104088A1 (en) | Method for efficient construction of high resolution display buffers | |
CN110812840A (zh) | 游戏对象的控制方法、装置、可读存储介质及电子设备 | |
CN115588070B (zh) | 一种三维图像风格化迁移方法及终端 | |
CN111729304B (zh) | 一种展示海量对象的方法 | |
JP3422278B2 (ja) | グラフィックアクセラレータ | |
JP2003067770A (ja) | 画像生成装置および画像生成プログラム | |
JP2003187260A (ja) | 描画処理プログラム、描画処理プログラムを記録した記録媒体、描画処理装置及び方法 | |
CN115761088A (zh) | 元素生成方法、渲染方法、装置、电子设备、存储介质 | |
CN114756316A (zh) | 基于液晶屏的表情互动的显示方法、介质、仪表和装置 | |
CN113674132A (zh) | 一种通过检测显卡能力切换窗口管理渲染后端的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: No. 56 Nanli East Road, Shiqi Town, Panyu District, Guangzhou City, Guangdong Province, 510000 Patentee after: Guangdong Baolun Electronics Co.,Ltd. Address before: No.19 Chuangyuan Road, Zhongcun street, Panyu District, Guangzhou, Guangdong 510000 Patentee before: GUANGZHOU ITC ELECTRONIC TECHNOLOGY Co.,Ltd. |
|
CP03 | Change of name, title or address |