图形处理单元中的三维裁剪制造技术

技术编号:9695221 阅读:99 留言:0更新日期:2014-02-21 02:02
本发明专利技术提供一种图形处理单元(GPU),其使用用于其它图形功能的处理单元来有效地执行三维(3D)裁剪。所述GPU包括第一和第二硬件单元和至少一个缓冲器。所述第一硬件单元使用用于第一图形功能的第一处理单元执行对基元的3D裁剪,所述第一处理单元例如为用于三角形设置、深度梯度设置等的ALU。所述第一硬件单元可通过以下操作执行3D裁剪:(a)计算用于每一基元的每一顶点的裁剪代码;(b)基于用于所述基元的所有顶点的所述裁剪代码而确定是传递、抛弃还是裁剪所述基元;以及(c)相对于裁剪平面裁剪待裁剪的每一基元。所述第二硬件单元例如使用用于属性梯度设置、属性内插等的ALU计算用于从所述3D裁剪产生的新顶点的属性值。所述缓冲器存储所述3D裁剪的中间结果。

【技术实现步骤摘要】
图形处理单元中的三维裁剪
本专利技术大体上涉及图形图像,且更具体地说,涉及用于在图形处理单元(GPU)中执行3D裁剪的技术。
技术介绍
图形处理单元(GPU)是用于针对各种应用渲染二维(2D)和/或三维(3D)图像的专门硬件单元,所述应用例如为视频游戏、图形、计算机辅助设计(CAD)、模拟和显像工具、成像等。3D图像可用数个表面建模,且每一表面可用数个基元近似。基元是基本几何单位且可包括三角形、线条等。GPU可执行例如变换、光栅化、着色、掺合等各种图形操作以渲染3D图像。这些图形操作可能为计算密集的。此外,用于表示3D图像的基元的数目可能较大,例如达数百万。因此,可能消耗许多处理和存储器资源来对大量几何数据执行计算以便渲染3D图像。可执行3D裁剪以识别并抛弃不能看见且因此无需渲染的基元。可通过省略用于被抛弃的基元的计算来实现改进的性能。然而,3D裁剪本身是项复杂的操作。GPU可具有专用硬件来执行所有3D裁剪操作。然而,此专用3D裁剪硬件将增加GPU的成本和功耗,这可能对于例如移动和手持式装置等某些应用来说是不合需要的。可通过在可在中央处理单元(CPU)、数字信号处理器(DSP)等上执行的软件中执行3D裁剪来避免使用专用3D裁剪硬件。然而,使用CPU或DSP (其还用于其它目的)执行3D裁剪可能引起其它问题,例如用于输送基元数据和3D裁剪结果的数据总线上的较高负载、发送出以用于3D裁剪的基元与待渲染的其它基元之间的同步等。
技术实现思路
本文描述一种图形处理单元(GPU),其使用用于其它图形功能的一个或一个以上处理单元来有效地执行3D裁剪。所述GPU可通过在硬件中执行3D裁剪来提供改进的性能,通过不必调用CPU或DSP执行3D裁剪来降低对3D图形管线的破坏,且提供其它好处。在一种设计中,所述GPU包括第一和第二硬件单元以及至少一个缓冲器。所述第 一硬件单元使用用于第一图形功能的第一处理单元来执行对基元的3D裁剪,所述第一处理单元例如为用于三角形设置、深度梯度设置等的算术逻辑单元(ALU)。第一硬件单元可通过以下操作来执行3D裁剪:Ca)计算用于每一基元的每一顶点的裁剪代码;(b)基于用于每一基元的所有顶点的裁剪代码而确定是传递、抛弃还是裁剪所述基元;以及(C)相对于裁剪平面裁剪待裁剪的每一基元。所述第二硬件单元计算用于从3D裁剪产生的新顶点的属性分量值。第二硬件单元使用用于第二图形功能的第二处理单元,例如用于属性梯度设置、属性内插等的ALU。缓冲器存储第一硬件单元所进行的3D裁剪的中间结果。【附图说明】图1展示用于没有3D裁剪的GPU的3D图形管线。图2展示用于具有3D裁剪的GPU的3D图形管线。图3展示用于3D图形的视见平截头体。图4展示相对于视口的基元。【具体实施方式】3D图像可用数个基元(例如,三角形、线条、其它多边形等)表示。每一基元由一个或一个以上顶点界定,例如用于三角形的三个顶点。每一顶点与例如空间坐标、色彩、纹理坐标等各种属性相关联。每一属性可具有多达四个分量。举例来说,空间坐标可由三个分量X、y和z或四个分量X、y、z和w给定,其中x和y是水平和垂直坐标,z是深度,且w是齐次坐标。色彩可由三个分量r、g和b或四个分量r、g、b和a给定,其中r是红色,g是绿色,b是蓝色,且a是确定像素透明度的透明度因数。纹理坐标通常由水平和垂直坐标U和V)给定。顶点还可与其它属性相关联。图1展示用于GPU100的3D图形管线的框图。顶点着色器110对几何数据执行顶8点处理,所述几何数据可包含例如三角形和线条等基元。举例来说,顶点着色器512可针对顶点计算光量值,针对几何形状执行掺合等。顶点着色器110还可确定每一顶点的坐标(例如,x、y、z、w)和属性分量值,向三角形设置和深度(z)梯度设置单元120提供顶点坐标,且向顶点高速缓冲存储器180提供顶点属性分量值。顶点高速缓冲存储器180存储属性分量值,且可能存储用于顶点和基元的其它数据。单元120计算用于后续光栅化过程的参数。举例来说,单元120可执行视口变换以将基元从裁剪坐标系(或裁剪空间)转换为屏幕坐标系(或屏幕空间)。裁剪空间是具有四个维度x、y、z、w的标准化齐次坐标系。屏幕空间是用于显示屏或某种其它输出装置的3维坐标系。单元120还可执行剪切以抛弃不在剪切窗口内的对象,执行背面剔除以抛弃对象背侧上的基元等。单元120可执行三角形/基元设置且计算用于每一基元的边缘的线性等式的系数、用于深度(z)梯度的系数等。光栅化器130将每一基元分解为数个像素且产生用于每一像素的屏幕坐标。早期深度/模版测试单元140可执行用于像素的模版测试(如果启用的话)以确定应渲染还是抛弃所述像素。术语“抛弃”、“丢弃”和“拒绝”是同义的。术语“传递”和“接受”也是同义的。单元140可将用于像素的存储在模版缓冲器(图1中未展示)中的模版值与参考值进行比较,且基于比较结果而传递或抛弃所述像素。单元140还可对像素执行深度测试(其还称为z测试)(如果适用的话)以确定应渲染还是抛弃所述像素。单元140可将用于像素的z值(当前z值)与2缓冲器中的对应z值(所存储z值)进行比较,在当前z值比所存储z值更接近/更靠近的情况下传递所述像素并更新所述z缓冲器和(可能)模版缓冲器,且在当前z值比所存储z值更向后的情况下抛弃所述像素。属性梯度设置和属性内插单元150内插用于基元顶点的属性分量值,以获得用于所述基元内的像素的属性分量值。单元150可首先基于顶点的属性分量值而计算用于属性内插的参数。这些参数可为用于属性内插的线性等式的属性梯度或系数。单元150可接着基于所述像素的屏幕坐标和内插参数而计算用于每一基元内的每一像素的属性分量值。像素/片段着色器160可对像素和片段执行各种图形操作。片段是像素或其相关联信息。举例而言,像素/片段着色器160可执行纹理映射(如果启用的话)以向像素施加纹理。通过在由像素的纹理坐标所指示的位置处用纹理图像的色彩修改所述像素的色彩来实现纹理化。后处理器170可对每一片段执行其它图形操作,例如a测试、雾化掺合、a掺合、逻辑操作、抖动操作等。后处理器170向色彩缓冲器提供输出像素以供在显示9装置上呈现(所述两者均未在图1中展示)。GPU100不具有专用3D裁剪硬件,其可能由于3D裁剪所需的复杂计算而为昂贵的且在仅裁剪较小百分比的基元的情况下可能为不合理的。在此情况下,可在CPU或DSP上所执行的软件中执行3D裁剪。在完成顶点处理之后,GPU100可将基元数据发送到CPU或DSP以用于3D裁剪(如果必要的话)。GPU100可接着等待来自CPU或DSP的3D裁剪结果,这将在GPU闲置时浪费GPU资源。或者,GPU100可处理新基元且将结果存储在缓冲器中。在从CPU或DSP接收到具有新基元的3D裁剪结果时,GPU100可将新基元发送到下一级且在缓冲器中绕过所述基元。这避免在等待3D裁剪结果时浪费GPU资源,但需要较多缓冲,且可能引起同步和其它问题。图2展示用于GPU200的3D图形管线的框图,所述GPU200使用用于其它图形功能的处理单元来有效地支持3D裁剪。GPU200包括顶点着色器110、光栅化器130、早期深度/模版测试单元140、像素/片段着色器本文档来自技高网...

