一种基于sort‑first负载平衡的图形并行绘制方法与流程

文档序号:12551813阅读:378来源:国知局
一种基于sort‑first负载平衡的图形并行绘制方法与流程

本发明属于并行绘制技术领域,特别是一种基于sort-first负载平衡的图形并行绘制方法。



背景技术:

随着科学技术的快速发展,计算机图形学已深入到真实感图形、科学计算可视化、虚拟环境、多媒体技术、计算机动画、计算机辅助工程制图等领域,并且随着这些领域需求的增长,虚拟场景越来越复杂,使得场景绘制的计算量呈指数增大。而利用GPU硬件技术的传统绘制方法不仅价格昂贵,可扩展性也较差。因此,建立一个集群并行图形绘制系统是解决这些问题的一个重要研究方向。

并行图形绘制按图元归属判断发生时间的不同,主要分为以下三类:sort-first、sort-middle、sort-last。sort-first优点是网络带宽需求小,缺点是当几何图元在屏幕上分布不均匀时,易导致负载不平衡,影响系统绘制性能。因此保证负载平衡是并行图形绘制系统中重要的一环。

目前的研究热点是并行绘制系统的动态负载平衡方法,主要分为基于几何数据的负载平衡方法和基于时空转换的负载平衡算法两类。基于几何数据的负载平衡方法是利用几何图元数据作为负载量的度量,基于时空转换的负载平衡方法则抛弃了大量几何数据,用时间值作为负载指标来对任务进行分配,这种方法最大的优势是节省了大量的计算开销。但是传统的基于时空转换负载平衡算法仅根据前一帧的绘制情况,单纯地预测下一帧的负载情况,这种预测方法过于简单,当突然出现较大负载时,可能会影响预测的稳定性,降低并行绘制效率。因此,在时空转换的负载平衡算法基础上,提出了一种优化算法,将传统的单帧改为多帧联合预测方法,结合一些数学模型设计更高效的算法,从而提高绘制系统的性能。



技术实现要素:

针对现有技术存在的问题,本发明提供一种基于sort-first负载平衡的图形并行绘制方法。

本发明的技术方案如下:

一种基于sort-first负载平衡的图形并行绘制方法,包括:

步骤1:服务器节点对待绘制图形的第一帧以平均划分的原则进行屏幕划分,分配给各绘制节点完成并行绘制后拼接;

步骤2:服务器节点对下一帧绘制的负载进行预测;

步骤3:以屏幕为根节点,以各绘制节点作为叶子节点,以各绘制节点第i+1帧绘制的负载预测值为对应绘制节点的权重,自上而下建立出第i+1帧绘制的屏幕划分的二叉树;

步骤4:从根节点开始自顶向下先序遍历第i+1帧绘制的屏幕划分的二叉树,为各绘制节点分配第i+1帧的屏幕绘制区域;

步骤5:各绘制节点进行并行绘制后由图形合成节点进行图形拼接和同步输出,若已完成待绘制图形的所有帧绘制,则结束,否则,返回步骤2。

所述步骤1,包括:

步骤1.1:服务器节点接收客户端的绘制请求,以平均划分的原则对图形的第一帧即i=1进行屏幕划分,屏幕划分结果分配给各绘制节点,图形的第一帧各绘制节点的绘制权重相同;

步骤1.2:各绘制节点根据屏幕划分结果进行并行绘制,同时启动各绘制节点的计时器,记录绘制节点完成绘制任务的时间;

步骤1.3:各绘制节点完成绘制任务,停止其相应的计时器,发送绘制结束消息给服务器节点;

步骤1.4:若所有的绘制节点都完成第一帧绘制任务,图形合成节点进行图形拼接和同步输出。

所述步骤2中服务器节点应用多帧联合预测公式对下一帧绘制的负载进行预测;多帧联合预测公式:

i<m时,

i≥m时,

其中,i表示当前绘制帧数,x表示用来预测样本的数量,ti+1为下一帧绘制的负载预测值,ti为当前帧绘制的负载值,m帧作为样本总量。

有益效果:

现有技术中单纯地预测下一帧的负载情况,因为过于简单,当突然出现较大负载时,可能会影响预测的稳定性,降低并行绘制效率。本发明采用多帧联合预测方法,利用sort-first帧间相似性的特点,实现对下一帧负载的准确预测,提高并行绘制效率。

附图说明

图1是本发明具体实施方式中采用的图形并行绘制系统框图;

图2是本发明具体实施方式中基于sort-first负载平衡的图形并行绘制方法流程图;

图3是本发明具体实施方式步骤1流程图;

图4是本发明具体实施方式中屏幕划分的二叉树;

图5是本发明具体实施方式中屏幕划分结果;

图6是本发明具体实施方式中实验结果对比图,(a)是样本数量m=5的实验结果,(b)是样本数量m=10的实验结果,(c)是样本数量m=20的实验结果。

具体实施方式

下面结合附图对本发明的具体实施方式做详细说明。

