一种GPU点光栅化点大小奇偶配置顶点坐标映射的TLM微结构的制作方法

专利2022-06-29  75


本发明属于计算机图形处理技术领域,具体涉及一种gpu点光栅化点大小奇偶配置顶点坐标映射的tlm微结构。



背景技术:

光栅化是将由顶点的几何数据和像素数据定义成的基本图元转化成与像素点对应的片元。而每一个片元对应于帧缓冲区中的一个像素。把定点连接直线或者由三角形的三个顶点确定各个边并进行内部填充时,就需要考虑点的大小、直线的宽度、点画模式、着色模式以及三角形的点画模式、着色模式和抗锯齿处理的覆盖率计算。经过图元装配的图元信息包括顶点的坐标、主颜色、辅助颜色、法向量、雾化因子、纹理等信息。这些图元信息首先进入扫描转换模式进行扫描,产生对应图元信息的所有像素点坐标,之后属性插值单元进行属性计算插值,得到所有像素点的颜色、雾化因子、纹理坐标等。

任何图元都是由点组成的,点的属性有两个,一个是坐标,一个是大小。点的光栅化就是在屏幕像素点阵中用给定的颜色点亮最佳逼近于理想点的像素点集的过程。要绘制一个点,就要先把点投影到屏幕坐标系中,然后以坐标系中的点的坐标为中心,以点的大小为半径,进行区域扫描。

然而,现有研究中,点光栅化时点的大小与其所占片元不对应,不论点的大小为奇偶,输出的结果中点所占的片元总为奇数个,例如:点大小(pointsize)为8时,输出的结果中点占9个像素,而当点大小为9时,输出的图中点仍占9个像素。而点大小与输出图元片元的不对应会降低输出图元的分辨率,导致输出图元的失真。



技术实现要素:

为了解决现有技术中存在的上述问题,本发明提供了一种gpu点光栅化点大小奇偶配置顶点坐标映射的tlm微结构。本发明要解决的技术问题通过以下技术方案实现:

本发明实施例提供了一种gpu点光栅化点大小奇偶配置顶点坐标映射的tlm微结构,包括:

点坐标获取单元,用于获取点图元的点坐标;

片元坐标转换单元,用于当判断点光栅化的反走样未开启时,利用第一预设算法将所述点坐标转换为片元坐标;

光栅化扫描范围确定单元,用于根据所述点图元的点大小、所述点大小的奇偶属性和所述片元坐标确定光栅化扫描范围;

有效片元点亮单元,用于根据所述光栅化扫描范围的片元区域中有效片元的数量和位置点亮所述有效片元的像素值。

在本发明的一个实施例中,所述光栅化扫描范围确定单元包括:

点大小计算单元,用于对所述点大小进行四舍五入计算,得到目标值;

点大小奇偶性判断单元,用于判断所述目标值的奇偶属性;

光栅化扫描范围计算单元,用于当判断所述目标值为奇数时,利用第二预设算法对所述目标值和所述片元坐标进行计算得到所述光栅化扫描范围,或者当判断所述目标值为偶数时,利用第三预设算法对所述目标值和所述片元坐标进行计算得到所述光栅化扫描范围。

在本发明的一个实施例中,所述有效片元点亮单元包括:

扫描单元,用于对所述光栅化扫描范围中的所述片元区域进行扫描;

点图元跨度判断单元,用于根据所述片元区域中扫描起始坐标与扫描终点坐标的第一坐标关系判断所述点图元的横坐标跨度和纵坐标跨度;

第一有效片元判断单元,用于当判断所述点图元为所述横坐标跨度且无所述纵坐标跨度时,则根据所述横坐标跨度和所述纵坐标跨度得到所述有效片元的数量,根据所述点图元的纵坐标纵坐标判断所述有效片元的位置;

像素值点亮单元,用于根据所述有效片元的数量和位置点亮所述有效片元的像素值。

在本发明的一个实施例中,所述有效片元点亮单元还包括:

第二有效片元判断单元,用于当判断所述点图元为所述纵坐标跨度且无所述横坐标跨度时,则根据所述横坐标跨度和所述纵坐标跨度得到所述有效片元的数量,根据所述点图元的横坐标判断所述有效片元的位置。

在本发明的一个实施例中,所述有效片元点亮单元还包括:

第三有效片元判断单元,用于当判断所述点图元无所述横坐标跨度且无所述纵坐标跨度时,根据所述片元区域中所述点图元的起始横坐标与终点横坐标的第二坐标关系以及所述点图元的起始纵坐标与终点纵坐标的第三坐标关系判断所述有效片元的数量,并根据所述点图元的起始坐标判断所述有效片元的位置。

