片段着色器执行顶点着色器计算的制作方法

文档序号:9794097阅读:565来源:国知局
片段着色器执行顶点着色器计算的制作方法
【专利说明】片段着色器执行顶点着色器计算
[0001 ] 公开领域
[0002]本公开的各个方面涉及计算机图形学。具体地,本公开涉及顶点着色器和像素着色器在图形处理单元中的使用。
[0003]发明背景
[0004]图形处理通常涉及两个处理器、即中央处理单元(CPU)和图形处理单元(GPU)的协调。GPU是被设计来加速在帧缓冲区中创建旨在用于输出至显示器的图像的专用电子电路。GPU用于嵌入式系统、平板计算机、便携式游戏装置、移动电话、个人计算机、工作站以及游戏控制台中。GPU通常被设计来有效地操纵计算机图形学。GPU常常具有高度并行处理架构,这使得GPU对于以并行方式完成大型数据块处理的算法比通用CPU更有效。
[0005]CPU可向GPU发送实现特定图形处理任务的命令,例如渲染相对于图像中的前一帧已改变的特定纹理。CPU可利用图形应用程序接口(API)来协调这些绘制命令,以便发出对应于特定应用程序的虚拟环境的状态的图形渲染命令。
[0006]为了渲染特定程序的纹理,GPU可执行“图形流水线”中的一系列处理任务,以便将虚拟环境中的可视元素转化成可呈现到显示器上的图像。典型的图形流水线可包括:对虚拟空间中的虚拟对象执行某些渲染或着色操作,对所述场景中的虚拟对象执行转化和光栅化以产生呈适于输出到显示器的形式的像素数据,以及在将渲染过的图像输出在显示器上之前对像素(或片段)执行另外的渲染任务。
[0007]在虚拟空间中常常根据已知为原型的形状来描述图像的虚拟对象,所述形状和原型一起构成虚拟场景中的对象的形状。例如,可将三维虚拟世界中待渲染的对象减小到具有根据它们在三维空间中的坐标定义的顶点的一系列不同三角形原型,由此这些多边形构成对象的表面。每个多边形可具有相关联的索引,所述索引可由图形处理系统用来将给定的多边形与其他多边形区分开。同样,每个顶点可具有相关联的索引,所述索引可用来将给定的顶点与其他顶点区分开。图形流水线可对这些原型执行某些运算,以便产生虚拟场景的可视元素并且将这种数据转化成适于由显示器的像素再现的二维格式。如本文所用,术语图形原型信息(或简单地“原型信息”)用于指代表示图形原型的数据。这种数据包括但不限于顶点信息(例如,代表顶点位置或顶点标记的数据)和多边形信息,例如,将特定顶点与特定多边形相关联的多边形标记和信息。
[0008]GPU可通过实现通常被称为着色器的程序来执行图形流水线的渲染任务。典型的图形流水线可包括:顶点着色器,所述顶点着色器可以每个顶点为基础操纵原型的某些特性;以及像素着色器(也被称为“片段着色器”),所述像素着色器在图形流水线中的顶点着色器的下游进行操作并且可在将像素数据传输到显示器之间以每个像素为基础操纵某些值。流水线还可包括在流水线中各个阶段处的其他着色器,如使用顶点着色器的输出来产生一组新的原型(或对应的原型信息)的几何着色器、以及可由GPU实现来执行某些其他通用计算任务的计算着色器(CS)。
[0009]在流水线中与处理图形相关的一个难题是,在数据被输入或输出至流水线中的各个着色器时可能出现某些瓶颈并且降低性能。此外,希望向运行可视元素的特定应用程序的开发人员提供对着色器如何利用各种视觉参数和底层数据的大量的控制,以便允许他们优化渲染过程。
[0010]本发明的各个方面正是在此背景下产生。

【发明内容】

