当前位置: 首页 > 专利查询>英特尔公司专利>正文

利用分层加速结构的图形渲染制造技术

技术编号:14113549 阅读:37 留言:0更新日期:2016-12-07 10:45
本发明专利技术涉及利用分层加速结构的图形渲染。利用32位格式建立用于图形处理的分层加速结构。在一个实施例中,加速结构可以是k‑d树,但也可使用其它加速结构。仅在需要64位偏移时使用64位偏移。

【技术实现步骤摘要】
本申请是申请日为2009年10月30日申请号为第200980163256.1号专利技术名称为“利用分层加速结构的图形渲染”的中国专利申请的分案申请。
技术介绍
本专利技术一般地涉及图形处理期间的渲染图元。可按照诸如三角形或多边形之类的图元来分析要处理的图像,这些图元共同地表示整体图形图像。在很多情况下,在光栅化期间分析三角形或多边形。通常搜索图形图元。图形处理中的一个常见任务是确定哪些多边形或三角形位于给定的块或片中。这可能涉及在适当图元中进行几何近似搜索。需要搜索图元的另一个示例是光线跟踪。其中通过搜索算法,识别与光线或一组光线相交的最接近的多边形。渲染算法使用加速结构来降低解决搜索问题的复杂性。这些加速结构也可被称为空间或几何索引。通常,它们涉及在端节点处存储图元的分层树状数据结构。这种分层加速结构的示例包括k维树即k-d树、包围体层次(BVH)、包围间隔层次(BIH)或二元空间分割(BSP)。附图简述图1是对根据一个实施例的内部节点的数据结构的描绘;图2是对用于根据本专利技术的一个实施例的叶节点或64位扩展的数据结构的描绘;图3是对根据一个实施例的父节点及其子的数据结构的描绘;图4示出根据一个实施例的存储器区域和节点表之间的关系;图5是对根据一个实施例的所分配的存储器区域之间的关系的描绘;图6是本专利技术的一个实施例的流程图;图7是本专利技术的另一个实施例的流程图;以及图8是一个实施例的示意性描绘。具体实施方式根据一个实施例,可使用k维树加速结构,即k-d树。然而,也可使用任何其它分层加速结构。在k-d树中,根据价值函数(cost function)将3D空间分成两个非重叠的区域。在第一次分裂之后,每个所得区域在第二次分裂中被分成两个区域,形成k-d树的两个内部节点,然后所得的四个区域中的每一个在第三次分裂中被分成两个区域,形成k-d树的更多节点。该过程递归地继续,直到满足专用终止标准。未再分裂的节点称为叶节点。叶节点存储与其区域相交的图元。在一些实施例中,叶存储对图元的参考而非图元本身。叶节点中的图元参考以图元索引阵列的形式存储。基于树的数据结构具有大量的内部节点和对其它节点的参考。结果,其存储占用量可能很大且不可预测。构造这种基于树的数据结构的计算成本高。为了实现交互式图形应用所需的性能,需要使用高速并行计算来创建基于树的结构。在一些实施例中,可实现紧凑的存储布局,这减少所消耗的存储量。紧凑表示的优点是不会减慢各遍历步骤,在所述遍历步骤中,各个图元在搜索操作中被遍历。此外,可将加速结构存储在盘上并加载到不同的地址空间。可将加速结构传送到具有不同地址空间的另一个计算设备。加速结构及其数据格式的这种表示有利地支持了由多个并行线程进行的结构创建,因此允许使用高速并行计算。在一些实施例中,用于包含大量图元的模型的加速结构扩展到图形处理架构的64位地址空间。一般地,64位地址空间需要64位大小的参考,但一些实施例可用偏移代替指针来参考子节点。在这种情况下,即使在扩展到64位地址空间的较大加速结构中,大多数偏移仍可以通过32位来编码,而仅有少部分偏移可能需要全64位编码。加速结构可编码需要64位偏移的特殊类型的节点,这种特殊类型的节点被进一步称为64位扩展。由于默认使用32位偏移并且将64位偏移编码为特殊扩展,因此用于适合32位地址空间的小模型的加速结构可有利地在64位计算机架构上具有相同的二进制表示,从而使32位结构能够在64位计算机上不变地使用。参考图1和2,在一个实施例中,每个k-d树节点可存储在两个字中,每个字为四字节。也可使用其它字长度。在图1中示出的内部节点的第一字由位组28和30构成。图1中示出的位组28存储了从字28和30到子节点的第一字节的偏移34,或者在节点是叶的情况下,存储了从字28和30到图元索引阵列39的第一字节的偏移34,如图2所示。通过存储偏移而不是指针,数据结构可不依赖其所处的基址。结果,在一些实施例中,向另一个计算设备存储和加载或传送该结构将不需要预处理。参考图3,父节点40的两个子节点42和44可存储在一起。在一些实施例中,这可允许在父节点中仅存储单个偏移,而不是两个偏移。在一个实施例中,每个节点和叶索引阵列可至少通过四字节边界对齐。结果,任意两节点之间的偏移可具有至少两个等于零的最低有效位。这两个位(图1中的位组30)可用于存储附加信息。如针对内部节点所指示的(图1),位组30中的值1、2和3对与x、y或z轴对应的分裂面位置进行编码。图2中示出的叶节点中的位30的值可为零,使得位组30用作叶节点指示符。参照图6,根据一个实施例,操作序列可在硬件、软件或固件中实现。在软件或固件实施例的情况下,该序列可按存储的计算机可执行指令的形式存储在适当的存储设备或介质中。适当的存储设备包括光盘或硬盘驱动以及半导体存储器,仅提及几个示例。最初,节点被访问,如框10所指示的。然后,在菱形12中,进行检查,确定节点是否为内部的。如果是,则内部节点被处理,如框14所指示的。如果节点不是内部的,则它是叶节点或64位扩展。64位扩展是需要64位偏移来参考其子节点之一或两个子节点的特殊类型的节点。当然,本专利技术可应用于任何尺寸的扩展。在任何情况下,它被处理为叶,如框16所指示的。因为遍历算法访问内部节点比访问叶节点更频繁,所以处理叶中而不是内部节点中的扩展实质上减少了用于检查扩展的操作数量。在菱形18中,进行检查,确定节点是否具有64位扩展。如果否,则可进行常规的叶处理。如果是,则处理64位扩展,如框20所指示的,然后该流程可继续,如同框16处的叶处理操作或框14处的内部节点处理。在图6所示的流程的每次遍历期间,在每个遍历步骤处执行叶/内部节点测试12,且分支取决于其结果。将零作为叶指示符允许在分支前将测试减少到恰好一个指令:以及节点,0x03jz处理叶为了处理所得到的树尺寸的不可预测性,构造算法可按照连续区域来分配存储器。如图7所示,在框22,一区域最初被分配在可在诸如固件之类的硬件或软件中实现、作为一系列计算机可执行指令而被存储在计算机可读存储介质中的序列中。然后在菱形24,进行检查,确定该区域何时满。如果该区域满了,则在框26中分配连续区域。该算法在其当前区域中继续构造,直到当前区域为满,然后从存储器分配系统请求新区域。所构造的树的大的连接区域(区域k、k+1和j)位于每个区域中,如图5所指示的。结果,每个区域包含子树。在该示例中,当子树长得比区域k大时,分配连续的区域k+1。这些子树之间的连结数可相对较小,在一个实施例中,小于连结总数的百分之一。因此,指向位于另一个存储区域中的子节点的节点数较小。例如,典型的存储区域尺寸小于4千兆字节。所以当树被分成子树,且每个子树位于连续区域中时,节点可使用32位偏移来参考相同区域(例如,区域k和/或k+1)内的子节点。在一个实施例中,64位偏移仅用于在另一个存储区域中具有子节点定位(例如,当父节点在区域j中时子节点在区域k中)的节点。因为这种节点的数量小,它们可被编码为32位节点的扩展。结果,该树可被存储为32位树,且以64位偏移扩展小部分节点。如果节点具有64位偏移,则将指示符与节点数据一起存储在轴30中。为了避免在每个遍历步骤处测试64位扩展指示符,本文档来自技高网...
利用分层加速结构的图形渲染