在本发明的一个实施例中,所述第三有效片元判断单元用于当所述第二坐标关系为不相等且所述第三坐标关系为相等时,根据所述片元区域中所述点图元的起始纵坐标判断所述有效片元的位置。

在本发明的一个实施例中,所述第三有效片元判断单元用于当所述第二坐标关系为相等且所述第三坐标关系为不相等时,根据所述片元区域中所述点图元的起始横坐标判断所述有效片元的位置。

在本发明的一个实施例中,所述有效片元点亮单元还包括:

第四有效片元判断单元,用于当判断所述点图元无所述横坐标跨度且无所述纵坐标跨度,同时所述第二坐标关系为相等且所述第三坐标关系为相等时,根据所述第二坐标关系和所述第三坐标关系判断得到所述有效片元的数量为4个且所述有效片元覆盖所述片元区域。

在本发明的一个实施例中,所述有效片元点亮单元还包括:

第五有效片元判断单元,用于当判断所述点图元有所述横坐标跨度且有所述纵坐标跨度时,判断得到所述有效片元的数量为4个且所述有效片元覆盖所述片元区域。

在本发明的一个实施例中,还包括:

先进先出单元,用于提供所述点图元的点坐标;

属性插值单元,用于对点亮所述有效片元的像素值后的所述片元区域进行属性差值。

与现有技术相比,本发明的有益效果:

本发明的tml微结构根据点大小、点大小的奇偶属性和点坐标确定光栅化扫描范围,使得点光栅化输出的结果中点所占有有效片元数量与点大小的奇偶相对应,解决了在点光栅化不开启反走样时,不论点大小为奇偶,点所占片元总为奇数个的问题,很好的控制扫描结束后输出的有效片元数量以及在特殊情况下对点扫描范围内有效片元像素值的点亮情况。

附图说明

图1为本发明实施例提供的一种gpu点光栅化点大小奇偶配置顶点坐标映射的tlm微结构;

图2为本发明实施例提供的一种事务级systemc周期精确建模的基本结构框图;

图3为本发明实施例提供的一种gpu点光栅化点大小奇偶配置的顶点坐标映射方法的流程示意图;

图4a-图4g为本发明实施例提供的另一种gpu点光栅化点大小奇偶配置的顶点坐标映射方法的流程示意图;

图5为本发明实施例提高的一种片元区域的示意图;

图6为本发明实施例提供的第一种有效片元的数量和位置关系示意图;

图7为本发明实施例提供的第二种有效片元的数量和位置关系示意图;

图8为本发明实施例提供的第三种有效片元的数量和位置关系示意图;

图9为本发明实施例提供的第四种有效片元的数量和位置关系示意图;

图10为本发明实施例提供的第五种有效片元的数量和位置关系示意图;

图11为本发明实施例提供的第六种有效片元的数量和位置关系示意图;

图12为本发明实施例提供的第七种有效片元的数量和位置关系示意图;

图13为本发明实施例提供的第八种有效片元的数量和位置关系示意图;

图14为本发明实施例提供的第九种有效片元的数量和位置关系示意图。

具体实施方式

下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。

实施例一

请参见图1,图1为本发明实施例提供的一种gpu点光栅化点大小奇偶配置顶点坐标映射的tlm微结构。该tlm微结构是基于systemc而建立的模型,具体包括:先进先出单元、点坐标获取单元、片元坐标转换单元、光栅化扫描范围确定单元、有效片元点亮单元和属性插值单元。

请参见图1和图2,图2为本发明实施例提供的一种事务级systemc周期精确建模的基本结构框图。图1中的各个单元之间通过tlm接口连接。图2中的事务级systemc建模的基本结构包含tlm接口、事务发起者(initiator)和事务受动者(target)。图中描述的tlm接口initiator_target_tlm_if是一个包含了读、写函数的虚类,其内部只对接口操作的函数进行申明,不涉及任何数据、行为的具体定义。事务initiator内部定义了两个接口a和b,申明了一个内部循环进程initiator_process()。接口a、b的类型都是sc_port<initiator_target_tlm_if>,内部进程initiator_process属于一个systemc的sc_cthread类型,该进程在软件运行时具有单独的stack,并且在程序整个生命周期内存在。当该进程顺序执行到wait()语句时,进程挂起;只有在该进程事先声明的敏感列表中的clock.pos()触发后,该进程才会继续顺序向下执行。