[0011]根据本公开的各个方面,一种计算机图形处理方法可包括:将从顶点着色器输出的顶点索引写入到高速缓存;利用像素着色器访问写入到所述高速缓存的所述顶点索引;以及利用所述像素着色器从存储器单元访问与所述顶点索引相关联的顶点参数值。
[0012]在本公开的一些实现方式中,所述计算机图形处理方法可包括利用像素着色器对顶点参数值执行顶点着色器计算。
[0013]在一些实现方式中,所述计算机图形处理方法可包括利用像素着色器内插顶点参数值。
[0014]在一些实现方式中,访问顶点索引可包括:将所述顶点索引从高速缓存复制到GPU的本地存储器单元;以及利用像素着色器从所述本地存储器单元访问所述索引。
[0015]在一些实现方式中,顶点着色器计算可包括在三维虚拟空间中操纵原型的顶点的视觉效果。
[0016]在一些实现方式中,访问顶点参数值可包括访问三角形原型的所有三个顶点的参数值。
[0017]在一些实现方式中,所述方法还可包括在所述访问顶点参数值之后:利用像素着色器对顶点参数值执行顶点着色器计算;利用像素着色器内插所述参数值;利用像素着色器对内插的参数值执行像素着色器计算。
[0018]在一些实现方式中,顶点着色器输出被限制为顶点位置和顶点索引,并且像素着色器可以在所述访问顶点索引之后执行任何其余的顶点着色器计算。
[0019]在一些实现方式中,存储器单元是系统的主存储器。
[0020]在一些实现方式中,参数值可以存储在主存储器的顶点缓冲区中。
[0021]根据本公开的各个方面,一种图形处理系统可包括:图形处理单元(GPU);存储器单元;以及高速缓存;并且所述系统可被配置来实现一种图形处理方法,所述图形处理方法可包括:利用GHJ实现顶点着色器和像素着色器;将从顶点着色器输出的顶点索引写入到高速缓存;利用像素着色器访问写入到高速缓存的顶点索引;以及利用像素着色器从存储器单元访问与所述顶点索引相关联的顶点参数值。
[0022]在一些实现方式中,存储器单元可以是系统的主存储器单元。
[0023]在一些实现方式中,GPU可包括多个计算单元和多个本地存储器单元,其中所述本地存储器单元中的每一个与所述计算单元中的相应一个相关联。
[0024]在一些实现方式中,所述访问顶点索引可包括:将顶点索引从高速缓存复制到本地存储器单元;以及利用像素着色器从本地存储器单元访问所述索引。
[0025]在一些实现方式中,高速缓存可以与GPU集成在一起。
[0026]根据本公开的各个方面,一种非暂时性计算机可读介质可具有包含在其中的计算机可读指令,所述计算机可读指令被配置来在执行时实现一种图形处理方法,所述图形处理方法包括:将从顶点着色器输出的顶点索引写入到高速缓存;利用像素着色器访问写入到高速缓存的顶点索引;以及利用像素着色器从存储器单元访问与所述顶点索引相关联的顶点参数值。
[0027]附图简述
[0028]通过结合附图考虑以下详细描述,可容易地理解本公开的教示,在附图中:
[0029]图1A-1C是示出各种图形处理技术的三角形原型的示意图。
[0030]图1D-1E是传统图形处理技术的流程图。
[0031]图2A是与图1E的实现方式具有相似性的传统图形处理技术的示意图。
[0032]图2B是根据本公开的各个方面的图形处理技术的示意图。
[0033]图3是根据本公开的各个方面的图形处理技术的流程图。
[0034]图4是用于实现根据本公开的各个方面的图形处理技术的系统的示意图。
【附图说明】
[0035]虽然出于说明目的,以下详细描述包含许多具体细节,但是本领域的普通技术人员将会了解,以下细节的许多变化和更改在本发明的范围内。因此,以下描述的本发明的各个示例性实施方案是在不损害本发明的一般性也不对本发明施加任何限制的情况下陈述的。
[0036]g
[0037]根据本公开的各个方面,顶点着色器输出可减少为仅输出位置和顶点索引,并且像素着色器可执行其余的顶点着色器计算以及通常的像素着色器计算,从而可导致对象的加速渲染。
[0038]
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1