一种基于实时离线渲染并行的多优先级队列调度系统的制作方法

文档序号:11775877阅读:446来源:国知局
一种基于实时离线渲染并行的多优先级队列调度系统的制作方法与工艺

本发明涉及3d渲染技术领域,尤其涉及一种基于实时离线渲染并行的多优先级队列调度系统。



背景技术:

当前伴随虚拟现实技术的高速发展,产生大量基于虚拟现实相关的计算任务。在虚拟家装行业,产生了大量使用虚拟现实技术实现所见即所得的3d家装设计软件。随之产生大量的图像渲染任务需求,但是大量的渲染需求并不会平均分布到不同时间段,由此产生了大量渲染用户等待的情况。当前市面上此类软件都没有分不同优先级进行任务处理,而是采用先来先渲染的实现方案,造成很差的用户体验。



技术实现要素:

为解决上述的技术问题,本发明提供了一种基于实时离线渲染并行的多优先级队列调度系统,本发明提出的方法解决了现有技术下渲染资源浪费,渲染体验差的问题。

本发明实现上述技术效果所采用的技术方案是:

一种基于实时离线渲染并行的多优先级队列调度系统,所述调度系统包括:

渲染类型检测模块,用于检测渲染任务池发出的渲染任务的渲染请求类型为实时渲染请求还是离线渲染请求;

资源状态检测模块,与所述渲染类型检测模块连接,用于接收所述渲染类型检测模块的反馈信息,当所述渲染类型检测模块反馈的渲染任务的渲染请求类型为离线渲染请求,则所述资源状态检测模块置该渲染任务数据中的离线标识offline为1,不进行渲染资源的状态检测,然后把处理后的该渲染任务数据发送到任务接收方,当所述渲染类型检测模块反馈的渲染任务的渲染请求类型为实时渲染请求,则所述资源状态检测模块检测当前渲染资源的状态为繁忙还是空闲并提示用户选择离线渲染或实时渲染,然后把处理后的渲染任务数据发送到任务接收方;

渲染任务接收模块,作为任务接收方,与所述资源状态检测模块连接,用于接收渲染任务和该渲染任务的渲染优先级判断信息;

优先级判断模块,与所述渲染任务接收模块连接,用于判断所述渲染任务接收模块中的用户渲染任务的优先级,并按照优先级高低存入优先级队列池中;

渲染模块,与所述优先级队列池连接,根据优先级由高到低获取渲染任务进行渲染。

上述的基于实时离线渲染并行的多优先级队列调度系统,还包括提示模块,所述提示模板用于在检测渲染任务池发出渲染任务的渲染请求类型为实时渲染请求还是离线渲染请求前,发出前期数据准备的提示信息。

上述的基于实时离线渲染并行的多优先级队列调度系统,所述资源状态检测模块包括检测请求发送单元,用于发送渲染资源的状态检测请求,所述渲染任务接收模块接收该状态检测请求并统计当前空闲的渲染资源数量,当空闲的渲染资源的数量大于0时,返回空闲状态给所述检测请求发送单元,当空闲的渲染资源等于0时,返回繁忙状态给所述检测请求发送单元。

上述的基于实时离线渲染并行的多优先级队列调度系统,在所述检测请求发送单元发送渲染资源的状态检测请求之前,系统对所有的渲染机器资源进行初始化,默认所有渲染机器资源为空闲,并保存当前所有的渲染机器的该空闲状态,当渲染机器获得渲染任务后,把该渲染机器的状态设置为繁忙状态,并保存该渲染机器的繁忙状态。

上述的基于实时离线渲染并行的多优先级队列调度系统,所述资源状态检测模块检测当前渲染资源的状态为繁忙还是空闲并提示用户选择离线渲染或实时渲染具体包括步骤:

如果所述资源状态检测模块返回的为繁忙状态,则提示用户当前渲染资源繁忙,可以进行离线渲染的方式进行任务处理,如果用户选择离线渲染,则把渲染任务数据中的离线渲染标识offline修改为1,如果用户选择实时渲染,则渲染任务数据不做处理;

返回的如果为空闲状态,则渲染任务数据不做处理。

