CN105913470A - 用于渲染三维情景的计算机图形图像的方法和设备 - Google Patents

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

Info

Publication number
CN105913470A
CN105913470A CN201610227471.5A CN201610227471A CN105913470A CN 105913470 A CN105913470 A CN 105913470A CN 201610227471 A CN201610227471 A CN 201610227471A CN 105913470 A CN105913470 A CN 105913470A
Authority
CN
China
Prior art keywords
block
pel
unit
mask
macro zone
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610227471.5A
Other languages
English (en)
Inventor
X·杨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Imagination Technologies Ltd
Original Assignee
Imagination Technologies Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Imagination Technologies Ltd filed Critical Imagination Technologies Ltd
Publication of CN105913470A publication Critical patent/CN105913470A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)

Abstract

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

Description

用于渲染三维情景的计算机图形图像的方法和设备
本申请是申请日为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区块)和宏区块级别(X×Y区块)。提出的本发明可以很容易地被扩展,从而可以使用多子级表示来使用于显示列表的控制流更有效。
在优选实施方式中,提供了一种用于渲染三维计算机图形图像的方法,该方法包括以下步骤:
将图像细分成多个矩形区块;
以多级结构来安排区块,所述多级结构包括多个逐渐变大的区块组的级别;
将图像数据划分以将其渲染为包括需要用来渲染图像的图像数据的多个图元块;
在多级结构中根据图元块相交的一组区块来将每个图元块分配到一组区块中,从而在多级结构中每个图元块被分配到一个级别中的组中;
得到用于渲染图像的控制流数据,对于对应于分配给每组的图元块的多级结构的每级内的每组区块,该控制流数据包括对图元块的参考量;以及
使用控制流数据来将图元数据渲染区块组内的区块以用于显示。
附图说明
图1示出了上述的当在基于区块的3D计算机图形系统中执行区块划分时所执行的主要步骤的综述;
图2示出了上述在基于区块的3D计算机图形系统中所使用的屏幕上的宏区块和区块;
图3示出了上述用于区块划分的数据结构的综述;
图4示出了在本发明的实施方式中用于宏区块中的多级显示控制列表的数据结构的综述;
图5示出了在本发明的实施方式中用于多级显示控制列表中的控制流数据的数据结构的综述;
图6示出了基于区块的渲染的示例。
具体实施方式
在上述基于区块的3D计算机图形系统中,区块引擎采用来自宏区块引擎的图元块并计算需要渲染图元的区块的最小数目。在图3的301,然后处理区块的最小列表,以及用于图元块数据的地址的图元块指针以及描述存在于区块中的图元的图元头字一起作为控制流数据被写入动态分配的存储器。
每个区块具有其自己固定尺寸的用于控制流数据的存储器空间。该空间中的存储器块被基于区块的3D计算机图形系统按需分配。当用于特定区块的要被添加到控制流的新数据超过分配的当前存储器块时,请求新的块分配以及使用流链接来将旧的控制流链接到新的块分配处。如果宏区块引擎经由终端信号来指出情景的结束,处理所有的区块,并用终止字来结束有效区域中用于区块的控制流。
在基于区块的3D图形系统中,用于图元块的顶点和索引数据可以只一次被写入图元块所属于的宏区块,当图元块的边框跨过宏区块时被写入全局宏区块列表。当图元块包括大的图元时,控制流数据可能需要被多次写入图元所重叠的所有区块中。在全屏三角形的极端情况下,需要为屏幕上的每个区块写入控制流数据。多次重复的控制流数据写入可以造成存储器带宽的明显增加。
在本发明的实施方式中,使用多级显示控制列表来代替基于区块的单个显示控制列表。虽然所选择的子级别数目对于本领域的技术人员来说可根据设计选择,但多级显示控制列表中的控制流数据可以基于区块分组,诸如宏区块和区块单元,而不是基于单个的区块。控制列表包括用于每个区块分组的控制流数据,控制流数据包括对要被渲染到每个各自用于区块的分组的图元块的参考量,以用于渲染图像来显示。下面将描述用于控制流数据的示例性结构。可以实施更高或更低的复杂度。
多级显示控制列表
在本发明的实施方式中,宏区块将图像分成16个区块单元(TB)。在区块单元中根据宏区块尺寸区块的数目对于渲染来说是固定的。假设宏区块尺寸为16区块乘16区块(256个区块)则宏区块400中的区块单元401每个将是相同尺寸的4区块乘4区块(16个区块),如图4所示。为宏区块中的每个区块单元形成控制流列表。对于4个宏区块有16×4=64个控制流列表,而对于16个红区块有16×16=256个控制流列表。
仍然基于一个区块一个区块地执行渲染,但区块单元中的区块将共享相同的控制流列表。
使用基于区块单元的多级显示控制列表的主要好处是减少了所需控制数据的数量,并减小了存储器带宽,尤其是对于覆盖了所需区块的大的图元。其他好处包括:
没有基于区块的控制流列表,所以不需要存储要在每个区块中写入的控制流数据的下一个自由地址。可以为每个区块使用1比特的区块使用的标记,从而当情景结束时能够识别区块是否是空区块。
而且,由于基于宏区块的控制流列表的数目是有限的,所以不需要写出用于区域阵列中的每个区块的控制流基地址字。
控制流数据结构
多级显示控制流列表系统的数据结构包括三个主要部分:区块单元控制列表403、控制指针404和图元顶点掩码405,如图4所示。
基于每个区块单元(TBO,TBI....TB15)提供区块单元控制列表403。在诸如图4中的403所示的宏区块结构中有16个区块单元控制列表。每个区块单元控制列表具有在宏区块的所分配的存储器空间中分配的其自己的存储器空间。
对于每个宏区块提供图4中的控制指针404和图元掩码数据405。它们在宏区块的所分配的存储器中具有分开的存储器空间。
区块单元控制列表
在多级显示控制列表系统中,基于每个区块单元(TBO等)提供控制流列表。在图5的如500所示的宏区块中有用于每个区块单元的区块单元控制列表。区块单元控制列表包括对关系到区块单元的每个图元块的参考量。
由于在区块单元中的所有区块之间共享区块单元控制列表,所以在控制列表中参考的图元块可以只对区块单元中的一些区块有效。当渲染图像时,在本发明的该实施方式中使用的数据结构被设计成使用快捷方式来尽可能快地跳过在其中的图元块不需要被处理的区块。对于关于其图元块不需要被处理的区块来说,本发明的实施方式以最少量的数据获得了所有用于处理图元块的信息。
区块单元控制字
因为在每个宏区块列表404中写入用于图元块中的顶点数据的地址指针,所以该地址指针被宏区块中的所有区块单元共享。在特定的区块单元中,不是宏区块中的所有图元块可以在区块单元中被参考。足以能够跳过这些在区块单元中不需要的图元块。
图5中的块控制字503是多级显示控制列表流的最高级控制字。如在表1中所示,其具有2比特编码,并主要用于确定是否对于所述区块处理单元图元块。
描述
0 跳过一个图元块
1 有效的图元块
2 用跳过计数来跳过
3 终止
表1-区块单元控制字
所以如表1中所示,存在4个由2比特区块控制字所定义的可能操作:
跳过一个图元块
当图元块中不具有任何图元来覆盖区块单元中的任意区块时,在不处理图元块的情况下跳过该图元块。
有效的图元块
当图元块中的任何图元覆盖了区块单元中的任何区块时,不能跳过图元块。在多级显示控制列表中需要进一步的信息来处理用于区块单元中的区块的图元块。
用跳过计数来跳过
这是当区块单元可以连续跳过一些图元块时使用的快捷方式,即,对于区块这些图元块不需要被处理。
在该实施方式中,跳过计数偏移量为5。如果跳过计数小于5,则重复使用“跳过一个图元块”编码。当跳过计数大于或等于5时,使用“用跳过计数来跳过”。对于8比特跳过计数来说,最大跳过计数为255+5=260。当跳过计数大于260时,需要使用多于一个的跳过编码。
终止
终止字指示对于区块单元多级显示控制列表被终止。
区块单元格式字
在区块单元控制字的每个有效的图元块编码(表1中的值1)之后,使用区块单元控制列表中的图5中的区块单元格式字504。这用来识别图元块对于正在被处理的区块是否有效。区块单元格式字的2比特编码为:
描述
0 区块掩码存在
1 所有区块有效,区块掩码不存在
2 只有一个区块有效
3 所有区块没有效,区块掩码不存在
表2-区块单元格式字
如表2所示,存在4个由区块单元格式字中的2比特定义的可能操作:
区块掩码存在
当图元块不具有覆盖区块单元中的每个区块的图元时,即,一些区块没与被图元块中的任何图元重叠,使用1比特区块有效的区块掩码来跳过其中的图元块不需要被处理的区块。用于区块掩码的比特总数等于区块单元中的区块数。
所有区块有效
当图元块具有覆盖宏区块或区块单元中的每个区块的图元时,则对于区块单元中的所有区块图元块有效。在该情况下,不需要区块掩码。
只有一个区块有效
当图元块覆盖宏区块中的只一个区块或区块单元中的一个区块时,用于区块单元中的有效区块的索引X和Y被用来减少所需数据量。在该情况下,不需要区块掩码。
对于8×8区块的区块单元来说,需要64比特掩码来指示是否每个区块有效。如果对于在区块单元中唯一有效的区块的索引X和Y来说使用4比特,则数据总量只需要8比特。
所有区块没有效
当图元块不具有覆盖宏区块或区块单元中任意区块的图元时,则图元块对于区块单元中的任意区块没有效。在该情况下,不需要区块掩码。该情况只能在用于子级区块单元的区块单元格式字中发生。
在处理了区块单元格式字之后,在图5的505,对于已处理的区块当前的图元块可以被识别为有效或没有效。
全图元掩码标记存在
图5中的全图元掩码存在506是用于对当前区块有效的图元块的1比特标记,以指示全图元掩码标记是否存在于图元块中。
当图元块中所有的图元在区块中可见时,其被称为全图元掩码。对于全图元掩码只需要1比特标记,而不是用于图元块中的每个图元和顶点的单个比特掩码。
全图元掩码标记
如果设置了图5中的全图元掩码标记存在506的1比特标记,则使为区块单元中的每个区块基于图5中每个区块全图元掩码标记507设置1比特,以指示是否每个各自的区块具有全图元掩码。全图元掩码标记的总比特数等于区块单元中的区块数。
如果不存在全图元掩码,则顶点掩码由图元掩码连成串并字节对齐。对于具有最大为16个顶点和32个图元的图元块,顶点掩码为最大2字节,以及图元掩码为4字节。对于区块单元图元和顶点掩码的尺寸保持相同。在图5中,基于每个宏区块图元和顶点掩码数据被写入图元掩码数据流502中。
对于具有带全图元掩码标记的区块的任意区块单元,使用全图元掩码标记将会节省时间和存储器空间以得到图元单元中的有效图元和顶点的信息。如果对于已被处理的区块来说图元单元无效,则这些标记可以被跳过。
图元掩码格式字
当没有设置图5中的全图元掩码标识存在506的1比特标记时,区块单元控制列表中的图5的2比特图元掩码格式字508存在,这就是说不存在全图元掩码标记。
表3-图元掩码格式字
如表3中所示,图元掩码格式字包括区块单元中的图元掩码格式的4个特定情况:
具有图元掩码存在的区块单元中的所有区块
这指示被图元块覆盖的区块单元中的所有区块具有图元掩码存在。也就是没有区块具有全图元掩码,以及在区块单元内图元掩码不相同。在该情况下,从图5中的图元掩码数据流502读取图元和顶点掩码。
具有全图元掩码的区块单元中的所有区块
这指示被图元块覆盖的区块单元中的所有区块具有全图元掩码。不需要基于图5中的全图元掩码标记507的1比特。
宏区块中的相同图元掩码
这指示被图元块覆盖的宏区块中的所有区块具有相同的图元掩码,以及公共图元掩码和顶点掩码的总比特数小于或等于24比特。
对于每个宏区块,图元和顶点掩码数据在单独的4KB存储器页面中被写入图5中的数据流502中。图元和顶点掩码数据流的起始地址作为图元掩码指针字被存在图5中的控制指针501中。由于4KB对齐的地址,在地址指针字图元掩码指针字中有3字节空闲比特。
在该情况下,用于宏区块的公共图元掩码和顶点掩码不多于24比特,它们可以被写入当前控制指针的图元掩码指针字的LSB 3字节中。
区块单元中的相同图元掩码
这指示被图元块覆盖的区块单元中的所有区块具有相同的图元掩码,或在宏区块中具有该相同的图元掩码,但是公共图元掩码和顶点掩码的总比特不多于24比特。
在该情况下,公共顶点掩码由图元掩码连成串,并且都被写入区块单元控制列表中,其中该区块单元控制列表的头3个比特为图元和顶点掩码的字节数。
在图5中,可以在处理后定义正被处理的区块中的图元掩码类型为全图元掩码标记507或图元掩码格式字508。
当全图元掩码标记507被处理而区块不在全图元掩码中时,或图元掩码格式字508被设置为0时,已被处理的区块具有图元和顶点掩码存在(区块单元中的所有区块具有图元块掩码存在)。在这两种情况下,在图5中,用于区块的图元和顶点掩码将需要从图元掩码数据流502中读取。
在所有其他情况,因为宏区块/区块单元中的同一掩码或全掩码而得知图元和顶点掩码。
区块单元图元掩码偏移量存在
在图5中,用于宏区块中每个区块的图元和顶点掩码被写入图元掩码数据流502中。在图5中,用于宏区块的图元和顶点掩码数据的起始地址被控制指针501定义为图元掩码指针字。
图元和顶点数据对于每个区块字节对齐,并且对于每个区块单元对齐32个比特。对于其中没有将图元和顶点掩码数据写入图元掩码数据流的开端的区块单元,图元掩码偏移量需要达到用于数据流中的区块单元的图元和顶点掩码数据的开端。因为对于区块单元中的每个区块,图元和顶点掩码数据具有相同的尺寸,区块索引可以与区块单元图元掩码偏移量结合起来使用,以再读回用于区块的掩码数据。
当区块单元中的图元掩码数据不在宏区块图元掩码数据流的开端时,1比特标记被用来指示区块单元图元掩码偏移量存在。仅在需要从图元掩码数据流中读取用于区块的图元和顶点掩码的两个情况下需要1比特标记。
区块单元图元掩码偏移量
对于来自宏区块中的图元块的图元掩码数据的起始地址的区块单元中的图元掩码数据的起始地址,在图5中的区块单元图元掩码偏移量509为13比特字偏移量。该域仅在区块单元图元掩码偏移量存在比特被设置的情况下存在。
在处理的最后,根据用于图元块的图5中的区块单元控制列表500,可以知道图元块是否需要在当前的区块中被处理。如果图元块不需要被处理,则对于当前块来说图元和顶点掩码也是已知的。
宏区块控制指针
对于在宏区块中有效的每个图元块来说,在图5中的宏区块控制指针501中有两个32比特的控制指针字。如果在505图元块被确定为对于区块有效,则宏区块控制指针505被用来访问来自块的图元数据。
图元块指针字
图元块指针字主要用来存储用于图元块的顶点数据流的起始地址。可以在表4中看到32比特的图元块指针字的结构。
表4-图元块指针字
图元掩码指针字
图元掩码指针字主要用来存储用于图元块的宏区块中的图元和顶点掩码数据流的起始地址。可以在表5中看到32比特的图元掩码指针字的结构。
表5-图元掩码指针字
域2HT_SAME_PRIM_MASK_IN_MT只在如表3所示将图元掩码格式字设置为2时有效,这意味着对于宏区块有公共的图元掩码。
因为对于每个图元块来说控制指针被固定为32比特,所以对于在区块单元中无效的图元块来说可以跳过控制指针。
宏区块图元掩码数据
当区块中的图元掩码既不是全掩码,也不是宏区块或区块单元中的相同掩码时,图元和顶点掩码数据被写到图5中的宏区块图元掩码数据流502。
在图元掩码数据流中,对于区块,顶点掩码与图元掩码连成串。比特的数目为图元块中顶点的数目加上图元的数目,然后被向上取整(round up)成字节。在区块单元中图元和顶点掩码数据的尺寸被保持为相同。
宏区块图元掩码数据流是基于宏区块的,来自被连续写入存储器页面的每个区块单元的图元和顶点掩码数据。
用于区块单元中的图元块的图元和顶点掩码数据的起始地址是32比特对齐。对于图元块起始地址被图5中的控制指针501存储为图元掩码指针字。
当区块单元图元掩码偏移量存在比特被设置时,来自宏区块中的图元块的起始地址的用于区块单元的起始地址的32比特偏移量被存储在区块单元控制列表500中作为图5中的13比特区块单元图元掩码偏移量509。如果区块单元图元掩码偏移量存在比特没有被设置,这意味着区块单元中的图元掩码数据的偏移量为0。由于对于区块单元中的每个区块,图元和顶点掩码数据的尺寸相同,所以区块可以与区块单元图元掩码偏移量连成串被使用,以再读回用于区块的图元和顶点掩码数据。
区块单元控制列表中的区块单元子级掩码
由于宏区块被划分成16个区块单元,所以在区块单元中不可见的图元区块可以被跳过。在区块单元中,有效的区块掩码被用来跳过图元块不需要处理的区块。当在每个区块单元中引入进一步的子级块时,将会减少在3D处理中读取的控制数据的数量。
所述的区块单元控制列表可以容易地被扩大成多级显示控制列表结构。
对于在区块单元控制列表中任意有效的图元块来说,图5中的区块单元格式字504可以被扩大成4子级区块单元格式字,而不是一个区块格式字。每个子级区块单元将具有来自区块单元的区块的四分之一区块。对于每个子级区块单元,提高了遇到所有区块有效、所有区块没有效以及只有一个区块有效(如区块单元格式字504中的1-3所示)的特殊情况的可能性。而且,在图5中的图元掩码格式字508中,子级区块单元具有所有的全图元掩码和相同的图元掩码的机会也增加了。所以,与一个区块单元格式字相比,控制数据的数量将会需要被减少。
可以还使用多子级来减少在区块单元格式字中包括的区块的数目。对于具有宏区块中的更多区块的大渲染尺寸来说尤其如此。
在能够多样本图形保真(MSAA)的640×480像素的渲染中,在区块单元中有6×4=24个区块。通过在区块单元中增加一个子级块,子级块的尺寸为3×2=6个区块。在该情况下,可以较早地跳过无效的区块,以及在6个区块子级中,相比于24个区块单元,区块得到图元掩码数据的特殊情况的机会将会增加。
表9-多级显示控制列表区块单元尺寸
表9显示了用于一些公共使用的渲染尺寸的区块单元中的区块的数目。也显示了在区块单元内的子级块中区块的数目。
在区块单元中的区块的数目在X或/和Y方向上不是偶数的情况下,一些子级块可以从来都不具有全有效区块掩码。当渲染尺寸为1024×768而非MSAA的情况下,区块单元尺寸为4×3区块,且子级尺寸为2×2区块。在区块单元中,较低的两个子级块具有2×1个区块,而最高的两个子级块具有2×2个区块。
对于小的渲染尺寸,可能不需要子级块,例如渲染尺寸为640×480而非MSAA的情况。对于能够MSAA的非常大的渲染尺寸,可能需要多子级块,如表9中所示。
在所提出的发明的实施方式中的多级显示控制列表明显减少了控制流数据的数量,在一些情况下,减少了90%。这可以通过将图元块分配给控制流数据以用于逐渐变大的区块分组的多级结构中的不同的区块分组来实现,从而对于覆盖多个区块的块来说,写入控制流数据中的区块图元块的数目被减少。

