System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及图形绘制,特别是涉及一种图形绘制流水线中的粗粒度深度剔除方法和装置。
技术介绍
1、为满足对可视化界面日益增高的质量要求和进一步提升视觉体验,3d渲染场景日渐复杂。如何在保证处理效率的同时满足相关需求,深度剔除不可或缺。
2、其中,复杂的渲染场景中难免存在物体之间的相互遮挡,对于离视点比较远的物体,一般会因为被近处物体遮挡而变得不可见或只有部分可见。对于被遮挡的部分,可以用深度剔除将它们从图形绘制流水线中事先剔除,从而最大程度上保证图形流水线上参与绘制像素(或像素中的采样点)的有效性。
3、为此,在图形绘制流水线中,传统的深度剔除做法是针对每个像素或者像素中的每个采样点所带的深度值进行实验,逐一将不满足条件(如离视点较远)的像素点进行剔除。另外,考虑到像素着色器可能会更新每个像素点的深度值,前述传统的深度剔除是放在像素着色器之后进行的。
4、为提高像素着色器的渲染效率,目前技术中提出了一种在像素着色器中“输出保守深度值”的概念,以期在图形绘制流水线上尽量将深度剔除提前到像素着色器之前完成,由此只有视点可见的部分会进入像素着色器,进而提高像素着色器的工作有效性。同时,为了提高深度剔除效率,目前技术中还给出了一种基于固定剔除粒度的粗粒度剔除算法。
5、由此,目前技术中深度剔除可包含三个部分:
6、第一部分:光栅化之后、像素着色器之前的粗粒度剔除部分。该部分的剔除粒度固定(如固定为8×8像素),其作用是在引入逐像素/采样点这些高精度深度剔除之前、用粗粒度剔除来减少计
7、第二部分:第一部分剔除之后、像素着色器之前,以期在将像素输入像素着色器前,尽量将其中无效的部分剔除,降低像素着色器的负担;
8、第三部分:在像素着色器之后,用于处理像素着色器需要输出非保守深度值的场景。在该场景下,无法继续使用根据图元顶点深度值插值出来的各个像素的深度值。
9、然而,对于目前技术的第一部分,其固定不变的剔除粒度,在一方面,会使深度梯度值较大的图元的剔除不够充分,在另一方面,对于深度梯度值较小的图元,未能在最大程度上将计算量进行优化。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种图形绘制流水线中的粗粒度深度剔除方法和装置。
2、第一方面,本申请提供了一种图形绘制流水线中的粗粒度深度剔除方法。
3、所述方法包括:
4、根据图元对应的深度梯度信息,选择相应的剔除粒度将所述图元分割成多个试验块;
5、针对每一试验块,根据试验块对应的深度梯度信息,选择相应的深度范围计算方式计算得到所述试验块对应的深度范围;
6、针对每一试验块,获取试验块对应的背景深度范围,并根据该试验块对应的深度范围与该试验块对应的背景深度范围的比较结果,判断是否剔除该试验块;
7、将未被剔除的试验块送入后续图形绘制流水线中。
8、第二方面,本申请还提供了一种图形绘制流水线中的粗粒度深度剔除装置。所述装置包括:
9、试验块分割模块,用于根据图元对应的深度梯度信息,选择相应的剔除粒度将所述图元分割成多个试验块;
10、深度范围计算模块,用于针对每一试验块,根据试验块对应的深度梯度信息,选择相应的深度范围计算方式计算得到所述试验块对应的深度范围;
11、剔除判断模块,用于针对每一试验块,获取试验块对应的背景深度范围,并根据该试验块对应的深度范围与该试验块对应的背景深度范围的比较结果,判断是否剔除该试验块;
12、后处理模块,用于将未被剔除的试验块送入后续图形绘制流水线中。
13、上述图形绘制流水线中的粗粒度深度剔除方法及其装置,根据图元对应的深度梯度信息自适应选择合适的剔除粒度,将图元按照其剔除粒度切分成多个试验块,然后对每个试验块依次进行深度剔除,可以有效提高深度剔除效率,由此不会因为剔除粒度固定选择过大而导致深度变化较大的图元未被充分剔除,也不会因为剔除粒度固定选择过小而导致计算量变大而降低剔除效率,并且在计算每个试验块的深度范围时,也会根据其深度梯度信息自适应选择合适的计算方式以保证计算出来的深度范围的精度,能够进一步提高剔除效率。该方案通过图元对应的深度梯度信息自适应调整剔除粒度并灵活选择试验块的深度范围计算方式,能够在计算量和计算精度之间找到最佳平衡,从而可用以替代目前剔除做法中第一部分,将该粗粒度深度剔除部分发挥出最优效果,提高了图形绘制流水线的整体工作效率。
本文档来自技高网...【技术保护点】
1.一种图形绘制流水线中的粗粒度深度剔除方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述深度梯度信息包括所述图元的横向深度梯度值和纵向深度梯度值;所述根据图元对应的深度梯度信息,选择相应的剔除粒度将所述图元分割成多个试验块,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述横向深度梯度值和纵向深度梯度值各自与所述深度梯度阈值范围的比较结果,分别选择所述图元对应的横向剔除粒度和纵向剔除粒度,包括:
4.根据权利要求1所述的方法,其特征在于,所述根据试验块对应的深度梯度信息,选择相应的深度范围计算方式计算得到所述试验块对应的深度范围,包括:
5.根据权利要求4所述的方法,其特征在于,所述从可选深度范围计算方式中选择包围盒方式计算得到所述试验块对应的深度范围,包括:
6.根据权利要求4所述的方法,其特征在于,所述从可选深度范围计算方式中选择试验块方式计算得到所述试验块对应的深度范围,包括:
7.根据权利要求1所述的方法,其特征在于,所述获取试验块对应的背景深度范围,包括:
8.根据权利要求7所述的方法,其特征在于,所述根据该试验块对应的深度范围与该试验块对应的背景深度范围的比较结果,判断是否剔除该试验块之后,所述方法还包括:
9.根据权利要求1至8任一项所述的方法,其特征在于,所述针对每一试验块,获取试验块对应的背景深度范围,根据该试验块对应的深度范围与该试验块对应的背景深度范围的比较结果,判断是否剔除该试验块之前,所述方法还包括:
10.一种图形绘制流水线中的粗粒度深度剔除装置,其特征在于,所述装置包括:
...【技术特征摘要】
1.一种图形绘制流水线中的粗粒度深度剔除方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述深度梯度信息包括所述图元的横向深度梯度值和纵向深度梯度值;所述根据图元对应的深度梯度信息,选择相应的剔除粒度将所述图元分割成多个试验块,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述横向深度梯度值和纵向深度梯度值各自与所述深度梯度阈值范围的比较结果,分别选择所述图元对应的横向剔除粒度和纵向剔除粒度,包括:
4.根据权利要求1所述的方法,其特征在于,所述根据试验块对应的深度梯度信息,选择相应的深度范围计算方式计算得到所述试验块对应的深度范围,包括:
5.根据权利要求4所述的方法,其特征在于,所述从可选深度范围计算方式中选择包围盒方式计算得到所述试验块...
【专利技术属性】
技术研发人员:汪莹,武凤霞,
申请(专利权)人:格兰菲智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。