CN108389154B - Gpu中一种用于并行绘制的裁剪区域分割技术的实现方法 - Google Patents
Gpu中一种用于并行绘制的裁剪区域分割技术的实现方法 Download PDFInfo
- Publication number
- CN108389154B CN108389154B CN201810261850.5A CN201810261850A CN108389154B CN 108389154 B CN108389154 B CN 108389154B CN 201810261850 A CN201810261850 A CN 201810261850A CN 108389154 B CN108389154 B CN 108389154B
- Authority
- CN
- China
- Prior art keywords
- cutting
- equation
- primitive
- vertex
- clipping
- 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.)
- Active
Links
Images
Classifications
-
- 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
- G06T11/00—2D [Two Dimensional] image generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Generation (AREA)
Abstract
本发明公开了GPU中一种用于并行绘制的裁剪区域分割技术的实现方法,该方法通过将固定的裁剪面方程改成参数配置方程,将整个绘图区分成若干个不相交的区域,这些裁剪区域各自执行裁剪后的操作以实现并行绘制、提高绘制效率,本发明的实现方法是在命令处理、顶点获取、顶点处理和图元装配后,对裁剪区域进行划分,对同一个图元同时分配到若干裁剪区域进行裁剪,将原来的一个裁剪模块变成若干裁剪模块同时裁剪。
Description
技术领域
本发明主要涉及到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)表示第四个分割区域绘制的内容。
Claims (3)
1.GPU中一种用于并行绘制的裁剪区域分割技术的实现方法,其特征为:按照以下步骤执行:
步骤2:生成将整个绘制区域分成n个不相交区域的n组裁剪方程,每一组裁剪方程均包含左、右、上、下四个裁剪方程,用于限制每一个裁剪模块的裁剪区域;
步骤3:每一个裁剪模块接收各自的步骤2定义的裁剪方程,首先判断图元各顶点是否在本裁剪区域内,然后按照Sutherland-Hodgman裁剪算法处理;
步骤4:步骤3的各裁剪模块输出的图元各自执行光栅化,片段处理,像素处理操作,这样便实现了n个区域并行绘制。
3.根据权利要求1所述的GPU中一种用于并行绘制的裁剪区域分割技术的实现方法,其特征为:所述步骤3中判断图元各顶点是否在裁剪区域内的方法为:需要根据当前正在执行的裁剪面进行不同的判别:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810261850.5A CN108389154B (zh) | 2018-03-27 | 2018-03-27 | Gpu中一种用于并行绘制的裁剪区域分割技术的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810261850.5A CN108389154B (zh) | 2018-03-27 | 2018-03-27 | Gpu中一种用于并行绘制的裁剪区域分割技术的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108389154A CN108389154A (zh) | 2018-08-10 |
CN108389154B true CN108389154B (zh) | 2022-12-02 |
Family
ID=63072450
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810261850.5A Active CN108389154B (zh) | 2018-03-27 | 2018-03-27 | Gpu中一种用于并行绘制的裁剪区域分割技术的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108389154B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109712063B (zh) * | 2018-12-12 | 2023-03-14 | 中国航空工业集团公司西安航空计算技术研究所 | 一种图形处理器平面剪裁电路 |
CN111913816B (zh) * | 2020-07-14 | 2024-08-16 | 长沙景嘉微电子股份有限公司 | Gpgpu中簇的实现方法、装置、终端及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4972330A (en) * | 1988-06-01 | 1990-11-20 | Oki Electric Industry Co., Ltd. | Clipping process and processor |
JP2009073083A (ja) * | 2007-09-21 | 2009-04-09 | Ricoh Co Ltd | 画像形成装置、画像形成方法、および画像形成プログラム |
CN101976432A (zh) * | 2010-11-22 | 2011-02-16 | 长沙景嘉微电子有限公司 | 图形芯片设计中分级裁剪策略的实现 |
CN104200425A (zh) * | 2014-08-22 | 2014-12-10 | 济南大学 | 一种gpu图形处理过程中图元裁剪装置及裁剪方法 |
-
2018
- 2018-03-27 CN CN201810261850.5A patent/CN108389154B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4972330A (en) * | 1988-06-01 | 1990-11-20 | Oki Electric Industry Co., Ltd. | Clipping process and processor |
JP2009073083A (ja) * | 2007-09-21 | 2009-04-09 | Ricoh Co Ltd | 画像形成装置、画像形成方法、および画像形成プログラム |
CN101976432A (zh) * | 2010-11-22 | 2011-02-16 | 长沙景嘉微电子有限公司 | 图形芯片设计中分级裁剪策略的实现 |
CN104200425A (zh) * | 2014-08-22 | 2014-12-10 | 济南大学 | 一种gpu图形处理过程中图元裁剪装置及裁剪方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108389154A (zh) | 2018-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3048582B1 (en) | Rendering views of a scene in a graphics processing unit | |
US9818222B2 (en) | Tessellation of patches of surfaces in a tile based rendering system | |
CN105184730B (zh) | 向图形处理系统中的区片分配图元 | |
KR101351236B1 (ko) | 테셀레이션 시간이 테셀레이션의 양에 따라 선형적으로 증가하는 테셀레이터 | |
JP5451285B2 (ja) | 画像処理装置、画像処理方法 | |
US20160260249A1 (en) | Method and apparatus for processing computer graphics primitives in tile-based graphics rendering system | |
US20240037693A1 (en) | Tiling a primitive in a graphics processing system by testing subsets of tiles in a rendering space | |
CN111508056B (zh) | 利用扩展变换级掩码的图形处理系统 | |
CN106067188B (zh) | 在图形处理系统中对基元进行图块化 | |
CN108389154B (zh) | Gpu中一种用于并行绘制的裁剪区域分割技术的实现方法 | |
CN109410213A (zh) | 基于包围盒的多边形图元裁剪方法、计算机可读存储介质、电子设备 | |
WO2019209751A1 (en) | Superpixel merging | |
CN113012259A (zh) | 一种基于三角剖分算法对凹多边形填充处理的方法 | |
EP4016462A1 (en) | Graphics processing systems and methods | |
JP5254250B2 (ja) | ベクトルグラフィックをラスター化するプロセスにおいて境界を発生させるための方法およびシステム、ならびに、システムを製造するための方法 | |
CN103310409A (zh) | 一种Tile-based渲染架构GPU的三角形快速分块方法 | |
JP6294700B2 (ja) | 画像処理装置及び画像処理方法 | |
CN108510579A (zh) | 一种工业复杂裁剪曲面的渲染显示方法 | |
JP2019530070A (ja) | 優先プリミティブバッチのビニング及びソートを用いたハイブリッドレンダリング | |
CN101739703A (zh) | 用于对三角形进行栅格化的方法和系统 | |
JP2002183741A (ja) | 図形処理方法 | |
CN113034366A (zh) | 无拼接缝sar图像分割并行加速处理方法 | |
Ma et al. | Rasterization of geometric primitive in graphics based on FPGA | |
CN117934755A (zh) | 一种3d打印切片生成方法及终端设备 | |
CN110648357A (zh) | 一种不规则多边形的最大内接矩形的快速近似求解方法 |
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 |