[发明专利]一种基于Tile的三角形多向并行扫描方法及结构有效
申请号: | 201910014883.4 | 申请日: | 2019-01-08 |
公开(公告)号: | CN109741433B | 公开(公告)日: | 2023-05-05 |
发明(设计)人: | 蒋林;樊萌;杨博文 | 申请(专利权)人: | 西安邮电大学 |
主分类号: | G06T15/04 | 分类号: | G06T15/04;G06T1/20 |
代理公司: | 北京易捷胜知识产权代理有限公司 11613 | 代理人: | 齐胜杰 |
地址: | 710121 陕西省*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 tile 三角形 多向 并行 扫描 方法 结构 | ||
1.一种基于Tile的三角形多向并行扫描结构,其特征在于,包括:
三角形设置模块、上半空间扫描模块、下半空间扫描模块和判断模块;
所述三角形设置模块和判断模块均连接上半空间扫描模块、下半空间扫描模块;
所述三角形设置模块用于获取三角形的边界方程系数、三角形的最大顶点、最小顶点;
所述三角形设置模块将获取的三角形的边界方程系数、三角形的最大顶点、最小顶点均发送所述上半空间扫描模块和下半空间扫描模块;
所述上半空间扫描模块根据所述三角形设置模块的输出数据对最小顶点起始的扫描行进行左右扫描,完成对三角形上半空间的遍历,输出三角形内有效像素点;
所述下半空间扫描模块根据所述三角形设置模块的输出数据对最大顶点起始的扫描行进行左右扫描,完成对三角形下半空间的遍历,输出三角形内有效像素点;
所述判断模块用于决定三角形的下一行水平扫描线是进行上半空间扫描还是下半空间扫描,或者停止扫描,并将判断结果送入对应的模块;
所述上半空间扫描模块和下半空间扫描模块的结构相同;
所述上半空间扫描模块包括:起始像素块边界函数计算模块和扫描模块;
所述扫描模块包括:左右并行扫描模块和下一像素块边界函数计算模块;
其中,所述起始像素块边界函数计算模块根据三角形设置模块的输出数据或扫描模块的输出数据计算出第一行或下一水平扫描行的起始像素块的边界函数值,并将计算的边界函数值输入扫描模块,以判定像素块相对于三角形的位置;
所述扫描模块的左右并行扫描模块对当前水平扫描行进行左右并行扫描;所述下一像素块边界函数计算模块根据边界方程计算出扫描像素块的边界函数值,完成对三角形上半空间和下半空间的遍历;
其中,所述起始像素块边界函数计算模块,用于将一整个屏幕划分成不同的块,每一个块是一个Tile,针对每一个Tile内像素的处理包括:
假定每一个Tile左上方为坐标原点,一个三角形由点A(x1,y1)、B(x2,y2)、C(x3,y3)绕逆时针顺序组成,通过公式(1)计算出P(x,y)点相对于三角形三条边的边界方程,并通过Top_left原则判断出该像素点与三角形的位置关系;
对公式(1)进行变形,得到公式(2):
采用Top_left原则对系数dx12、dx23、dx31、dy12、dy23、dy31进行约束,得到公式(3):
当三角形三条边的边界方程值都小于0时,像素点P在三角形内部;当有其中一条边的边界方程值为0,并且同时满足公式(3)时,像素点P在三角形内部;若不满足以上两种情况,则像素点P在三角形外部;
以及,扫描模块用于:
获取三角形的最大顶点和最小顶点分别对应的起始像素块坐标;
(xmax_block,ymax_block)为最大顶点的起始像素块坐标,
(xmin_block,ymin_block)为最小顶点的起始像素块坐标;
将三角形分为上半空间和下半空间;
从两个起始像素块坐标开始同时对上、下半空间进行左右并行扫描;
在对每一空间中的每一行进行扫描时,针对每一像素块,根据边界函数值判断是否是属于三角形内部或者是边缘像素块,如果属于,则输出并将进行下一个像素块的扫描,在遇到三角形之外的像素块时停止,并将遇到三角形之外的像素块的前一个像素块为边界像素块;
当左右方向扫描均遇到三角形之外的像素块,则停止扫描当前行;
计算下一行起始扫描像素块,开始进行下一行的扫描,下一行水平扫描线的起始块坐标通过当前水平扫描行的边界像素块坐标得到;
start_block_x=left_bound+(right_bound-left_bound)>>1
start_block_y=current_y±2
其中,start_block_x为下一行水平扫描线的起始块x坐标,start_block_y为下一行水平扫描行的y坐标,current_y为当前行水平扫描行的y坐标,left_bound、right_bound分别为当前水平扫描行的左边界和右边界;
根据预设的判断条件判断出下一行是停止扫描还是继续扫描,若是继续扫描,判断出下一行的水平扫描线是属于上半空间还是下半空间;若是停止扫描,则三角形遍历结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安邮电大学,未经西安邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910014883.4/1.html,转载请声明来源钻瓜专利网。