本实施方式是基于sort-first负载平衡的图形并行绘制方法,能够有效地利用图形的帧间相似性,减少网络压力,适用于通信带宽较小的绘制集群环境。如图1所示,本实施方式中的基于sort-first架构的图形并行绘制系统由1个客户端、1个服务器节点、多个绘制节点和1个图像合成节点构成,多个绘制节点构成绘制集群。所有的节点通过高速以太网进行相连。客户端根据用户的请求开始图形绘制;服务器节点作为图形并行绘制系统的枢纽,在全局上控制整个图形并行绘制系统的运行。服务器节点的主要功能是:1)根据用户的请求接收交互式信息,实时地将其发送给各个绘制节点;2)任务的划分与分配;3)控制各个绘制节点的帧同步性。绘制节点的主要功能是:1)从服务器节点接收绘制任务并完成对应屏幕区域的渲染工作;2)将绘制结果发送给图像合成节点;3)每个绘制节点包含一个计时器,记录该绘制节点当前帧完成绘制任务的时间,并将其发送给服务器节点;4)待所有绘制节点都完成绘制任务时,将绘制结果发送给图像合成节点。最后图像合成节点接收绘制结果并进行图像的拼接和同步输出显示。

本实施方式中的绘制对象采用斯坦福三维扫描存储库中的开源ply格式三维模型文件Happy,Dragon和Lucy,其中Happy模型共有543,652个顶点,1,087,716个三角形面片;Dragon模型共有3,609,455个顶点,7,218,906个三角形面片;Lucy模型共有14,027,872个顶点,28,055,742个三角形面片。记录每帧绘制时间,最后输出到文件中。每个模型分别使用样本数量m=5,m=10,m=20进行实验,每次提取500帧图像绘制时间作为实验数据做对比。实验结果对比图如图6(a)~(c)所示。

所述的基于sort-first负载平衡的图形并行绘制方法,如图2所示,包括:

步骤1:服务器节点对待绘制图形的第一帧以平均划分的原则进行屏幕划分,分配给各绘制节点完成并行绘制后拼接;

所述步骤1,如图3所示,包括:

步骤1.1:服务器节点接收客户端的绘制请求,以平均划分的原则对图形的第一帧即i=1进行屏幕划分,屏幕划分结果分配给各绘制节点,图形的第一帧各绘制节点的绘制权重相同;

步骤1.2:各绘制节点根据屏幕划分结果进行并行绘制,同时启动各绘制节点的计时器,记录绘制节点完成绘制任务的时间;

步骤1.3:各绘制节点完成绘制任务,停止其相应的计时器,发送绘制结束消息给服务器节点;

步骤1.4:若所有的绘制节点都完成第一帧绘制任务,图形合成节点进行图形拼接和同步输出。

步骤2:服务器节点应用多帧联合预测公式对下一帧绘制的负载进行预测;

将历史平均模型应用到本实施方式的图形并行绘制方法中,历史平均模型(Informed historical average)公式如下,

其中,i表示当前绘制帧数,x表示用来预测样本(帧)的数量,ti+1为下一帧绘制的负载预测值,ti为当前帧绘制的负载值,sx,i为前x帧绘制的负载平均值,sx,i+1为前x帧中每一帧绘制的负载值和下一帧绘制负载预测值的平均值。

假设m帧作为样本总量,然后通过这m帧绘制的负载值来预测下一帧绘制的负载值。若i<m,即预测样本数量不够m个,则令x=i,将第一帧到第i帧的负载值作为预测样本;若i≥m,预测样本数量满足m个,则x=m,从当前帧往前截取连续的m帧的负载值作为预测样本。

将上述两种情况应用到公式(1)中后进行展开,分别得到展开式(2)和(3),即多帧联合预测公式:

i<m时,

i≥m时,

步骤3:以屏幕为根节点,以各绘制节点作为叶子节点,以各绘制节点第i+1帧绘制的负载预测值ti+1为对应绘制节点的权重,自上而下建立出第i+1帧绘制的屏幕划分的二叉树;从根节点开始自顶向下先序遍历二叉树,对每个非叶子节点对应的屏幕作垂直或水平划分成两块(1水平划分为2和3,2和3分别划分为4,5和6,7)划分完成后每个叶子节点则代表一个绘制节点。

步骤4:从根节点开始自顶向下先序遍历第i+1帧绘制的屏幕划分的二叉树,为各绘制节点分配第i+1帧的屏幕绘制区域;

如图4所示的二叉树(假设共有4个绘制节点),1是根节点,表示原始屏幕,2和3表示非叶子节点,4,5,6,7是叶子节点,表示绘制节点,叶子节点的数目即绘制节点的数目,每个叶子节点的权重表示对应绘制节点的第i+1帧绘制的负载预测值ti+1,二叉树的划分方式设定为:先水平二分再垂直二分。将负载预测值即时间值转换为空间值,对屏幕进行划分。二叉树划分很好地保证了数据的连续性。屏幕划分后如图5所示。

步骤5:各绘制节点进行并行绘制后由图形合成节点进行图形拼接和同步输出,若已完成待绘制图形的所有帧绘制,则结束,否则,返回步骤2。

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