Claims (16)

1.一种在基于区块的计算机图形系统中用于渲染三维情景的计算机图形图像的方法,其中多个区块被分组成多个区块单元,以及所述多个区块单元被分组成多个宏区块,该方法包括以下步骤:
将所述三维情景的图元分组成图元块;
对于每个图元块,确定由该图元块所重叠的宏区块,以及将针对该图元块的指针写入针对所述宏区块的宏区块控制列表中;
对于宏区块的每个区块单元,生成控制流数据,所述控制流数据指示是否将针对该区块单元来处理与所述宏区块重叠的图元块;
对于将针对其来处理图元块的区块单元的每个区块,生成区块指示,所述区块指示指示是将针对该区块来处理所述图元块还是将不处理所述图元块;以及
使用所述宏区块控制列表、控制流数据和区块指示来将图元数据渲染到所述图像中。
2.根据权利要求1所述的方法,其中所述指针指向图元块的顶点数据。
3.根据权利要求1所述的方法,其中所述控制流数据包括控制字。
4.根据权利要求3所述的方法,其中所述控制字具有用于允许定义四个操作的两比特编码。
5.根据权利要求1所述的方法,其中所述区块指示包括区块指示字且所述区块指示字具有用于允许定义四个操作的两比特编码。
6.根据权利要求1或权利要求5所述的方法,其中所述区块指示包括区块掩码。
7.根据权利要求1至5中任一权利要求所述的方法,其中所述控制流数据包括全图元掩码标记存在比特,以用于确定在所述控制流数据中是否存在任何全图元掩码,以及所述全图元掩码被用来为区块单元中的每个区块设置比特,该比特用来确定图元块中的所有图元是否在每个各自的区块中可见。
8.根据权利要求7所述的方法,其中所述控制流数据包括图元掩码格式字,该图元掩码格式字用来确定当所述全图元掩码标记存在比特没有被设置时区块单元中的哪些区块具有全图元掩码。
9.一种在基于区块的计算机图形系统中用于渲染三维情景的计算机图形图像的设备,其中多个区块被分组成多个区块单元,以及所述多个区块单元被分组成多个宏区块,该设备包括:
宏区块引擎,该宏区块引擎被配置成:
将所述三维情景的图元分组成图元块;
对于每个图元块,确定由该图元块所重叠的宏区块,以及将针对该图元块的指针写入针对所述宏区块的宏区块控制列表中;
区块引擎,该区块引擎被配置成:
对于宏区块的每个区块单元,生成控制流数据,所述控制流数据指示是否将针对该区块单元来处理与所述宏区块重叠的图元块;
对于将针对其来处理图元块的区块单元的每个区块,生成区块指示,所述区块指示指示是将针对该区块来处理所述图元块还是将不处理所述图元块;以及
三维渲染处理器,该三维渲染处理器被配置成使用所述宏区块控制列表、控制流数据和区块指示来将图元数据渲染到所述图像中。
10.根据权利要求9所述的设备,其中所述指针指向图元块的顶点数据。
11.根据权利要求9所述的设备,其中所述控制流数据包括控制字。
12.根据权利要求11所述的设备,其中所述控制字具有用于允许定义四个操作的两比特编码。
13.根据权利要求9所述的设备,其中所述区块指示包括区块指示字且所述区块指示字具有用于允许定义四个操作的两比特编码。
14.根据权利要求9或权利要求13所述的设备,其中所述区块指示包括区块掩码。
15.根据权利要求9至13中任一权利要求所述的设备,其中所述控制流数据包括全图元掩码标记存在比特,以用于确定在所述控制流数据中是否存在任何全图元掩码,以及所述全图元掩码被用来为区块单元中的每个区块设置比特,该比特用来确定图元块中的所有图元是否在每个各自的区块中可见。
16.根据权利要求15所述的设备,其中所述控制流数据包括图元掩码格式字,该图元掩码格式字用来确定当所述全图元掩码标记存在比特没有被设置时区块单元中的哪些区块具有全图元掩码。
CN201610227471.5A 2008-12-19 2009-12-21 用于渲染三维情景的计算机图形图像的方法和设备 Pending CN105913470A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB0823254.8A GB0823254D0 (en) 2008-12-19 2008-12-19 Multi level display control list in tile based 3D computer graphics system
GB0823254.8 2008-12-19
CN2009801552834A CN102292748A (zh) 2008-12-19 2009-12-21 基于区块的3d计算机图形系统中的多级显示控制列表

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN2009801552834A Division CN102292748A (zh) 2008-12-19 2009-12-21 基于区块的3d计算机图形系统中的多级显示控制列表

