用于渲染三维情景的计算机图形图像的方法和设备技术

技术编号:13638354 阅读:108 留言:0更新日期:2016-09-03 03:21
提供了一种在基于区块的计算机图形系统中用于渲染三维情景的计算机图形图像的方法和设备,其中多个区块被分组成多个区块单元,以及所述多个区块单元被分组成多个宏区块,该方法包括:将三维情景的图元分组成图元块;对于每个图元块,确定由该图元块所重叠的宏区块,以及将针对该图元块的指针写入针对所述宏区块的宏区块控制列表中;对于宏区块的每个区块单元,生成控制流数据,以指示是否将针对该区块单元来处理与宏区块重叠的图元块;对于将针对其来处理图元块的区块单元的每个区块,生成区块指示,以指示是将针对该区块来处理所述图元块还是将不处理所述图元块;以及使用宏区块控制列表、控制流数据和区块指示来将图元数据渲染到所述图像中。

【技术实现步骤摘要】
本申请是申请日为2009年12月21日、申请号为200980155283.4、专利技术名称为“基于区块的3D计算机图形系统中的多级显示控制列表”的中国专利技术专利申请的分案申请。
本专利技术涉及三维计算机图形系统,更具体地,涉及使用基于区块的渲染的系统。
技术介绍
随着处理能力的提高,三维计算机生成的图像的复杂性也增加了。用于非常复杂的3D对象的计算机模型,就像使用顶点和三角形网孔的人类活动变得更容易生成。这种3D模型可以被发送到3D计算机图形系统中和在计算机屏幕上生成的动画3D图像中。计算机生成的3D动画图像被广泛用于3D计算机游戏、导航工具和计算机辅助工程设计工具中。3D计算机图形系统需要应对更复杂的图形和更快速的显示的需要。随着显示模型中的细节的增加,要使用越来越多的图元(primitive)和顶点。而且,随着纹理和描影技术的发展,越来越多的信息被附到图元和顶点数据上。在现代游戏中,在渲染中可以存在上百万个图元。所以,存储器带宽是影响计算机图形系统的性能的一个非常大的因素。已知基于区块的渲染系统。这些系统将图像细分成多个矩形块或区块。如英国专利GB2343603和国际专利申请WO 2004/086309中所述的,这些系统以n×m的像素区块来将渲染表面分成子表面,类似于三角形的图元、线或点只在与图元重叠的区块中被处理。图1中示出了在基于区块的3D计算机图形系统中的用于划分区块所执行的主要步骤。这些步骤如下:1.在图1的101,接收图元和顶点的输入数据流。类似的位置上的图元可以及时地顺序达到,诸如三角形条或扇形。2.宏区块引擎(MTE)将顶点转换成屏幕空格(space),使用公知的方法移除背对着裁剪平面或被裁剪平面裁剪的图元。在图1的102,然后利用固定最大数目的顶点和图元来将图元组成图元块,然后将其写入的存储器中。在103,顶点和图元的数量与图元块(图元块指针)的存储器地址一起被发送到区块引擎,以被添加到区块的显示列表的控制流中,所述区块被图元覆盖。为了最小化存储器带宽的影响来取得图元和顶点数据,根据用于图元块的边框(bounding box)在宏区块中将图元组成图元块。在图2中,宏区块201是具有固定数目的区块202的屏幕200的矩形区域。宏区块例如可以是屏幕尺寸的四分之一或十六分之一。该结构被用来定位图元块和减少存储器带宽。当图元块中的图元与宏区块相交时,则被写入被称为全局宏区块列表的特定的宏区块列表中。这样,图元块的参数数据只被写入一次。来自宏区块的图元可以只被宏区块内部的区块访问,而来自全局宏区块列表的图元可以被所有的区块访问。3.来自由宏区块引擎102写入的图元块的每个图元,对着图元块的边框内的每个区块被检查。图元块被添加到被图元块中的任意图元所覆盖的任何区块的显示列表中。与区块显示列表相关的控制流中所写入的控制数据包括用于图元块中的多个顶点和图元的图元块头、用于写入的图元块的存储器地址的图元块指针和用于在区块中可见的图元的图元掩码。为显示列表中的控制流数据给每个区块分配分开的存储器空间。被称为尾指针的存储器地址指针被用于每个区块的控制流数据中的下一个空闲地
址。为了改善对区块中控制流的存储器访问,小的高速缓存尾指针高速缓存(Tail Pointer Cache)可以被添加到区块引擎103。存储并从尾指针高速缓存中读取区块中的控制流端部的存储器位置,这减少了主要的来自区块引擎的存储器访问。4.在104,对于图3的区域阵列300的每个屏幕区块执行3D计算机图形系统中的3D图像处理。它遍历图3中的每个区块301的控制流,从由控制数据302中的图元块指针所指向的存储器地址读取顶点和图元数据。在来自图元块的区块中有效的所有图元上执行图像处理操作,例如隐藏表面移除、纹理化和描影。图6示出了基于区块的渲染的示例。是屏幕的一部分的宏区块MT0 600在内部具有16个区块601。两个三角形条602、603和大的三角形604由宏区块引擎MTE 605处理,并被投影到MT0中的一部分屏幕上。与三个图元块相关的顶点和图元数据和其自己的存储器地址被写入存储器607。该三个图元块的存储器地址指针然后被传到区块引擎TE 606以用于区块处理。区块引擎遍历所有区块以确定是否有图元在区块内部,以及与在区块中可见的图元块相关的控制流数据是否被写入用于区块显示列表的存储器中。在示例中,T5中的显示控制流将包括用于三个图元块的地址指针和在三个图元块内的三角形的三角形可见掩码的控制数据。例如,在T5中在图元块602中从左起的前三个三角形和从图元块603的右边起的第一个三角形与三角形604中是可见的。对于区块T9,控制流数据只会由来自图元块603和604的信息组成。同时,控制数据(诸如与图元块602相关的顶点数据的地址指针)被插入用于区块T5和T6的两个控制流中,而与图元块604相关的控制数据被插入用于宏区块MT0中的每个区块的控制流中。在3D渲染处理608中,所有的区块按照如图3的300所示的区域阵列
的顺序被一个一个地处理。对于3D处理中的每个区块,首先从存储器读取来自区块控制流的控制数据,如图3的301所示。区块控制数据中与图元块相关的顶点和图元数据从存储器中被读取,如图3的302所示,从而所有对区块可见的三角形被处理和渲染到屏幕上。对于基于区块的计算机图形系统,基于区块,在区块上执行渲染。基于区块的渲染的一个大的优点是,显著地降低了对大的图形系统内部存储和存储器带宽的需要。基于区块的渲染的缺点是,对于每个区块中的显示列表,需要更多的控制数据。需要为三角形覆盖的所有区块写入显示控制数据。对于覆盖了许多区块的大三角形,写入的控制数据的总数相当大。例如,对于尺寸为1920×1080的屏幕,渲染可以被分成8160个16×16像素的区块。覆盖整个屏幕的大的三角形需要被添加到所有区块的显示列表中。如果有两个控制数据所需的32比特字,则对于单个全屏三角形,总的控制流数据接近64KB。在这种情况下所需的控制数据的数量对存储器空间需求和存储器带宽的影响非常大,所以这会影响基于区块的3D计算机图形系统中的渲染的性能。在英国专利申请0717781.9中,描述了同时处理两个区块以改善区块引擎的性能的系统。来自两个邻近区块的控制流数据被组合成单个显示列表,在上述事例中,这降低总的控制流数据到大约32KB。在这种情况下,控制流数据的尺寸大约为一半,但这对于单个三角形来说控制数据的数量仍然很大。
技术实现思路
本专利技术的优选实施方式提供了一种用于允许在基于区块的3D计算机图形系统中多级显示控制列表的方法和系统。尤其是对于具有大的三角形的情
景,这降低了写入的基于区块的控制流数据的数量,从而降低了存储器带宽和提高了基于区块的3D图形系统的性能。在基于区块的渲染系统中,覆盖多个区块的三角形为每个区块消耗存储器和带宽,在所述区块中参考量(reference)必须被置于控制流数据中。提出的本专利技术通过引入多级列表结构而缓解了该问题,在所述多级列表结构中,后来的级别表示逐渐变大的区块组,从而覆盖许多区块的三角形将只需要向控制流写入少量的参考量。在所述实施方式中,在三个级别上实施多级列表结构,即区块级别(1区块)、区块块级别(N×M区块本文档来自技高网
...

【技术保护点】
一种在基于区块的计算机图形系统中用于渲染三维情景的计算机图形图像的方法,其中多个区块被分组成多个区块单元,以及所述多个区块单元被分组成多个宏区块,该方法包括以下步骤:将所述三维情景的图元分组成图元块;对于每个图元块,确定由该图元块所重叠的宏区块,以及将针对该图元块的指针写入针对所述宏区块的宏区块控制列表中;对于宏区块的每个区块单元,生成控制流数据,所述控制流数据指示是否将针对该区块单元来处理与所述宏区块重叠的图元块;对于将针对其来处理图元块的区块单元的每个区块,生成区块指示,所述区块指示指示是将针对该区块来处理所述图元块还是将不处理所述图元块;以及使用所述宏区块控制列表、控制流数据和区块指示来将图元数据渲染到所述图像中。

【技术特征摘要】
2008.12.19 GB 0823254.81.一种在基于区块的计算机图形系统中用于渲染三维情景的计算机图形图像的方法,其中多个区块被分组成多个区块单元,以及所述多个区块单元被分组成多个宏区块,该方法包括以下步骤:将所述三维情景的图元分组成图元块;对于每个图元块,确定由该图元块所重叠的宏区块,以及将针对该图元块的指针写入针对所述宏区块的宏区块控制列表中;对于宏区块的每个区块单元,生成控制流数据,所述控制流数据指示是否将针对该区块单元来处理与所述宏区块重叠的图元块;对于将针对其来处理图元块的区块单元的每个区块,生成区块指示,所述区块指示指示是将针对该区块来处理所述图元块还是将不处理所述图元块;以及使用所述宏区块控制列表、控制流数据和区块指示来将图元数据渲染到所述图像中。2.根据权利要求1所述的方法,其中所述指针指向图元块的顶点数据。3.根据权利要求1所述的方法,其中所述控制流数据包括控制字。4.根据权利要求3所述的方法,其中所述控制字具有用于允许定义四个操作的两比特编码。5.根据权利要求1所述的方法,其中所述区块指示包括区块指示字且所述区块指示字具有用于允许定义四个操作的两比特编码。6.根据权利要求1或权利要求5所述的方法,其中所述区块指示包括
\t区块掩码。7.根据权利要求1至5中任一权利要求所述的方法,其中所述控制流数据包括全图元掩码标记存在比特,以用于确定在所述控制流数据中是否存在任何全图元掩码,以及所述全图元掩码被用来为区块单元中的每个区块设置比特,该比特用来确定图元块中的所有图元是否在每个各自的区块中可见。8.根据权利要求7所述的方法,其中所述控制流数据包括图元掩码格式字,该图元掩码格式字用来确定当所述全图元掩码标记存在比特没有被设置时区块单元中的哪些区块具有全图元掩码。9.一...

【专利技术属性】
技术研发人员:X·杨
申请(专利权)人:想象技术有限公司
类型:发明
国别省市:英国;GB

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

1