事务target继承了initiator_target_tlm_if接口类,其内部定义了两个接口a和b,其都是sc_export<initiator_target_tlm_if>类型。事务target在其内部具体实现了initiator_target_tlm_if接口类中申明函数的行为。

以先进先出单元与点坐标获取单元之间的tlm接口为例,先进先出单元发起传输数据的指令,点坐标获取单元接收到该指令,从先进先出单元获取点图元的点坐标。

具体地,先进先出单元用于提供点图元的点坐标。点坐标获取单元用于获取点图元的点坐标。片元坐标转换单元用于当判断点光栅化的反走样未开启时,利用第一预设算法将点坐标转换为片元坐标。光栅化扫描范围确定单元用于根据点图元的点大小、点大小的奇偶属性和片元坐标确定光栅化扫描范围。有效片元点亮单元用于根据光栅化扫描范围的片元区域中有效片元的数量和位置点亮有效片元的像素值。属性插值单元用于对点亮有效片元的像素值后的片元区域进行属性差值,其中,属性插值单元的插值方法根据点光栅化时的属性差值方法进行。

进一步地,光栅化扫描范围确定单元包括:点大小计算单元、点大小奇偶性判断单元、光栅化扫描范围计算单元。其中,点大小计算单元用于对点大小进行四舍五入计算,得到目标值。点大小奇偶性判断单元点大小计算单元连接,用于判断目标值的奇偶属性。光栅化扫描范围计算单元与点大小奇偶性判断单元,用于当判断目标值为奇数时,利用第二预设算法对目标值和片元坐标进行计算得到光栅化扫描范围,或者当判断目标值为偶数时,利用第三预设算法对目标值和片元坐标进行计算得到光栅化扫描范围。

进一步地,有效片元点亮单元包括:扫描单元、点图元跨度判断单元、第一有效片元判断单元、第二有效片元判断单元、第三有效片元判断单元、第四有效片元判断单元、第五有效片元判断单元、像素值点亮单元。

其中,扫描单元用于对光栅化扫描范围中的片元区域进行扫描。

点图元跨度判断单元与扫描单元连接,用于根据片元区域中扫描起始坐标与扫描终点坐标的第一坐标关系判断点图元的横坐标跨度和纵坐标跨度。

第一有效片元判断单元与点图元跨度判断单元连接,用于当判断点图元为横坐标跨度且无纵坐标跨度时,则根据横坐标跨度和纵坐标跨度得到有效片元的数量,根据点图元的纵坐标判断有效片元的位置。

第二有效片元判断单元与点图元跨度判断单元连接,用于当判断点图元为纵坐标跨度且无横坐标跨度时,则根据横坐标跨度和纵坐标跨度得到有效片元的数量,根据点图元的横坐标判断有效片元的位置。

第三有效片元判断单元与点图元跨度判断单元连接,用于当判断点图元无横坐标跨度且无纵坐标跨度时,根据片元区域中点图元的起始横坐标与终点横坐标的第二坐标关系以及点图元的起始纵坐标与终点纵坐标的第三坐标关系判断有效片元的数量,并根据点图元的起始坐标判断有效片元的位置。具体地,当第二坐标关系为不相等且第三坐标关系为相等时,第三有效片元判断单元根据片元区域中点图元的起始纵坐标判断有效片元的位置;当第二坐标关系为相等且第三坐标关系为不相等时,第三有效片元根据片元区域中点图元的起始横坐标判断有效片元的位置。

第四有效片元判断单元与点图元跨度判断单元连接,用于当判断点图元无横坐标跨度且无纵坐标跨度,同时第二坐标关系为相等且第三坐标关系为相等时,根据第二坐标关系和第三坐标关系判断得到有效片元的数量为4个且有效片元覆盖片元区域。

第五有效片元判断单元与点图元跨度判断单元连接,用于当判断点图元有横坐标跨度且有纵坐标跨度时,判断得到有效片元的数量为4个且有效片元覆盖片元区域。

像素值点亮单元,用于根据有效片元的数量和位置点亮有效片元的像素值。

本实施例的tml微结构根据点大小、点大小的奇偶属性和点坐标确定光栅化扫描范围,使得点光栅化输出的结果中点所占有有效片元数量与点大小的奇偶相对应,解决在点光栅化不开启反走样时,不论点大小为奇偶,点所占片元总为奇数个的问题,很好的控制扫描结束后输出的有效片元数量以及在特殊情况下对点扫描范围内有效片元像素值的点亮情况。