Publications (1)

Publication Number Publication Date
CN105913470A true CN105913470A (zh) 2016-08-31

Family

ID=40343947

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2009801552834A Pending CN102292748A (zh) 2008-12-19 2009-12-21 基于区块的3d计算机图形系统中的多级显示控制列表
CN201610227471.5A Pending CN105913470A (zh) 2008-12-19 2009-12-21 用于渲染三维情景的计算机图形图像的方法和设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN2009801552834A Pending CN102292748A (zh) 2008-12-19 2009-12-21 基于区块的3d计算机图形系统中的多级显示控制列表

Country Status (6)

Country Link
US (1) US9336623B2 (zh)
EP (2) EP3236420A1 (zh)
JP (1) JP5579193B2 (zh)
CN (2) CN102292748A (zh)
GB (2) GB0823254D0 (zh)
WO (1) WO2010070302A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107918665A (zh) * 2017-11-23 2018-04-17 上海蒙袋网络科技有限公司 一种三维模型的快速渲染及cad信息查询的系统和方法

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2458488C (en) * 2008-03-19 2018-09-12 Imagination Tech Ltd Untransformed display lists in a tile based rendering system
US8692848B2 (en) * 2009-12-17 2014-04-08 Broadcom Corporation Method and system for tile mode renderer with coordinate shader
GB2546020B (en) * 2012-11-02 2017-08-30 Imagination Tech Ltd Method of scheduling discrete productions of geometry
US9336561B2 (en) * 2012-12-19 2016-05-10 Intel Corporation Color buffer caching
GB2517185B (en) * 2013-08-14 2020-03-04 Advanced Risc Mach Ltd Graphics tile compositing control
GB2526598B (en) * 2014-05-29 2018-11-28 Imagination Tech Ltd Allocation of primitives to primitive blocks
US9569811B2 (en) 2014-06-26 2017-02-14 Qualcomm Incorporated Rendering graphics to overlapping bins
JP6335335B2 (ja) * 2014-06-30 2018-05-30 インテル・コーポレーション タイルベースのレンダリングgpuアーキテクチャのための任意のタイル形状を有する適応可能なパーティションメカニズム
GR20140100528A (el) * 2014-10-20 2016-06-01 Arm Limited Ενας βασισμενος σε πλακιδια επεξεργαστης γραφικων και μια μεθοδος επεξεργασιας γραφικων σε ενα βασισμενο σε πλακιδια επεξεργαστη
US10535114B2 (en) * 2015-08-18 2020-01-14 Nvidia Corporation Controlling multi-pass rendering sequences in a cache tiling architecture
KR102454893B1 (ko) 2015-09-30 2022-10-14 삼성전자주식회사 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치의 동작 방법
GB2546810B (en) * 2016-02-01 2019-10-16 Imagination Tech Ltd Sparse rendering
US10430990B2 (en) * 2017-09-20 2019-10-01 Intel Corporation Pixel compression mechanism
EP3671650A1 (en) 2018-12-21 2020-06-24 Imagination Technologies Limited Primitive block-based rasterization in graphics processing systems
EP4345732A3 (en) * 2018-12-21 2024-06-05 Imagination Technologies Limited Primitive block generator for graphics processing systems
US11244421B2 (en) 2019-01-29 2022-02-08 Imagination Technologies Limited Memory for storing untransformed primitive blocks
US11972518B2 (en) 2020-01-20 2024-04-30 Advanced Micro Devices, Inc. Hybrid binning
GB2591802B (en) 2020-02-07 2022-03-23 Imagination Tech Ltd Graphics processing method and system for rendering items of geometry based on their size
GB2591803B (en) * 2020-02-07 2022-02-23 Imagination Tech Ltd Graphics processing method and system for rendering items of geometry based on their size
GB2586297B (en) * 2020-02-10 2022-03-02 Imagination Tech Ltd Data structures, methods and tiling engines for storing tiling information in a graphics processing system
CN113256479A (zh) * 2020-02-13 2021-08-13 畅想科技有限公司 用于在图形处理系统中平铺图元的方法和平铺引擎
CN111859589B (zh) * 2020-07-20 2024-05-17 山西潞安环保能源开发股份有限公司 一种适用于整定计算软件的变电站内图元自动布局的方法
CN112214809B (zh) * 2020-10-16 2023-11-17 安徽工程大学 一种图元随机排列方法及装置
US20220198735A1 (en) * 2020-12-21 2022-06-23 Intel Corporation Hierarchical tiling mechanism

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6362818B1 (en) * 1998-01-07 2002-03-26 Evans & Sutherland Computer Corporation System and method for reducing the rendering load for high depth complexity scenes on a computer graphics display
US20030123089A1 (en) * 2001-12-31 2003-07-03 Doyle Peter L. Graphics state bandwidth reduction for zone rendering
US20040233207A1 (en) * 2000-06-08 2004-11-25 Imagination Technologies Limited Memory management for systems for generating 3-dimensional computer images
CN1610926A (zh) * 2001-12-31 2005-04-27 英特尔公司 用于区带渲染的有效图形状态管理
CN101067869A (zh) * 2005-12-05 2007-11-07 Arm挪威股份有限公司 处理图形的方法和设备

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB717781A (en) 1952-03-26 1954-11-03 Henry Edward Billington Improvements in vehicle couplings
CA2026527A1 (en) 1989-10-11 1991-04-12 Douglas A. Fischer Parallel polygon/pixel rendering engine
US5295235A (en) 1992-02-14 1994-03-15 Steve Newman Polygon engine for updating computer graphic display employing compressed bit map data
GB2336983B (en) 1995-01-31 2000-01-19 Videologic Ltd Improvements relating to computer 3D rendering systems
US5867166A (en) 1995-08-04 1999-02-02 Microsoft Corporation Method and system for generating images using Gsprites
US5767856A (en) 1995-08-22 1998-06-16 Rendition, Inc. Pixel engine pipeline for a 3D graphics accelerator
US6104417A (en) 1996-09-13 2000-08-15 Silicon Graphics, Inc. Unified memory computer architecture with dynamic graphics memory allocation
US6697063B1 (en) 1997-01-03 2004-02-24 Nvidia U.S. Investment Company Rendering pipeline
US6084591A (en) 1997-04-29 2000-07-04 Ati Technologies, Inc. Method and apparatus for deferred video rendering
US7102646B1 (en) 1997-11-25 2006-09-05 Nvidia U.S. Investment Company Demand-based memory system for graphics applications
US6856320B1 (en) 1997-11-25 2005-02-15 Nvidia U.S. Investment Company Demand-based memory system for graphics applications
US6611272B1 (en) * 1998-07-02 2003-08-26 Microsoft Corporation Method and apparatus for rasterizing in a hierarchical tile order
GB2343603B (en) 1998-11-06 2003-04-02 Videologic Ltd Shading 3-dimensional computer generated images
US6380935B1 (en) 1999-03-17 2002-04-30 Nvidia Corporation circuit and method for processing render commands in a tile-based graphics system
US7627736B2 (en) * 1999-04-09 2009-12-01 Clearspeed Technology Plc Thread manager to control an array of processing elements
US6801203B1 (en) * 1999-12-22 2004-10-05 Microsoft Corporation Efficient graphics pipeline with a pixel cache and data pre-fetching
US7405734B2 (en) 2000-07-18 2008-07-29 Silicon Graphics, Inc. Method and system for presenting three-dimensional computer graphics images using multiple graphics processing units
GB2416100B (en) 2002-03-26 2006-04-12 Imagination Tech Ltd 3D computer graphics rendering system
JP4082194B2 (ja) 2002-12-03 2008-04-30 セイコーエプソン株式会社 画像処理方法および画像処理装置ならびに画像処理プログラム
GB0307095D0 (en) 2003-03-27 2003-04-30 Imagination Tech Ltd Improvements to a tiling system for 3d rendered graphics
GB2406184B (en) 2003-09-17 2006-03-15 Advanced Risc Mach Ltd Data processing system
US20050122338A1 (en) * 2003-12-05 2005-06-09 Michael Hong Apparatus and method for rendering graphics primitives using a multi-pass rendering approach
US7652678B2 (en) 2004-06-25 2010-01-26 Apple Inc. Partial display updates in a windowing system using a programmable graphics processing unit
GB2444863B (en) * 2005-12-05 2008-10-08 Arm Norway As Method of and apparatus for processing graphics
GB2442266B (en) * 2006-09-29 2008-10-22 Imagination Tech Ltd Improvements in memory management for systems for generating 3-dimensional computer images
KR101349171B1 (ko) 2007-01-17 2014-01-09 삼성전자주식회사 3차원 그래픽 가속기 및 그것의 픽셀 분배 방법
GB2452731B (en) 2007-09-12 2010-01-13 Imagination Tech Ltd Methods and systems for generating 3-dimensional computer images
CN101127125A (zh) 2007-09-26 2008-02-20 腾讯科技(深圳)有限公司 一种图像渲染方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6362818B1 (en) * 1998-01-07 2002-03-26 Evans & Sutherland Computer Corporation System and method for reducing the rendering load for high depth complexity scenes on a computer graphics display
US20040233207A1 (en) * 2000-06-08 2004-11-25 Imagination Technologies Limited Memory management for systems for generating 3-dimensional computer images
US20030123089A1 (en) * 2001-12-31 2003-07-03 Doyle Peter L. Graphics state bandwidth reduction for zone rendering
CN1610926A (zh) * 2001-12-31 2005-04-27 英特尔公司 用于区带渲染的有效图形状态管理
CN101067869A (zh) * 2005-12-05 2007-11-07 Arm挪威股份有限公司 处理图形的方法和设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107918665A (zh) * 2017-11-23 2018-04-17 上海蒙袋网络科技有限公司 一种三维模型的快速渲染及cad信息查询的系统和方法
CN107918665B (zh) * 2017-11-23 2021-12-14 上海模袋网络科技有限公司 一种三维模型的快速渲染及cad信息查询的系统和方法

