CN103310409B - 一种Tile-based渲染架构GPU的三角形快速分块方法 - Google Patents

一种Tile-based渲染架构GPU的三角形快速分块方法 Download PDF

Info

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
Application number
CN201310264422.5A
Other languages
English (en)
Other versions
CN103310409A (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.)
University of Jinan
Original Assignee
University of Jinan
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 University of Jinan filed Critical University of Jinan
Priority to CN201310264422.5A priority Critical patent/CN103310409B/zh
Publication of CN103310409A publication Critical patent/CN103310409A/zh
Application granted granted Critical
Publication of CN103310409B publication Critical patent/CN103310409B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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-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都完成测试。
CN201310264422.5A 2013-06-26 2013-06-26 一种Tile-based渲染架构GPU的三角形快速分块方法 Expired - Fee Related CN103310409B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101794456A (zh) * 2009-01-15 2010-08-04 Arm有限公司 用于处理图形的方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101794456A (zh) * 2009-01-15 2010-08-04 Arm有限公司 用于处理图形的方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
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