本实施例的tml微结构解决了点光栅化点大小奇偶配置不同时顶点坐标映射rtl仿真结果模型比对的问题,解决了不同点大小的点光栅化验证的问题,可以为项目后期的rtl设计提供验证模型。该tml微结构采用systemc建模语言,可以摆脱传统信号级别的硬件描述,使用丰富的数据结构进行硬件的高层次行为、时序的抽象;采用tlm的基于面向对象的接口多态性机制,避免了硬件电路单元之间繁琐的信号连接描述,可以快速对模型进行适应性修改;可以快速的开发反映硬件架构、时序信息的模型,用于系统架构阶段的性能评估和结构探索;加快了仿真速度。

实施例二

请参见图3和图4a-图4g,图3为本发明实施例提供的一种gpu点光栅化点大小奇偶配置的顶点坐标映射方法的流程示意图,图4a-图4g为本发明实施例提供的另一种gpu点光栅化点大小奇偶配置的顶点坐标映射方法的流程示意图。该顶点坐标映射方法包括步骤:

s1、将点图元的点坐标转换为片元坐标。请参见图4a,步骤s1具体包括以下步骤:

s11、获取点图元的点坐标。

具体地,获取点坐标(x0,y0),此时,点坐标(x0,y0)属于点坐标系。

s12、判断反走样是否开启,得到判断结果。

具体地,判断结果包括反走样开启和反走样未开启。

s13、根据判断结果利用第一预设算法对点坐标进行计算,得到片元坐标。

具体地,当判断反走样开启时,对点坐标进行浮点计算,即x1=float(x0 0.5),y1=float(y0 0.5),将点坐标(x0,y0)转换为片元坐标(x1,y1);其中,float为浮点型计算。之后,在反走样时点亮有效像素值。

当判断反走样未开启时,对点坐标进行取整计算,即x1=int(x0 0.5),y1=int(y0 0.5),将点坐标(x0,y0)转换为片元坐标(x1,y1),其中,第一预设算法为取整计算int。本实施例重点对反走样未开启时的参数处理进行说明。

s2、根据点图元的点大小、点大小的奇偶属性和片元坐标确定光栅化扫描范围。请参见图4b,步骤s2具体包括以下步骤:

s21、对点大小进行四舍五入计算,得到目标值。

具体地,对点大小pointsize进行四舍五入计算regular,得到目标值regular(pointsize)。

s22、判断目标值的奇偶属性,得到判断结果。

具体地,判断regular(pointsize)的奇偶属性,即判断regular(pointsize)%2==0是否成立。

s23、根据判断结果确定光栅化扫描范围。

具体地,当判断目标值regular(pointsize)为奇数时,即regular(pointsize)%2==0成立,利用第二预设算法对目标值和片元坐标进行计算得到光栅化扫描范围。

第二预设算法的计算方法为:片元坐标(x1,y1)中x1加上0.5再减去regular(pointsize)为a点和c点的x坐标,点坐标(x1,y1)中x1加上0.5再加上regular(pointsize)为b点和d点的x坐标,点坐标(x1,y1)中y1加上0.5再减去regular(pointsize)为a点和b点的y坐标,点坐标(x1,y1)中y1加上0.5再加上regular(pointsize)为c点和d点的y坐标,即:xmin=regular(x1 0.5-regular(pointsize)/2.0),ymin=regular(y1 0.5-regular(pointsize)/2.0),xmax=int(x1 0.5 regular(pointsize)/2.0),ymax=int(y1 0.5 regular(pointsize)/2.0)。其中,regular代表四舍五入,int代表取整。a、b、c、d点组成的矩形范围即为光栅化扫描范围,xmin、ymin、xmax、ymax分别为光栅化扫描范围的坐标。

当判断目标值regular(pointsize)为偶数时,即regular(pointsize)%2==0不成立,利用第三预设算法对目标值和片元坐标进行计算得到光栅化扫描范围。

第三预设算法的计算方法为:点坐标(x1,y1)中x1减去regular(pointsize)为a点和c点的x坐标,点坐标(x1,y1)中x1加上regular(pointsize)为b点和d点的x坐标,点坐标(x1,y1)中y1减去regular(pointsize)为a点和b点的y坐标,点坐标(x1,y1)中y1加上regular(pointsize)为c点和d点的y坐标,即xmin=regular(x1-regular(pointsize)/2.0),ymin=regular(y1-regular(pointsize)/2.0),xmax=int(x1 regular(pointsize)/2.0),ymax=int(y1 regular(pointsize)/2.0)。其中,regular代表四舍五入,int代表取整。a、b、c、d点组成的矩形范围即为光栅化扫描范围。