上述的基于实时离线渲染并行的多优先级队列调度系统,发起渲染任务请求前准备的前期数据包括房屋户型绘制完成后获得的具象化的户型数据:房屋户型结构、模型摆放、吊顶摆放、灯光强度和颜色的调节。

上述的基于实时离线渲染并行的多优先级队列调度系统,渲染任务的数据包括:户型结构数据、模型数据、吊顶数据、灯光信息数据和离线渲染标识offline,所述离线渲染标识offline默认为0,标识为非离线。

上述的基于实时离线渲染并行的多优先级队列调度系统,进行渲染优先级判断的用户信息有:用户类型type,用户等级level。

上述的基于实时离线渲染并行的多优先级队列调度系统,接收到渲染任务的数据后,判断该渲染任务的优先级的参考值是:用户类型type、用户等级level和离线标识offline。

上述的基于实时离线渲染并行的多优先级队列调度系统,优先级队列的生成规则为:

s1、先检测离线标识offline;

s2、如果离线标识offline等于1,则把该渲染任务放到最低优先级队列quene_offline;

s3、如果离线标识offline为0,则根据用户类型type和用户等级level进行渲染队列优先级判断,其中,用户类型type有值0和1,用户等级level有值0和1,优先级队列格式为:quene_type_level,按优先级顺序排列分别是:quene_0_0、quene_0_1、quene_1_0和quene_1_1。

上述的基于实时离线渲染并行的多优先级队列调度系统,根据渲染资源状态、用户需求综合判断,可取得了5个渲染任务优先级队列,按优先级顺序排列分别是:quene_0_0、quene_0_1、quene_1_0、quene_1_1、quene_offline。

上述的基于实时离线渲染并行的多优先级队列调度系统,所述优先级队列根据渲染需求和用户需求设置有可扩展属性,用于扩展优先级队列的优先级类别。

本发明的有益效果是:本发明使用基于实时、离线渲染的多优先级任务调度方案,可根据用户需求及资源状态动态地分配渲染任务的优先级,提升用户体验的同时,提供资源利用率。

附图说明

图1为本发明的模块连接图;

图2为本发明的渲染调度流程图;

图3为本发明的优先级队列格式示意图;

图4为本发明的优先级队列格式示意图。

具体实施方式

为了对本发明作出更加清楚完整地说明,下面结合附图和本发明的具体实施例对本发明的技术方案作出进一步说明。

首先,对本发明涉及的两个专业术语作出解释说明,其中,实时渲染任务是指用户对渲染时间的要求高,需要在最短时间内进行渲染的任务。离线渲染任务是指用户对渲染时间的要求低,可以在渲染机器资源状态空闲后进行渲染的任务。下面结合实施例一和实施例二对本发明的具体技术方案进行详细说明。

实施例一:

具体技术方案结合图1的模块连接图、图2的渲染优先级流程图和图3的优先级队列格式示意图所示,本发明提出的一种基于实时离线渲染并行的多优先级队列调度系统,该调度系统包括:

渲染类型检测模块200,该渲染类型检测模块200与渲染任务池100连接,用于检测渲染任务池100发出的渲染任务的渲染请求类型,渲染请求类型包括实时渲染请求和离线渲染请求两种形式。实时渲染请求和离线渲染请求的定义见上文所述。

资源状态检测模块300,该资源状态检测模块300与所述渲染类型检测模块200连接,用于接收所述渲染类型检测模块200的反馈信息,当所述渲染类型检测模块200反馈的渲染任务的渲染请求类型为离线渲染请求,则所述资源状态检测模块300置该渲染任务数据中的离线标识offline为1,不进行渲染资源的状态检测,然后把处理后的该渲染任务数据发送到任务接收方。当所述渲染类型检测模块200反馈的渲染任务的渲染请求类型为为实时渲染请求,则所述资源状态检测模块300先检测当前渲染资源的状态,如果当前渲染资源的状态为繁忙,则提示用户选择离线渲染;如果当前渲染资源的状态为空闲,则提示用户选择实时渲染,然后把处理后的渲染任务数据发送到任务接收方。

渲染任务接收模块400,该渲染任务接收模块400作为任务接收方,与资源状态检测模块300连接,用于接收资源状态检测模块300发出的渲染任务和该渲染任务的渲染优先级判断信息。

