CN111752435A - 多媒体和多文件的多媒体实时渲染方法、***及装置 - Google Patents
多媒体和多文件的多媒体实时渲染方法、***及装置 Download PDFInfo
- Publication number
- CN111752435A CN111752435A CN202010589168.6A CN202010589168A CN111752435A CN 111752435 A CN111752435 A CN 111752435A CN 202010589168 A CN202010589168 A CN 202010589168A CN 111752435 A CN111752435 A CN 111752435A
- Authority
- CN
- China
- Prior art keywords
- texture
- instruction
- rendering
- shared
- task
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04812—Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
-
- 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
- G06T7/00—Image analysis
- G06T7/40—Analysis of texture
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于计算机技术领域,具体涉及一种多媒体和多文件的多媒体实时渲染方法、***及装置,旨在为了解决现有技术在同时打开多种类型的多媒体资源的场景下,无法实现稳定的高刷新率显示以及流畅的交互操作问题。本发明主进程获取要打开的多媒体文件;创建渲染子进程进行文件加载、创建共享纹理对象;主进程在容器中新建共享纹理任务;Uinty渲染线程执行打开共享纹理指令,打开共享纹理,进行多媒体文件的实时渲染。在打开失败及后续有新的共享纹理任务排队等待时,及时关闭旧的共享纹理任务,仅保留最后一次更新的共享纹理进行显示及渲染。本发明避免创建无效的Unity纹理,程序能够保持稳定的高刷新率显示,保证交互操作的流畅性,避免场景闪烁的问题。
Description
技术领域
本发明属于计算机技术领域,具体涉及了一种多媒体和多文件的多媒体实时渲染方法、***及装置。
背景技术
在显示控制领域日益发展的今天,刷新率越来越高的显示器和高质量的多媒体资源,都在不断地挑战软硬件的性能。在多媒体应用软件中,用户输入操作指令后,软件要根据指令打开多媒体资源并更新渲染,输出新的画面,完成对用户指令的相应。由于人眼的生理构造,要保证基本的交互体验,软件必须以至少30帧/秒的速率进行渲染。
随着显示器的刷新率不断提高以及用户对体验的不断追求,30帧/秒的渲染速率已经不能满足当下该领域的需求。但软件如果以高刷新率渲染,那么帧与帧之间的渲染间隔时间变短,这就意味着软件要在很短的时间内,完成对用户输入的响应,并渲染输出新的画面。并且,由于高质量多媒体资源的解析更为复杂、数据量非常之大,当一个间隔中需要处理的数据量超过显卡的负荷时,就会导致渲染时间变大,从而难以保证流畅的交互体验。
为了保证大量的多媒体资源渲染时的交互体验,部分软件采用分批次增量向显卡提交渲染数据的方法,该方法虽然保证了流畅交互所需的渲染速率,但当数据量过于庞大时,分批次增量渲染的方式会导致画面渲染不完整,出现局部闪烁等不可避免地现象。
总的来说,现有的多媒体渲染***中,同时打开并播放多种媒体资源的场景下,资源的加载和播放,会降低主进程的刷新率,帧率下降的同时,UI的输入采样率也会降低,导致界面卡顿进而影响该场景下的媒体资源的展示以及用户操作体验的流畅性,同时可能会带来闪烁以及一些无法预知的问题。
发明内容
为了解决现有技术中的上述问题,即现有技术在同时打开多种类型的多媒体资源的场景下,无法实现稳定的高刷新率显示以及流畅的交互操作的问题,本发明提供了一种多媒体实时渲染方法,该实时渲染方法包括:
步骤S10,主进程基于获取的多媒体文件以及文件打开指令创建渲染子进程,并生成第一指令发送至渲染子进程;所述第一指令为渲染子进程触发运行指令;
步骤S20,渲染子进程基于所述第一指令,加载所述多媒体文件以及创建共享纹理对象,并生成第二指令发送至主进程;所述第二指令为更新渲染纹理指令;
步骤S30,主进程基于所述第二指令,清空共享纹理任务容器以及在容器中新建共享纹理任务,并生成第三指令发送至Unity渲染线程;所述第三指令为打开共享纹理指令;
步骤S40,Unity渲染线程基于所述第三指令,打开共享纹理,进行所述多媒体文件的实时渲染。
在一些优选的实施例中,所述实时渲染方法还包括失败共享纹理任务清除的步骤,其方法为:
Unity渲染线程生成共享纹理打开结果消息发送至主进程,主进程判断共享纹理是否打开成功,并执行:
若不成功,则清除共享纹理任务,结束所述多媒体文件的实时渲染;若成功,则进行所述多媒体文件的实时渲染。
在一些优选的实施例中,所述共享纹理打开成功后,还设置有新共享纹理任务判断和执行的步骤,其方法为:
步骤D10,共享纹理打开成功后,将预设的请求更新纹理计数器的计数加1;所述请求更新纹理计数器的初始值为0;
步骤D20,判断当前共享纹理任务容器中的共享纹理任务是否为当前所打开的共享纹理对应的共享纹理任务,若不是,则跳转步骤D30;否则,跳转步骤D40;
步骤D30,主进程生成第四指令发送至Unity渲染线程,Unity渲染线程关闭当前的共享纹理任务;所述第四指令为关闭当前共享纹理指令;
步骤D40,主进程创建当前所打开的共享纹理的2D纹理,并将预设的打开纹理计数器的计数加1;所述打开纹理计数器的初始值为0;
步骤D50,若打开纹理计数器的值小于更新纹理计数器的值,则跳转步骤D30;否则,跳转步骤D60;
步骤D60,更新主进程窗口UI上的显示纹理,并清除当前共享纹理任务容器中的共享纹理任务。
本发明的第二方面,提出了一种多文件的多媒体实时渲染方法,该方法包括:
步骤M10,主进程基于获取的多个多媒体文件以及对应的各文件打开指令,创建多个多媒体文件对应的多个渲染子进程;
步骤M20,对于每一个多媒体文件对应的渲染子进程,通过上述的多媒体实时渲染方法进行所述渲染子进程对应的多媒体文件的共享纹理打开、失败共享纹理任务清除、新共享纹理任务判断和执行,完成多个多媒体文件的实时渲染。
本发明的第三方面,提出了一种多媒体实时渲染***,该实时渲染***包括多媒体文件获取模块、窗口管理模块、渲染子进程模块、进程管理模块、进程通讯模块和Unity渲染模块;
所述多媒体文件获取模块,用于监测***的设备事件消息,并基于增加的存储设备获取需要加载的多媒体文件;
所述窗口管理模块,基于需要加载的多媒体文件生成文件打开指令;
所述进程管理模块,基于文件打开指令创建渲染子进程,并生成第一指令发送至渲染子进程模块;所述第一指令为渲染子进程模块触发运行指令;
所述渲染子进程模块,基于所述第一指令,加载所述多媒体文件以及创建共享纹理对象,并生成第二指令发送至进程通讯模块;所述第二指令为更新渲染纹理指令;
所述进程通讯模块,基于所述第二指令,清空共享纹理任务容器以及在容器中新建共享纹理任务,并生成第三指令发送至Unity渲染模块;所述第三指令为打开共享纹理指令;
所述Unity渲染模块,用于依据所述第三指令,打开共享纹理,进行所述多媒体文件的实时渲染;还用于依据第四指令,关闭共享纹理,结束所述多媒体文件的实时渲染;所述第四指令为关闭共享纹理指令。
在一些优选的实施例中,所述实时渲染***还包括共享纹理打开状态判别模块、任务清除模块;
所述Unity渲染模块生成共享纹理打开结果消息发送至所述共享纹理打开状态判别模块,所述共享纹理打开状态判别模块判断并执行:
若共享纹理打开不成功,则跳转任务清除模块;若共享纹理打开成功,则Unity渲染模块进行所述多媒体文件的实时渲染;
所述任务清除模块,用于清除共享纹理任务,结束所述多媒体文件的实时渲染。
在一些优选的实施例中,所述实时渲染***还包括请求更新纹理计数器、共享进度判别模块、2D纹理创建模块、打开纹理计数器、新任务判别模块、主进程窗口纹理显示模块;
所述请求更新纹理计数器,用于在共享纹理打开成功后,进行请求更新纹理的请求次数的计数加1;所述请求更新纹理计数器的初始值为0;
所述共享进度判别模块,用于判断当前共享纹理任务容器中的共享纹理任务是否为当前所打开的共享纹理对应的共享纹理任务,若不是,则生成第四指令并跳转Unity渲染模块;否则,跳转2D纹理创建模块;
所述2D纹理创建模块,用于创建当前所打开的共享纹理的2D纹理,并打开纹理计数器的计数加1;
所述打开纹理计数器,用于进行打开共享纹理的成功次数的计数;所述打开纹理计数器的初始值为0;
所述新任务判别模块,用于判别打开纹理计数器的值是否小于更新纹理计数器的值,若是,则生成第四指令并跳转Unity渲染模块;否则,跳转主进程窗口纹理显示模块;
所述主进程窗口纹理显示模块,用于更新主进程窗口UI上的显示纹理,并清除当前共享纹理任务容器中的共享纹理任务。
本发明的第四方面,提出了一种多文件的多媒体实时渲染***,基于上述的多媒体实时渲染***,该***还包括多进程管理模块;
所述多进程管理模块,配置为基于多个文件打开指令分别创建多个对应的渲染子进程,并生成多个第一指令发送至对应的渲染子进程模块;所述第一指令为渲染子进程模块触发运行指令。
本发明的第五方面,提出了一种存储装置,其中存储有多条程序,所述程序适于由处理器加载并执行以实现上述的多媒体实时渲染方法或多文件的多媒体实时渲染方法。
本发明的第六方面,提出了一种处理装置,包括处理器、存储装置;所述处理器,适于执行各条程序;所述存储装置,适于存储多条程序;所述程序适于由处理器加载并执行以实现上述的多媒体实时渲染方法或多文件的多媒体实时渲染方法。
本发明的有益效果:
本发明多媒体实时渲染方法,在Unity平台下使用共享纹理进行多个文件的实时渲染时,因为每个文件渲染内容的尺寸和比例都可能发生变化,当后续有新的共享纹理需要更新时,及时清空之前创建的共享纹理任务、关闭之前打开成功的共享纹理,仅保留最后一次更新的共享纹理进行显示及渲染,避免了无效的共享纹理以及Unity纹理的创建和显示,使得程序能够保持稳定的高刷新率显示,保证了交互操作的流畅性,避免了场景闪烁的问题。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本发明一种实施例的多媒体实时渲染方法的共享纹理打开流程示意图;
图2是本发明一种实施例的多媒体实时渲染方法的共享纹理打开、失败共享纹理任务清除、新共享纹理任务判断和执行的流程示意图;
图3是用来实现本申请实施例的电子设备的计算机***的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明的一种多媒体实时渲染方法,该实时渲染方法包括:
步骤S10,主进程基于获取的多媒体文件以及文件打开指令创建渲染子进程,并生成第一指令发送至渲染子进程;所述第一指令为渲染子进程触发运行指令;
步骤S20,渲染子进程基于所述第一指令,加载所述多媒体文件以及创建共享纹理对象,并生成第二指令发送至主进程;所述第二指令为更新渲染纹理指令;
步骤S30,主进程基于所述第二指令,清空共享纹理任务容器以及在容器中新建共享纹理任务,并生成第三指令发送至Unity渲染线程;所述第三指令为打开共享纹理指令;
步骤S40,Unity渲染线程基于所述第三指令,打开共享纹理,进行所述多媒体文件的实时渲染。
为了更清晰地对本发明一种多媒体实时渲染方法进行说明,下面结合图1对本方发明方法一种实施例中各步骤进行展开详述。
本发明一种实施例的多媒体实时渲染方法,包括步骤S10-步骤S40,各步骤详细描述如下:
步骤S10,主进程基于获取的多媒体文件以及文件打开指令创建渲染子进程,并生成第一指令发送至渲染子进程;所述第一指令为渲染子进程触发运行指令。
项目启动的时候运行的进程就是主进程,一个项目只有一个主进程,创建窗口等***事件都在主进程中进行,而渲染子进程是为渲染而创建的子进程,只负责渲染窗口运行的界面。
步骤S20,渲染子进程基于所述第一指令,加载所述多媒体文件以及创建共享纹理对象,并生成第二指令发送至主进程;所述第二指令为更新渲染纹理指令。
渲染子进程接到触发运行指令后,加载需要打开的多媒体文件,并创建共享纹理对象,生成更新渲染纹理指令给主进程。
步骤S30,主进程基于所述第二指令,清空共享纹理任务容器以及在容器中新建共享纹理任务,并生成第三指令发送至Unity渲染线程;所述第三指令为打开共享纹理指令。
主进程接收到更新渲染纹理指令后,清空共享纹理任务容器,并在容器中新建共享纹理任务,将创建共享纹理技术器的计数加1,生成打开共享纹理指令发送给主进程中的Unity渲染线程。
在新建共享纹理任务前进行共享纹理任务容器的清空,是为了保证在多媒体文件实时渲染的过程中,判断容器中的共享纹理任务是否为当前打开的共享纹理对应的共享纹理任务,从而判断当前的多媒体渲染过程中用户是否对其进行了新的操作,比如缩放窗口大小等,若没有新的操作,则保持当前的实时渲染过程;若有新的操作,则快速切入新操作对应的共享纹理任务。
新建共享纹理任务的原因存在两种:一是,新打开了一个多媒体资源,为新的资源创建了新的渲染窗口,需要显示这个新的渲染窗口;二是,对当前的渲染窗口内容进行了操作。本发明此处若容器中的共享纹理任务不是当前打开的共享纹理对应的共享纹理任务,对应了上述新建共享纹理任务的第二种原因。
创建共享纹理计数器的计数值即代表了当前共享纹理任务的ID值(对应多个多媒体文件进行实时渲染的流水号),在容器中的共享纹理任务与当前打开的共享纹理对应的共享纹理任务不是同一个时,按照当前打开的共享纹理对应的共享纹理任务的ID值,关闭相应的共享纹理。
步骤S40,Unity渲染线程基于所述第三指令,打开共享纹理,进行所述多媒体文件的实时渲染。
实时渲染方法还包括失败共享纹理任务清除的步骤,其方法为:
Unity渲染线程生成共享纹理打开结果消息发送至主进程,主进程判断共享纹理是否打开成功,并执行:
若不成功,则清除共享纹理任务,结束所述多媒体文件的实时渲染;若成功,则进行所述多媒体文件的实时渲染。
共享纹理打开成功后,还设置有新共享纹理任务判断和执行的步骤,其方法为:
步骤D10,共享纹理打开成功后,将预设的请求更新纹理计数器的计数加1;所述请求更新纹理计数器的初始值为0。
步骤D20,判断当前共享纹理任务容器中的共享纹理任务是否为当前所打开的共享纹理对应的共享纹理任务,若不是,则跳转步骤D30;否则,跳转步骤D40。
共享纹理任务容器中的共享纹理任务不是当前打开的共享纹理对应的共享纹理任务时,即当前的渲染窗口内容进行了操作,此时会创建新的共享纹理以及新的共享纹理任务,为了快速切换为新的共享纹理内容,需要将之前积压的共享纹理任务清空以及将当前打开的共享纹理关闭。
步骤D30,主进程生成第四指令发送至Unity渲染线程,Unity渲染线程关闭当前的共享纹理任务;所述第四指令为关闭当前共享纹理指令。
主进程生成关闭当前共享纹理指令发送至Unity渲染线程,为迅速切入下一个共享纹理任务做好准备。
步骤D40,主进程创建当前所打开的共享纹理的2D纹理,并将预设的打开纹理计数器的计数加1;所述打开纹理计数器的初始值为0。
共享纹理任务容器中的共享纹理任务是当前打开的共享纹理对应的共享纹理任务,则表示后续没有新创建的共享纹理任务在排队等待渲染,主进程创建当前所打开的共享纹理的2D纹理,并将打开纹理计数器的计数加1。
步骤D50,若打开纹理计数器的值小于更新纹理计数器的值,则跳转步骤D30;否则,跳转步骤D60。
若打开纹理计数器的值小于更新纹理计数器的值,则代表后续又有新的纹理创建任务在等待,为避免创建无效的Unity纹理,则主进程生成关闭当前共享纹理指令发送至Unity渲染线程,迅速为切入下一个共享纹理任务做好准备。
步骤D60,更新主进程窗口UI上的显示纹理,并清除当前共享纹理任务容器中的共享纹理任务。
若打开纹理计数器的值不小于更新纹理计数器的值,则代表后续没有新的纹理创建任务在等待,则更新主进程窗口UI上的显示纹理,并清除当前共享纹理任务容器中的共享纹理任务。
如图2所示,为本发明一种实施例的多媒体实时渲染方法的共享纹理打开、失败共享纹理任务清除、新共享纹理任务判断和执行的流程示意图,在执行共享纹理打开后,主进程获取Unity渲染线程生成的共享纹理打开结果,若共享纹理打开不成功,则清除共享纹理任务并结束实时渲染;若共享纹理打开成功,则将请求更新纹理计数加1。判断当前共享纹理任务容器中的共享纹理任务是否为当前所打开的共享纹理对应的共享纹理任务,若不是则关闭当前的共享纹理;若是,则主进程创建当前所打开的共享纹理的2D纹理,并将打开纹理计数器计数加1。判断打开纹理计数器的值是否小于更新纹理计数器的值,若是,说明后续有新的共享纹理任务在等待,则关闭当前的共享纹理;若不是,主程序更新主进程窗口UI上的显示纹理,并清除当前共享纹理任务容器中的共享纹理任务。
本发明第二实施例的多文件的多媒体实时渲染方法,该方法包括:
步骤M10,主进程基于获取的多个多媒体文件以及对应的各文件打开指令,创建多个多媒体文件对应的多个渲染子进程;
步骤M20,对于每一个多媒体文件对应的渲染子进程,通过上述的多媒体实时渲染方法进行所述渲染子进程对应的多媒体文件的共享纹理打开、失败共享纹理任务清除、新共享纹理任务判断和执行,完成多个多媒体文件的实时渲染。
项目启动的时候运行的进程就是主进程,一个项目只有一个主进程,创建窗口等***事件都在主进程中进行,而渲染子进程是为渲染而创建的子进程,每一个渲染窗口都对应了一个渲染子进程,每个渲染子进程都是独立的,只负责各自的渲染窗口运行的界面,创建多个渲染子进程则可以并发执行多个渲染过程。
本发明第三实施例的一种多媒体实时渲染***,该实时渲染***包括多媒体文件获取模块、窗口管理模块、渲染子进程模块、进程管理模块、进程通讯模块和Unity渲染模块;
所述多媒体文件获取模块,用于监测***的设备事件消息,并基于增加的存储设备获取需要加载的多媒体文件;
所述窗口管理模块,基于需要加载的多媒体文件生成文件打开指令;
所述进程管理模块,基于文件打开指令创建渲染子进程,并生成第一指令发送至渲染子进程模块;所述第一指令为渲染子进程模块触发运行指令;
所述渲染子进程模块,基于所述第一指令,加载所述多媒体文件以及创建共享纹理对象,并生成第二指令发送至进程通讯模块;所述第二指令为更新渲染纹理指令;
所述进程通讯模块,基于所述第二指令,清空共享纹理任务容器以及在容器中新建共享纹理任务,并生成第三指令发送至Unity渲染模块;所述第三指令为打开共享纹理指令;
所述Unity渲染模块,用于依据所述第三指令,打开共享纹理,进行所述多媒体文件的实时渲染;还用于依据第四指令,关闭共享纹理,结束所述多媒体文件的实时渲染;所述第四指令为关闭共享纹理指令。
所述实时渲染***还包括共享纹理打开状态判别模块、任务清除模块;
所述Unity渲染模块生成共享纹理打开结果消息发送至所述共享纹理打开状态判别模块,所述共享纹理打开状态判别模块判断并执行:
若共享纹理打开不成功,则跳转任务清除模块;若共享纹理打开成功,则Unity渲染模块进行所述多媒体文件的实时渲染;
所述任务清除模块,用于清除共享纹理任务,结束所述多媒体文件的实时渲染。
所述实时渲染***还包括请求更新纹理计数器、共享进度判别模块、2D纹理创建模块、打开纹理计数器、新任务判别模块、主进程窗口纹理显示模块;
所述请求更新纹理计数器,用于在共享纹理打开成功后,进行请求更新纹理的请求次数的计数加1;所述请求更新纹理计数器的初始值为0;
所述共享进度判别模块,用于判断当前共享纹理任务容器中的共享纹理任务是否为当前所打开的共享纹理对应的共享纹理任务,若不是,则生成第四指令并跳转Unity渲染模块;否则,跳转2D纹理创建模块;
所述2D纹理创建模块,用于创建当前所打开的共享纹理的2D纹理,并打开纹理计数器的计数加1;
所述打开纹理计数器,用于进行打开共享纹理的成功次数的计数;所述打开纹理计数器的初始值为0;
所述新任务判别模块,用于判别打开纹理计数器的值是否小于更新纹理计数器的值,若是,则生成第四指令并跳转Unity渲染模块;否则,跳转主进程窗口纹理显示模块;
所述主进程窗口纹理显示模块,用于更新主进程窗口UI上的显示纹理,并清除当前共享纹理任务容器中的共享纹理任务。
本发明第四实施例的一种多文件的多媒体实时渲染***,基于上述的多媒体实时渲染***,该多文件渲染***还包括多进程管理模块;
所述多进程管理模块,配置为基于多个文件打开指令分别创建多个对应的渲染子进程,并生成多个第一指令发送至对应的渲染子进程模块;所述第一指令为渲染子进程模块触发运行指令。
所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。
需要说明的是,上述实施例提供的多媒体实时渲染***以及多文件的多媒体实时渲染***,仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块来完成,即将本发明实施例中的模块或者步骤再分解或者组合,例如,上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块,以完成以上描述的全部或者部分功能。对于本发明实施例中涉及的模块、步骤的名称,仅仅是为了区分各个模块或者步骤,不视为对本发明的不当限定。
本发明第五实施例的一种存储装置,其中存储有多条程序,所述程序适于由处理器加载并执行以实现上述的多媒体实时渲染方法或多文件的多媒体实时渲染方法。
本发明第六实施例的一种处理装置,包括处理器、存储装置;处理器,适于执行各条程序;存储装置,适于存储多条程序;所述程序适于由处理器加载并执行以实现上述的多媒体实时渲染方法或多文件的多媒体实时渲染方法。
所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的存储装置、处理装置的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。
下面参考图3,其示出了适于用来实现本申请方法、***、装置实施例的服务器的计算机***的结构示意图。图3示出的服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图3所示,计算机***包括中央处理单元(CPU,Central Processing Unit)301,其可以根据存储在只读存储器(ROM,Read Only Memory)302中的程序或者从存储部分308加载到随机访问存储器(RAM,Random Access Memory)303中的程序而执行各种适当的动作和处理。在RAM 303中,还存储有***操作所需的各种程序和数据。CPU 301、ROM 302以及RAM 303通过总线304彼此相连。输入/输出(I/O,Input/Output)接口305也连接至总线304。
以下部件连接至I/O接口305:包括键盘、鼠标等的输入部分306;包括诸如阴极射线管(CRT,Cathode Ray Tube)、液晶显示器(LCD,Liquid Crystal Display)等以及扬声器等的输出部分307;包括硬盘等的存储部分308;以及包括诸如LAN(局域网,Local AreaNetwork)卡、调制解调器等的网络接口卡的通信部分309。通信部分309经由诸如因特网的网络执行通信处理。驱动器310也根据需要连接至I/O接口305。可拆卸介质311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器310上,以便于从其上读出的计算机程序根据需要被安装入存储部分308。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分309从网络上被下载和安装,和/或从可拆卸介质311被安装。在该计算机程序被中央处理单元(CPU)301执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
术语“第一”、“第二”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。
术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
Claims (10)
1.一种多媒体实时渲染方法,其特征在于,该实时渲染方法包括:
步骤S10,主进程基于获取的多媒体文件以及文件打开指令创建渲染子进程,并生成第一指令发送至渲染子进程;所述第一指令为渲染子进程触发运行指令;
步骤S20,渲染子进程基于所述第一指令,加载所述多媒体文件以及创建共享纹理对象,并生成第二指令发送至主进程;所述第二指令为更新渲染纹理指令;
步骤S30,主进程基于所述第二指令,清空共享纹理任务容器以及在容器中新建共享纹理任务,并生成第三指令发送至Unity渲染线程;所述第三指令为打开共享纹理指令;
步骤S40,Unity渲染线程基于所述第三指令,打开共享纹理,进行所述多媒体文件的实时渲染。
2.根据权利要求1所述的多媒体实时渲染方法,其特征在于,所述实时渲染方法还包括失败共享纹理任务清除的步骤,其方法为:
Unity渲染线程生成共享纹理打开结果消息发送至主进程,主进程判断共享纹理是否打开成功,并执行:
若不成功,则清除共享纹理任务,结束所述多媒体文件的实时渲染;若成功,则进行所述多媒体文件的实时渲染。
3.根据权利要求2所述的多媒体实时渲染方法,其特征在于,所述共享纹理打开成功后,还设置有新共享纹理任务判断和执行的步骤,其方法为:
步骤D10,共享纹理打开成功后,将预设的请求更新纹理计数器的计数加1;所述请求更新纹理计数器的初始值为0;
步骤D20,判断当前共享纹理任务容器中的共享纹理任务是否为当前所打开的共享纹理对应的共享纹理任务,若不是,则跳转步骤D30;否则,跳转步骤D40;
步骤D30,主进程生成第四指令发送至Unity渲染线程,Unity渲染线程关闭当前的共享纹理任务;所述第四指令为关闭当前共享纹理指令;
步骤D40,主进程创建当前所打开的共享纹理的2D纹理,并将预设的打开纹理计数器的计数加1;所述打开纹理计数器的初始值为0;
步骤D50,若打开纹理计数器的值小于更新纹理计数器的值,则跳转步骤D30;否则,跳转步骤D60;
步骤D60,更新主进程窗口UI上的显示纹理,并清除当前共享纹理任务容器中的共享纹理任务。
4.一种多文件的多媒体实时渲染方法,其特征在于,该方法包括:
步骤M10,主进程基于获取的多个多媒体文件以及对应的各文件打开指令,创建多个多媒体文件对应的多个渲染子进程;
步骤M20,对于每一个多媒体文件对应的渲染子进程,通过权利要求1-3任一项所述的多媒体实时渲染方法进行所述渲染子进程对应的多媒体文件的共享纹理打开、失败共享纹理任务清除、新共享纹理任务判断和执行,完成多个多媒体文件的实时渲染。
5.一种多媒体实时渲染***,其特征在于,该实时渲染***包括多媒体文件获取模块、窗口管理模块、渲染子进程模块、进程管理模块、进程通讯模块和Unity渲染模块;
所述多媒体文件获取模块,用于监测***的设备事件消息,并基于增加的存储设备获取需要加载的多媒体文件;
所述窗口管理模块,基于需要加载的多媒体文件生成文件打开指令;
所述进程管理模块,基于文件打开指令创建渲染子进程,并生成第一指令发送至渲染子进程模块;所述第一指令为渲染子进程模块触发运行指令;
所述渲染子进程模块,基于所述第一指令,加载所述多媒体文件以及创建共享纹理对象,并生成第二指令发送至进程通讯模块;所述第二指令为更新渲染纹理指令;
所述进程通讯模块,基于所述第二指令,清空共享纹理任务容器以及在容器中新建共享纹理任务,并生成第三指令发送至Unity渲染模块;所述第三指令为打开共享纹理指令;
所述Unity渲染模块,用于依据所述第三指令,打开共享纹理,进行所述多媒体文件的实时渲染;还用于依据第四指令,关闭共享纹理,结束所述多媒体文件的实时渲染;所述第四指令为关闭共享纹理指令。
6.根据权利要求5所述的多媒体实时渲染***,其特征在于,所述实时渲染***还包括共享纹理打开状态判别模块、任务清除模块;
所述Unity渲染模块生成共享纹理打开结果消息发送至所述共享纹理打开状态判别模块,所述共享纹理打开状态判别模块判断并执行:
若共享纹理打开不成功,则跳转任务清除模块;若共享纹理打开成功,则Unity渲染模块进行所述多媒体文件的实时渲染;
所述任务清除模块,用于清除共享纹理任务,结束所述多媒体文件的实时渲染。
7.根据权利要求6所述的多媒体实时渲染***,其特征在于,所述实时渲染***还包括请求更新纹理计数器、共享进度判别模块、2D纹理创建模块、打开纹理计数器、新任务判别模块、主进程窗口纹理显示模块;
所述请求更新纹理计数器,用于在共享纹理打开成功后,进行请求更新纹理的请求次数的计数加1;所述请求更新纹理计数器的初始值为0;
所述共享进度判别模块,用于判断当前共享纹理任务容器中的共享纹理任务是否为当前所打开的共享纹理对应的共享纹理任务,若不是,则生成第四指令并跳转Unity渲染模块;否则,跳转2D纹理创建模块;
所述2D纹理创建模块,用于创建当前所打开的共享纹理的2D纹理,并打开纹理计数器的计数加1;
所述打开纹理计数器,用于进行打开共享纹理的成功次数的计数;所述打开纹理计数器的初始值为0;
所述新任务判别模块,用于判别打开纹理计数器的值是否小于更新纹理计数器的值,若是,则生成第四指令并跳转Unity渲染模块;否则,跳转主进程窗口纹理显示模块;
所述主进程窗口纹理显示模块,用于更新主进程窗口UI上的显示纹理,并清除当前共享纹理任务容器中的共享纹理任务。
8.一种多文件的多媒体实时渲染***,基于权利要求5-7任一项所述的多媒体实时渲染***,其特征在于,该***还包括多进程管理模块;
所述多进程管理模块,配置为基于多个文件打开指令分别创建多个对应的渲染子进程,并生成多个第一指令发送至对应的渲染子进程模块;所述第一指令为渲染子进程模块触发运行指令。
9.一种存储装置,其中存储有多条程序,其特征在于,所述程序适于由处理器加载并执行以实现权利要求1-3任一项所述的多媒体实时渲染方法,或权利要求4所述的多文件的多媒体实时渲染方法。
10.一种处理装置,包括
处理器,适于执行各条程序;以及
存储装置,适于存储多条程序;
其特征在于,所述程序适于由处理器加载并执行以实现:
权利要求1-3任一项所述的多媒体实时渲染方法,或权利要求4所述的多文件的多媒体实时渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010589168.6A CN111752435B (zh) | 2020-06-24 | 2020-06-24 | 多媒体和多文件的多媒体实时渲染方法、***及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010589168.6A CN111752435B (zh) | 2020-06-24 | 2020-06-24 | 多媒体和多文件的多媒体实时渲染方法、***及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111752435A true CN111752435A (zh) | 2020-10-09 |
CN111752435B CN111752435B (zh) | 2021-07-16 |
Family
ID=72677195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010589168.6A Active CN111752435B (zh) | 2020-06-24 | 2020-06-24 | 多媒体和多文件的多媒体实时渲染方法、***及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111752435B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112612389A (zh) * | 2020-12-25 | 2021-04-06 | 珠海金山网络游戏科技有限公司 | 滑动窗口中对象的显示***及方法 |
CN114675906A (zh) * | 2022-05-25 | 2022-06-28 | 杭州脸脸会网络技术有限公司 | 多窗口管理方法、装置、电子装置和存储介质 |
CN115237502A (zh) * | 2022-07-30 | 2022-10-25 | 郭富声 | 一种用于加载动画防止频繁闪烁的方法 |
CN115361583A (zh) * | 2022-08-10 | 2022-11-18 | 吉林动画学院 | 针对APP与Unity实时渲染视频帧纹理的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130191560A1 (en) * | 2012-01-25 | 2013-07-25 | Nokia Corporation | Method and apparatus for buffer initialization |
CN104376016A (zh) * | 2013-08-15 | 2015-02-25 | 腾讯科技(深圳)有限公司 | 一种浏览器中跨进程渲染方法和装置 |
CN106528303A (zh) * | 2016-10-20 | 2017-03-22 | 武汉斗鱼网络科技有限公司 | 一种基于gpu纹理共享来获取d3d12游戏源图像的方法及*** |
CN106598739A (zh) * | 2016-12-14 | 2017-04-26 | 合网络技术(北京)有限公司 | 视频渲染方法及装置 |
CN110413386A (zh) * | 2019-06-27 | 2019-11-05 | 深圳市富途网络科技有限公司 | 多进程处理方法、装置、终端设备及计算机可读存储介质 |
-
2020
- 2020-06-24 CN CN202010589168.6A patent/CN111752435B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130191560A1 (en) * | 2012-01-25 | 2013-07-25 | Nokia Corporation | Method and apparatus for buffer initialization |
CN104376016A (zh) * | 2013-08-15 | 2015-02-25 | 腾讯科技(深圳)有限公司 | 一种浏览器中跨进程渲染方法和装置 |
CN106528303A (zh) * | 2016-10-20 | 2017-03-22 | 武汉斗鱼网络科技有限公司 | 一种基于gpu纹理共享来获取d3d12游戏源图像的方法及*** |
CN106598739A (zh) * | 2016-12-14 | 2017-04-26 | 合网络技术(北京)有限公司 | 视频渲染方法及装置 |
CN110413386A (zh) * | 2019-06-27 | 2019-11-05 | 深圳市富途网络科技有限公司 | 多进程处理方法、装置、终端设备及计算机可读存储介质 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112612389A (zh) * | 2020-12-25 | 2021-04-06 | 珠海金山网络游戏科技有限公司 | 滑动窗口中对象的显示***及方法 |
CN112612389B (zh) * | 2020-12-25 | 2022-06-10 | 珠海金山网络游戏科技有限公司 | 滑动窗口中对象的显示***及方法 |
CN114675906A (zh) * | 2022-05-25 | 2022-06-28 | 杭州脸脸会网络技术有限公司 | 多窗口管理方法、装置、电子装置和存储介质 |
CN114675906B (zh) * | 2022-05-25 | 2022-10-04 | 杭州脸脸会网络技术有限公司 | 多窗口管理方法、装置、电子装置和存储介质 |
CN115237502A (zh) * | 2022-07-30 | 2022-10-25 | 郭富声 | 一种用于加载动画防止频繁闪烁的方法 |
CN115237502B (zh) * | 2022-07-30 | 2023-08-29 | 中邮消费金融有限公司 | 一种用于加载动画防止频繁闪烁的方法 |
CN115361583A (zh) * | 2022-08-10 | 2022-11-18 | 吉林动画学院 | 针对APP与Unity实时渲染视频帧纹理的方法 |
CN115361583B (zh) * | 2022-08-10 | 2024-05-17 | 吉林动画学院 | 针对APP与Unity实时渲染视频帧纹理的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111752435B (zh) | 2021-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111752435B (zh) | 多媒体和多文件的多媒体实时渲染方法、***及装置 | |
EP3742293A1 (en) | Event driving method and device | |
CN108965098B (zh) | 基于在线直播的消息推送方法、装置、介质和电子设备 | |
CN110287810B (zh) | 车门动作检测方法、装置和计算机可读存储介质 | |
CN108415657B (zh) | 消息发送方法、装置、介质及电子设备 | |
CN111552550A (zh) | 一种基于图形处理器gpu资源的任务调度方法、设备及介质 | |
CN111240769A (zh) | 页面启动方法、装置、设备及存储介质 | |
CN114116092A (zh) | 云桌面***处理方法、云桌面***控制方法以及相关设备 | |
CN114398060A (zh) | 车载控制器软件升级方法、装置、电子设备及存储介质 | |
CN109218817B (zh) | 一种显示虚拟礼物提示消息的方法和装置 | |
CN111338672B (zh) | 优化应用程序更新的方法、电子设备和计算机存储介质 | |
CN113900760A (zh) | 一种弹窗展示方法和装置 | |
CN112232855A (zh) | 一种页面加载方法、装置和电子设备 | |
CN115309315B (zh) | Wayland环境下X应用的截图方法、***及介质 | |
CN111131359A (zh) | 用于生成信息的方法和装置 | |
CN114241094A (zh) | 动画绘制方法、装置、存储介质及电子设备 | |
CN113230661A (zh) | 数据同步方法、装置、计算机可读介质及电子设备 | |
CN113365101B (zh) | 对视频进行多任务处理的方法及相关设备 | |
CN110956686A (zh) | 一种渲染竞价方法及*** | |
CN108540667B (zh) | 消息提醒的控制方法、装置、介质及电子设备 | |
CN113778575A (zh) | 图像处理方法、装置及电子设备 | |
CN111467797A (zh) | 游戏数据处理方法、装置、计算机存储介质与电子设备 | |
CN111061606A (zh) | 一种基于浏览器的监测预警方法、终端及存储介质 | |
CN110688282A (zh) | 网页性能数据的监测、监测任务分发方法及装置 | |
CN117290047B (zh) | 穿戴产品上的gui显示加速控制方法、***和存储介质 |
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 |