s3、根据光栅化扫描范围的每个片元区域中有效片元的数量和位置点亮有效片元的像素值。具体包括以下步骤:

s31、对光栅化扫描范围中的每个片元区域进行扫描。

本实施例中,请参见图5,图5为本发明实施例提高的一种片元区域的示意图。将片元区域(quad)定义为一个2×2的片元区域,其包括4个片元,4个片元从左到右、从下到上依次定义为0、1、2、3。

光栅化扫描范围中存在若干像素,形成若干片元区域。在对光栅化扫描范围进行扫描时,对光栅化扫描范围中的每个片元区域进行依次扫描,即先扫描一个片元区域,然后扫描下一个片元区域,直至扫描结束。随着扫描的进行,片元区域的位置不断变化。

光栅化扫描范围中间位置处,有效片元将片元区域完全覆盖,因此,本实施例主要针对光栅化扫描范围的边界在每个片元区域中所占有的有效像素的数量和位置进行判断。

具体地,请参见图4b,对于每个片元区域,其扫描起始坐标和扫描终点坐标根据该片元区域中点所对应的像素坐标进行确定,即quad_scan_start_x=xmin/2,quad_scan_start_y=ymin/2,quad_scan_end_x=xmax/2,quad_scan_end_y=ymax/2,其中,xmin、ymin、xmax、ymax为每个片元区域中点图元对应的像素坐标。根据上述坐标可以确定片元区域的位置。

s32、根据片元区域中扫描起始坐标与扫描终点坐标的第一坐标关系判断点图元的跨度。

通过判断扫描起始横坐标xmin/2与扫描终点横坐标xmax的坐标关系,同时判断扫描起始纵坐标ymin/2与扫描终点纵坐标ymax/2的坐标关系,来确定点图元的跨度,即判断quad_scan_start_x与quad_scan_end_x关系同时判断quad_scan_start_y与quad_scan_end_y关系。

请参见图4c,点图元的跨度存在以下四种情况:

第一种:点图元为横坐标跨度且无纵坐标跨度,即quad_sacn_start_x!=quad_scan_end_x&&quad_scan_start_y==quad_scan_end_y。这种情况下,在一个片元区域中,点图元所占的片元数量为2个,这两个片元沿横坐标分布,而在纵坐标上不跨越。

第二种:点图元为纵坐标跨度且无横坐标跨度,即quad_scan_start_x==quad_scan_end_x&&quad_scan_start_y!=quad_scan_end_y。这种情况下,在一个片元区域中,点图元所占的片元数量为2个,这两个片元沿纵坐标分布,而在横坐标上不跨越。

第三种:点图元无横坐标跨度且无纵坐标跨度,即quad_scan_start_x==quad_scan_end_x&&quad_scan_start_y==quad_scan_end_y。这种情况下,在一个片元区域中,点图元所占的片元数量为3个,在x上和y上均没有跨度。

第四种:点图元有横坐标跨度且有纵坐标跨度,即quad_scan_start_x!=quad_scan_end_x&&quad_scan_start_y!=quad_scan_end_y。这种情况下,点片元的数量为4个,4个点片元分别位于该片元区域的四个角。也就是,点片元在x上和y上均存在跨度。

s33、根据片元区域中点图元的跨度和点图元的坐标判断有效片元的数量和位置,并根据有效片元的数量和位置点亮有效片元的像素值。

该步骤根据点图元的跨度包括以下四种并列的情况:

a.当点图元为横坐标跨度且无纵坐标跨度时,根据横坐标跨度判断有效片元的数量,并根据片元区域中点图元的起始纵坐标和终点纵坐标判断有效片元的位置。此时,由于存在横坐标跨度,点图元所占的片元数量为2个,有效片元的数量也为2个,然后再这个前提下根据片元区域中点图元的起始纵坐标ymin和终点纵坐标ymax判断有效片元的位置。进一步地,有效片元在片元区域中的位置包括向上区域和向下区域两种情况,其中,向上区域是指该片元区域的2、3片元,向下区域是指该片元区域的0、1片元。

具体地,请参见图4d和图6,图6为本发明实施例提供的第一种有效片元的数量和位置关系示意图,其中,阴影部分为一个片元区域,阴影较深代表点亮的有效片元,空白区域代表向上区域的quad。当判断quad_coordy==quad_scan_start_y&&ymin%2==1时,有效片元无纵坐标跨度且有效片元位于向上区域,此时,点亮该片元区域中的2、3片元的像素值。其中,quad_coordy==quad_scan_start_y是指在无纵坐标跨度,ymin%2==1是指有效片元位于向上区域。