优先级判断模块500,与所述渲染任务接收模块400连接,用于判断所述渲染任务接收模块400中的用户渲染任务的优先级,并按照优先级高低存入优先级队列池600中。优先级队列池600中存入的用户渲染任务按照优先级别由高到低排列,渲染时,按照队列中用户渲染任务的优先级高低进行排列。

渲染模块700,与所述优先级队列池600连接,对存于优先级队列池600中的渲染任务根据优先级由高到低进行渲染。

优选地,本发明的基于实时离线渲染并行的多优先级队列调度系统还包括提示模块,该提示模板用于在检测渲染任务池100发出渲染任务的渲染请求类型为实时渲染请求还是离线渲染请求前,发出前期数据准备的提示信息。具体的,发起渲染任务请求前准备的前期数据包括房屋户型绘制完成后获得的具象化的户型数据:房屋户型结构、模型摆放、吊顶摆放、灯光强度和颜色的调节。

优选地,所述资源状态检测模块300还包括检测请求发送单元,该检测请求发送单元用于发送渲染资源的状态检测请求。所述渲染任务接收模块400接收该状态检测请求并统计当前空闲的渲染资源数量,当空闲的渲染资源的数量大于0时,返回空闲状态给该检测请求发送单元,当空闲的渲染资源等于0时,返回繁忙状态给所述检测请求发送单元。

在检测请求发送单元发送渲染资源的状态检测请求之前,系统对所有的渲染机器资源进行初始化,默认所有渲染机器资源为空闲,并保存当前所有的渲染机器的该空闲状态,当渲染机器获得渲染任务后,把该渲染机器的状态设置为繁忙状态,并保存该渲染机器的繁忙状态。所述资源状态检测模块检测当前渲染资源的状态为繁忙还是空闲并提示用户选择离线渲染或实时渲染具体过程是:

如果所述资源状态检测模块返回的为繁忙状态,则提示用户当前渲染资源繁忙,可以进行离线渲染的方式进行任务处理,如果用户选择离线渲染,则把渲染任务数据中的离线渲染标识offline修改为1,如果用户选择实时渲染,则渲染任务数据不做处理;返回的如果为空闲状态,则渲染任务数据不做处理。具体的,渲染任务的数据包括:户型结构数据、模型数据、吊顶数据、灯光信息数据和离线渲染标识offline,所述离线渲染标识offline默认为0,标识为非离线。

优选地,在本发明的基于实时离线渲染并行的多优先级队列调度系统的实施例一种,渲染任务接收模块400接收渲染任务的渲染优先级判断信息具体包括:用户类型type,用户等级level。优先级队列的生成规则为:

s1、先检测离线标识offline;

s2、如果离线标识offline等于1,则把该渲染任务放到最低优先级队列quene_offline;

s3、如果离线标识offline为0,则根据用户类型type和用户等级level进行渲染队列优先级判断,其中,用户类型type有值0和1,用户等级level有值0和1,优先级队列格式为:quene_type_level,按优先级顺序排列分别是:quene_0_0、quene_0_1、quene_1_0和quene_1_1。

上述的基于实时离线渲染并行的多优先级队列调度系统,在步骤s4中,接收到渲染任务的数据后,判断该渲染任务的优先级的参考值是:用户类型type、用户等级level和离线标识offline。优先级队列根据渲染需求和用户需求还可设置可扩展属性,用于扩展优先级队列的优先级类别。

实施例二:

具体技术方案结合图1的模块连接图、图2的渲染优先级流程图和图4的优先级队列格式示意图所示,本发明提出的一种基于实时离线渲染并行的多优先级队列调度系统,该调度系统包括:

渲染类型检测模块200,该渲染类型检测模块200与渲染任务池100连接,用于检测渲染任务池100发出的渲染任务的渲染请求类型,渲染请求类型包括实时渲染请求和离线渲染请求两种形式。实时渲染请求和离线渲染请求的定义见上文所述。