【技术保护点】
一种方法,包括:建立适合于32位地址空间的分层加速结构以参考子节点;确定所述分层加速结构中的节点是否是内部的,且只有在所述节点不是内部节点时,才检查所述节点是否使用64位格式;如果所述节点使用64位格式,则有选择地将所述节点作为叶节点或内部节点进行处理。

【技术特征摘要】
1.一种方法,包括:建立适合于32位地址空间的分层加速结构以参考子节点;确定所述分层加速结构中的节点是否是内部的,且只有在所述节点不是内部节点时,才检查所述节点是否使用64位格式;如果所述节点使用64位格式,则有选择地将所述节点作为叶节点或内部节点进行处理。2.如权利要求1所述的方法,其特征在于,建立分层加速结构包括建立k-d树。3.如权利要求1所述的方法,其特征在于包括将节点存储在两个四字节字中。4.如权利要求3所述的方法,其特征在于包括存储自一字起的偏移。5.如权利要求4所述的方法,其特征在于,所述节点是叶,存储到图元索引阵列的第一字节的偏移。6.如权利要求4所述的方法,其特征在于包括存储到子节点的第一字节的偏移。7.如权利要求1所述的方法,其特征在于包括随同一父节点至少存储两个子节点。8.如权利要求1所述的方法,其特征在于,使用位组对与x、y或z轴对应的分裂面位置进行编码。9.如权利要求8所述的方法,其特征在于包括使用所述位组来指示节点是否是叶节点。10.如权利要求1所述的方法,其特征在于包括确定节点是叶节点还是64位扩展。11.如权利要求10所述的方法,其特征在于,仅当内部节点测试未通过时,测试64位扩展。12.如权利要求1所述的方法,其特征在于包括按照连续区域分配存储器。13.一种设备,包括:用于建立适合于32位地址空间的分层加速结构以参考子节点的装置;用于确定所述分层加速结构中的节点是否是内部的,且只有在所述节点不是内部节点时,才检查所述节点是否使用64位格式的装置;以及如果所述节点使用64位格式,则有选择地将所述节点作为叶节点或内部节点进行处理的装置。14.如权利要求13所述的设备,其特征在于还包括:用于仅在特殊节点类型需要64位偏移时才使用64位偏移的装置。15.如权利要求13所述的设备,其特征在于还包括:用于通过建立k-d树来建立分层树的装置。16.如...

【专利技术属性】
技术研发人员:A·M·索皮科夫M·Y·谢伏特索夫A·V·瑞斯特夫
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1