System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于缓冲区的像素渲染保序方法、系统及存储介质技术方案_技高网

基于缓冲区的像素渲染保序方法、系统及存储介质技术方案

技术编号:40629174 阅读:5 留言:0更新日期:2024-03-13 21:15
本发明专利技术提供了一种基于缓冲区的像素渲染保序方法、系统及存储介质,包括:光栅化模块对一个图元进行光栅化,得到屏幕上在图元内部的像素,光栅化模块将像素、以及像素信息发送至着色器执行单元簇,同时光栅化模块将像素信息发送至光栅化处理单元的处理队列中;着色器执行单元簇收到光栅化模块发送的像素及像素信息后,将像素分发至色器执行单元簇内的空闲指令核,对像素执行片段着色器程序;指令核对像素执行完毕片段着色器程序后,将对应的像素及像素信息发送至缓冲区中,并由缓冲区判断是否将该像素发送至光栅化处理单元进行处理。本发明专利技术的有益效果是:本发明专利技术保证了GPU 3D渲染像素的顺序按照渲染图元顺序进行,使GPU渲染正确进行。

【技术实现步骤摘要】

本专利技术涉及gpu渲染,尤其涉及基于缓冲区的像素渲染保序方法、系统及存储介质


技术介绍

1、在opengl标准渲染管线中,像素的混合(blending)处理流程主要是从片段着色器获取片段颜色输出,并将它们与这些输出映射到的颜色缓冲区中的颜色组合在一起。在进行像素混合流程时,gpu硬件需要保证像素的渲染顺序(下文简称像素保序),否则对半透明像素和全透明像素进行渲染时容易产生渲染错误。在现代gpu opengl渲染管线中,像素混合流程发生在光栅化处理单元(raster operations units, rops),即像素经片段着色器输出至该单元时,gpu硬件需要保证像素均被按图元渲染顺序进行渲染。

2、同时,现代gpu中,像素的片段着色器程序执行存在很大程度的并行性。虽然光栅化模块可以保证在输出像素至片段着色器执行时是按照图元渲染顺序发送的,但是片段着色器的执行对每个像素而言存在一定时间上的不确定性,可能出现按图元顺序后渲染的图元像素快于按图元顺序先渲染的图元像素输出至光栅化处理单元,进而使后渲染的图元像素比原应先渲染的图元像素更早的写进颜色缓冲区的情况。在这种情况下,若渲染的图元间存在重合像素,则可能造成部分像素渲染错误(如图1、2所示)。


技术实现思路

1、本专利技术提供了一种基于缓冲区的像素渲染保序方法,在gpu进行opengl渲染流程的着色器执行单元簇和光栅化处理单元之间增加一块缓冲区,该像素渲染保序方法包括如下步骤:

2、步骤s1:光栅化模块对一个图元进行光栅化,得到屏幕上在图元内部的像素,所述像素是需要被渲染的像素,光栅化模块将像素、以及像素信息发送至着色器执行单元簇,同时光栅化模块将像素信息发送至光栅化处理单元的处理队列中;

3、步骤s2:着色器执行单元簇收到光栅化模块发送的像素及像素信息后,将像素分发至色器执行单元簇内的空闲指令核,对像素执行片段着色器程序;

4、步骤s3:指令核对像素执行完毕片段着色器程序后,将对应的像素及像素信息发送至缓冲区中,并由缓冲区判断是否将该像素发送至光栅化处理单元进行处理。

5、作为本专利技术的进一步改进,像素信息包括像素坐标、所属图元索引、所属渲染索引。

6、作为本专利技术的进一步改进,在所述步骤s3中,缓冲区收到像素和像素信息后,不断查询遍历所有光栅化处理单元的非空处理队列中的待处理像素,综合处理队列中的像素信息和缓冲区收到的像素信息进行判断,将缓冲区收到像素和像素信息简称为输入像素,将处理队列中的像素信息简称为待处理像素,判断规则包括如下步骤:

7、步骤1:获取输入像素;

8、步骤2:获取第一个待处理像素;

9、步骤3:判断待处理像素的所属渲染索引是否大于输入像素的所属图元索引,若是,那么执行步骤a;否则执行步骤4;

10、步骤4:判断待处理像素的所属图元索引是否大于输入像素的所属图元索引,若是,那么执行步骤a;否则执行步骤5;

11、步骤5:判断待处理像素和输入像素是否重合,若是,那么执行第一处理步骤,否则执行第二处理步骤;

12、步骤a:获取下一个待处理像素,然后执行步骤3;

13、第一处理步骤:返回等待信号,缓冲区对输入像素等待设定时间,然后缓冲区将输入像素发送至光栅化处理单元进行处理;