本实施例中,点亮像素值是指将mask设置为1。

请参见图4d和图7,图7为本发明实施例提供的第二种有效片元的数量和位置关系示意图,其中,阴影部分为一个片元区域,阴影较深代表点亮的有效片元,空白区域代表向下区域的quad。当判断quad_coordy==quad_scan_start_y&&ymax%2==0时,有效片元无纵坐标跨度且有效片元位于向下区域,此时,点亮该片元区域中的0、1片元的像素值。

当判断点片元存在y跨度且ymin%2!=1、ymax%2!=0时,则所判断的片元不属于该片元区域,该片元区域中0、1、2、3片元的像素值均不点亮。

b.当点图元为纵坐标跨度且无横坐标跨度时,根据纵坐标跨度判断有效片元的数量,并根据片元区域中点图元的起始横坐标和终点横坐标判断有效片元的位置。此时,由于存在纵坐标跨度,点图元所占的片元数量为2个,有效片元的数量也为2个,然后再这个前提下据片元区域中点图元的起始横坐标xmin和终点横坐标xmax起判断有效片元的位置。进一步地,有效片元在片元区域中的位置包括向左区域和向右区域两种情况,其中,向左区域是指该片元区域的0、2片元,向右区域是指该片元区域的1、3片元。

请参见图4e和图8,图8为本发明实施例提供的第三种有效片元的数量和位置关系示意图,其中,阴影部分为一个片元区域,阴影较深代表点亮的有效片元,空白区域代表向左区域的quad。当判断quad_coordx==quad_scan_start_x&&xmax%2==0时,有效片元无横坐标跨度且有效片元位于向左区域,此时,点亮该片元区域中的0、2片元的像素值。

请参见图4e和图9,图9为本发明实施例提供的第四种有效片元的数量和位置关系示意图,其中,阴影部分为一个片元区域,阴影较深代表点亮的有效片元,空白区域代表向左区域的quad。当判断quad_coordx==quad_scan_start_x&&xmin%2==1时,有效片元在x上无跨度且有效片元位于向右区域,此时,点亮该片元区域中的1、3片元的像素值。

若判断点片元在x上有跨度且xmax%2!=0、xmin%2!=1时,则所判断的片元不属于该片元区域,该片元区域中0、1、2、3片元的像素值均不点亮。

c.当点图元无横坐标跨度且无纵坐标跨度时,通过判断片元区域中点图元的起始横坐标xmin与终点横坐标xmax的第二坐标关系以及点图元的起始纵坐标ymin与终点纵坐标ymax的第三坐标关系来判断点片元的数量。第二坐标关系存在相等和不相等两种情况,第三坐标关系存在相等和不相等两种情况。

首先,判断第二坐标关系为不相等且第三坐标关系为不相等是否成立。

若成立,即xmin!==xmax&&ymin!==ymax成立,则说明该片元区域中有效片元的数量为4个,4个有效片元将片元区域覆盖,则该片元区域中0、1、2、3片元的像素值全部点亮。如图4f和图10所示,图10为本发明实施例提供的第五种有效片元的数量和位置关系示意图,图10中的4个有效片元全部被点亮。

若不成立,即xmin!==xmax&&ymin!==ymax不成立,则根据第二坐标关系和第三坐标关系判断有效片元的数量,并根据片元区域中点图元的起始坐标ymin和xmin判断有效片元的位置。进一步地,这种情况下,有效片元的位置包括上侧区域、下侧区域、左侧区域和右侧区域,其中,上侧区域是指该片元区域的2、3片元,下侧区域是指该片元区域的0、1片元,左侧区域是指该片元区域的0、2片元,右侧区域是指该片元区域的1、3片元。

需要注意的是,本实施例中的向上区域是指2、3片元的上方还有其他片元,而上侧区域是针对一个片元区域而言的,同理,向下区域和下侧区域、向左区域和左侧区域、向右区域和右侧区域也属于不同的概念。

xmin!==xmax&&ymin!=ymax不成立时具体包括以下四种情况:

第二坐标关系为不相等且第三坐标关系为相等即xmin!=xmax&&ymin==ymax,此时,根据第二坐标关系和第三坐标关系得到有效片元的数量为2个,然后根据片元区域中点图元的起始纵坐标ymin判断有效片元是属于上侧区域还是下侧区域。

