CN117372597A - 动画渲染方法、装置、电子设备及可读存储介质 - Google Patents
动画渲染方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN117372597A CN117372597A CN202311405289.0A CN202311405289A CN117372597A CN 117372597 A CN117372597 A CN 117372597A CN 202311405289 A CN202311405289 A CN 202311405289A CN 117372597 A CN117372597 A CN 117372597A
- Authority
- CN
- China
- Prior art keywords
- thread
- information
- controlling
- rendering
- animation
- 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.)
- Pending
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 120
- 238000000034 method Methods 0.000 title claims abstract description 75
- 230000006870 function Effects 0.000 claims description 54
- 230000015572 biosynthetic process Effects 0.000 claims description 11
- 238000003786 synthesis reaction Methods 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 230000002708 enhancing effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
Abstract
本申请公开了一种动画渲染方法、装置、电子设备及可读存储介质,动画渲染方法,包括:控制预先创建的第一线程从用户界面UI线程上获取第一图像帧;控制所述第一线程确定所述第一图像帧的第一属性信息和所述第一图像帧对应的第一绘制信息,所述第一属性信息包括如下至少一项:透明度信息、缩放信息和移动信息;控制所述第一线程向第一渲染线程同步所述第一属性信息和所述第一绘制信息;控制所述第一渲染线程根据所述第一属性信息和所述第一绘制信息进行渲染,得到所述第一图像帧对应的第一动画图像。
Description
技术领域
本申请属于图像处理技术领域,具体涉及一种动画渲染方法、装置、电子设备及可读存储介质。
背景技术
随着图像处理技术的不断发展,动画渲染在电子设备上的应用也越来越广泛。当前在动画渲染的过程中,通常采用用户界面(User Interface,UI)线程实现动画的渲染,但是由于UI线程的负载较重,导致渲染得到的动画容易出现不流畅、抖动或者卡顿等问题,可见,当前动画渲染的效果较差。
发明内容
本申请实施例的目的是提供一种动画渲染方法、装置、电子设备及可读存储介质,能够解决当前动画渲染的效果较差的问题。
第一方面,本申请实施例提供了一种动画渲染方法,包括:
控制预先创建的第一线程从用户界面UI线程上获取第一图像帧;
控制所述第一线程确定所述第一图像帧的第一属性信息和所述第一图像帧对应的第一绘制信息,所述第一属性信息包括如下至少一项:透明度信息、缩放信息和移动信息;
控制所述第一线程向第一渲染线程同步所述第一属性信息和所述第一绘制信息;
控制所述第一渲染线程根据所述第一属性信息和所述第一绘制信息进行渲染,得到所述第一图像帧对应的第一动画图像。
第二方面,本申请实施例提供了一种动画渲染装置,包括:
第一控制模块,用于控制预先创建的第一线程从用户界面UI线程上获取第一图像帧;
第二控制模块,用于控制所述第一线程确定所述第一图像帧的第一属性信息和所述第一图像帧对应的第一绘制信息,所述第一属性信息包括如下至少一项:透明度信息、缩放信息和移动信息;
第三控制模块,用于控制所述第一线程向第一渲染线程同步所述第一属性信息和所述第一绘制信息;
第四控制模块,用于控制所述第一渲染线程根据所述第一属性信息和所述第一绘制信息进行渲染,得到所述第一图像帧对应的第一动画图像。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
在本申请实施例中,可以控制预先创建的第一线程确定第一图像帧的第一属性信息和第一图像帧对应的第一绘制信息,并控制第一渲染线程根据第一属性信息和第一绘制信息进行渲染,得到第一图像帧对应的第一动画图像,即第一线程可以专门用于动画渲染,从而无需在UI线程实现动画的渲染,降低了UI线程的负载,进而增强了动画渲染的效果。
附图说明
图1是本申请实施例提供的一种动画渲染方法的流程图;
图2是本申请实施例提供的动画渲染方法的应用场景图之一;
图3是本申请实施例提供的动画渲染方法的应用场景图之二;
图4是本申请实施例提供的动画渲染方法的应用场景图之三;
图5是本申请实施例提供的动画渲染方法的应用场景图之四;
图6是本申请实施例提供的动画渲染方法的应用场景图之五;
图7是本申请实施例提供的动画渲染方法的应用场景图之六;
图8是本申请实施例提供的动画渲染装置的结构示意图;
图9是本申请实施例提供的电子设备的结构示意图之一;
图10是本申请实施例提供的电子设备的结构示意图之二。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的一种动画渲染方法进行详细地说明。
参见图1,图1为本申请实施例提供的一种动画渲染方法的流程图,该方法可以应用于电子设备上,如图1所示,动画渲染方法,包括如下步骤:
步骤101、控制预先创建的第一线程从UI线程上获取第一图像帧。
其中,第一线程与UI线程不同,即第一线程与UI线程为不同的线程,第一线程与UI线程可以为相互独立的线程,因而,第一线程也可以被称作为独立线程或者动画线程。
可选地,第一线程可以为AsyncAnimBoostThread线程。
其中,UI线程可以被称作为主线程,而第一图像帧可以被称作为View或者RenderNode。
步骤102、控制所述第一线程确定所述第一图像帧的第一属性信息和所述第一图像帧对应的第一绘制信息,所述第一属性信息包括如下至少一项:透明度信息、缩放信息和移动信息。
其中,透明度信息可以被称作为alpha信息,而缩放信息可以被称作为scale X/Y信息,即缩放信息包括scale X信息和scale Y信息,移动信息可以被称作为translate X/Y信息,即移动信息可以包括translate X信息和translate Y信息,X和Y可以分别指不同的方向。
其中,第一绘制信息可以用于表示如何绘制第一图像帧对应的第一动画图像的指令信息。
可选地,电子设备上可以包括用于实现应用程序的功能的第一功能模块,而第一线程与第一功能模块之间可以设置有setAsyncAlpha接口、setAsyncScaleX接口、setAsyncScaleY接口、setAsyncTranslateX接口和setAsyncTranslateY接口等接口,而第一线程可以通过setAsyncAlpha接口、setAsyncScaleX接口、setAsyncScaleY接口、setAsyncTranslateX接口和setAsyncTranslateY接口等接口来分别确定透明度信息、缩放信息和移动信息,这样,使得最终得到的第一动画图像可以在应用程序对应的应用界面上显示。参见图6,第一线程和UI线程可以分别确定透明度信息、缩放信息和移动信息。
步骤103、控制所述第一线程向第一渲染线程同步所述第一属性信息和所述第一绘制信息。
其中,第一渲染线程可以为确定第一属性信息和第一绘制信息之前,预先创建的线程,或者,也可以为确定第一属性信息和第一绘制信息之后,创建的线程,具体在此不做限定。
可选地,参见图5,第一线程可以通过commitRecords接口和asyncBoostDraw接口分别向第一渲染线程同步第一属性信息和第一绘制信息,而上述commitRecords接口也可以被称作为commit records to RenderThread接口,如图5所示,第一属性信息可以包括mAsyncDirtyPropertyFields、mAsyncAlpha、mAsyncScaleX和mAsyncScaleY,而第一绘制信息可以包括mAsyncDisplayList。
步骤104、控制所述第一渲染线程根据所述第一属性信息和所述第一绘制信息进行渲染,得到所述第一图像帧对应的第一动画图像。
可选地,参见图5,第一渲染线程可以包括预备树(prepare Tree),而第一属性信息可以为mAsyncProperities,可以先将mAsyncProperities进行归一化处理,得到目标属性信息mProperities,当第一属性信息为更新之后的属性信息时,第一属性信息可以为mAsyncProperitiesChanges,而上述得到目标属性信息的过程也可以被称作为将mAsyncProperities赋值给mProperities,即图5中的Async properities toproperities;第一绘制信息可以被称作为mAsyncDisplayList,当第一绘制信息为更新之后的第一绘制信息时,第一绘制信息可以为mAsyncDisplayListChanges,可以将mAsyncDisplayList与第一渲染线程预设的绘制信息mDisplyList进行合并,即图5中的Async displayLists merge to displayLists,从而得到目标绘制信息,然后根据目标属性信息和目标绘制信息进行渲染,生成第一动画图像,而第一动画图像可以被称作为drawFrame。
参见图2,图2中包括UI线程、动画线程、渲染线程和合成进程,而图2中的动画线程即可以理解为本申请实施例中的第一线程,渲染线程即可以理解为本申请实施例中的第一渲染线程。参见图2,动画线程可以对第一图像帧20进行处理、而渲染线程可以根据第一图像帧20得到第一动画图像21,合成进程可以将第一动画图像21与其他动画图像(如后文中所说的第二动画图像)进行合成,最终得到目标动画图像22;另外,动画线程、渲染线程和合成进程可以分时段分别对四张第一图像帧20进行处理,从而可以得到四张目标动画图像22。
本申请实施例中,通过步骤101至104,可以控制预先创建的第一线程确定第一图像帧的第一属性信息和第一图像帧对应的第一绘制信息,并控制第一渲染线程根据第一属性信息和第一绘制信息进行渲染,得到第一图像帧对应的第一动画图像,即第一线程可以专门用于动画渲染,从而无需在UI线程实现动画的渲染,降低了UI线程的负载,进而增强了动画渲染的效果。
作为一种可选的实施方式,所述控制所述第一线程确定所述第一图像帧的第一属性信息和所述第一图像帧对应的第一绘制信息,包括:
在所述第一线程与舞蹈编导Choreographer接口绑定的情况下,检测所述第一线程是否通过所述Choreographer接口接收到垂直同步(Vertical Synchronization,VSYNC)信号;
在所述第一线程通过所述Choreographer接口接收到所述VSYNC信号的情况下,控制所述第一线程确定所述第一属性信息和所述第一绘制信息。
其中,VSYNC指的是在计算机图形处理中,用于同步屏幕刷新率和图形渲染的技术。通过VSYNC信号,可以使得在进行渲染得到第一动画图像时,图形渲染的帧速率与电子设备的显示屏的刷新速率进行同步,以消除显示屏撕裂现象,并提供更平滑的视觉体验。而上述VSYNC信号可以来自电子设备内部的硬件合成器(Hardware Composer,HWC)。
其中,Choreographer接口,可以通过接收VSYNC信号,并统一管理线程进行信息输入、动画绘制等任务的执行时机,从而使得第一动画图像的绘制任务将在Choreographer接口的统一指挥下,可以井然有序的完成。
本申请实施方式中,在第一线程通过Choreographer接口接收到VSYNC信号的情况下,才控制第一线程确定第一属性信息和第一绘制信息,提高了第一线程确定第一属性信息和第一绘制信息的准确度,减少了误触发第一线程确定第一属性信息和第一绘制信息的现象的出现。
在上述实施方式中,由于第一线程为预先创建的线程,即电子设备可以在初始化的过程中,先创建一个新的线程作为独立线程,该独立线程即为第一线程,并将第一线程绑定到Choreographer接口,用于接收VSYNC信号,并可以在接收到VSYNC信号的情况下,完成第一动画图像的渲染。
需要说明的是,当第一图像帧的第一属性信息设置完成后,为了保证动画的连贯性,需要请求下一个VSYNC信号,并在Choreographer接口的CallbackQueue里面放入类型为CALLBACK_ANIMIATION的回调函数(即在第一图像帧中确定的格式信息),并等待在下一个VSYNC信号对应的下一帧图像帧中执行。
作为一种可选的实施方式,所述控制所述第一线程确定所述第一属性信息和所述第一绘制信息,包括:
控制所述第一线程调用第一回调函数,以确定所述第一属性信息,所述第一回调函数用于确定所述第一属性信息的格式信息;
在所述第一属性信息确定的情况下,控制所述第一线程调用第二回调函数,以确定所述第一绘制信息,所述第二回调函数用于确定所述第一绘制信息的格式信息。
其中,格式信息也可以被称作为类型信息,而第一回调函数确定的格式信息可以为CALLBACK_ANIMATION对应的格式信息,第二回调函数确定的格式信息可以为CALLBACK_TRAVERSAL对应的格式信息。
需要说明的是,上述第一回调函数和第二回调函数可以存储于Choreographer接口的CallbackQueue中,另外,当第一回调函数或者第二回调函数更新之后,更新之后的第一回调函数或者第二回调函数可以存储至CallbackQueue中,并可以通过更新之后的第一回调函数或者第二回调函数确定下一帧第一图像帧的格式信息。
可选地,CallbackQueue中可以存储CALLBACK_ANIMIATION对应的格式信息,并将CALLBACK_ANIMIATION对应的格式信息在下一帧第一图像帧中执行。
本申请实施方式中,通过调用第一回调函数以确定第一属性信息,调用第二回调函数以确定第一绘制信息,从而可以简化第一属性信息和第一绘制信息的确定方式,使得第一属性信息和第一绘制信息的确定结果的准确度高。
作为一种可选的实施方式,所述控制所述第一线程调用第二回调函数,以确定所述第一绘制信息,包括:
控制所述第一线程调用第二回调函数,以确定所述第一绘制信息的格式信息;
控制所述第一线程调用第一接口的开始时刻信息,以及调用第二接口的结束时刻信息;
控制所述第一线程根据所述第一绘制信息的格式信息、所述开始时刻信息和所述结束时刻信息确定所述第一绘制信息。
其中,第一绘制信息中指令的格式信息可以为上述第二回调函数确定的格式信息,或者,第一绘制信息中指令的格式信息可以为根据上述第二回调函数确定的格式信息进行调整之后的信息。
其中,参见图7,第一接口可以为beginAsyncRecording接口,第二接口可以为endAsyncRecording接口,通过上述第一接口和第二接口可以分别确定第一绘制信息中第一动画图像的绘制开始时间和绘制结束时间。
需要说明的是,第一线程和UI线程分别可以具有对应的第一接口和第二接口,即第一线程可以包括第一接口和第二接口,UI线程也可以包括第一接口和第二接口,这样,第一线程包括的第一接口和第二接口可以分别确定第一动画图像的绘制开始时间和绘制结束时间,而UI线程包括的第一接口和第二接口可以分别确定其他动画图像的绘制开始时间和绘制结束时间。因而,第一线程和UI线程可以分别独立绘制得到不同的动画图像,即第一线程和UI线程实现了动画图像绘制的解耦。
另外,第一动画图像和其他动画图像可以均为图像树中的图像,而图像树可以被称作为ViewTree。
需要说明的是,第一线程确定的第一动画图像的绘制开始时间,可以与UI线程确定的其他动画图像的绘制开始时间相同,且第一线程确定的第一动画图像的绘制结束时间,可以与UI线程确定的其他动画图像的绘制结束时间相同,此时可以称作为第一动画图像和其他动画图像绘制同步。
当第一线程确定的第一动画图像的绘制开始时间,与UI线程确定的其他动画图像的绘制开始时间不同,或者,第一线程确定的第一动画图像的绘制结束时间,与UI线程确定的其他动画图像的绘制结束时间不同时,此时可以称作为第一动画图像和其他动画图像绘制异步。
另外,第一动画图像和其他动画图像绘制异步时,UI线程和第一线程可以复用第一渲染线程,从而提高第一渲染线程的利用率,参见图3,如图3所示,UI线程与第一渲染线程之间可以通过properity/displaylist change接口和syncAndDraw接口连接,而第一线程与第一渲染线程之间可以通过properity/displaylist async change接口和asyncBoostDraw接口连接。
本申请实施方式中,控制第一线程根据格式信息、开始时刻信息和结束时刻信息确定第一绘制信息,这样,可以提高确定得到的第一绘制信息的准确度。
可选地,参见图7,上述第一线程可以通过代理接口asyncDrawDelegeteonDraw与电子设备中用于实现应用程序功能的第二功能模块连接,而第二功能模块可以调用第一线程中的asyncValidateView接口生成得到注册绘制指令,第一线程可以根据上述注册绘制指令、格式信息、开始时刻信息和结束时刻信息确定第一绘制信息,第一绘制信息也可以被称作为第一图像帧绘画展示列表,上述注册绘制指令可以用于确定第一动画图像的布局位置、绘制尺寸等参数,上述第二功能模块与第一功能模块可以相同,即此时两者对应同一个应用程序,或者,上述第二功能模块与上述第一功能模块不同,即此时两者对应不同应用程序。
需要说明的是,当第一绘制信息确定后,如果有View(即新的图像帧)通过asyncValidateView接口请求了新的绘制(即需要根据新的图像帧绘制新的动画图像),则第一线程需要请求下一个VSYNC信号,并在Choreographer接口的CallbackQueue里面放入类型为CALLBACK_TRAVERSAL的回调函数(即第一图像帧的格式信息),并等待在下一帧(即上述新的图像帧)中执行。
作为一种可选的实施方式,所述控制所述第一线程确定所述第一图像帧的第一属性信息和所述第一图像帧对应的第一绘制信息,包括:
控制所述第一线程从所述UI线程上获取所述第一图像帧的第二属性信息和所述第一图像帧的第二绘制信息;
控制所述第一线程将所述第二属性信息更新为所述第一属性信息,以及,控制所述第一线程将所述第二绘制信息更新为所述第一绘制信息。
本申请实施方式中,控制第一线程将第二属性信息更新为第一属性信息,以及,控制第一线程将第二绘制信息更新为第一绘制信息,即可以控制第一线程对第二属性信息和第二绘制信息进行调整,从而得到对应的第一属性信息和第二绘制信息,从而可以增强第一属性信息和第二绘制信息确定方式的多样性。
即本申请实施方式中,通过将计算第一动画图像进度的逻辑放到第一线程这个独立线程中,并通过将第一图像帧的第二属性信息更新为第一图像帧的第一属性信息,以及,将第二绘制信息更新为第一绘制信息,从而在第一线程这个独立线程中驱动第一动画图像的渲染的完成。
可选地,可以根据第一动画图像对应的图像类型从而确定第二属性信息和第二绘制信息的更新度,如当第一动画图像对应的图像类型为人物时,第二属性信息和第二绘制信息的更新度小于预设阈值,即此时第二属性信息与第一属性信息的差值较小,第二绘制信息与第一绘制信息的差值较小;当第一动画图像对应的图像类型为风景时,第二属性信息和第二绘制信息的更新度大于预设阈值,即此时第二属性信息与第一属性信息的差值较大,第二绘制信息与第一绘制信息的差值较大。
作为另一种可选的实施方式,所述控制所述第一线程确定所述第一图像帧的第一属性信息和所述第一图像帧对应的第一绘制信息,包括:
控制所述第一线程从所述UI线程上获取所述第一图像帧的第二属性信息和所述第一图像帧的第二绘制信息;
控制所述第一线程将所述第二属性信息确定为所述第一属性信息,以及,控制所述第一线程将所述第二绘制信息确定为所述第一绘制信息。
本申请实施方式中,可以直接将第二属性信息确定为第一属性信息,且将第二绘制信息确定为第一绘制信息,即无需对第二属性信息和第二绘制信息进行调整,从而简化了第一属性信息和第一绘制信息的确定方式。
作为一种可选的实施方式,所述控制所述第一渲染线程根据所述第一属性信息和所述第一绘制信息进行渲染,得到所述第一图像帧对应的第一动画图像之后,所述方法还包括:
控制合成进程获取所述第一动画图像和第二动画图像,所述第二动画图像为第二渲染线程渲染得到的动画图像,且所述第二渲染线程与所述第一渲染线程不同;
控制所述合成进程将所述第二动画图像与所述第一动画图像进行合成,得到目标动画图像。
其中,参见图2,图2中所示的合成进程即为本申请实施方式中的合成进程。
其中,第二渲染线程可以为与第一渲染线程互相独立的线程,且第二渲染线程渲染得到第二动画图像的方式可以参见上述第一渲染线程渲染得到第一动画图像的方式,第二动画图像和第一动画图像的内容可以不同,这样,使得目标动画图像中可以同时包括第二动画图像和第一动画图像的内容,即目标动画图像中可以包括两个动画区域,增强了目标动画图像的显示效果。
本申请实施方式中,控制合成进程将第二动画图像与第一动画图像进行合成,得到目标动画图像,这样,可以使得目标动画图像的显示内容更加丰富,增强目标动画图像的显示效果。
需要说明的是,图4为本申请实施例提供的一种动画渲染方法的流程图,可以从整体上说明本申请实施例,具体在此不再赘述。
本申请实施例中,上述电子设备可以是手机、平板电脑(Tablet PersonalComputer)、膝上型电脑(Laptop Computer)、个人数字助理(Personal DigitalAssistant,简称PDA)、移动上网装置(Mobile Internet Device,MID)或可穿戴式设备(Wearable Device)等等。
需要说明的是,本申请实施例提供的动画渲染方法,执行主体可以为动画渲染装置,或者该动画渲染装置中的用于执行动画渲染方法的控制模块。本申请实施例中以动画渲染装置执行动画渲染方法为例,说明本申请实施例提供的动画渲染装置。
参见图8,图8为本申请实施例提供的一种动画渲染装置的结构示意图,如图8所示,动画渲染装置800,包括:
第一控制模块801,用于控制预先创建的第一线程从用户界面UI线程上获取第一图像帧;
第二控制模块802,用于控制所述第一线程确定所述第一图像帧的第一属性信息和所述第一图像帧对应的第一绘制信息,所述第一属性信息包括如下至少一项:透明度信息、缩放信息和移动信息;
第三控制模块803,用于控制所述第一线程向第一渲染线程同步所述第一属性信息和所述第一绘制信息;
第四控制模块804,用于控制所述第一渲染线程根据所述第一属性信息和所述第一绘制信息进行渲染,得到所述第一图像帧对应的第一动画图像。
作为一种可选的实施方式,所述第二控制模块802,包括:
检测子模块,用于在所述第一线程与舞蹈编导Choreographer接口绑定的情况下,检测所述第一线程是否通过所述Choreographer接口接收到垂直同步VSYNC信号;
第一控制子模块,用于在所述第一线程通过所述Choreographer接口接收到所述VSYNC信号的情况下,控制所述第一线程确定所述第一属性信息和所述第一绘制信息。
作为一种可选的实施方式,所述第一控制子模块,包括:
第一控制单元,用于控制所述第一线程调用第一回调函数,以确定所述第一属性信息,所述第一回调函数用于确定所述第一属性信息的格式信息;
第二控制单元,用于在所述第一属性信息确定的情况下,控制所述第一线程调用第二回调函数,以确定所述第一绘制信息,所述第二回调函数用于确定所述第一绘制信息的格式信息。
作为一种可选的实施方式,所述第二控制单元,包括:
第一控制子单元,用于控制所述第一线程调用第二回调函数,以确定所述第一绘制信息的格式信息;
第二控制子单元,用于控制所述第一线程调用第一接口的开始时刻信息,以及调用第二接口的结束时刻信息;
第三控制子单元,用于控制所述第一线程根据所述第一绘制信息的格式信息、所述开始时刻信息和所述结束时刻信息确定所述第一绘制信息。
作为一种可选的实施方式,所述第二控制模块802,包括:
第二控制子模块,用于控制所述第一线程从所述UI线程上获取所述第一图像帧的第二属性信息和所述第一图像帧的第二绘制信息;
第三控制子模块,用于控制所述第一线程将所述第二属性信息更新为所述第一属性信息,以及,控制所述第一线程将所述第二绘制信息更新为所述第一绘制信息。
作为一种可选的实施方式,动画渲染装置800,还包括:
第五控制模块,用于控制合成进程获取所述第一动画图像和第二动画图像,所述第二动画图像为第二渲染线程渲染得到的动画图像,且所述第二渲染线程与所述第一渲染线程不同;
第六控制模块,用于控制所述合成进程将所述第二动画图像与所述第一动画图像进行合成,得到目标动画图像。
本申请实施例中的动画渲染装置800可以是装置,也可以是终端中的部件、集成电路、或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personaldigital assistant,PDA)等,非移动电子设备可以为服务器、网络附属存储器(NetworkAttached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的动画渲染装置800可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的动画渲染装置800能够实现图1的方法实施例实现的各个过程,为避免重复,这里不再赘述。
可选的,如图9所示,本申请实施例还提供一种电子设备900,包括处理器901,存储器902,存储在存储器902上并可在所述处理器901上运行的程序或指令,该程序或指令被处理器901执行时实现上述动画渲染方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
图10为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备1000包括但不限于:射频单元1001、网络模块1002、音频输出单元1003、输入单元1004、传感器1005、显示单元1006、用户输入单元1007、接口单元1008、存储器1009、以及处理器1010等部件。
本领域技术人员可以理解,电子设备1000还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器1010逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图10中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,处理器1010,用于:
控制预先创建的第一线程从用户界面UI线程上获取第一图像帧;
控制所述第一线程确定所述第一图像帧的第一属性信息和所述第一图像帧对应的第一绘制信息,所述第一属性信息包括如下至少一项:透明度信息、缩放信息和移动信息;
控制所述第一线程向第一渲染线程同步所述第一属性信息和所述第一绘制信息;
控制所述第一渲染线程根据所述第一属性信息和所述第一绘制信息进行渲染,得到所述第一图像帧对应的第一动画图像。
作为一种可选的实施方式,处理器1010,执行的所述控制所述第一线程确定所述第一图像帧的第一属性信息和所述第一图像帧对应的第一绘制信息,包括:
在所述第一线程与舞蹈编导Choreographer接口绑定的情况下,检测所述第一线程是否通过所述Choreographer接口接收到垂直同步VSYNC信号;
在所述第一线程通过所述Choreographer接口接收到所述VSYNC信号的情况下,控制所述第一线程确定所述第一属性信息和所述第一绘制信息。
作为一种可选的实施方式,处理器1010,执行的所述控制所述第一线程确定所述第一属性信息和所述第一绘制信息,包括:
控制所述第一线程调用第一回调函数,以确定所述第一属性信息,所述第一回调函数用于确定所述第一属性信息的格式信息;
在所述第一属性信息确定的情况下,控制所述第一线程调用第二回调函数,以确定所述第一绘制信息,所述第二回调函数用于确定所述第一绘制信息的格式信息。
作为一种可选的实施方式,处理器1010,执行的所述控制所述第一线程调用第二回调函数,以确定所述第一绘制信息,包括:
控制所述第一线程调用第二回调函数,以确定所述第一绘制信息的格式信息;
控制所述第一线程调用第一接口的开始时刻信息,以及调用第二接口的结束时刻信息;
控制所述第一线程根据所述第一绘制信息的格式信息、所述开始时刻信息和所述结束时刻信息确定所述第一绘制信息。
作为一种可选的实施方式,处理器1010,执行的所述控制所述第一线程确定所述第一图像帧的第一属性信息和所述第一图像帧对应的第一绘制信息,包括:
控制所述第一线程从所述UI线程上获取所述第一图像帧的第二属性信息和所述第一图像帧的第二绘制信息;
控制所述第一线程将所述第二属性信息更新为所述第一属性信息,以及,控制所述第一线程将所述第二绘制信息更新为所述第一绘制信息。
作为一种可选的实施方式,处理器1010,还用于:
控制合成进程获取所述第一动画图像和第二动画图像,所述第二动画图像为第二渲染线程渲染得到的动画图像,且所述第二渲染线程与所述第一渲染线程不同;
控制所述合成进程将所述第二动画图像与所述第一动画图像进行合成,得到目标动画图像。
应理解的是,本申请实施例中,输入单元1004可以包括图形处理器(GraphicsProcessing Unit,GPU)10041和麦克风10042,图形处理器10041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元1006可包括显示面板10061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板10061。用户输入单元1007包括触控面板10071以及其他输入设备10072。触控面板10071,也称为触摸屏。触控面板10071可包括触摸检测装置和触摸控制器两个部分。其他输入设备10072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。存储器1009可用于存储软件程序以及各种数据,包括但不限于应用程序和操作系统。处理器1010可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1010中。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述动画渲染方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述动画渲染方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (10)
1.一种动画渲染方法,其特征在于,包括:
控制预先创建的第一线程从用户界面UI线程上获取第一图像帧;
控制所述第一线程确定所述第一图像帧的第一属性信息和所述第一图像帧对应的第一绘制信息,所述第一属性信息包括如下至少一项:透明度信息、缩放信息和移动信息;
控制所述第一线程向第一渲染线程同步所述第一属性信息和所述第一绘制信息;
控制所述第一渲染线程根据所述第一属性信息和所述第一绘制信息进行渲染,得到所述第一图像帧对应的第一动画图像。
2.根据权利要求1所述的方法,其特征在于,所述控制所述第一线程确定所述第一图像帧的第一属性信息和所述第一图像帧对应的第一绘制信息,包括:
在所述第一线程与舞蹈编导Choreographer接口绑定的情况下,检测所述第一线程是否通过所述Choreographer接口接收到垂直同步VSYNC信号;
在所述第一线程通过所述Choreographer接口接收到所述VSYNC信号的情况下,控制所述第一线程确定所述第一属性信息和所述第一绘制信息。
3.根据权利要求2所述的方法,其特征在于,所述控制所述第一线程确定所述第一属性信息和所述第一绘制信息,包括:
控制所述第一线程调用第一回调函数,以确定所述第一属性信息,所述第一回调函数用于确定所述第一属性信息的格式信息;
在所述第一属性信息确定的情况下,控制所述第一线程调用第二回调函数,以确定所述第一绘制信息,所述第二回调函数用于确定所述第一绘制信息的格式信息。
4.根据权利要求3所述的方法,其特征在于,所述控制所述第一线程调用第二回调函数,以确定所述第一绘制信息,包括:
控制所述第一线程调用第二回调函数,以确定所述第一绘制信息的格式信息;
控制所述第一线程调用第一接口的开始时刻信息,以及调用第二接口的结束时刻信息;
控制所述第一线程根据所述第一绘制信息的格式信息、所述开始时刻信息和所述结束时刻信息确定所述第一绘制信息。
5.根据权利要求1所述的方法,其特征在于,所述控制所述第一线程确定所述第一图像帧的第一属性信息和所述第一图像帧对应的第一绘制信息,包括:
控制所述第一线程从所述UI线程上获取所述第一图像帧的第二属性信息和所述第一图像帧的第二绘制信息;
控制所述第一线程将所述第二属性信息更新为所述第一属性信息,以及,控制所述第一线程将所述第二绘制信息更新为所述第一绘制信息。
6.根据权利要求1所述的方法,其特征在于,所述控制所述第一渲染线程根据所述第一属性信息和所述第一绘制信息进行渲染,得到所述第一图像帧对应的第一动画图像之后,所述方法还包括:
控制合成进程获取所述第一动画图像和第二动画图像,所述第二动画图像为第二渲染线程渲染得到的动画图像,且所述第二渲染线程与所述第一渲染线程不同;
控制所述合成进程将所述第二动画图像与所述第一动画图像进行合成,得到目标动画图像。
7.一种动画渲染装置,其特征在于,包括:
第一控制模块,用于控制预先创建的第一线程从用户界面UI线程上获取第一图像帧;
第二控制模块,用于控制所述第一线程确定所述第一图像帧的第一属性信息和所述第一图像帧对应的第一绘制信息,所述第一属性信息包括如下至少一项:透明度信息、缩放信息和移动信息;
第三控制模块,用于控制所述第一线程向第一渲染线程同步所述第一属性信息和所述第一绘制信息;
第四控制模块,用于控制所述第一渲染线程根据所述第一属性信息和所述第一绘制信息进行渲染,得到所述第一图像帧对应的第一动画图像。
8.根据权利要求7所述的装置,其特征在于,所述第二控制模块,包括:
检测子模块,用于在所述第一线程与舞蹈编导Choreographer接口绑定的情况下,检测所述第一线程是否通过所述Choreographer接口接收到垂直同步VSYNC信号;
第一控制子模块,用于在所述第一线程通过所述Choreographer接口接收到所述VSYNC信号的情况下,控制所述第一线程确定所述第一属性信息和所述第一绘制信息。
9.一种电子设备,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-6中任一项所述的动画渲染方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1-6中任一项所述的动画渲染方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311405289.0A CN117372597A (zh) | 2023-10-27 | 2023-10-27 | 动画渲染方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311405289.0A CN117372597A (zh) | 2023-10-27 | 2023-10-27 | 动画渲染方法、装置、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117372597A true CN117372597A (zh) | 2024-01-09 |
Family
ID=89400071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311405289.0A Pending CN117372597A (zh) | 2023-10-27 | 2023-10-27 | 动画渲染方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117372597A (zh) |
-
2023
- 2023-10-27 CN CN202311405289.0A patent/CN117372597A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10528210B2 (en) | Foreground/background assortment of hidden windows | |
EP3111318B1 (en) | Cross-platform rendering engine | |
US9600166B2 (en) | Asynchronous handling of a user interface manipulation | |
EP2360562B1 (en) | Image processing device, information processing device, image processing method, and information processing method | |
EP2859447B1 (en) | Virtual surface allocation | |
US9235925B2 (en) | Virtual surface rendering | |
US9940907B2 (en) | Virtual surface gutters | |
CN110020300B (zh) | 一种浏览器页面合成方法及终端 | |
CN116501210A (zh) | 一种显示方法、电子设备及存储介质 | |
US20190080017A1 (en) | Method, system, and device that invokes a web engine | |
US20130321471A1 (en) | Virtual Surface Compaction | |
WO2024041047A1 (zh) | 一种屏幕刷新率切换方法及电子设备 | |
WO2023001163A1 (zh) | 一种可提升动效性能的屏幕刷新方法及设备 | |
CN113015007A (zh) | 视频插帧方法、装置及电子设备 | |
CN115097994A (zh) | 数据处理方法和相关装置 | |
EP3008697B1 (en) | Coalescing graphics operations | |
WO2023221822A1 (zh) | 数据处理方法、电子设备和可读存储介质 | |
KR20140020435A (ko) | 멀티쓰레드를 이용한 동영상 실시간 렌더링 방법 및 시스템 | |
CN116107531A (zh) | 界面显示方法和装置 | |
CN117372597A (zh) | 动画渲染方法、装置、电子设备及可读存储介质 | |
CN112241303B (zh) | 图像处理方法及系统、电子设备及存储介质 | |
CN114741042A (zh) | 内容显示方法及装置 | |
CN114416269A (zh) | 界面显示方法和显示设备 | |
CN116541151A (zh) | 线程调度方法、装置、电子设备及介质 | |
CN117156059A (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 |