CN103310409B - 一种Tile-based渲染架构GPU的三角形快速分块方法 - Google Patents
一种Tile-based渲染架构GPU的三角形快速分块方法 Download PDFInfo
- Publication number
- CN103310409B CN103310409B CN201310264422.5A CN201310264422A CN103310409B CN 103310409 B CN103310409 B CN 103310409B CN 201310264422 A CN201310264422 A CN 201310264422A CN 103310409 B CN103310409 B CN 103310409B
- Authority
- CN
- China
- Prior art keywords
- tile
- bounding box
- coordinate
- triangle
- sequence number
- 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.)
- Expired - Fee Related
Links
Landscapes
- Image Generation (AREA)
Abstract
本发明公开了一种Tile‑based渲染架构GPU的三角形快速分块方法,其特征在于,包括如下步骤:(1)对输入的三角形数据进行图元装配与顶点处理;(2)Tile坐标象限划分;(3)计算三角形顶点在Tile坐标系中的坐标值;(4)计算三角形的包围盒;(5)判断三角形包围盒所在或所跨的屏幕象限;(6)根据步骤(5)的判断结果对与所述包围盒相同象限内的所有Tile进行包围盒测试,生成通过包围盒测试Tile的预序号表;(7)对Tile预序号表中的Tile进行边界函数测试,确定与三角形相交的Tile序号。本发明可尽早排除与三角形不相交的Tile,减少需要进行包围盒测试的Tile范围,减小绘制功耗,提高渲染效率。
Description
技术领域
本发明涉及Tile-based渲染架构GPU设计技术领域,特别是涉及一种Tile-basedGPU渲染架构的三角形快速分块方法。
背景技术
GPU(Graphics Processing Unit,图形处理器)的出现极大程度加快了计算机图形绘制速度,增强了图形绘制效果,因而广泛应用于航空航天、医疗成像等领域。随着智能手机等移动终端的普及及人们对移动设备人机交互界面体验感觉要求的不断提高,面向移动设备的GPU的研究也得到了很大的发展。
GPU绘制模式主要分为两种,一种为传统的立即绘制模式,即绘制过程以三角面为单位进行,一个三角面送入绘制管线后会立即被绘制。由于绘制管线要求对每个三角形进行深度测试,片外存储器中需要保存一个与屏幕同等大小的帧缓冲、深度缓冲,大量的对不可见像素的深度读写极大地浪费了带宽,并增加了不必要的功耗;另一种则为基于Tile的绘制模式,该模式下将屏幕划分为很多个Tile,并以此为单位进行绘制。首先对三角形进行分类,得到与每个Tile相交的所有三角形的信息,存入Tile list中,当一个场景中所有三角面都接收完毕后再进行绘制。该绘制模式下,帧缓冲与深度缓冲大小均与Tile大小一致即可,因此可以将其置于片上,在降低深度测试读写带宽方面具有明显的优势;并且每个Tile list中都包含了本Tile在当前绘制场景中所有被绘制的三角形,可以在像素处理操作之前进行深度测试,减少对不可见像素进行纹理贴图等无效绘制带来的带宽及功耗。
基于Tile的绘制流程分为划分Tile、生成Tile list、Tile的绘制三个步骤。其中如何精确、快速生成与每个Tile相交的Tile list对于绘制效率的提升具有十分关键的作用。判定三角形是否与Tile相交是基于Tile绘制架构关键步骤,该操作对每个三角形都要执行,因此算法复杂度不宜过高。常见的覆盖判定算法主要包括包围盒测试、边界函数测试(Line Edge Test,LET)、叉乘测试(Cross Product Test,CPT)等。
发明内容
本发明要解决的技术问题是提供一种Tile-based GPU渲染架构的三角形快速分块方法,可以快速缩小需要进行包围盒测试的屏幕范围,加快渲染速度。
本发明采用如下技术手段实现发明目的:
一种Tile-based渲染架构GPU的三角形快速分块方法,其特征在于,包括如下步骤:
(1)对输入的三角形数据进行图元装配与顶点处理;
(2)Tile坐标象限划分;
(3)计算三角形顶点在Tile坐标系中的坐标值;
(4)计算三角形的包围盒;
(5)判断三角形包围盒所在或所跨的屏幕象限。
(6)根据步骤(5)的判断结果对与所述包围盒相同象限内的所有Tile进行包围盒测试,生成通过包围盒测试Tile的预序号表;若该Tile与包围盒相交,则将该Tile序号写入Tile预序号表;继续对下一个Tile进行包围盒测试,直至所有需进行包围盒测试的Tile都完成测试;
(7)对Tile预序号表中的Tile进行边界函数测试,确定与三角形相交的Tile序号。
作为对本技术方案的进一步限定,所述步骤(2)包括如下步骤:
(2.1)首先判断窗口宽和高是否分别为Tile宽和高的偶数倍,若窗口宽或高不为Tile宽和高的偶数倍,转步骤(2.2);
(2.2)则将窗口的宽或高分别向左右、上下进行扩展,将Tile的坐标范围补齐为Tile高和宽的偶数倍,以保证划分的Tile关于窗口中心点对称,并选取窗口中心点作原点,分别以向右、向上为X轴、Y轴正方向建立Tile坐标系。
作为对本技术方案的进一步限定,所述步骤(3)包括如下步骤:
(3.1)根据输入数据对三角形顶点进行装配、裁剪、归一化,得到范围均在(-1,1)内的三角形顶点坐标;
(3.2)根据经过顶点处理后的三角形顶点坐标和绘制窗口的大小信息计算得出三角形在Tile坐标系中的坐标。
作为对本技术方案的进一步限定,所述步骤(4)包括如下步骤:
(4.1)根据计算的三角形顶点的屏幕坐标值,对顶点水平坐标X0,X1,X2 进行大小比较得到水平坐标最小值Min_X、最大值Max_X;
(4.2)对Y0,Y1,Y2进行大小比较得到竖直坐标最小值Min_Y、最大值Max_Y,由此得到包围盒顶点坐标。
作为对本技术方案的进一步限定,所述步骤(5)包括如下步骤:
(5.1)获取包围盒顶点坐标Min_X,Min_Y, Max_X,Max_Y的符号位;
(5.2)根据符号位判断包围盒所在或所跨的象限情况。
作为对本技术方案的进一步限定,所述步骤(6)包括如下步骤:
(6.1)对与包围盒相同象限内的所有Tile进行包围盒测试,若该Tile与包围盒相交,则将该Tile序号写入Tile预序号表;
(6.2)继续对下一个Tile进行包围盒测试,将与包围盒相交的Tile序号写入Tile预序号表,直至所有需进行包围盒测试的Tile都完成测试。
与现有技术相比,本发明的优点和积极效果是:本发明利用三角形经图元装配与顶点处理后所得的顶点数据范围在(-1,1)之间,并结合Tile的大小将屏幕划分为位于四个不同象限的多个Tile,并进一步根据三角形包围盒所在或所跨的象限对与包围盒同象限的Tile进行包围盒测试,通过包围盒测试的Tile进一步进行三角形边界函数测试,最终判定哪些Tile与三角形相交。本发明可尽早排除与三角形不相交的Tile,减少需要进行包围盒测试的Tile范围,减小绘制功耗,提高渲染效率。
附图说明
图1为本发明实现的Tile象限的划分。
图2为本发明的九种三角形与Tile象限相交情况。
具体实施方式
下面结合附图和优选实施例对本发明作更进一步的详细描述。
如图1所示,为本发明实现的Tile象限的划分。根据输入的屏幕大小scr_w,scr_h计算Tile个数并编号,对其坐标进行分划。设窗口左下角坐标为(scr_x,scr_y),宽、高分别为scr_w、scr_h,Tile大小为N*M,其中N=2^a,M=2^b(a、b为自然数)。首先判断窗口的宽和高是否分别为Tile宽和高的偶数倍;若窗口宽或高不为Tile宽和高的偶数倍,则将窗口的宽或高进行扩展,将Tile的坐标范围补齐为Tile高和宽的偶数倍,保证Tile坐标系原点为窗口中心点,具体做法为:
①判断scr_w、scr_h是否分别为N、M的偶数倍,即判断scr_w[a:0]=(a+1)’b0,scr_h[b:0]=(b+1)’b0是否成立,若均成立则执行步骤③;若不成立则执行②
②若窗口宽不为Tile宽的偶数倍,则将在绘制窗口基础上沿X轴正方向、负方向分别扩展((~scr_w[a:0]+1’b1)>>1)像素;
若窗口高不为Tile高的偶数倍,则在绘制窗口基础上沿Y轴正方向、负方向分别扩展((~scr_h[b:0]+1’b1)>>1)像素;
执行步骤③;
③选取绘制窗口中心点为原点,分别以向右、向上为X轴、Y轴正方向建立Tile坐标系,将Tile划分为四个象限。
如图2所示,为本发明的九种三角形与Tile象限相交情况。首先计算三角形顶点的屏幕坐标值。经过顶点处理按逆时针顺序输入三角形顶点v0(x0,y0), v1(x1,y1), v2(x2,y2)的屏幕坐标分别为V0(X0,Y0),V1(X0,Y0),V2(X2,Y2)。其中x0,y0, x1,y1, x2,y2为范围在(-1,1)的单精度浮点数,设屏幕的宽和高分别为scr_w,scr_h,则:
X0=x0*scr_w/2 X1=x1*scr_w/2 X2=x2*scr_w/2
Y0=y0*scr_h/2 Y1=y1*scr_h/2 Y2=y2*scr_h/2
其次,计算三角形的包围盒。对X0,X1,X2 进行大小比较得到水平坐标最小值Min_X、最大值Max_X;对Y0,Y1,Y2进行大小比较得到竖直坐标最小值Min_Y、最大值Max_Y;包围盒的四个顶点分别记为左下角顶点V_lb(Min_X,Min_Y),右下角顶点V_rb(Max_X,Min_Y),左上角顶点V_lt(Min_X,Max_Y),右上角顶点V_rt(Max_X,Max_Y)。判断三角形包围盒所在或所跨的屏幕象限。
最后,根据包围盒顶点坐标符号判断包围盒所在或所跨屏幕象限。符号位等于0说明该最大值或最小值为0或正数,符号位为1说明该最大值或最小值为负数。记sign_4={Min_X[31],Max_X [31],Min_Y[31],Max_Y[31]},据此可作包以下判断:
sign_4=0000:包围盒在第一象限;
sign_4=1100:围盒在第二象限;
sign_4=1111:包围盒在第三象限;
sign_4=0011:包围盒在第四象限;
sign_4=0010:包围盒跨第一、第四象限;
sign_4=1110:包围盒跨第二、第三象限;
sign_4=1000:包围盒跨第一、第二象限;
sign_4=1011:包围盒跨第三、第四象限;
sign_4=1010:包围盒跨第一、二、三、四象限;
sign_4=0001,0100,0101,0110,1001,1101:发生错误;
根据以上对包围盒所在象限的判断,对相应象限内的Tile进行包围盒测试,对与包围盒相同象限内的所有Tile进行包围盒测试,若该Tile与包围盒相交,则将该Tile序号写入Tile预序号表;继续对下一个Tile进行包围盒测试,将与包围盒相交的Tile序号写入Tile预序号表,直至所有需进行包围盒测试的Tile都完成测试。对通过包围盒测试的Tile进一步进行三角形边界函数测试,最终判断出所有与三角形相交的Tile。
当然,上述说明并非对本发明的限制,本发明也不仅限于上述举例,本技术领域的普通技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也属于本发明的保护范围。
Claims (1)
1.一种Tile-based渲染架构GPU的三角形快速分块方法,其特征在于,包括如下步
骤:
(1)对输入的三角形数据进行图元装配与顶点处理;
(2)Tile坐标象限划分;
(3)计算三角形顶点在Tile坐标系中的坐标值;
(4)计算三角形的包围盒;
(5)判断三角形包围盒所在或所跨的屏幕象限;
(6)根据步骤(5)的判断结果对与所述包围盒相同象限内的所有Tile进行包围盒测试,生成通过包围盒测试Tile的预序号表;
(7)对Tile预序号表中的Tile进行边界函数测试,确定与三角形相交的Tile序号;
所述步骤(2)包括如下步骤:
(2.1)首先判断窗口宽和高是否分别为Tile宽和高的偶数倍,若窗口宽或高不为Tile宽和高的偶数倍,转步骤(2.2);
(2.2)则将窗口的宽或高分别向左右、上下进行扩展,将Tile的坐标范围补齐为Tile高和宽的偶数倍,以保证划分的Tile关于窗口中心点对称,并选取窗口中心点作原点,分别以向右、向上为X轴、Y轴正方向建立Tile坐标系;
所述步骤(3)包括如下步骤:
(3.1)根据输入数据对三角形顶点进行装配、裁剪、归一化,得到范围均在(-1,1)内的三角形顶点坐标;
(3.2)根据经过顶点处理后的三角形顶点坐标和绘制窗口的大小信息计算得出三角形在Tile坐标系中的坐标;
所述步骤(4)包括如下步骤:
(4.1)根据计算的三角形顶点的屏幕坐标值,对顶点水平坐标X0,X1,X2 进行大小比较得到水平坐标最小值Min_X、最大值Max_X;
(4.2)对Y0,Y1,Y2进行大小比较得到竖直坐标最小值Min_Y、最大值Max_Y,由此得到包围盒顶点坐标;
所述步骤(5)包括如下步骤:
(5.1)获取包围盒顶点坐标Min_X,Min_Y, Max_X,Max_Y的符号位;
(5.2)根据符号位判断包围盒所在或所跨的象限情况;
所述步骤(6)包括如下步骤:
(6.1)对与包围盒相同象限内的所有Tile进行包围盒测试,若该Tile与包围盒相交,则将该Tile序号写入Tile预序号表;
(6.2)继续对下一个Tile进行包围盒测试,将与包围盒相交的Tile序号写入Tile预序号表,直至所有需进行包围盒测试的Tile都完成测试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310264422.5A CN103310409B (zh) | 2013-06-26 | 2013-06-26 | 一种Tile-based渲染架构GPU的三角形快速分块方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310264422.5A CN103310409B (zh) | 2013-06-26 | 2013-06-26 | 一种Tile-based渲染架构GPU的三角形快速分块方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103310409A CN103310409A (zh) | 2013-09-18 |
CN103310409B true CN103310409B (zh) | 2016-09-28 |
Family
ID=49135587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310264422.5A Expired - Fee Related CN103310409B (zh) | 2013-06-26 | 2013-06-26 | 一种Tile-based渲染架构GPU的三角形快速分块方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103310409B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559679B (zh) * | 2013-11-11 | 2019-07-02 | 济南大学 | 一种基于流水线和状态机的三角形快速分块设计方法 |
GB2520365B (en) | 2013-12-13 | 2015-12-09 | Imagination Tech Ltd | Primitive processing in a graphics processing system |
GB2520366B (en) | 2013-12-13 | 2015-12-09 | Imagination Tech Ltd | Primitive processing in a graphics processing system |
GB2537661B (en) * | 2015-04-22 | 2018-09-26 | Imagination Tech Ltd | Tiling a primitive in a graphics processing system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794456A (zh) * | 2009-01-15 | 2010-08-04 | Arm有限公司 | 用于处理图形的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6975318B2 (en) * | 2002-06-25 | 2005-12-13 | Intel Corporation | Polygon binning process for tile-based rendering |
-
2013
- 2013-06-26 CN CN201310264422.5A patent/CN103310409B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794456A (zh) * | 2009-01-15 | 2010-08-04 | Arm有限公司 | 用于处理图形的方法和装置 |
Non-Patent Citations (2)
Title |
---|
Efficient tile-aware bounding-box overlap test for tile-based rendering;Antochi I等;《2004 International Symposium on System-on-Chip Proceedings》;20041118;第165-168页 * |
Tile-Based图形处理方法及高质量图形算法设计;朱玥;《中国博士学位论文全文数据库-信息科技辑》;20130115(第1期);第5-61页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103310409A (zh) | 2013-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104183005B (zh) | 图形处理单元和基于图块的渲染方法 | |
CN107016924A (zh) | 虚拟地图中的瓦片地图生成方法、更新方法和装置 | |
US10198785B2 (en) | Graphics processing method, apparatus, and system | |
US8259103B2 (en) | Position pegs for a three-dimensional reference grid | |
CN103310409B (zh) | 一种Tile-based渲染架构GPU的三角形快速分块方法 | |
CN105631923B (zh) | 一种渲染方法和装置 | |
US20100194743A1 (en) | Multiscale three-dimensional reference grid | |
CN102999946B (zh) | 一种3d图形数据处理方法、装置及设备 | |
US9996961B2 (en) | Method and apparatus for generating a composite image based on an ambient occlusion | |
JP2013536502A (ja) | マルチスケール3次元配向 | |
US10621761B2 (en) | Computer-readable recording medium, computer apparatus, and computer processing method for placing object in virtual space and displaying placed object according to display mode | |
CN105550973B (zh) | 图形处理单元、图形处理系统及抗锯齿处理方法 | |
KR101591427B1 (ko) | 3차원 지형 영상 가시화에서의 적응형 렌더링 방법 | |
CN105574931A (zh) | 一种电子地图道路绘制方法及装置 | |
CN104680532A (zh) | 一种对象标注方法及装置 | |
CN107204044A (zh) | 一种基于虚拟现实的画面显示方法及相关设备 | |
CN106548500A (zh) | 一种基于gpu的二维态势图像处理方法及装置 | |
CN103714213A (zh) | 一种复杂地理信息的并行绘制方法 | |
CN109829962B (zh) | 一种利用opengl的物体空间消隐线计算加速方法 | |
CN107833227A (zh) | 一种圆形裁剪区域的绘制方法及其系统 | |
CN104123748A (zh) | 基于屏幕空间中点光源实现实时动态阴影的方法 | |
CN103700362A (zh) | 多信号窗口显示方法及装置 | |
WO2021218448A1 (zh) | 笔迹形成方法、笔迹形成装置及电子设备 | |
CN103226456A (zh) | 一种拼接墙图像显示的方法和装置 | |
CN104134201B (zh) | 纹理图像拼接的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB03 | Change of inventor or designer information |
Inventor after: Zhang Bo Inventor after: Sun Tao Inventor after: Zhou Li Inventor after: Wang Jia Inventor before: Sun Tao Inventor before: Zhou Li Inventor before: Wang Jia |
|
COR | Change of bibliographic data | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160928 Termination date: 20180626 |