CN108389154B - Gpu中一种用于并行绘制的裁剪区域分割技术的实现方法 - Google Patents

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

Info

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
Application number
CN201810261850.5A
Other languages
English (en)
Other versions
CN108389154A (zh
Inventor
陈宝民
焦永
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Changsha Jingjia Microelectronics Co ltd
Original Assignee
Changsha Jingjia Microelectronics Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Changsha Jingjia Microelectronics Co ltd filed Critical Changsha Jingjia Microelectronics Co ltd
Priority to CN201810261850.5A priority Critical patent/CN108389154B/zh
Publication of CN108389154A publication Critical patent/CN108389154A/zh
Application granted granted Critical
Publication of CN108389154B publication Critical patent/CN108389154B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing 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图形绘制流水线包括命令处理、顶点获取、顶点处理、图元装配、裁剪、光栅化、片段处理和像素处理等过程,这些处理都是有顺序性要求的,并行绘制是提高GPU性能的一种重要处理方式,但由于顺序性要求,不能按照普通的通过绘制命令或顶点进行并行。
例如基于分块渲染的并行绘制技术,采用这种并行技术需要在裁剪之后执行图元的分块操作,而且需要经过分块和绘制分别执行的技术。
发明内容
本发明要解决的问题就在于:在不改变处理顺序性要求的前提下,提供了一种用于并行绘制的裁剪区域分割技术的实现方法,通过在某一方向上对绘制区域进行分割,分割成若干个不相交的区域,裁剪完成后的每个区域由并行的光栅化、片段处理和像素处理完成后续的操作。
发明内容:将绘图区利用裁剪方程划分成n个不相交的区域,n为自然数,各个裁剪模块按照配置的参数各自执行裁剪,各个裁剪模块配置参数不同:将X方向的左右两个裁剪面用方程
Figure BDA0001609883420000011
表示,Y方向的下上裁剪面用方程
Figure BDA0001609883420000012
表示,整个绘制区域被分成了n个不相交的区域:第i个裁剪模块的裁剪面参数配置的值为:当选定X方向分割时取
Figure BDA0001609883420000013
当选定Y方向分割时取
Figure BDA0001609883420000014
其中的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方向的左右两个裁剪面用方程
Figure BDA0001609883420000021
表示,Y方向的下上裁剪面用方程
Figure BDA0001609883420000022
表示,整个绘制区域被分成了n个不相交的区域:第i个裁剪模块的裁剪面参数配置的值为:当选定X方向分割时取
Figure BDA0001609883420000023
当选定Y方向分割时取
Figure BDA0001609883420000024
其中的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中一种用于并行绘制的裁剪区域分割技术的实现方法,其特征为:按照以下步骤执行:
步骤1:接收经过顶点处理和图元装配的图元顶点坐标和属性,配置流水线数目参数n以及绘图区分割的方向,设接收到的三个顶点坐标分别为
Figure 340237DEST_PATH_IMAGE001
Figure 398323DEST_PATH_IMAGE002
Figure 115743DEST_PATH_IMAGE003
步骤2:生成将整个绘制区域分成n个不相交区域的n组裁剪方程,每一组裁剪方程均包含左、右、上、下四个裁剪方程,用于限制每一个裁剪模块的裁剪区域;
步骤3:每一个裁剪模块接收各自的步骤2定义的裁剪方程,首先判断图元各顶点是否在本裁剪区域内,然后按照Sutherland-Hodgman裁剪算法处理;
步骤4:步骤3的各裁剪模块输出的图元各自执行光栅化,片段处理,像素处理操作,这样便实现了n个区域并行绘制。
2.根据权利要求1所述的GPU中一种用于并行绘制的裁剪区域分割技术的实现方法,其特征为:所述步骤2将绘图区利用裁剪方程划分成n个不相交的区域的方法为:
将X方向的左右两个裁剪面用方程
Figure DEST_PATH_IMAGE004
表示,Y方向的下上裁剪面用方程
Figure 245373DEST_PATH_IMAGE005
表示;
将整个绘制区域被分成n个不相交的区域:第个裁剪模块的裁剪面参数配置的值为:当配置为X方向分割时取
Figure DEST_PATH_IMAGE006
,当配置为Y方向分割时取
Figure 731849DEST_PATH_IMAGE007
其中的
Figure DEST_PATH_IMAGE008
,且为自然数;
将每个裁剪区域的裁剪方程参数{
Figure 161169DEST_PATH_IMAGE009
Figure DEST_PATH_IMAGE010
Figure 100306DEST_PATH_IMAGE011
Figure DEST_PATH_IMAGE012
}分别输出至对应的裁剪模块。
3.根据权利要求1所述的GPU中一种用于并行绘制的裁剪区域分割技术的实现方法,其特征为:所述步骤3中判断图元各顶点是否在裁剪区域内的方法为:需要根据当前正在执行的裁剪面进行不同的判别:
(1)执行左裁剪面裁剪时,裁剪面方程为
Figure 33627DEST_PATH_IMAGE013
,将顶点x坐标带入方程,满足
Figure DEST_PATH_IMAGE014
,表明该点在裁剪区域内部,否则该顶点在外部,其中当前为三角形图元时
Figure 374610DEST_PATH_IMAGE015
,当前为线段图元时
Figure DEST_PATH_IMAGE016
,当前为点图元时
Figure 305657DEST_PATH_IMAGE017
(2)执行右裁剪面裁剪时,裁剪面方程为
Figure DEST_PATH_IMAGE018
,将顶点x坐标带入方程,满足
Figure 138614DEST_PATH_IMAGE019
,表明该点在裁剪区域内部,否则该顶点在外部,其中当前为三角形图元时
Figure 285081DEST_PATH_IMAGE015
,当前为线段图元时
Figure 74045DEST_PATH_IMAGE016
,当前为点图元时
Figure 707152DEST_PATH_IMAGE017
(3)执行下裁剪面裁剪时,裁剪面方程为
Figure DEST_PATH_IMAGE020
,将顶点y坐标带入方程,满足
Figure 761827DEST_PATH_IMAGE021
,表明该点在裁剪区域内部,否则该顶点在外部,其中当前为三角形图元时
Figure 443475DEST_PATH_IMAGE015
,当前为线段图元时
Figure 696733DEST_PATH_IMAGE016
,当前为点图元时
Figure 232232DEST_PATH_IMAGE017
(4)执行上裁剪面裁剪时,裁剪面方程为
Figure DEST_PATH_IMAGE022
,将顶点y坐标带入方程,满足
Figure DEST_PATH_IMAGE023
,表明该点在裁剪区域内部,否则该顶点在外部,其中当前为三角形图元时
Figure 570940DEST_PATH_IMAGE015
,当前为线段图元时
Figure 853017DEST_PATH_IMAGE016
,当前为点图元时
Figure 882153DEST_PATH_IMAGE017
CN201810261850.5A 2018-03-27 2018-03-27 Gpu中一种用于并行绘制的裁剪区域分割技术的实现方法 Active CN108389154B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109712063B (zh) * 2018-12-12 2023-03-14 中国航空工业集团公司西安航空计算技术研究所 一种图形处理器平面剪裁电路
CN111913816A (zh) * 2020-07-14 2020-11-10 长沙景嘉微电子股份有限公司 Gpgpu中簇的实现方法、装置、终端及介质

Citations (4)

* Cited by examiner, † Cited by third party
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图形处理过程中图元裁剪装置及裁剪方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
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
KR101351236B1 (ko) 테셀레이션 시간이 테셀레이션의 양에 따라 선형적으로 증가하는 테셀레이터
US9619937B2 (en) Methods and apparatus for processing computer graphics primitives in tile-based graphics rendering system
US20110267346A1 (en) Tessellation of patches of surfaces in a tile based rendering system
US20240037693A1 (en) Tiling a primitive in a graphics processing system by testing subsets of tiles in a rendering space
CN108389154B (zh) Gpu中一种用于并行绘制的裁剪区域分割技术的实现方法
EP3690821A1 (en) Graphics processing systems with expansion transformation stage masks
CN114693851A (zh) 基于gpu的实时网格轮廓向量化与渲染系统
EP3664037A1 (en) Tiling a primitive in a graphics processing system
CN109410213A (zh) 基于包围盒的多边形图元裁剪方法、计算机可读存储介质、电子设备
WO2019209751A1 (en) Superpixel merging
CN114723598B (zh) 图形处理系统和方法
CN113221895A (zh) 小目标检测方法、装置、设备及介质
CN113012259A (zh) 一种基于三角剖分算法对凹多边形填充处理的方法
EP2728551B1 (en) Image rendering method and system
CN103310409A (zh) 一种Tile-based渲染架构GPU的三角形快速分块方法
CN109643460B (zh) 使用推迟图元批量合并和分类的混合渲染器
CN108510579A (zh) 一种工业复杂裁剪曲面的渲染显示方法
JP2002183741A (ja) 図形処理方法
CN113034366A (zh) 无拼接缝sar图像分割并行加速处理方法
Ma et al. Rasterization of geometric primitive in graphics based on FPGA
CN117411983A (zh) 用于动态合并的系统和方法
GB2537660A (en) Tiling a primitive in a graphics processing system
CN113221896A (zh) 目标检测方法、装置、神经形态器件及介质
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