具体地,请参见图4f和图11,图11为本发明实施例提供的第六种有效片元的数量和位置关系示意图,其中,阴影部分为一个片元区域,阴影较深代表点亮的有效片元。当xmin!=xmax时,ymin==ymax&&ymin%2==0,此时,该片元区域中有效片元的数量为2个且有效片元位于下侧区域,点亮该片元区域中的0、1片元的像素值。当xmin!=xmax、ymin==ymax且ymin%2!=0,则所判断的片元不属于该片元区域,该片元区域中0、1、2、3片元的像素值均不点亮。

请参见图4f和图12,图12为本发明实施例提供的第七种有效片元的数量和位置关系示意图,其中,阴影部分为一个片元区域,阴影较深代表点亮的有效片元。当xmin!=xmax时,ymin==ymax&&ymin%2==1,此时,该片元区域中有效片元的数量为2个且有效片元位于上侧区域,点亮该片元区域中的2、3片元的像素值。当xmin!=xmax、ymin==ymax且ymin%2!=1,则所判断的片元不属于该片元区域,该片元区域中0、1、2、3片元的像素值均不点亮。

当第二坐标关系为相等且第三坐标关系为不相等时即xmin==xmax&&ymin!=ymax,根据第二坐标关系和第三坐标关系判断有效片元的数量为2个,然后根据片元区域中点图元的起始横坐标xmin判断有效片元是属于左侧区域还是右侧区域。

具体地,请参见图4f和图13,图13为本发明实施例提供的第八种有效片元的数量和位置关系示意图,其中,阴影部分为一个片元区域,阴影较深代表点亮的有效片元。当ymin!=ymax时,xmin==xmax&&xmin%2==0,此时该片元区域中有效片元的数量为2个且有效片元位于左侧区域,点亮该片元区域中的0、2片元的像素值。当ymin!=ymax、xmin==xmax且xmin%2!=0,则所判断的片元不属于该片元区域,该片元区域中0、1、2、3片元的像素值均不点亮。

请参见图4f和图14,图14为本发明实施例提供的第九种有效片元的数量和位置关系示意图,其中,阴影部分为一个片元区域,阴影较深代表点亮的有效片元。当ymin!=ymax时,xmin==xmax&&xmin%2==0,此时该片元区域中有效片元的数量为2个且有效片元位于右侧区域,点亮该片元区域中的1、3片元的像素值。当ymin!=ymax、xmin==xmax且xmin%2!=1,则所判断的片元不属于该片元区域,该片元区域中0、1、2、3片元的像素值均不点亮。

d.请参见图4g,当点图元有横坐标跨度且有纵坐标跨度时,有效片元的数量为4个,4个有效片元覆盖片元区域,则按照点四角与片元区域中有效片元的有效像素值规则依次点亮4个有效片元的像素值。

本实施例的顶点坐标映射方法根据点大小、点大小的奇偶属性和点坐标确定光栅化扫描范围,使得点光栅化输出的结果中点所占有有效片元数量与点大小的奇偶相对应,解决在点光栅化不开启反走样时,不论点大小为奇偶,点所占片元总为奇数个的问题,很好的控制扫描结束后输出的有效片元数量以及在特殊情况下对点扫描范围内有效片元像素值的点亮情况。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。


技术特征:

1.一种gpu点光栅化点大小奇偶配置顶点坐标映射的tlm微结构,其特征在于,包括:

点坐标获取单元,用于获取点图元的点坐标;

片元坐标转换单元,用于当判断点光栅化的反走样未开启时,利用第一预设算法将所述点坐标转换为片元坐标;

光栅化扫描范围确定单元,用于根据所述点图元的点大小、所述点大小的奇偶属性和所述片元坐标确定光栅化扫描范围;

有效片元点亮单元,用于根据所述光栅化扫描范围的片元区域中有效片元的数量和位置点亮所述有效片元的像素值。

2.如权利要求1所述的gpu点光栅化点大小奇偶配置顶点坐标映射的tlm微结构,其特征在于,所述光栅化扫描范围确定单元包括:

点大小计算单元,用于对所述点大小进行四舍五入计算,得到目标值;

点大小奇偶性判断单元,用于判断所述目标值的奇偶属性;

光栅化扫描范围计算单元,用于当判断所述目标值为奇数时,利用第二预设算法对所述目标值和所述片元坐标进行计算得到所述光栅化扫描范围,或者当判断所述目标值为偶数时,利用第三预设算法对所述目标值和所述片元坐标进行计算得到所述光栅化扫描范围。

3.如权利要求1所述的gpu点光栅化点大小奇偶配置顶点坐标映射的tlm微结构,其特征在于,所述有效片元点亮单元包括:

