本地着色器引擎几何和属性着色的制作方法
背景技术:
1、在图形处理系统中,三维(3d)场景通常由图形处理单元(gpu)渲染以在二维显示器上显示。为了渲染此类场景,gpu从应用接收指示各种待渲染图形图元(为了简洁起见,在本文中也被称为图元)的命令流。gpu然后根据具有各种阶段的图形流水线来渲染这些图元,这些阶段各自包括待由gpu执行的指令。gpu通常在可见性遍历中计算所有图元的可见性信息;在某些场景中,gpu然后将可见性遍历的输出拆分成图块或其他屏幕空间分区。基于可见性数据,gpu生成并压缩稍后用于渲染场景的图元的数据。以此方式,gpu基于压缩的数据来渲染可见图元。图形处理系统然后将所渲染的图元显示为二维显示器中显示的三维场景的一部分。
2、传统渲染技术通常难以满足现代应用程序对几何和属性数据的高效处理、存储和操纵所提出的计算要求和存储器带宽要求,所有这些要求都涉及生成现代图形内容中所期望的视觉复杂性和真实性。几何(诸如顶点和图元)及其相关联的属性(诸如颜色、纹理坐标和法线)的管理是一个重要瓶颈。
技术实现思路
1、本文所描述的实施方案包括被配置为利用延迟属性着色来实现图形流水线的加速单元(au)。au的属性着色器仅在初始剔除与正被渲染的场景不相关的图元之后执行属性数据的计算。在第一具体实施中,一种方法包括:由一个或多个着色器引擎接收用于渲染场景的至少一部分的图元集合;以及由一个或多个着色器引擎剔除图元集合,其中剔除图元集合包括标识在场景中可能可见的图元子集。该方法还包括:由一个或多个着色器引擎生成所标识的图元子集的属性数据值;以及由一个或多个着色器引擎基于所生成的属性数据值来光栅化所标识的图元子集以用于渲染。
2、在一些具体实施中,该方法还包括由一个或多个着色器引擎生成所标识的图元子集的中间数据,并且其中在不在一个或多个着色器引擎外部提供中间数据或属性数据值的情况下执行该方法。生成所标识的图元子集的中间数据可包括生成所标识的子集的中间几何数据,并且光栅化所标识的图元子集包括基于中间几何数据来光栅化所标识的子集。
3、在一些具体实施中,生成所标识的图元子集的中间数据包括生成所标识的图元子集的组装图元数据,并且生成属性数据值包括基于组装的图元数据来生成属性数据值。
4、光栅化所标识的图元子集可包括生成光栅化图元子集,并且该方法还可包括通过基于光栅化图元子集生成像素数据来渲染场景。在一些具体实施中,该方法还包括将场景拆分成多个图块,其中图元集合对应于与多个图块中的一个图块相关联的所有图元。
5、接收图元集合可包括接收包含以下项的组中的一或多者:与图元集合相关联的几何数据、与场景相关联的几何状态数据、或像素状态数据。该方法可由包括一个或多个着色器引擎的处理器核心执行。
6、在另一具体实施中,一种加速单元包括一个或多个高速缓存和耦合到该一个或多个高速缓存的一个或多个着色器引擎。该一个或多个着色器引擎被配置为:接收用于渲染场景的至少一部分的图元集合;剔除图元集合以标识在场景中可能可见的图元子集;生成所标识的图元子集的属性数据值;以及基于所生成的属性数据值来光栅化所标识的图元子集以用于渲染。
7、该一个或多个着色器引擎还可被配置为:生成所标识的图元子集的中间数据;以及生成属性数据值并且在不在一个或多个着色器引擎外部提供中间数据或属性数据值的情况下光栅化所标识的图元子集。
8、在一些具体实施中,所标识的图元子集的中间数据包括所标识的子集的中间几何数据,并且一个或多个着色器引擎被配置为基于中间几何数据来光栅化所标识的图元子集。所标识的图元子集的中间数据可包括所标识的图元子集的组装图元数据,并且一个或多个着色器引擎可被配置为基于组装的图元数据来生成属性数据值。
9、在一些具体实施中,光栅化所标识的图元子集包括生成光栅化图元子集,并且一个或多个着色器引擎可被配置为通过基于光栅化图元子集生成像素数据来渲染场景。场景可被拆分成多个图块,并且图元集合可对应于与多个图块中的一个图块相关联的所有图元。图元集合可包括包含以下项的组中的一或多者:与图元集合相关联的几何数据、与场景相关联的几何状态数据、或像素状态数据。
10、在另一具体实施中,一种非暂态计算机可读介质体现一个可执行指令集,该可执行指令集用于操纵至少一个处理器进行以下操作:接收用于渲染场景的至少一部分的图元集合;由至少一个处理器的着色器引擎标识在场景中可能可见的图元子集;由着色器引擎生成所标识的图元子集的属性数据值;以及由着色器引擎基于所生成的属性数据值来光栅化所标识的图元子集以用于渲染。
11、在一些具体实施中,该可执行指令集操纵着色器引擎进行以下操作:生成所标识的图元子集的中间数据;以及生成属性数据值并且在不在着色器引擎外部提供中间数据或属性数据值的情况下光栅化所标识的图元子集。
12、所标识的图元子集的中间数据可包括所标识的子集的中间几何数据,并且着色器引擎可被配置为基于中间几何数据来光栅化所标识的图元子集。
13、所标识的图元子集的中间数据可包括所标识的图元子集的组装图元数据,并且着色器引擎可被配置为基于组装的图元数据来生成属性数据值。
14、在一些具体实施中,光栅化所标识的图元子集包括生成光栅化图元子集,并且可执行指令集操纵至少一个处理器以通过基于光栅化图元子集生成像素数据来渲染场景。
1.一种方法,所述方法包括:
2.根据权利要求1所述的方法,所述方法还包括由所述一个或多个着色器引擎生成所标识的图元子集的中间数据,并且其中在不在所述一个或多个着色器引擎外部提供所述中间数据或所述属性数据值的情况下执行所述方法。
3.根据权利要求2所述的方法,其中:
4.根据权利要求2或权利要求3所述的方法,其中:
5.根据权利要求1至4中任一项所述的方法,其中光栅化所标识的图元子集包括生成光栅化图元子集,并且其中所述方法还包括通过基于所述光栅化图元子集生成像素数据来渲染所述场景。
6.根据权利要求1至5中任一项所述的方法,所述方法还包括将所述场景拆分成多个图块,其中所述图元集合对应于与所述多个图块中的一个图块相关联的所有图元。
7.根据权利要求1至6中任一项所述的方法,其中接收所述图元集合包括接收包含以下项的组中的一或多者:与所述图元集合相关联的几何数据、与所述场景相关联的几何状态数据、或像素状态数据。
8.根据权利要求1至7中任一项所述的方法,其中所述方法由包括所述一个或多个着色器引擎的处理器核心执行。
9.一种加速单元,所述加速单元包括:
10.根据权利要求9所述的加速单元,其中所述一个或多个着色器引擎还被配置为:生成所标识的图元子集的中间数据;以及生成所述属性数据值并且在不在所述一个或多个着色器引擎外部提供所述中间数据或所述属性数据值的情况下光栅化所标识的图元子集。
11.根据权利要求10所述的加速单元,其中:
12.根据权利要求10或权利要求11所述的加速单元,其中:
13.根据权利要求9至12中任一项所述的加速单元,其中光栅化所标识的图元子集包括生成光栅化图元子集,并且其中所述一个或多个着色器引擎被配置为通过基于所述光栅化图元子集生成像素数据来渲染所述场景。
14.根据权利要求9至13中任一项所述的加速单元,其中所述场景被划分成多个图块,并且其中所述图元集合对应于与所述多个图块中的一个图块相关联的所有图元。
15.根据权利要求9至14中任一项所述的加速单元,其中所述图元集合包括包含以下项的组中的一或多者:与所述图元集合相关联的几何数据、与所述场景相关联的几何状态数据、或像素状态数据。
16.一种采用可执行指令集的非暂态计算机可读介质,所述可执行指令集用于操纵至少一个处理器进行以下操作:
17.根据权利要求16所述的非暂态计算机可读介质,其中所述可执行指令集操纵所述着色器引擎进行以下操作:生成所标识的图元子集的中间数据;以及生成所述属性数据值并且在不在所述着色器引擎外部提供所述中间数据或所述属性数据值的情况下光栅化所标识的图元子集。
18.根据权利要求17所述的非暂态计算机可读介质,其中:
19.根据权利要求17或权利要求18所述的非暂态计算机可读介质,其中:
20.根据权利要求16至19中任一项所述的非暂态计算机可读介质,其中光栅化所标识的图元子集包括生成光栅化图元子集,并且其中所述可执行指令集操纵所述至少一个处理器以通过基于所述光栅化图元子集生成像素数据来渲染所述场景。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com