【技术保护点】
一种图形处理单元,其包含:第一硬件单元,其用以使用用于第一图形功能的第一处理单元执行对基元的三维(3D)裁剪;以及至少一个缓冲器,其用以存储所述第一硬件单元所进行的所述3D裁剪的中间结果。

【技术特征摘要】
1.一种图形处理单元,其包含: 第一硬件单元,其用以使用用于第一图形功能的第一处理单元执行对基元的三维(3D)裁剪;以及 至少一个缓冲器,其用以存储所述第一硬件单元所进行的所述3D裁剪的中间结果。2.根据权利要求1所述的图形处理单元,其进一步包含: 第二硬件单元,其用以使用用于第二图形功能的第二处理单元计算用于从所述3D裁剪产生的新顶点的属性分量值。3.根据权利要求1所述的图形处理单元,其中所述第一处理单元是用于三角形设置和深度梯度设置中的至少一者的算术逻辑单元(ALU)。4.根据权利要求2所述的图形处理单元,其中所述第二处理单元是用于属性梯度设置和属性内插中的至少一者的算术逻辑单元(ALU)。5.根据权利要求1所述的图形处理单元,其中所述第一处理单元在三角形设置和光栅化之前执行3D裁剪。6.根据权利要求2所述的图...

【专利技术属性】
技术研发人员:袁桦张玉
申请(专利权)人:上海威塔数字科技有限公司
类型:发明
国别省市:

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

1