CN101506847A - 用于划分空间索引的方法和系统 - Google Patents

用于划分空间索引的方法和系统 Download PDF

Info

Publication number
CN101506847A
CN101506847A CNA200780030994XA CN200780030994A CN101506847A CN 101506847 A CN101506847 A CN 101506847A CN A200780030994X A CNA200780030994X A CN A200780030994XA CN 200780030994 A CN200780030994 A CN 200780030994A CN 101506847 A CN101506847 A CN 101506847A
Authority
CN
China
Prior art keywords
processing unit
spatial index
ray
node
divide
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.)
Granted
Application number
CNA200780030994XA
Other languages
English (en)
Other versions
CN101506847B (zh
Inventor
R·A·席勒
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101506847A publication Critical patent/CN101506847A/zh
Application granted granted Critical
Publication of CN101506847B publication Critical patent/CN101506847B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Image Analysis (AREA)

Abstract

本发明的实施例提供了用于划分空间索引的设备和技术。在本发明的一个实施例中,图像处理系统可将空间索引划分成多个部分,以使得不同的处理单元可负责使射线遍历空间索引的不同部分。可基于任意多个因素来确定在哪里划分所述空间索引。例如,根据本发明的某些实施例,可划分空间索引以在多个处理单元中均匀地分布工作量(例如由实时性能度量来确定)。可基于节点的总数、叶节点的数目和将包括在每个所得到的分区中的基元的数目来划分空间索引以分布工作量。

Description

用于划分空间索引的方法和系统
技术领域
本发明的实施例通常涉及计算机处理领域。
背景技术
根据三维场景渲染(render)二维图像的过程通常被称为图像处理。随着现代计算机工业的发展,图像处理也在发展。图像处理发展的一个特定目标是使得三维场景的二维仿真或渲染尽可能逼真。渲染逼真的图像的一个限制是现代监视器通过使用像素来显示图像。像素是监视器上可被照亮的最小空间区域。大多数现代计算机监视器将使用数十万或数百万像素的组合来构成整个显示或渲染的场景。各个像素按照网格图案(grid pattern)布置,并且共同覆盖监视器的整个观看区域。可照亮每个单个像素以渲染用于观看的最终图片。
一种使用像素来将真实世界三维场景渲染到二维监视器上的技术被称为光栅化(rasterization)。光栅化是采用以矢量格式表示的二维图像(场景中几何物体的数学表示)并将该图像转换成用于在监视器上显示的各个像素的过程。光栅化在快速渲染图形和使用数量相对低的计算能力方面是有效的;但是,光栅化有一些缺点。例如,光栅化经常缺乏真实性,这是由于光栅化并非基于光的物理性质,而是基于投影到二维平面上的场景中三维几何物体的形状。而且,利用光栅化渲染场景所需要的计算能力随着要渲染的场景的复杂度的增加而直接攀升。随着图像处理变得更加逼真,所渲染的场景也变得更加复杂。因此,由于光栅化随着复杂度而直接攀升,光栅化随着图像处理的发展而受到不利影响。
另一种利用像素来将真实世界三维场景渲染到二维监视器上的技术被称为射线跟踪(ray tracing)。射线跟踪技术跟踪假想射线——该射线的行为类似于光线——到要在计算机屏幕上渲染的三维场景上的传播。所述射线从坐在计算机屏幕后的观看者的眼睛开始,穿过组成计算机屏幕的像素射向所述三维场景。每根被跟踪的射线前进到场景中并且可能与场景中的物体相交。如果射线与场景中的物体相交,则该物体的性质和几个其他影响因素被用于计算使射线暴露出的颜色和光的量或者该颜色和光的缺乏量。这些计算然后被用于确定被跟踪的射线所通过的像素的最终颜色。
对于单个场景要执行很多次跟踪射线过程。例如,可以针对显示中的每个像素跟踪单根射线。一旦已经跟踪了足够数目的射线以确定组成计算机屏幕的二维显示的所有像素的颜色,则可在计算机屏幕上向观看者显示三维场景的二维合成。
射线跟踪通常比光栅化更逼真地渲染真实世界的三维场景。这部分是由于射线跟踪模拟了光在真实世界环境中如何传播和动作,而不是如同光栅化中所实现的那样简单地将三维形状投影到二维平面上。因此,利用射线跟踪渲染的图形更准确地在监视器上描绘了我们的眼睛通常在真实世界中看到的场景。
此外,随着场景变得更加复杂,射线跟踪在场景复杂度增长方面比光栅化处理得更好。射线跟踪随着场景复杂度增加而对数攀升。这是由于如下事实:即使场景变得更加复杂,也可投射相同数目的射线到场景中。因此,跟光栅化不同,射线跟踪没有随着场景变得更加复杂而在计算能力要求方面遭受不利影响。
射线跟踪的一个主要缺点是渲染场景所需要的计算量大,因而所需要的处理能力高。当需要快速渲染时,这会引起问题。例如,当图像处理系统出于动画目的——例如在游戏控制台中——而渲染图形时。由于射线跟踪的计算要求增加,难以足够快地渲染动画以使其看起来逼真(逼真的动画大约为每秒20至24帧)。
因此,需要更加有效的技术和设备来执行射线跟踪。
发明内容
本发明的实施例通常提供用于执行射线跟踪的方法和装置。
根据本发明的第一方面,提供一种用于划分具有节点的空间索引的方法,其中所述节点定义三维场景的有界体块(bounding volume)。所述方法通常包括:提供第一处理单元和第二处理单元;以及将所述空间索引至少划分成第一部分和第二部分,其中所述第一处理单元可操作来执行与使射线遍历所述第一部分相关联的一个或多个算法,并且其中所述第二处理单元可操作来执行与使射线遍历所述第二部分相关联的一个或多个算法。
根据本发明的第二方面,提供一种用于遍历具有节点的空间索引的方法,其中所述节点定义三维场景的有界体块。所述方法通常包括:通过创建至少一个经过所述空间索引的至少一个分支的分区边界,将所述空间索引至少划分成第一分区和第二分区;产生进入所述场景中的射线;通过采取从内部节点开始的分支直到到达叶节点,来遍历所述空间索引,其中基于所述射线是否与由所述节点定义的有界体块相交来采取分支;以及当采取了包含所述分区边界的所述分支时,将定义所述射线的信息从第一处理单元传送到第二处理单元。
根据本发明的第三方面,提供一种系统。所述系统通常包括:具有节点的空间索引,其中所述节点定义三维场景的有界体块;第一处理单元;第二处理单元;以及图像处理系统。所述图像处理系统通常被配置成将所述空间索引至少划分成第一部分和第二部分,其中所述第一处理单元可操作来执行与使射线遍历所述第一部分相关联的一个或多个算法,并且其中所述第二处理单元可操作来执行与使射线遍历所述第二部分相关联的一个或多个算法。
根据第四方面,提供一种用于划分具有节点的空间索引的计算机程序,其中所述节点定义三维场景的有界体块,所述计算机程序包括适用于执行以下将所述空间索引至少划分成第一部分和第二部分的步骤的程序代码手段,其中所述第一处理单元可操作来执行与使射线遍历所述第一部分相关联的一个或多个算法,并且其中所述第二处理单元可操作来执行与使射线遍历所述第二部分相关联的一个或多个算法,当程序在计算机上运行时执行所述步骤。
附图说明
现在参考以下附图,仅通过举例的方式说明本发明的优选实施例。
图1说明根据本发明一个实施例的多核处理单元。
图2和图6说明根据本发明实施例的多核处理单元网络。
图3是根据本发明一个实施例的图像处理系统要渲染的示例性三维场景。
图4A-4C说明根据本发明的一个实施例的、图像处理系统要渲染的二维空间和图像处理系统要创建的相应空间索引。
图5说明根据本发明的一个实施例的示例性的划分后的空间索引。
具体实施方式
本发明的实施例提供了用于划分空间索引的设备和技术。在本发明的一个实施例中,图像处理系统可将空间索引划分成多个部分,以使得不同的处理单元可负责使射线遍历所述空间索引的不同部分。可基于任意多个因素来确定在哪里划分空间索引。例如,根据本发明的某些实施例,可划分空间索引以使得在多个处理单元中均匀分布工作量。划分空间索引以均匀分布工作量可基于将被包括在每个所得到的分区中的内部节点的数目、将被包括在每个所得到的分区中的叶节点的数目、或者将被包括在每个所得到的分区中的基元(primitive)的数目。
下面参考本发明的实施例。但是应当理解本发明不限于特定的所描述的实施例。相反,下面的特征和单元的任意组合——无论是否与不同实施例相关——都被预期用于实施和实践本发明。而且,在不同实施例中,相对于现有技术本发明都提供了大量优点。然而,虽然相对于其他可能解决方案和/或相对于现有技术本发明的实施例可获得多个优点,但是特定优点是否由特定实施例实现并不是对本发明的限制。因此,下面的方面、特征、实施例和优点仅仅是示意性的,并且不被认为是所附权利要求的元素或限制,除非在权利要求中进行了明确记载。类似地,所说的“本发明”不应当被解释为这里公开的任何发明主题的概括,并且不应当被认为是所附权利要求的元素或限制,除非在权利要求中进行了明确记载。
示例性的处理器配置和通信网络
图1说明根据本发明一个实施例的多核处理单元100。多核处理单元100包括多个基本吞吐量引擎105(Basic Throughput Engine,BTE)。BTE 105可包含多个处理线程和内核高速缓存(例如L1高速缓存)。位于每个BTE中的处理线程可访问共享的多核处理单元高速缓存110(例如L2高速缓存)。
BTE 105还可访问多个收件箱(inbox)115。收件箱115可以是存储器映射的地址空间。收件箱115可被映射到位于每个BTE 105中的处理线程。位于BTE中的每个线程可具有存储器映射的收件箱,并可访问所有其他存储器映射的收件箱115。收件箱115组成由BTE 105使用的低延迟、高带宽的通信网络。
BTE可利用收件箱115作为网络来彼此进行通信和在BTE间重新分布数据处理工作。对于某些实施例,单独的待发箱(outbox)可用在通信网络中,例如用于接收BTE 105的处理结果。对于其他实施例,收件箱115也可用作待发箱,例如,一个BTE 105将处理功能的结果直接写到将使用该结果的另一个BTE 105的收件箱。
图像处理系统的总性能可依赖于BTE怎样划分和重新分布工作。收件箱115的网络可用来收集工作并将其分发给其他BTE,而不破坏具有BTE通信数据包的共享多核处理单元高速缓存110,其中所述BTE通信数据包没有帧到帧相干性。每帧能渲染数百万三角形的图像处理系统可包括许多以这种方式连接的BTE 105。
在本发明的一个实施例中,一个BTE 105的线程可被分配给工作量管理器。图像处理系统可使用各种软件和硬件组件来根据三维场景渲染二维图像。根据本发明的一个实施例,图像处理系统可使用工作量管理器利用图像处理系统发出的射线来遍历空间索引。空间索引——如同下面参照图4描述的那样,可以被实施为树型数据结构,其用于将相对大的三维场景划分成较小的有界体块。将射线跟踪方法用于图像处理的图像处理系统可利用空间索引来快速确定射线-有界体块的相交。在本发明的一个实施例中,工作量管理器可通过利用空间索引来执行射线-有界体块相交测试。
在本发明的一个实施例中,多核处理单元100上的多核处理单元BTE 105的其他线程可以是矢量吞吐量引擎(vector throughputengine)。在工作量管理器确定射线-有界体块相交后,工作量管理器可经由收件箱115发出(发送)射线到多个矢量吞吐量引擎中的一个。然后矢量吞吐量引擎可确定射线是否与包含在有界体块中的基元相交。矢量吞吐量引擎还可执行与确定射线所通过的像素的颜色有关的操作。
图2说明根据本发明一个实施例的多核处理单元网络200。图2还说明本发明的一个实施例,其中多核处理单元100的一个BTE的线程是工作量管理器205。根据本发明的一个实施例,多核处理单元网络200中的每个多核处理单元2201-N可包含一个工作量管理器2051-N。根据本发明的一个实施例,多核处理单元网络200中的每个多核处理单元2201-N也可包含多个矢量吞吐量引擎210。
根据本发明的一个实施例,工作量管理器2051-N可利用高速总线225来与其他多核处理单元2201-N的其他工作量管理器2051-N和/或矢量吞吐量引擎210通信。每个矢量吞吐量引擎210可利用高速总线225来与其他矢量吞吐量引擎210或工作量管理器2051-N通信。工作量管理器处理器205可利用高速总线225来收集有关图像处理的任务并将其分发给其他工作量管理器2051-N,和/或分发任务给其他矢量吞吐量引擎210。使用高速总线225可允许工作量管理器2051-N进行通信而不影响具有与工作量管理器通信有关的数据包的高速缓存230。
示例性三维场景
图3是图像处理系统要渲染的示例性三维场景305。物体320可在三维场景305中。图3中的物体320具有不同的几何形状。虽然图3中只示出了4个物体,但是典型三维场景中的物体数目可以更多或更少。通常,三维场景中的物体将比图3中示出的要多得多。
如图3所示,物体具有不同的几何形状和大小。例如,图3中的一个物体是锥体320A。图3中的其他物体是盒状物320B-D。在许多现代图像处理系统中,物体经常被分割为较小的几何形状(例如方形、圆形、三角形,等等)。然后,较大的物体由大量较小的简单几何形状来表示。这些较小的几何形状通常被称为基元。
场景305中还示出了光源325A-B。光源可照亮位于场景305内的物体320。而且,根据光源325和物体320在场景305中的位置,光源可导致阴影被投射到场景305中的物体上。
三维场景305可被图像处理系统渲染成二维图片。图像处理系统还可使二维图片被显示在监视器310上。监视器310可使用具有不同颜色的许多像素330来渲染最终的二维图片。
图像处理系统使用来将三维场景320渲染成二维图片的一种方法被称为射线跟踪。射线跟踪是通过图像处理系统从观看者315的视角(perspective)“发出”或“发射”射线到三维场景320中来完成的。所述射线具有与光线类似的性质和行为。
图3中可以看到一根从观看者315的位置发出并穿过三维场景305的射线340。由于射线340从观看者315行进到三维场景305,因此射线340通过图像处理系统要渲染的最终二维图片所在的平面。在图3中,监视器310代表该平面。像素335代表射线340通过该平面或监视器310的点。
如同前面简要讨论的那样,大多数图像处理系统利用具有数千像素(如果不是数百万像素的话)的网格330来在监视器310上渲染最终场景。每个单个像素可显示不同的颜色来在监视器310上渲染最终的合成二维图片。利用射线跟踪图像处理方法来根据三维场景渲染二维图片的图像处理系统将计算所发出的一根或多根射线在三维场景中遇到的颜色。图像处理场景然后将射线所遇到的颜色分配给射线在其从观看者到三维场景的路程上所通过的像素。
每个像素的所发出的射线的数目可以变化。某些像素可具有为要渲染的特定场景而发出的许多射线。在这种情况下,像素的最终颜色由来自为该像素发出的所有射线的每种颜色贡献来确定。其它像素可能仅仅具有单根所发出的射线来确定像素在二维图片中的所得到的颜色。某些像素可能没有任何由图像处理系统发出的射线,在这种情况下,其颜色可由图像处理系统中的算法来确定、近似或分配。
为了确定二维图片中像素335的最终颜色,图像处理系统必须确定射线340是否与场景中的物体相交。如果射线没有与场景中的物体相交,其可能被分配以默认的背景颜色(例如蓝色或黑色,表示白天或晚上的天空)。相反地,当射线340穿过三维场景305时,射线340可能碰到物体。当射线碰到场景中的物体时,物体的颜色可被分配给射线通过的像素。但是,物体的颜色必须在其被分配给像素之前确定。
许多因素可影响原始射线340碰到的物体的颜色。例如,三维场景中的光源可照亮物体。而且,物体的物理性质可影响物体的颜色。例如,如果物体是反光的或透光的,则其它非光源物体可影响物体的颜色。
为了确定来自三维场景中其它物体的影响,可从原始射线340与物体相交的点发出次级射线(secondary ray)。例如,一种类型的次级射线可以是阴影射线(shadow ray)。阴影射线可用来确定光对于原始射线340与物体相交的点的影响。另一种类型的次级射线可以是透射射线(transmitted ray)。透射射线可用来确定什么颜色或光可透过物体的主体。此外,第三种类型的次级射线可以是反射射线(reflected ray)。反射射线可用来确定什么颜色或光被反射到物体上。
如同上面提到的那样,一种类型的次级射线可以是阴影射线。可以从原始射线与物体的相交点开始跟踪每根阴影射线,直至三维场景305内的光源。如果该射线到达光源而在该射线到达该光源之前没有遇到另一个物体,则光源将照亮原始射线在该原始射线碰到物体的点处所碰到的该物体。
例如,阴影射线341A可从原始射线340与物体320A相交的点发出,并且可在朝向光源325A的方向上行进。阴影射线341A到达光源325A而没有遇到场景305中的任何其它物体320。因此,光源325A将照亮在原始射线340与物体320A相交的点处的物体320A
其它阴影射线可具有其在原始射线碰到物体的点和光源之间的被三维场景中的另一个物体所阻挡的路径。如果挡住在原始射线碰到的物体上的点和光源之间的路径的物体是不透明的,则光源将不会照亮在原始射线碰到物体的点处的物体。因此,光源可能不会影响原始射线的颜色,从而也不会影响二维图片中要渲染的像素的颜色。但是,如果物体是半透明或透明的,则光源可照亮在原始射线碰到物体的点处的物体。
例如,阴影射线341B可从原始射线340与物体320A相交的点发出,并且可在朝向光源325B的方向上行进。在这个例子中,阴影射线341B的路径被物体320D所阻挡。如果物体320D是不透明的,则光源325B将不会照亮在原始射线340与物体320A相交的点处的物体320A。但是,如果挡住阴影射线的物体320D是半透明或透明的,光源325B可照亮在原始射线340与物体320A相交的点处的物体320A
另一种类型的次级射线是透射射线。如果原始射线与其相交的物体具有透明或者半透明的性质(例如玻璃),则可由图像处理系统发出透射射线。透射射线以相对于原始射线碰到物体的角度的某一角度穿过物体。例如,可以看到透射射线344穿过原始射线340与其相交的物体320A。
另一种类型的次级射线是反射射线。如果原始射线与其相交的物体具有反射性质(例如金属表面),则将由图像处理系统发出反射射线来确定物体可反射什么颜色或光。反射射线以相对于原始射线与物体相交的角度的某一角度离开物体行进。例如,可由图像处理系统发出反射射线343以确定原始射线340与其相交的物体320A可反射什么颜色或光。
所有次级光线(例如,阴影射线、透射射线、反射射线等)的颜色和光的总贡献将导致原始射线通过的像素的最终颜色。
示例性KD树
执行射线跟踪时遇到的一个问题是迅速有效地确定发出的射线是否与要渲染的场景内的任何物体相交。本领域技术人员已知的一种更有效地确定射线相交的方法是使用空间索引。空间索引将三维场景或世界分成较小的体块(volume)(相对于整个三维场景而言较小),其可能包含也可能不包含基元。然后图像处理系统可使用这些较小体块的已知边界来确定射线是否可能与包含在较小体块中的基元相交。如果射线与包含基元的体块相交,则可利用射线相对于已知位置的轨迹和包含在该体块中的基元的大小来运行射线相交测试。如果射线不与特定体块相交,则不需要针对包含在该体块中的基元运行射线-基元相交测试。此外,如果射线与不包含基元的有界体块相交,则不需要针对该有界体块运行射线-基元相交测试。因此,通过减少可能是必要的射线-基元相交测试的次数,使用空间索引将大大提高射线跟踪图像处理系统的性能。不同的空间索引加速数据结构的一些例子是八叉树(octree)、k维树(kd树)和二叉空间划分树(BSP树)。尽管存在几种不同的空间索引结构,为了易于描述本发明的实施例,下面的例子中将使用kd树。但是,本领域技术人员将容易认识到,本发明的实施例可应用于任何不同类型的空间索引。
kd树利用轴对齐的有界体块来将整个场景或空间划分成较小的体块。即,kd树可通过使用平行于已知轴的分割面(splitting plane)来分割场景所包围的三维空间。分割面将较大的空间划分成较小的有界体块。较小的有界体块一起形成场景中的整个空间。可由图像处理系统通过利用kd树构造算法来确定将较大的有界体块划分(分割)成两个较小的有界体块。
用于确定何时将有界体块划分成较小的体块的一个准则可以是有界体块中包含的基元的数目。即,只要有界体块包含多于预定阈值的基元,树构造算法就可以通过绘制更多的分割面来继续分割体块。用于确定何时将有界体块划分成较小的体块的另一个准则可以是有界体块中包含的空间量。此外,继续划分有界体块的决定还可以基于创建有界体块的面可与多少基元相交。
对场景的划分可以用由节点、分支和叶子构成的二叉树结构来表示。树中的每个内部节点可表示相对大的有界体块,而节点可包含到子节点的分支,其中子节点可代表用分割面来对相对大的有界体块进行划分之后得到的两个相对较小的划分后的体块。在轴对齐的kd树中,每个内部节点可仅仅包含两个到其它节点的分支。内部节点可包含通往一个或两个叶节点的分支(即指针)。叶节点是不能被进一步细分为较小体块并包含到基元的指针的节点。内部节点还可包含通往被进一步细分的其它内部节点的分支。内部节点还可包含确定分割面是沿什么轴绘制的和分割面是沿着该轴在哪里绘制的所需要的信息。
示例性有界体块
图4A-4C说明图像处理系统要渲染的二维空间和对应的kd树。为了简单起见,用二维场景来说明kd树的构造,但是kd树也可用于表示三维场景。在图4A-4C的二维图示中,示出分割线以取代分割面,并示出包围区域以取代三维结构中使用的有界体块。但是,本领域技术人员将很快认识到这些概念可很容易地应用到包含物体的三维场景。
图4A说明在要显示在监视器310上的最终图片中要渲染的包含基元410的二维场景405。代表整个场景体块的最大体块被有界体块1(BV1)所包围。在对应的kd树中,这可由顶层节点450来代表,顶层节点450也被认为是根节点或世界节点(world node)。在图像处理系统的一个实施例中,当有界体块包含例如多于两个基元时,图像处理系统可继续将有界体块划分成较小的有界体块。如前面提到的那样,将有界体块继续划分成较小的有界体块的决定可以基于许多因素,但是为了易于解释,在这个例子中,继续划分有界体块的决定仅仅基于基元的数目。如同可从图4A中看到的那样,BV1包含6个基元,因此kd树构造算法可将BV1划分成较小的有界体块。
图4B说明与图4A中所示的相同的二维场景405。但是,在图4B中,树构造算法已经将BV1划分成了两个更小的有界体块BV2和BV3。通过沿着x轴在点x1处绘制分割面SP1415来完成对BV1的划分。对BV1的划分也在kd树中被反映为在内部节点或父节点BV1450下面的两个节点455和460,其分别对应于BV2和BV3。现在,代表BV1的内部节点可存储信息,所述信息诸如但不限于:到BV1下面的两个节点的指针(例如BV2和BV3),分割面是沿哪个轴绘制的(例如x轴),以及分割面是沿着该轴在哪里绘制的(例如在点x1)。
kd树构造算法可继续划分有界体块BV3,这是因为其包含多于预定阈值的基元(例如多于两个基元)。但是,因为有界体块BV2包含少于或等于该数目的基元(例如仅仅两个基元410A),kd树构造算法可以不再继续划分有界体块BV2。不再进一步划分或细分的节点,诸如BV2,也被称为叶节点。
图4C说明与图4B中所示的相同的二维场景405。但是,在图4C中,kd树构造算法已经将BV3划分成了两个更小的有界体块BV4和BV5。kd树构造算法已经利用沿着y轴在点y1处的分割面划分BV3。由于BV3已经被划分成两个子节点,现在它可被称为内部节点。对BV3的划分也在kd树中被反映为两个叶节点465和470,其分别对应于BV4和BV5。BV4和BV5是叶节点,这是因为它们所代表的体块不能被进一步划分成更小的有界体块。两个叶节点BV4和BV5位于内部节点BV3下面,所述内部节点BV3代表在kd树中被划分的有界体块。
代表BV3的内部节点可存储信息,所述信息诸如但不限于:到两个叶节点的指针(即BV4和BV5),分割面是沿哪个轴绘制的(例如y轴),以及分割面是沿该轴在哪里绘制的(例如在点y1)。
现在,因为位于场景中的所有有界体块都包含少于或等于可被包在有界体块内的最大预定数目的基元,kd树构造算法可停止划分有界体块。叶节点可包含到被包在每个叶子所代表的有界体块内的基元的指针。例如,叶节点BV2可包含到基元410A的指针,叶节点BV4可包含到基元410B的指针,并且叶节点BV5可包含到基元410C的指针。
射线跟踪图像处理系统可利用工作量管理器205来遍历空间索引(kd树)。遍历kd树可包括:为了确定射线是否与包含在子节点中的任何基元相交,选择到在kd树的较低层上的节点(子节点)的分支来着手或进行。工作量管理器205可利用所发出的射线的坐标和轨迹来遍历或导航通过kd树。通过执行射线-有界体块相交测试,工作量管理器205可确定射线是否与kd树结构中的节点所代表的有界体块的平面相交。如果射线与仅仅包含基元(即叶节点)的有界体块相交,则工作量管理器205可发送射线和相关联的信息给矢量吞吐量引擎210,以便进行射线-基元相交测试。可执行射线-基元相交测试以确定射线是否与有界体块内的基元相交。与针对碰到包含在场景中的每个基元的射线运行射线-基元相交测试相比,上述方法可使得需要较少的射线-基元相交测试来确定射线是否与场景中的物体相交。
所得到的kd树结构或其它空间索引结构可存储在处理器高速缓存230中。kd树和包括kd树的相应数据的大小可被最优化,以便存储在处理器高速缓存230中。在处理器高速缓存230中存储kd树可允许工作量管理器205利用已经由图像处理系统发出的射线遍历kd树,而无需在每次图像处理系统发出射线时从存储器中检索kd树。
示例性的空间索引划分
图5说明根据本发明的一个实施例的示例性的划分后的空间索引500(即kd树)。可划分空间索引以便在多个处理单元中均匀地分布与遍历空间索引有关的操作。图5中示出的Kd树500可代表要渲染的三维场景。如同上面参照图4描述的那样,工作量管理器可利用定义用以遍历kd树的射线的信息。此外,工作量管理器可包含多个处理线程和存储器高速缓存(例如L1或L2高速缓存)。工作量管理器可通过首先执行射线-有界体块相交测试来遍历kd树500。因为射线与对应于节点的有界体块相交,工作量管理器则可通过采取到与射线相交的节点的分支来遍历kd树500。根据本发明的一个实施例,工作量管理器可继续执行射线-有界体块相交测试并采取到相交节点的分支,直到工作量管理器采取到叶节点的分支为止。当工作量管理器采取到叶节点的分支时,工作量管理器可例如经由收件箱115和/或高速总线225发送射线到矢量吞吐量引擎,以用于射线-基元相交测试。
根据本发明的一个实施例,可利用其每一个在单独的处理内核上的多个工作量管理器来遍历kd树500。图6示出其每一个在单独的处理内核上的多个工作量管理器的一个实施例。图6示出在4个不同的处理内核605A-D上的4个工作量管理器WM1-4。在每个处理内核上还有多个矢量吞吐量引擎VTE1A-VTE4C、共享高速缓存(例如L2高速缓存)和多个存储器映射的收件箱。工作量管理器和矢量吞吐量引擎可通过收件箱和通过高速总线625进行通信。
根据本发明的一个实施例,当遍历空间索引的工作量管理器到达空间索引的预定义的分块或分区时,工作量管理器可发送射线(例如,经由收件箱发送指向定义射线的信息的指针)到不同的(例如第二)工作量管理器。然后,第二工作量管理器可在空间索引中第一工作量管理器停止的点处开始遍历空间索引,并继续遍历空间索引(即,通过执行射线-有界体块相交测试和采取到其它节点的分支)直到第二工作量管理器到达空间索引的叶节点或者另一个分区为止。因而,空间索引可以这样的方式进行划分,即不同的工作量管理器可负责遍历空间索引的不同部分。
例如,如图5所示,在kd树500中绘制虚线分隔线以区分工作量管理器1(WM1)可负责遍历的分区。这条线可表示这样的点,在该点中任何遍历kd树500的工作量管理器(例如WM2、WM3、WM4等)可发送定义射线的信息给WM1。在工作量管理器发送了定义射线的信息给WM1之后,WM1可继续执行与通过WM1负责的kd树部分遍历kd树500有关的任务。类似地,示出第二虚线分隔线作为kd树500中WM2可负责遍历的起点,示出两条虚线分隔线用于指示kd树500中WM3可负责遍历的起点,并示出一条虚线分隔线用于指示kd树中WM4可负责遍历的起点。
根据本发明的一个实施例,可由几个工作量管理器负责空间索引的公共部分。而且,这些工作量管理器中的每一个还可负责遍历空间索引中其他工作量管理器不负责遍历的部分。例如,如图5中的虚线所示,kd树500可被分成多个部分。每个工作量管理器可负责遍历kd树500中在其对应的虚线分隔线下方的部分。此外,每个工作量管理器可负责遍历kd树500中在所有虚线分隔线上方的部分(即kd树500中包括世界节点的部分)。因此,当图像处理系统发出射线到工作量管理器以遍历kd树500时,每个工作量管理器可在世界节点处开始射线的遍历,并继续遍历空间索引,直到到达叶节点或边界为止,其中所述边界指示另一个工作量管理器负责的kd树500中的那部分。
通过使每个工作量管理器负责空间索引中包括世界节点的公共部分,图像处理系统可同时发出多根射线到三维场景中。这可通过在多个工作量管理器处使多根射线同时开始(在世界节点处)遍历空间索引而实现。诸如这样的可高度并行化的系统可减少图像处理系统根据三维场景渲染最终的二维图像所必需的时间。
例如,参考图5,WM1可利用射线在世界节点处开始遍历空间索引。在世界节点之后,WM1可继续遍历空间索引(即,通过执行射线-有界体块相交测试和采取到节点的分支)直到其穿过边界为止,其中所述边界指示另一个工作量管理器负责的WM1试图进入到的空间索引中的那部分。例如,WM1可采取穿过用于WM2的虚线分隔线的分支。这样,WM1可结束遍历空间索引并发送(例如经由收件箱或高速总线)定义射线的信息和表明WM1已经利用射线遍历空间索引而到达了WM1穿过用于WM2的分隔线的点的信息。WM1可经由收件箱615和通信网络625发送所述定义射线的信息到WM2。接下来,WM2可利用射线从WM1停止的点开始继续遍历kd树,直到WM2到达叶节点为止。
根据本发明的一个实施例,图像处理系统可确定如何或者在哪里划分空间索引。确定如何或者在哪里划分空间索引可基于单个因素或几个因素。根据本发明的一个实施例,确定在哪里分割空间索引可基于任意多个因素,包括但不限于要分配给每个工作量管理器的节点数目、要分配给每个工作量管理器的叶节点中所包含的基元数目、或可划分空间索引的任何其它合适的分割。
此外,根据本发明的一个实施例,可基于与空间索引的使用有关的性能度量(例如空间索引的实际使用率)来划分空间索引。例如,性能度量可定义遍历空间索引不同部分的射线的数量。可以周期性间隔计算性能度量,并且可基于周期性间隔收集的性能度量来重新划分空间索引。基于性能度量划分空间索引可使得每个工作量管理器被分配以不同数目的节点。
例如,如图5所示,已经基于每个工作量管理器要负责的叶节点的数目而确定了kd树的划分部分。如图5中弧形的阴影区域所示,每个工作量管理器负责7到10个叶节点。因此,确定在哪里划分kd树使得每个工作量管理器负责大致相同数目的叶节点。通过以这种方式均匀地分布每个工作量管理器负责的节点数目,可减少提交给每个工作量管理器的工作量(即,与遍历空间索引有关的计算)的数量。
尽管根据本发明的一个实施例,图5示出的kd树具有71个节点,但是整个空间索引可具有多得多的节点(例如数十万或数百万个节点)。而且,每个节点可能需要几个字节来定义数据(例如8字节)。因此,整个空间索引可能需要大量的存储空间。
为了降低利用射线跟踪图像处理系统来渲染最终图像所必需的时间量,可能希望将空间索引高速缓存到片上高速缓存存储器(例如多核处理单元605A的L2高速缓存)中,而不是存储到片外存储器中。但是,包含许多节点的复杂空间索引可能需要大量的存储空间,以至于在片上高速缓存中存储空间索引可能不可行或低效率。
通过划分空间索引,可能能够减少工作量管理器遍历空间索引所需要的高速缓存存储器的数量。如上所述,遍历划分后的空间索引的工作量管理器可负责遍历空间索引的一些部分,相应地,它们可能不负责遍历空间索引的其它部分。因而,工作量管理器(例如605A)可能只需要在其片上高速缓存存储器(例如工作量管理器605A的L2高速缓存存储器)中存储空间索引中工作量管理器负责遍历的那一部分或那些部分。因此,通过仅仅存储空间索引的一部分,减少了工作量管理器遍历空间索引所需要存储的信息量,并减少了存储空间索引所必需的高速缓存存储器空间的量。
结论
总而言之,图像处理系统可将空间索引划分成不同部分。通过划分空间索引,不同的工作量管理器可负责执行与遍历空间索引的不同部分相关的操作。特定的工作量管理器可仅仅负责遍历整个空间索引的一部分。因而,该工作量管理器可能仅仅需要用于定义空间索引中该工作量管理器负责遍历的部分的信息。这可减少存储用于定义该工作量管理器负责的空间索引的信息所需要的高速缓存存储器空间的量。
尽管前面所述的是本发明的实施例,但是可以设想到本发明的其它或进一步的实施例而不背离本发明的基本范围,并且本发明的范围由所附权利要求来确定。

Claims (21)

1.一种用于划分具有节点的空间索引的方法,其中所述节点定义三维场景的有界体块,所述方法包括:
提供第一处理单元和第二处理单元;以及
将所述空间索引至少划分成第一部分和第二部分,其中所述第一处理单元可操作来执行与使射线遍历所述第一部分相关联的一个或多个算法,并且其中所述第二处理单元可操作来执行与使射线遍历所述第二部分相关联的一个或多个算法。
2.如权利要求1所述的方法,其中所述方法还包括:
将所述空间索引划分成第三部分,其中所述第一处理单元和所述第二处理单元执行与使射线遍历所述第三部分相关联的算法。
3.如权利要求1或2所述的方法,其中所述第一处理单元位于第一处理内核上,而所述第二处理单元位于第二处理内核上。
4.如权利要求1、2或3所述的方法,其中划分所述空间索引包括:
确定在所述空间索引中的节点的数目;以及
基于所述空间索引中的节点的数目,划分所述空间索引以使得所述空间索引中的节点的数目均匀分布在所述第一处理单元和所述第二处理单元之间。
5.如权利要求1、2或3所述的方法,其中划分所述空间索引包括:
确定所述第一处理单元或所述第二处理单元中的至少一个的工作量;以及
划分所述空间索引以使得所述工作量均匀分布在所述第一处理单元和所述第二处理单元之间。
6.如权利要求1、2或3所述的方法,其中划分所述空间索引包括:
确定包含在所述空间索引的叶节点中的基元的数目;以及
基于包含在所述空间索引的叶节点中的基元的数目,划分所述空间索引以使得所述基元的数目均匀分布在所述第一处理单元和所述第二处理单元之间。
7.如权利要求1-6中任一项所述的方法,其中所述第一部分被存储在所述第一处理单元的存储器高速缓存中,并且其中所述第二部分被存储在所述第二处理单元的存储器高速缓存中。
8.如权利要求1-7中任一项所述的方法,其中将所述空间索引至少划分成所述第一部分和所述第二部分以周期性的间隔发生。
9.一种用于遍历具有节点的空间索引的方法,其中所述节点定义三维场景的有界体块,所述方法包括:
通过创建至少一个经过所述空间索引的至少一个分支的分区边界,将所述空间索引至少划分成第一分区和第二分区;
产生进入所述场景中的射线;
通过采取从内部节点开始的分支直到到达叶节点来遍历所述空间索引,其中基于所述射线是否与由所述节点定义的有界体块相交来采取分支;以及
当包含所述分区边界的所述分支被采取时,将定义所述射线的信息从第一处理单元传送到第二处理单元。
10.如权利要求9所述的方法,其中划分所述空间索引包括:
确定在所述空间索引中的节点的数目;以及
创建所述分区边界以使得所述空间索引中的节点的数目均匀分布在所述第一分区和所述第二分区之间。
11.如权利要求9所述的方法,其中划分所述空间索引包括:
确定所述第一处理单元或所述第二处理单元中的至少一个的工作量;以及
创建所述分区边界以使得所述工作量均匀分布在所述第一处理单元和所述第二处理单元之间。
12.如权利要求9-11中任一项所述的方法,其中所述第一处理单元位于第一处理内核上,而所述第二处理单元位于第二处理内核上。
13.如权利要求9-12中任一项所述的方法,其中所述第一部分被存储在所述第一处理单元的存储器高速缓存中,并且其中所述第二部分被存储在所述第二处理单元的存储器高速缓存中。
14.一种系统,包括:
具有节点的空间索引,所述节点定义三维场景的有界体块;
第一处理单元;
第二处理单元;以及
图像处理系统,被配置成将所述空间索引至少划分成第一部分和第二部分,其中所述第一处理单元可操作来执行与使射线遍历所述第一部分相关联的算法,并且其中所述第二处理单元可操作来执行与使射线遍历所述第二部分相关联的一个或多个算法。
15.如权利要求14所述的系统,其中所述图像处理系统被进一步配置成将所述空间索引划分成第三部分,其中所述第一处理单元和所述第二处理单元执行与使射线遍历所述第三部分相关联的算法。
16.如权利要求14或15所述的系统,还包括:
第一处理内核;以及
第二处理内核;并且
其中所述第一处理单元位于所述第一处理内核上,而所述第二处理单元位于所述第二处理内核上。
17.如权利要求14、15或16所述的系统,其中所述图像处理系统被进一步配置成:
确定在所述空间索引中的节点的数目;以及
基于在所述空间索引中的节点的数目,划分所述空间索引以使得所述空间索引中的节点的数目均匀分布在所述第一处理单元和所述第二处理单元之间。
18.如权利要求14、15或16所述的方法,其中所述图像处理系统被进一步配置成:
确定所述第一处理单元或所述第二处理单元中的至少一个的工作量;以及
划分所述空间索引以使得所述工作量均匀分布在所述第一处理单元和所述第二处理单元之间。
19.如权利要求14、15或16所述的方法,其中所述图像处理系统被进一步配置成:
确定包含在所述空间索引的叶节点中的基元的数目;以及
基于包含在所述空间索引的叶节点中的基元的数目,划分所述空间索引以使得所述基元的数目均匀分布在所述第一处理单元和所述第二处理单元之间。
20.如权利要求14-19中任一项所述的系统,还包括:
用于所述第一处理单元的高速缓存存储器;以及
用于所述第二处理单元的高速缓存存储器;并且
其中所述第一部分被存储在用于所述第一处理单元的所述高速缓存存储器中,并且所述第二部分被存储在用于所述第二处理单元的所述高速缓存存储器中。
21.一种用于划分具有节点的空间索引的计算机程序,其中所述节点定义三维场景的有界体块,所述计算机程序包括适用于执行以下将所述空间索引至少划分成第一部分和第二部分的步骤的程序代码手段,其中第一处理单元可操作来执行与使射线遍历所述第一部分相关联的一个或多个算法,并且其中第二处理单元可操作来执行与使射线遍历所述第二部分相关联的一个或多个算法,当程序在计算机上运行时执行所述步骤。
CN200780030994XA 2006-08-22 2007-08-21 用于划分空间索引的方法和系统 Active CN101506847B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/466,129 US8243081B2 (en) 2006-08-22 2006-08-22 Methods and systems for partitioning a spatial index
US11/466,129 2006-08-22
PCT/EP2007/058680 WO2008023020A2 (en) 2006-08-22 2007-08-21 Methods and systems for partitioning a spatial index

Publications (2)

Publication Number Publication Date
CN101506847A true CN101506847A (zh) 2009-08-12
CN101506847B CN101506847B (zh) 2012-03-28

Family

ID=39107159

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200780030994XA Active CN101506847B (zh) 2006-08-22 2007-08-21 用于划分空间索引的方法和系统

Country Status (5)

Country Link
US (1) US8243081B2 (zh)
EP (1) EP2054858A2 (zh)
JP (1) JP5063695B2 (zh)
CN (1) CN101506847B (zh)
WO (1) WO2008023020A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111221813A (zh) * 2018-11-27 2020-06-02 阿里巴巴集团控股有限公司 数据库索引以及数据库查询的处理方法、装置及设备

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7245923B2 (en) * 2003-11-20 2007-07-17 Intelligent Spatial Technologies Mobile device and geographic information system background and summary of the related art
US8060112B2 (en) 2003-11-20 2011-11-15 Intellient Spatial Technologies, Inc. Mobile device and geographic information system background and summary of the related art
US7418341B2 (en) * 2005-09-12 2008-08-26 Intelligent Spatial Technologies System and method for the selection of a unique geographic feature
US8538676B2 (en) * 2006-06-30 2013-09-17 IPointer, Inc. Mobile geographic information system and method
US7852336B2 (en) * 2006-11-28 2010-12-14 International Business Machines Corporation Dynamic determination of optimal spatial index mapping to processor thread resources
JP5024668B2 (ja) * 2007-07-10 2012-09-12 富士ゼロックス株式会社 画像形成装置および情報処理装置
US8253730B1 (en) * 2008-08-29 2012-08-28 Adobe Systems Incorporated System and method for construction of data structures for ray tracing using bounding hierarchies
JP5436574B2 (ja) 2008-12-22 2014-03-05 インテリジェント スペイシャル テクノロジーズ,インク. ポインティングによって現実世界のオブジェクトとオブジェクト表現とをリンクさせるシステム及び方法
EP2361424A1 (en) 2008-12-22 2011-08-31 Intelligent Spatial Technologies, Inc. System and method for exploring 3d scenes by pointing at a reference object
CA2748026A1 (en) * 2008-12-22 2010-07-01 Intelligent Spatial Technologies, Inc. System and method for initiating actions and providing feedback by pointing at object of interest
US8483519B2 (en) 2008-12-22 2013-07-09 Ipointer Inc. Mobile image search and indexing system and method
EP2377055A4 (en) * 2008-12-30 2013-04-17 Intelligent Spatial Technologies Inc MOBILE IMAGE SEARCH AND INDEXING SYSTEM AND METHOD
US8350846B2 (en) * 2009-01-28 2013-01-08 International Business Machines Corporation Updating ray traced acceleration data structures between frames based on changing perspective
US8619078B2 (en) * 2010-05-21 2013-12-31 International Business Machines Corporation Parallelized ray tracing
US8629867B2 (en) 2010-06-04 2014-01-14 International Business Machines Corporation Performing vector multiplication
US8692825B2 (en) 2010-06-24 2014-04-08 International Business Machines Corporation Parallelized streaming accelerated data structure generation
CN104156362B (zh) * 2013-05-14 2017-04-19 视辰信息科技(上海)有限公司 一种大规模图像特征点匹配方法
US9035946B1 (en) 2014-02-13 2015-05-19 Raycast Systems, Inc. Computer hardware architecture and data structures for triangle binning to support incoherent ray traversal
US9842424B2 (en) * 2014-02-10 2017-12-12 Pixar Volume rendering using adaptive buckets
CN110580251B (zh) * 2019-07-19 2023-01-17 中国科学院信息工程研究所 一种大数据环境下的群体轨迹伴随模式在线分析方法和系统
US11970185B2 (en) * 2021-10-01 2024-04-30 Ford Global Technologies, Llc Data structure for storing information relating to an environment of an autonomous vehicle and methods of use thereof

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02242387A (ja) 1989-03-15 1990-09-26 Fujitsu Ltd 空間分割型並列画像生成装置
GB9424273D0 (en) * 1994-12-01 1995-01-18 Wrigley Adrian M T Improvements in and relating to image constrcution
US6111582A (en) * 1996-12-20 2000-08-29 Jenkins; Barry L. System and method of image generation and encoding using primitive reprojection
JP3889195B2 (ja) * 1999-02-03 2007-03-07 株式会社東芝 画像処理装置、画像処理システムおよび画像処理方法
US7495664B2 (en) * 2000-06-19 2009-02-24 Mental Images Gmbh Instant ray tracing
US7002571B2 (en) * 2002-06-04 2006-02-21 Intel Corporation Grid-based loose octree for spatial partitioning
DE10239672B4 (de) * 2002-08-26 2005-08-11 Universität des Saarlandes Verfahren und Vorrichtung zur Erzeugung einer zweidimensionalen Abbildung einer dreidimensionalen Struktur
US7012604B1 (en) * 2002-09-12 2006-03-14 Advanced Micro Devices, Inc. System architecture for high speed ray tracing
CN1410948A (zh) * 2002-09-23 2003-04-16 清华大学 平面和球面非线性折射和反射的实时光线跟踪方法
CN1264062C (zh) * 2002-12-31 2006-07-12 清华大学 一种多视角x射线立体成像的方法与系统
US7164420B2 (en) * 2003-07-24 2007-01-16 Autodesk, Inc. Ray tracing hierarchy
DE102004007835A1 (de) * 2004-02-17 2005-09-15 Universität des Saarlandes Vorrichtung zur Darstellung von dynamischen komplexen Szenen
CN101091175B (zh) * 2004-09-16 2012-03-14 辉达公司 负载均衡
US7737974B2 (en) * 2006-09-27 2010-06-15 International Business Machines Corporation Reallocation of spatial index traversal between processing elements in response to changes in ray tracing graphics workload

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111221813A (zh) * 2018-11-27 2020-06-02 阿里巴巴集团控股有限公司 数据库索引以及数据库查询的处理方法、装置及设备
CN111221813B (zh) * 2018-11-27 2023-06-23 阿里巴巴集团控股有限公司 数据库索引以及数据库查询的处理方法、装置及设备

Also Published As

Publication number Publication date
US8243081B2 (en) 2012-08-14
CN101506847B (zh) 2012-03-28
JP2010501922A (ja) 2010-01-21
WO2008023020A2 (en) 2008-02-28
JP5063695B2 (ja) 2012-10-31
EP2054858A2 (en) 2009-05-06
US20080049016A1 (en) 2008-02-28
WO2008023020A3 (en) 2008-05-08

Similar Documents

Publication Publication Date Title
CN101506847B (zh) 用于划分空间索引的方法和系统
US7940265B2 (en) Multiple spacial indexes for dynamic scene management in graphics rendering
US7940266B2 (en) Dynamic reallocation of processing cores for balanced ray tracing graphics workload
US8018453B2 (en) Deferred acceleration data structure optimization for improved performance
US8004518B2 (en) Combined spatial index for static and dynamic objects within a three-dimensional scene
US8089481B2 (en) Updating frame divisions based on ray tracing image processing system performance
KR101054702B1 (ko) 광선 추적 이미지 처리 시스템의 픽셀 컬러 결정
JP5476138B2 (ja) 変化する視野に基づいてフレーム間の光線追跡のアクセラレーション・データ構造体を更新する方法
US7773087B2 (en) Dynamically configuring and selecting multiple ray tracing intersection methods
JP5043939B2 (ja) 3次元シーンの境界ボリュームを定めるノードを有する空間インデックスを用いる光線追跡のための操作を行なうプログラムを含むコンピュータ可読媒体及びシステム
US8339398B2 (en) Integrated acceleration data structure for physics and ray tracing workload
US7737974B2 (en) Reallocation of spatial index traversal between processing elements in response to changes in ray tracing graphics workload
US20080122838A1 (en) Methods and Systems for Referencing a Primitive Located in a Spatial Index and in a Scene Index
CN100570638C (zh) 分发工作负载的方法和图像处理系统
CN100557638C (zh) 执行射线追踪的方法和系统
US20080231627A1 (en) Using Ray Tracing to Enhance Artificial Intelligence Character Behavior
JP2009525526A (ja) ビーム放出によって仮想画像を合成するための方法
US20080079714A1 (en) Workload Distribution Through Frame Division in a Ray Tracing Image Processing System
US8102389B2 (en) Box casting using an integrated acceleration data structure
US20080079715A1 (en) Updating Spatial Index Partitions Based on Ray Tracing Image Processing System Performance

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant