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

技术编号:18659211 阅读:100 留言:0更新日期:2018-08-11 14:56
本发明专利技术公开了GPU中一种用于并行绘制的裁剪区域分割技术的实现方法,该方法通过将固定的裁剪面方程改成参数配置方程,将整个绘图区分成若干个不相交的区域,这些裁剪区域各自执行裁剪后的操作以实现并行绘制、提高绘制效率,本发明专利技术的实现方法是在命令处理、顶点获取、顶点处理和图元装配后,对裁剪区域进行划分,对同一个图元同时分配到若干裁剪区域进行裁剪,将原来的一个裁剪模块变成若干裁剪模块同时裁剪。

A method of clipping region segmentation for parallel rendering in GPU

The invention discloses an implementation method of clipping region segmentation technique for parallel rendering in GPU. By changing a fixed clipping surface equation into a parameter allocation equation, the whole drawing can be divided into several disjoint regions, which perform clipping operations respectively to achieve parallel rendering and improve rendering. The method of the invention divides the clipping area after command processing, vertex acquisition, vertex processing and primitive assembly, cuts the same primitive into several clipping areas at the same time, and turns the original clipping module into several clipping modules at the same time.

【技术实现步骤摘要】
GPU中一种用于并行绘制的裁剪区域分割技术的实现方法
本专利技术主要涉及到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.GPU中一种用于并行绘制的裁剪区域分割技术的实现方法,其特征为:按照以下步骤执行:步骤1:接收经过顶点处理和图元装配的图元顶点坐标和属性,配置流水线数目参数n以及绘图区分割的方向,设接收到的三个顶点坐标分别为

【技术特征摘要】
1.GPU中一种用于并行绘制的裁剪区域分割技术的实现方法,其特征为:按照以下步骤执行:步骤1:接收经过顶点处理和图元装配的图元顶点坐标和属性,配置流水线数目参数n以及绘图区分割的方向,设接收到的三个顶点坐标分别为,,;步骤2:生成将整个绘制区域分成n个不相交区域的n组裁剪方程,每一组裁剪方程均包含左、右、上、下四个裁剪方程,用于限制每一个裁剪模块的裁剪区域;步骤3:每一个裁剪模块接收各自的步骤2定义的裁剪方程,首先判断图元各顶点是否在本裁剪区域内,然后按照Sutherland-Hodgman裁剪算法处理;步骤4:步骤3的各裁剪模块输出的图元各自执行光栅化,片段处理,像素处理等操作,这样便实现了n个区域并行绘制。2.GPU中一种用于并行绘制的裁剪区域分割技术的实现方法,其特征为:所述步骤2将绘图区利用裁剪方程划分成n个不相交的区域的方法为:(1)将X方向的左右两个裁剪面用方程表示,Y方向的下上裁剪面用方程表示;(2)将整个绘制区域被分成n个不相交的区域:第个裁剪模块的裁剪面参数配置的值为:当配置为X方向分割时取,当配置为Y方...

【专利技术属性】
技术研发人员:陈宝民焦永
申请(专利权)人:长沙景嘉微电子股份有限公司
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1