扫描单元,用于对所述光栅化扫描范围中的所述片元区域进行扫描;

点图元跨度判断单元,用于根据所述片元区域中扫描起始坐标与扫描终点坐标的第一坐标关系判断所述点图元的横坐标跨度和纵坐标跨度;

第一有效片元判断单元,用于当判断所述点图元为所述横坐标跨度且无所述纵坐标跨度时,则根据所述横坐标跨度和所述纵坐标跨度得到所述有效片元的数量,根据所述点图元的纵坐标判断所述有效片元的位置;

像素值点亮单元,用于根据所述有效片元的数量和位置点亮所述有效片元的像素值。

4.如权利要求3所述的gpu点光栅化点大小奇偶配置顶点坐标映射的tlm微结构,其特征在于,所述有效片元点亮单元还包括:

第二有效片元判断单元,用于当判断所述点图元为所述纵坐标跨度且无所述横坐标跨度时,则根据所述横坐标跨度和所述纵坐标跨度得到所述有效片元的数量,根据所述点图元的横坐标判断所述有效片元的位置。

5.如权利要求3所述的gpu点光栅化点大小奇偶配置顶点坐标映射的tlm微结构,其特征在于,所述有效片元点亮单元还包括:

第三有效片元判断单元,用于当判断所述点图元无所述横坐标跨度且无所述纵坐标跨度时,根据所述片元区域中所述点图元的起始横坐标与终点横坐标的第二坐标关系以及所述点图元的起始纵坐标与终点纵坐标的第三坐标关系判断所述有效片元的数量,并根据所述点图元的起始坐标判断所述有效片元的位置。

6.如权利要求5所述的gpu点光栅化点大小奇偶配置顶点坐标映射的tlm微结构,其特征在于,所述第三有效片元判断单元用于当所述第二坐标关系为不相等且所述第三坐标关系为相等时,根据所述片元区域中所述点图元的起始纵坐标判断所述有效片元的位置。

7.如权利要求5所述的gpu点光栅化点大小奇偶配置顶点坐标映射的tlm微结构,其特征在于,所述第三有效片元判断单元用于当所述第二坐标关系为相等且所述第三坐标关系为不相等时,根据所述片元区域中所述点图元的起始横坐标判断所述有效片元的位置。

8.如权利要求3所述的gpu点光栅化点大小奇偶配置顶点坐标映射的tlm微结构,其特征在于,所述有效片元点亮单元还包括:

第四有效片元判断单元,用于当判断所述点图元无所述横坐标跨度且无所述纵坐标跨度,同时所述第二坐标关系为相等且所述第三坐标关系为相等时,根据所述第二坐标关系和所述第三坐标关系判断得到所述有效片元的数量为4个且所述有效片元覆盖所述片元区域。

9.如权利要求3所述的gpu点光栅化点大小奇偶配置顶点坐标映射的tlm微结构,其特征在于,所述有效片元点亮单元还包括:

第五有效片元判断单元,用于当判断所述点图元有所述横坐标跨度且有所述纵坐标跨度时,判断得到所述有效片元的数量为4个且所述有效片元覆盖所述片元区域。

10.如权利要求1所述的gpu点光栅化点大小奇偶配置顶点坐标映射的tlm微结构,其特征在于,还包括:

先进先出单元,用于提供所述点图元的点坐标;

属性插值单元,用于对点亮所述有效片元的像素值后的所述片元区域进行属性差值。

技术总结
本发明涉及一种GPU点光栅化点大小奇偶配置顶点坐标映射的TLM微结构,包括:点坐标获取单元,用于获取点图元的点坐标;片元坐标转换单元,用于当判断点光栅化的反走样未开启时,利用第一预设算法将点坐标转换为片元坐标;光栅化扫描范围确定单元,用于根据点图元的点大小、点大小的奇偶属性和片元坐标确定光栅化扫描范围;有效片元点亮单元,用于根据光栅化扫描范围的片元区域中有效片元的数量和位置点亮有效片元的像素值。该TML微结构解决了在点光栅化不开启反走样时,不论点大小为奇偶,点所占片元总为奇数个的问题,很好的控制扫描结束后输出的有效片元数量以及在特殊情况下对点扫描范围内有效片元像素值的点亮情况。

技术研发人员:李冲;刘莎;杨洋;周艺璇;申越;范飞虎
受保护的技术使用者:西安翔腾微电子科技有限公司
技术研发日:2019.12.31
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-48823.html

最新回复(0)