14、第二处理步骤:返回发送信号,缓冲区将输入像素输出到光栅化处理单元进行处理。

15、作为本专利技术的进一步改进,在所述步骤5中,若待处理像素坐标与输入像素坐标相等,说明待处理像素和输入像素重合。

16、作为本专利技术的进一步改进,当gpu使用基于瓦片的光栅化方法时,在所述步骤5中,通过瓦片判断待处理像素和输入像素是否重合。

17、作为本专利技术的进一步改进,在所述步骤5中:

18、若两个瓦片的左下角像素坐标相同,则两个瓦片的所有像素重合,判定待处理像素和输入像素重合;

19、若输入瓦片左下角坐标位于待处理瓦片内部,则两个瓦片存在像素重合,判定待处理像素和输入像素重合;

20、若输入瓦片右下角坐标位于待处理瓦片内部,则两个瓦片存在像素重合,判定待处理像素和输入像素重合;

21、若输入瓦片左上角坐标位于待处理瓦片内部,则两个瓦片存在像素重合,判定待处理像素和输入像素重合;

22、若输入瓦片右上角坐标位于待处理瓦片内部,则两个瓦片存在像素重合,判定待处理像素和输入像素重合。

23、本专利技术还提供了一种基于缓冲区的像素渲染保序系统,包括:存储器、处理器以及存储在所述存储器上的计算机程序,所述计算机程序配置为由所述处理器调用时实现本专利技术所述像素渲染保序方法的步骤。

24、本专利技术还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序配置为由处理器调用时实现本专利技术所述的像素渲染保序方法的步骤。

25、本专利技术的有益效果是:本专利技术保证了gpu 3d渲染像素的顺序按照渲染图元顺序进行,使gpu渲染正确进行。

本文档来自技高网...

【技术保护点】

1.一种基于缓冲区的像素渲染保序方法,其特征在于,在GPU进行OpenGL渲染流程的着色器执行单元簇和光栅化处理单元之间增加一块缓冲区,该像素渲染保序方法包括如下步骤:

2.根据权利要求1所述的像素渲染保序方法,其特征在于:像素信息包括像素坐标、所属图元索引、所属渲染索引。

3.根据权利要求1所述的像素渲染保序方法,其特征在于:在所述步骤S3中,缓冲区收到像素和像素信息后,不断查询遍历所有光栅化处理单元的非空处理队列中的待处理像素,综合处理队列中的像素信息和缓冲区收到的像素信息进行判断,将缓冲区收到像素和像素信息简称为输入像素,将处理队列中的像素信息简称为待处理像素,判断规则包括如下步骤:

4.根据权利要求3所述的像素渲染保序方法,其特征在于:在所述步骤5中,若待处理像素坐标与输入像素坐标相等,说明待处理像素和输入像素重合。

5.根据权利要求3所述的像素渲染保序方法,其特征在于:当GPU使用基于瓦片的光栅化方法时,在所述步骤5中,通过瓦片判断待处理像素和输入像素是否重合。

6.根据权利要求5所述的像素渲染保序方法,其特征在于,在所述步骤5中:

7.一种基于缓冲区的像素渲染保序系统,其特征在于,包括:存储器、处理器以及存储在所述存储器上的计算机程序,所述计算机程序配置为由所述处理器调用时实现权利要求1-6中任一项所述像素渲染保序方法的步骤。

8.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质存储有计算机程序,所述计算机程序配置为由处理器调用时实现权利要求1-6中任一项所述的像素渲染保序方法的步骤。

...

【技术特征摘要】

1.一种基于缓冲区的像素渲染保序方法,其特征在于,在gpu进行opengl渲染流程的着色器执行单元簇和光栅化处理单元之间增加一块缓冲区,该像素渲染保序方法包括如下步骤:

2.根据权利要求1所述的像素渲染保序方法,其特征在于:像素信息包括像素坐标、所属图元索引、所属渲染索引。

3.根据权利要求1所述的像素渲染保序方法,其特征在于:在所述步骤s3中,缓冲区收到像素和像素信息后,不断查询遍历所有光栅化处理单元的非空处理队列中的待处理像素,综合处理队列中的像素信息和缓冲区收到的像素信息进行判断,将缓冲区收到像素和像素信息简称为输入像素,将处理队列中的像素信息简称为待处理像素,判断规则包括如下步骤:

4.根据权利要求3所述的像素渲染保序方法,其特征在于:在所述步骤5中,若...

【专利技术属性】
技术研发人员:莫潘良钟伟
申请(专利权)人:深圳中微电科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1