Also Published As

Publication number Publication date
GB2466569A (en) 2010-06-30
EP2380138B1 (en) 2017-06-21
GB2466569B (en) 2012-04-25
US20110292032A1 (en) 2011-12-01
GB0823254D0 (en) 2009-01-28
JP2012513053A (ja) 2012-06-07
WO2010070302A2 (en) 2010-06-24
CN102292748A (zh) 2011-12-21
EP3236420A1 (en) 2017-10-25
GB0922374D0 (en) 2010-02-03
US9336623B2 (en) 2016-05-10
JP5579193B2 (ja) 2014-08-27
WO2010070302A3 (en) 2011-07-07
EP2380138A2 (en) 2011-10-26

Similar Documents

Publication Publication Date Title
CN105913470A (zh) 用于渲染三维情景的计算机图形图像的方法和设备
CN102265309A (zh) 基于图块的3d计算机图形系统中的显示列表控制流分组
US5767858A (en) Computer graphics system with texture mapping
US6704018B1 (en) Graphic computing apparatus
US5982384A (en) System and method for triangle rasterization with frame buffers interleaved in two dimensions
CN102081804A (zh) 在图形硬件中细分几何图像
CN100378762C (zh) 减少z缓冲区流量的三维图形处理装置
CN105184837A (zh) 一种矢量多边形栅格化的算法及系统
CN106204712A (zh) 分段线性不规则光栅化
CN103679627A (zh) 基于图块的计算机图形
US6891546B1 (en) Cache memory for texture mapping process in three-dimensional graphics and method for reducing penalty due to cache miss
Vaaraniemi et al. High-quality cartographic roads on high-resolution DEMs
US8411094B2 (en) Rendering module for bidimensional graphics
Weiler et al. Texture-encoded tetrahedral strips
Woop et al. Exploiting Local Orientation Similarity for Efficient Ray Traversal of Hair and Fur.
JP2882465B2 (ja) 画像生成方法およびその装置
CN102842145B (zh) 拼块式图形结构
US10140681B2 (en) Caching method of graphic processing unit
King et al. An architecture for interactive tetrahedral volume rendering
CN112669419A (zh) 用于渲染的方法、中央处理器、图像处理器、系统和存储介质
US6515660B1 (en) Apparatus and method for dynamic triangle stripping
US7372461B2 (en) Image processing apparatus and method of same
She et al. A line-feature label placement algorithm for interactive 3D map
US6803918B1 (en) Image processing apparatus
Lee et al. Single-pass full-screen hardware accelerated antialiasing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20160831