GPU中一种用于并行绘制的裁剪区域分割技术的实现方法与流程

文档序号:15131290发布日期:2018-08-10 07:45阅读:264来源:国知局

本发明主要涉及到gpu设计领域,特指gpu并行绘制的实现领域。



背景技术:

gpu图形绘制流水线包括命令处理、顶点获取、顶点处理、图元装配、裁剪、光栅化、片段处理和像素处理等过程,这些处理都是有顺序性要求的,并行绘制是提高gpu性能的一种重要处理方式,但由于顺序性要求,不能按照普通的通过绘制命令或顶点进行并行。

例如基于分块渲染的并行绘制技术,采用这种并行技术需要在裁剪之后执行图元的分块操作,而且需要经过分块和绘制分别执行的技术。



技术实现要素:

本发明要解决的问题就在于:在不改变处理顺序性要求的前提下,提供了一种用于并行绘制的裁剪区域分割技术的实现方法,通过在某一方向上对绘制区域进行分割,分割成若干个不相交的区域,裁剪完成后的每个区域由并行的光栅化、片段处理和像素处理完成后续的操作。

发明内容:将绘图区利用裁剪方程划分成n个不相交的区域,n为自然数,各个裁剪模块按照配置的参数各自执行裁剪,各个裁剪模块配置参数不同:将x方向的左右两个裁剪面用方程表示,y方向的下上裁剪面用方程表示,整个绘制区域被分成了n个不相交的区域:第i个裁剪模块的裁剪面参数配置的值为:当选定x方向分割时取当选定y方向分割时取其中的i∈[1,n],且为自然数;本发明的实现方法按照以下步骤执行:

步骤(1):cpu把顶点数据通过总线写入到存储器的对应地址,cpu通过总线发出配置命令和绘图命令,增加n组4分量配置参数{cl,cr,cb,ct},每个分量均为单精度浮点数,每组4分量参数对应一个裁剪模块的裁剪方程参数;

步骤(2):gpu收到绘制命令后,执行命令解析、顶点获取、顶点处理和图元装配等操作,每个图元坐标包含x,y,z,w四个分量,将装配好的图元同时发送n个裁剪模块;

步骤(3):根据步骤(1)配置的裁剪方程参数,按照左、右、下、上裁剪面的顺序依次进行裁剪,裁剪执行的过程与一般裁剪过程的区别在于顶点在裁剪区域内的判断,该实现方法的判断方法为:设当前的裁剪面为左裁剪面,设输入裁剪模块的三个顶点坐标分别为a(x0,y0,z0,w0),b(x1,y1,z1,w1),c(x2,y2,z2,w2),三角形时分别将三个顶点的坐标代入裁剪面方程left:x+clw=0,满足xj+clwj≥0,其中j∈[0,2]表明该点在裁剪裁剪区域内部,否则该顶点在外部;线段则将前两个顶点带入上述裁剪面方程,点图元则需要将第一个顶点带入上述裁剪面方程,判断出顶点与裁剪面的位置关系后,裁剪的其余过程按照cohen-sutherland裁剪过程处理,其余裁剪面的处理与左裁剪面类似;

步骤(4):经过步骤(3)的裁剪后,各个裁剪模块的输出仅保留了当前分配的分割区域内的部分,其余部分已被裁剪掉,各裁剪模块输出的图元各自执行光栅化,片段处理,像素处理等操作,这样便实现了n个区域并行绘制。

本发明的优点就在于:1、该方法可以在不改变图元处理顺序的基础上实现并行绘制;2、可以方便在单gpu上扩展并行。

附图说明

图1是本发明实现的一种基于裁剪区域分割的并行绘制实现方法;

图2是分别在x方向和y方向分割时裁剪方程确定的绘图区范围;

图3是将绘图区水平方向分成4个区域的每个区域绘制内容示意图。

具体实施方式

以下将结合附图和具体实施例对本发明做进一步详细说明。

如图1所示,在x方向或y方向上进行裁剪区域分割时,裁剪方程确定的绘图区范围,将绘图区利用不同的裁剪方程划分成n个不相交的区域,n为自然数,各个裁剪模块按照配置的参数各自执行裁剪,各个裁剪模块配置参数不同:将x方向的左右两个裁剪面用方程表示,y方向的下上裁剪面用方程表示,整个绘制区域被分成了n个不相交的区域:第i个裁剪模块的裁剪面参数配置的值为:当选定x方向分割时取当选定y方向分割时取其中的i∈[1,n],且为自然数。

如图2所示gpu中一种基于裁剪区域分割的并行绘制技术的实现方法,按照以下步骤执行:

第一步:cpu把顶点数据通过总线写入到存储器的对应地址,cpu通过总线发出配置命令和绘图命令,增加n组4分量配置参数{cl,cr,cb,ct},每个分量均为单精度浮点数,每组4分量参数对应一个裁剪模块的裁剪方程参数;

第二步:gpu收到绘制命令后,执行命令解析、顶点获取、顶点处理和图元装配等操作,每个图元坐标包含x,y,z,w四个分量,将装配好的图元同时发送n个裁剪模块;

第三步:根据第一步配置的裁剪方程参数,按照左、右、下、上裁剪面的顺序依次进行裁剪,裁剪执行的过程与一般裁剪过程的区别在于顶点在裁剪区域内的判断,该实现方法的判断方法为:设当前的裁剪面为左裁剪面,设输入裁剪模块的三个顶点坐标分别为a(x0,y0,z0,w0),b(x1,y1,z1,w1),c(x2,y2,z2,w2),三角形时分别将三个顶点的坐标代入裁剪面方程left:x+clw=0,满足xj+clwj≥0,其中j∈[0,2]表明该点在裁剪裁剪区域内部,否则该顶点在外部;线段则将前两个顶点带入上述裁剪面方程,点图元则需要将第一个顶点带入上述裁剪面方程,判断出顶点与裁剪面的位置关系后,裁剪的其余过程按照cohen-sutherland裁剪过程处理,其余裁剪面的处理与左裁剪面类似;

第四步:经过第三步的裁剪后,各个裁剪模块的输出仅保留了当前分配的分割区域内的部分,其余部分已被裁剪掉,各裁剪模块输出的图元各自执行光栅化,片段处理,像素处理等操作,这样便实现了n个区域并行绘制。

图3是将绘图区在水平方向分成4个不相交区域,每个区域绘制的内容,其中(1)表示在整个绘图区绘制的三角形,(2)表示第一个分割区域绘制的内容,(3)表示第二个分割区域绘制的内容,(4)表示第三个分割区域绘制的内容,(5)表示第四个分割区域绘制的内容。

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