资源状态检测模块300,该资源状态检测模块300与所述渲染类型检测模块200连接,用于接收所述渲染类型检测模块200的反馈信息,当所述渲染类型检测模块200反馈的渲染任务的渲染请求类型为离线渲染请求,则所述资源状态检测模块300置该渲染任务数据中的离线标识offline为1,不进行渲染资源的状态检测,然后把处理后的该渲染任务数据发送到任务接收方。当所述渲染类型检测模块200反馈的渲染任务的渲染请求类型为为实时渲染请求,则所述资源状态检测模块300先检测当前渲染资源的状态,如果当前渲染资源的状态为繁忙,则提示用户选择离线渲染;如果当前渲染资源的状态为空闲,则提示用户选择实时渲染,然后把处理后的渲染任务数据发送到任务接收方。

渲染任务接收模块400,该渲染任务接收模块400作为任务接收方,与资源状态检测模块300连接,用于接收资源状态检测模块300发出的渲染任务和该渲染任务的渲染优先级判断信息。

优先级判断模块500,与所述渲染任务接收模块400连接,用于判断所述渲染任务接收模块400中的用户渲染任务的优先级,并按照优先级高低存入优先级队列池600中。优先级队列池600中存入的用户渲染任务按照优先级别由高到低排列,渲染时,按照队列中用户渲染任务的优先级高低进行排列。

渲染模块700,与所述优先级队列池600连接,对存于优先级队列池600中的渲染任务根据优先级由高到低进行渲染。

优选地,本发明的基于实时离线渲染并行的多优先级队列调度系统还包括提示模块,该提示模板用于在检测渲染任务池100发出渲染任务的渲染请求类型为实时渲染请求还是离线渲染请求前,发出前期数据准备的提示信息。具体的,发起渲染任务请求前准备的前期数据包括房屋户型绘制完成后获得的具象化的户型数据:房屋户型结构、模型摆放、吊顶摆放、灯光强度和颜色的调节。

优选地,所述资源状态检测模块300还包括检测请求发送单元,该检测请求发送单元用于发送渲染资源的状态检测请求。所述渲染任务接收模块400接收该状态检测请求并统计当前空闲的渲染资源数量,当空闲的渲染资源的数量大于0时,返回空闲状态给该检测请求发送单元,当空闲的渲染资源等于0时,返回繁忙状态给所述检测请求发送单元。

在检测请求发送单元发送渲染资源的状态检测请求之前,系统对所有的渲染机器资源进行初始化,默认所有渲染机器资源为空闲,并保存当前所有的渲染机器的该空闲状态,当渲染机器获得渲染任务后,把该渲染机器的状态设置为繁忙状态,并保存该渲染机器的繁忙状态。所述资源状态检测模块检测当前渲染资源的状态为繁忙还是空闲并提示用户选择离线渲染或实时渲染具体过程是:

如果所述资源状态检测模块返回的为繁忙状态,则提示用户当前渲染资源繁忙,可以进行离线渲染的方式进行任务处理,如果用户选择离线渲染,则把渲染任务数据中的离线渲染标识offline修改为1,如果用户选择实时渲染,则渲染任务数据不做处理;返回的如果为空闲状态,则渲染任务数据不做处理。具体的,渲染任务的数据包括:户型结构数据、模型数据、吊顶数据、灯光信息数据和离线渲染标识offline,所述离线渲染标识offline默认为0,标识为非离线。

优选地,在本发明的基于实时离线渲染并行的多优先级队列调度系统的实施例一种,渲染任务接收模块400接收渲染任务的渲染优先级判断信息具体包括:用户类型type、用户等级level和离线标识offline。优先级队列的生成规则为:

s1、先检测离线标识offline;

s2、如果离线标识offline等于1,则把该渲染任务放到最低优先级队列quene_offline;

s3、如果离线标识offline为0,则根据用户类型type和用户等级level进行渲染队列优先级判断,其中,用户类型type有值0和1,用户等级level有值0和1,优先级队列格式为:quene_type_level,按优先级顺序排列分别是:quene_0_0、quene_0_1、quene_1_0和quene_1_1。再加上最低优先级队列quene_offline,可取得了5个渲染任务优先级队列,按优先级顺序排列分别是:quene_0_0、quene_0_1、quene_1_0、quene_1_1、quene_offline。在其他实施例中,优先级队列根据渲染需求和用户需求可设置可扩展属性,用于进一步扩展优先级队列的优先级类别。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1