CN106558091A - 用于遍历树的设备和遍历树的方法 - Google Patents
用于遍历树的设备和遍历树的方法 Download PDFInfo
- Publication number
- CN106558091A CN106558091A CN201610851588.0A CN201610851588A CN106558091A CN 106558091 A CN106558091 A CN 106558091A CN 201610851588 A CN201610851588 A CN 201610851588A CN 106558091 A CN106558091 A CN 106558091A
- Authority
- CN
- China
- Prior art keywords
- node
- tree
- traversal
- memory
- information
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/005—Tree description, e.g. octree, quadtree
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/60—Shadow generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种用于遍历树的设备和遍历树的方法。一种遍历树的光线跟踪方法,包括:基于树的父节点的多个子节点是否为针对第一光线的有效遍历目标的确定,将多个子节点中的任意一个子节点确定为目标节点;并通过使用剩余子节点的路径码作为关键值,将关于多个子节点中不是目标节点的剩余子节点的信息存储在存储器中。
Description
本申请要求于2015年9月24日提交到韩国知识产权局的第10-2015-0135548号韩国专利申请的权益,所述韩国专利申请的全部公开通过出于所有目的的引用被包含于此。
技术领域
一个或多个实施例涉及一种遍历树的设备和方法。
背景技术
三维(3D)渲染是指一种图像处理方法,藉此,3D对象数据被合成到从相机(例如,虚拟相机)的视点观看的图像中。光线跟踪是指跟踪来自视点的将被渲染的场景对象与光线相交的点的过程。光线跟踪通常包括树(作为加速结构的一部分)的遍历和光线与由加速结构表示的相应图元之间的相交测试。针对遍历和相交测试,大的计算负荷和宽的存储器带宽可在图形渲染期间引发与较高的计算机资源使用有关的问题(诸如滞后、延迟、未渲染和/或振动),因此这代表了在3D渲染中的计算机相关问题。
发明内容
提供本发明内容从而以简化形式引入对以下在具体实施方式中进一步描述的构思的选择。本发明内容不意图标识要求保护的主题的关键特征或必要特征,也不意图用作帮助确定要求保护的主题的范围。
一种遍历树的光线跟踪方法,包括:基于对树的父节点的多个子节点是否为第一光线的有效遍历目标的确定,将多个子节点中的任意一个子节点确定为目标节点;并通过使用其余子节点的路径码作为关键值,将关于多个子节点中不是目标节点的其余子节点的信息存储在存储器中。
所述方法还可包括:通过使用其余节点的路径码作为关键值从存储器读取其余子节点的信息,针对第二光线对其余子节点进行遍历。
所述存储器可由对不同光线进行遍历的多个树遍历单元共享。
所述存储器可以是高速缓冲存储器。
关于作为当前目标节点的父节点的路径信息,以及多个子节点中的第一子节点相对于第一光线的相对位置与多个子节点中的第二子节点相对于第一光线的相对位置进行比较,可被用于将目标节点确定为下一目标节点。
当多个子节点是否为有效遍历目标的确定指示多个子节点均不是有效遍历目标,和指示对应于树的非根节点的信息是否存储在存储器中的位堆栈时,可终止对树的遍历。
当多个子节点是否为有效遍历目标的确定指示多个子节点均不是有效遍历目标,或者针对父节点没有子节点时,可终止对父节点的遍历;可从对应于作为当前目标节点的父节点的路径信息获得下一目标节点的路径码;可更新位堆栈的值,所述位堆栈的值指示对应于非根节点的信息是否存储在存储器中;并可通过使用下一目标节点的路径码作为关键值,从存储器获得对应于下一目标节点的信息。
对应于下一目标节点的信息可包括地址和解码信息。
所述方法还可包括经由相交测试从多个子节点确定有效遍历目标。
在信息的存储中,指示对应于其余子节点的信息是否存储在存储器中的信息针对树的每个深度被存储在位堆栈中。
已将计算机程序记录其上来控制一个或多个处理装置的非暂时性计算机可读记录介质可实施所述方法。
一种光线跟踪设备包括:树遍历处理器单元,均被配置为基于树的父节点的多个子节点是否为针对第一光线的有效遍历目标的确定,将多个子节点中的任意一个子节点确定为目标节点;存储器单元,被配置为通过使用剩余子节点的路径码作为关键值,将关于多个子节点中不是目标节点的剩余子节点的信息存储在存储器中。
树遍历处理器单元中的每一个树遍历处理器单元还均可被配置为通过使用剩余节点的路径码作为关键值从存储器读取剩余子节点的信息,针对第二光线确定剩余子节点。
所述存储器可被配置为由对不同光线进行遍历的树遍历处理器单元中的至少两个树遍历处理器单元共享。
所述存储器可以是高速缓冲存储器。
关于作为当前目标节点的父节点的路径信息,以及多个子节点中的第一子节点相对于第一光线的相对位置可与多个子节点中的第二子节点相对于第一光线的相对位置进行比较,可被树遍历处理器单元中的每一个树遍历处理器单元用于将目标节点确定为下一目标节点。
当由树遍历处理器单元中的每一个树遍历处理器单元对多个子节点是否为有效遍历目标的确定指示多个子节点均不是有效遍历目标,和指示对应于树的非根节点的信息是否存储在存储器的位堆栈时,终止对树的遍历。
当通过树遍历处理器单元中的每一个树遍历处理器单元对多个子节点是否为有效遍历目标的确定指示多个子节点均不是有效遍历目标,或者针对父节点没有子节点时,可终止对父节点的遍历;可从对应于作为父节点的路径信息获得下一目标节点的路径码,所述父节点作为当前目标节点;可更新位堆栈的值,所述位堆栈的值指示对应于非根节点的信息是否存储在存储器单元中;并可通过使用下一目标节点的路径码作为关键值,从存储器单元获得对应于下一目标节点的信息。
对应于下一目标节点的信息可包括地址和解码信息。
树遍历处理器单元中的每一个树遍历处理器单元还可被配置为经由相交测试从多个子节点确定有效遍历目标。
树遍历处理器单元中的每一个树遍历处理器单元可被配置为针对树的每个深度将指示对应于剩余子节点的信息是否存储在存储器单元中的信息存储在位堆栈中。
一种光线跟踪设备包括:第一遍历单元,被配置为通过经由访问存储器读取包围盒的图形信息,使用加速树的对应节点的路径码作为关键值,针对第一光线对加速树进行遍历;第二遍历单元,被配置为通过经由访问存储器读取包围盒的图形信息,使用加速树的对应节点的路径码作为关键值,针对第二光线对加速树进行遍历。存储在存储器中的包围盒的图形信息是在通过另一光线对加速树的先前遍历的期间存储到存储器的从外部存储器读取的图形信息。
从下面的具体实施方式、附图和权利要求。其他特征和方面将会是清楚的。
附图说明
图1是示出光线跟踪的示例的示图。
图2是示出光线跟踪核的示例的框图。
图3是示出由光线跟踪核执行的光线跟踪的示例的框图。
图4是示出光线跟踪的方法的示例的示图。
图5是示出使用加速结构的光线跟踪的方法的示例的示图。
图6是示出根据实施例的树遍历设备的框图。
图7是示出根据实施例的遍历树的方法的流程图。
图8是示出由树遍历单元使用来遍历树的方法的示例的流程图。
图9、图10、图11、图12、图13、图14、图15、图16、图17、图18、图19、图20、图21和图22是示出根据一个或多个实施例的遍历树的方法的示图。
具体实施方式
此外,虽然本发明构思使用的术语是从公知和常用术语中选择的,但是在本发明构思的描述中提到的术语中的一些术语已经由申请人出于他或她的谨慎而选择,将在这里的描述的相关部分中描述所述术语的具体含义。此外,要求不仅简单地通过使用的实际术语还要通过每个术语隐藏的含义来理解本发明构思。
虽然诸如“第一”、“第二”等的这类术语可用于描述各种组件,但是这类组件一定不能限于上面的术语。上面的术语只是用于从另一组件区分一个组件。
本发明构思中使用的术语仅仅用于描述特定的实施例,而意图不在于限制本发明构思。除非以单数形式使用的表述在上下文中具有清楚地不同含义,否则它包括复数的表述。此外,贯穿说明书,将理解,当一个部分被称为“连接到”另一部分时,它可“直接连接到”其他部分或通过另一元件“电连接到”其他部分。
在描述本发明构思的上下文中(特别是在上面的权利要求的上下文中)的术语“一个”、“这个”和类似指示物的使用将被视为覆盖单数和复数两者。此外,除非这里另外指出或上下文另外清楚地否认,否则这里描述的所有方法的操作可按任意合适的顺序来执行。实施例不限于操作的描述顺序。
贯穿本说明书的短语“在一些实施例中,”“在某些实施例中,”“在各种实施例中,”和类似语言的出现可,但未必都指代相同的实施例,并且除非另外明确规定,否则不应该将所述短语理解成意思为“一个或多个但未必所有的实施例”。
可根据方框组件和各种处理操作对实施例进行描述。这样的方框可通过任意数量的被配置为执行操作的硬件和组件来实现。例如,实施例可使用可在一个或多个微型处理器或其他控制装置的控制下执行各种各样的任务的各种集成电路组件(例如,存储器元件、处理元件、逻辑元件、查找表等)。类似地,在使用硬件的编程来实施元件的地方,可使用任意编程或脚本语言(诸如,C、C++、Java和assembler等)和使用数据结构、对象、过程、程序或其他编程元件的任意组合实施的各种算法来实施实施例,所述算法被编码或包括在非暂时性计算机或处理器可读介质中/上。可在执行在一个或多个处理器上的算法中实施方面。此外,实施例可使用用于电子配置、信号处理和/或控制、数据处理等的任意数量的常规技术。
此外,在呈现的各种示图中示出的任何连接线或连接器意图在于表示各种元件之间的示例性关系和/或物理或逻辑连接。应注意,很多可选的或额外的关系、物理连接或逻辑连接可出现在实际的装置中。
现在将对附图中示出其示例的实施例做出详细的参照,其中,相同的参考标号始终表示相同的元件。就这一点而言,实施例可具有不同的形式,并不应被视为限制到这里提出的描述。因此,下面仅仅通过参照附图描述实施例来解释本描述的方面。
图1是示出光线跟踪的示例的示图。参照图1,在三维(3D)建模中,光线跟踪核可确定视点10和根据视点10的图像20。当确定视点10和图像20时,光线跟踪核针对图像20的每个像素从视点10产生光线。
将描述光线跟踪的元件。初级光线30是从视点10产生。初级光线30在穿过图像20之后与场景对象70相交。反射光线40和折射光线50是在初级光线30与场景对象70之间的交点处产生。阴影光线60是在交点处产生,并向光源80延伸。反射光线40、折射光线50和阴影光线60被称为次级光线。场景对象70表示针对图像20将被渲染的对象。场景对象70包括多个图元。
光线跟踪核对初级光线30、次级光线(即,反射光线40、折射光线50和阴影光线60)以及从次级光线衍生的光线进行分析。光线跟踪核基于分析结果诸如通过光线跟踪核的着色器确定形成图像20的像素中的每一个像素的颜色值。光线跟踪核通过考虑场景对象70的特性来确定像素的颜色值。
图2是示出光线跟踪核100的示例的框图。参照图2,光线跟踪核100包括光线产生单元110、遍历(TRV)单元120、相交测试(IST)单元130、着色单元140。在图2中,TRV单元120和IST单元130被示出为被包括在光线跟踪核100中,但是TRV单元120和IST单元130也可被单独包括作为其他硬件。在图2中示出的光线跟踪核100只包括与实施例有关的元件。然而,对于全面理解本说明书的一个本领域技术人员将显而易见的是,根据实施例,除了在图2中示出的元件之外的其他通用元件可被进一步包括在光线跟踪核100中,并且图2的元件中的一些元件可不被包括在光线跟踪核100中。
光线跟踪核100跟踪产生的光线与位于3D空间中的对象之间的交点,并确定形成图像的像素的颜色值。换言之,光线跟踪核100搜索光线与对象之间的交点,根据交点处的对象的特性产生次级光线,以及确定交点的颜色值。
光线跟踪核100可在加速结构的遍历和相交测试中使用先前遍历和先前相交测试的结果。即,光线跟踪核100可通过将从先前渲染获得的结果应用到当前渲染来更快执行渲染。
光线产生单元110产生初级光线和次级光线。光线跟踪核100从视点产生第一光线。光线产生单元110在初级光线与对象之间的交点处产生反射、折射和/或阴影次级光线。此外,另一次级光线可在上面的次级光线与对象之间的交点处产生。光线产生单元110可产生小于或等于阈值数量的次数的反射光线、折射光线和/或阴影光线,或可根据对象的特性确定产生反射光线、折射光线和/或阴影光线的次数。
TRV单元120接收关于由光线产生单元110产生的光线的信息。如上所述,产生的光线可以是初级光线、次级光线或从次级光线衍生的光线。例如,针对初级光线,TRV单元120可接收关于产生的光线的视点和方向的信息。同样,针对次级光线,TRV单元120可接收关于次级光线的起始点和方向的信息。次级光线的起始点表示初级光线已命中对象的点。视点或起始点可用坐标来表示,而方向可用例如矢量来表示。
TRV单元120从外部存储器250读取关于加速结构的信息。加速结构是通过加速结构产生设备200产生,而且产生的加速结构被存储在外部存储器250中。加速结构表示包括3D空间中的对象的位置信息的结构。例如,加速结构可以是K维(KD)树或包围盒层次(BVH)。
TRV单元120遍历加速结构以将光线已命中的对象或叶节点输出。例如,TRV单元120搜索包括在加速结构中的节点,以将从最低等级叶节点中已被光线命中的叶节点输出到IST单元130。换言之,TRV单元120确定形成加速结构的包围盒中的哪个包围盒被光线命中。TRV单元120确定包括在这样的包围盒中的哪个对象被光线命中。关于被命中的对象的信息被存储在TRV高速缓冲存储器中。包围盒可表示包括多个对象或多个图元的空间(例如,三维空间)的单元,并可根据不同的加速结构以不同的形式来表示。TRV高速缓冲存储器表示用于存储由TRV单元120在遍历中使用的数据的存储器。
TRV单元120可基于先前渲染设备的结果对加速结构进行遍历。TRV单元120可基于存储在TRV高速缓冲存储器中的先前渲染的结果,经由与先前渲染相同的路径对加速结构进行遍历。例如,当TRV单元120就产生的光线对加速结构进行遍历时,TRV单元120可对被与产生的光线具有相同的相应视点和相同方向的先前光线所命中的包围盒进行遍历。TRV单元120可通过参考针对先前光线的搜索路径对加速结构进行遍历。
IST单元130从TRV单元120接收被光线命中的对象或叶节点,并从外部存储器250读取关于包括在被命中的对象中的图元的信息。关于读取的图元的信息可被存储在IST高速缓冲存储器中。IST高速缓冲存储器表示存储由IST单元130在相交测试中使用的数据的存储器。
IST单元130进行光线和图元之间的相交测试,以输出被光线命中的图元以及交点。IST单元130从TRV单元120接收关于哪个对象被光线命中的信息,并测试包括在被命中的对象中的哪些图元被光线命中。响应于IST单元130找到被光线命中的图元,IST单元130输出指示被命中的图元的哪个点与光线相交的交点。交点可以以例如坐标的形式被输出到着色单元140。
IST单元130可基于先前渲染的结果来进行相交测试。IST单元130可首先对与先前渲染的图元相同的图元进行相交测试,其中,先前渲染的先前结果被存储在IST高速缓冲存储器中。例如,当IST单元130进行产生的光线和图元之间的相交测试时,IST单元130可对被与产生的光线具有相同视点和相同方向的先前光线命中的图元进行相交测试。
着色单元140基于从IST单元130接收的关于交点的信息以及交点的材料的属性来确定像素的颜色值。着色单元140通过考虑交点的材料的基本颜色以及由于光源而导致的效果来确定像素的颜色值。
光线跟踪核100从外部存储器250接收用于光线跟踪的数据。由加速结构产生单元200产生的加速结构或者指示关于图元的信息的几何数据被存储在外部存储器250中。图元可以是多边形(诸如三角形或矩形等),几何数据可指示关于包括在对象中的图元的顶点和位置的信息。
加速结构产生设备200产生包括关于对象在3D空间中的位置信息的加速结构。加速结构产生设备200可产生各种类型的加速结构。例如,可通过将3D空间划分成分层树结构来产生加速结构,加速结构产生设备200可通过应用BVH或KD树来产生指示在3D空间中对象之间的关系的结构。加速结构产生设备200可确定叶节点的图元的最大数量以及树的深度,并基于确定的最大数量和确定的树的深度来产生加速结构。
图3是示出由光线跟踪核执行的光线跟踪的示例的框图。仅作为示例,光线跟踪核可具有在图2中示出的光线跟踪核100的结构。因此,光线跟踪核100的以上描述也适用于图3的光线跟踪。
在操作310,光线跟踪核100产生光线。光线跟踪核100产生初级光线、次级光线和/或从次级光线衍生的光线。
在操作320,光线跟踪核100对从外部存储器250读出的加速结构进行遍历。光线跟踪核100通过基于产生的光线的视点和方向对加速结构251进行遍历来检测被光线命中的包围盒。光线跟踪核100从包括在被命中的包围盒中的对象中检测被光线命中的对象。光线跟踪核100重复对加速结构251的遍历,直到检测到被命中的对象为止。例如,光线跟踪核100沿预定路径对加速结构进行遍历,并且当搜索的路径上的叶节点未被光线命中时,光线跟踪核100对加速结构中的其它路径进行遍历。
光线跟踪核100可顺序地对所有路径进行遍历,但可基于先前光线的搜索信息首先对预定路径进行遍历。例如,当先前光线与当前光线具有相同或相似的视点并且是在相同或相似的方向上时,光线跟踪核100可搜索被命中的叶节点包括在先前节点中的路径。
在操作330,光线跟踪核100基于从外部存储器250读出的图元的几何数据252进行相交测试。光线跟踪核100重复相交测试,直到检测到被命中的图元为止。例如,光线跟踪核100对图元进行相交测试,并且当任何图元被光线命中时,光线跟踪核100对另一图元进行相交测试。
光线跟踪核100可顺序地对所有图元进行相交测试,但也可基于关于先前光线的相交测试的信息首先对预定图元进行测试。例如,当先前光线和当前光线具有相同或相似的视点并且是在相同或相似的方向上时,光线跟踪核100可首先对被先前光线命中的图元进行相交测试。
在操作340,光线跟踪核100基于相交测试进行像素的着色。在操作340完成之后,光线跟踪核100针对形成图像的另一像素进行至操作310。以这种方式,光线跟踪核100针对形成图像的所有像素重复操作310至340。
图4是示出使用加速结构的光线跟踪的方法的示例的示图。参照图4,第一图像412是在t0被渲染的图像,第二图像422是在t1被渲染的图像。由于只有兔子433在第一图像412和第二图像422中移动,并且矩形431和三角形432未移动,所以第一图像412和第二图像422彼此相似。因此,光线跟踪核100可通过使用渲染第一图像412的结果来对第二图像422进行渲染。例如,当第一视点410和第二视点420在相同位置,并且第一光线411和第二光线421在相同方向上延伸时,光线跟踪核100可通过应用针对第一光线411的光线跟踪的结果来使第二光线421的光线跟踪加速。例如,当针对第二光线421进行搜索时,光线跟踪核100的TRV单元120可首先对被第一光线411命中的包围盒进行遍历。此外,在对第二光线的相交测试期间,光线跟踪核100的IST单元130可首先对被第一光线411命中的三角形432进行相交测试。
图5是示出使用加速结构(诸如在图4中示出的加速结构)的光线跟踪的方法的示例的示图。参照图5,加速结构包括五个节点,节点1至节点5,并且节点3至节点5均表示叶节点。
TRV单元120可沿三条路径搜索加速结构。首先,TRV单元120可沿形成或表示第一路径的节点1、节点2和节点3对加速结构进行遍历。其次,TRV单元120可沿形成或表示第二路径的节点1、节点2和节点4对加速结构进行遍历。第三,TRV单元120可沿形成或表示第三路径的节点1和节点5对加速结构进行遍历。当TRV单元120针对第二光线421进行搜索时,TRV单元120首先对第二路径进行遍历,被第一光线411命中的三角形432在第二路径中被搜索到。因此,TRV单元120可省略对第一路径或第三路径进行遍历的操作。
图6是示出根据实施例的树遍历设备的框图。树遍历设备600可包括多个树遍历单元610和存储器620。
加速树可包括多个节点,树遍历设备600对节点进行遍历。树遍历设备600执行相交测试以确定节点的子节点是否为有效遍历目标。
多个树遍历单元610中的每一个树遍历单元610可单独对树进行遍历。此外,多个树遍历单元610中的每一个树遍历单元610可单独访问存储器620。
树遍历单元610使用存储器620对树进行遍历。树遍历单元610可将关于要遍历的哪个节点的信息存储在存储器620中。存储在存储器620中的关于节点的信息可包括相应节点的地址或解码信息。解码信息可包括用于解码关于节点的压缩的包围盒的信息的参数。解码信息可用于在分层次连接的树结构中任意地获得节点的数据。因此,树遍历单元610可使用存储在存储器620中的解码信息对节点的压缩数据进行解码。
如在图6中示出,树遍历单元610共享存储器620。例如,存储器620可以是高速缓冲存储器,但不限于此。
树遍历单元610将多个子节点中的任意一个确定为目标节点。在树结构中,任意一个节点可包括例如两个子节点。树遍历单元610可通过使用关于当前节点的路径信息和确定的目标节点的相对位置,确定关于目标节点的路径信息。
树遍历单元610获得目标节点的节点数据,并基于节点数据执行计算。例如,树遍历单元610可通过使用节点数据对目标节点的子节点是否与光线相交进行检查。换言之,树遍历单元610通过执行相交测试从子节点确定有效遍历目标。与光线相交的子节点变成有效遍历目标。如果两个子节点均为有效目标节点,则树遍历单元610可将所述子节点中的任意一个节点确定为目标节点,并可将关于另一子节点的信息存储在存储器620中。
树遍历单元610通过使用路径码作为关键值来存储关于其他子节点的信息。树遍历单元610通过使用关于另一子节点的路径信息作为关键值来确定存储器620的地址,并在确定的地址存储关于另一子节点的信息。下面将参照图9对树遍历单元610确定存储器620的地址的方法进行描述。
树遍历单元610可使用路径码访问存储器620。树遍历单元610可使用路径码来将关于节点的信息存储在存储器620中,或从存储器620读出关于节点的信息。
路径码是指示包括在树中的节点的相对位置的码。可将路径码表示为二进制码。例如,左节点的路径可用二进制0表示,而右节点的路径可用二进制1表示。因此,来自根节点的位于第二深度的左节点可用二进制00表示。然而,这些表示遍历路径的代码仅仅是示例,而且遍历路径可通过各种其他代码来表示。
如果多个子节点是有效遍历目标,则树遍历单元610通过使用存储在当前节点中的子节点的地址来确定目标节点。如果没有子节点是有效遍历目标,则树遍历单元610从存储器620读出关于节点的信息,并确定目标节点。下面将参照图9对树遍历单元610确定下一目标节点的方法进行描述。
树可用在光线跟踪系统中。光线跟踪系统使用树来确定光线是否与包围盒相交。例如,树遍历单元610可确定各条光线是否与节点相交。树遍历单元610中的每一个树遍历单元610单独接收光线,并对树进行遍历以确定与光线相交的节点。树遍历单元610确定光线是否与目标节点的子节点相交、切换目标节点,并确定光线是否与切换的目标节点的子节点相交。
树遍历单元610中的每一个树遍历单元610在树的每个深度将指示关于另一子节点的信息是否存储在存储器620中的信息存储在位堆栈中。树的深度指示子节点相对于根节点的位置。例如,树遍历单元610中的每一个树遍历单元610可将关于另一节点的信息存储在存储器620中,并可例如将二进制1写到位堆栈中。
图7是示出根据实施例的遍历树的方法的流程图。
在操作710,如果多个子节点均不是有效遍历目标,则树遍历单元610将多个子节点中的任意一个子节点确定为目标节点。例如,树遍历单元610可将根节点的子节点中的任意一个子节点确定为目标节点。
在操作720,树遍历单元610通过使用关于其他子节点的路径码作为关键值将关于其他节点的信息存储在存储器620中。
树遍历单元610执行关于目标节点的计算,并确定下一目标节点。如果存在是有效遍历目标的子节点,则树遍历单元610将相应子节点确定为下一目标节点。如果没有是有效遍历目标的子节点,则树遍历单元610可通过使用关于当前目标节点的路径信息和位堆栈值来确定下一目标节点。树遍历单元610通过使用关于当前目标节点的路径码和位堆栈值来获得存储器620的地址,并将存储在获得的地址处的关于下一目标节点的信息读出。树遍历单元610基于下一目标节点执行计算。关于下一目标节点的信息包括关于下一目标节点的地址和解码信息。
如果没有下一目标节点,树遍历单元610可终止对那个特定树进行遍历。
图8是示出由树遍历单元用来遍历树的方法的示例的流程图。
在操作801,树遍历单元610确定是推入还是弹出节点。推入节点表示将关于节点的信息存储在存储器620中。弹出节点表示从存储器620读出关于节点的信息。树遍历单元610可将节点推入到存储器620,所述节点是稍后将被遍历的有效遍历目标。此外,如果没有是有效遍历目标的节点,则树遍历单元610可将存储在存储器620中的节点弹出。
在操作802,树遍历单元610确定是否推入节点。
在操作803,树遍历单元610获得推入路径码并更新路径码。推入路径码可根据被推入的节点而变化。推入路径码指示将被推入的节点的路径。
在操作804,树遍历单元610将关于节点的信息写到推入路径码。换言之,树遍历单元610通过使用推入路径码作为关键值来确定存储器620内的地址,并在确定的地址将关于将被推入的节点的信息写入。
在操作805,树遍历单元610获得弹出路径码。弹出路径码指示将被弹出的节点的路径。
在操作806,树遍历单元610从弹出路径码读出关于节点的信息。换言之,树遍历单元610使用弹出路径码作为关键值来确定存储器620的地址,并将存储在确定的地址的关于节点的信息读出。
在操作807,树遍历单元610确定从存储器620读出关于节点的信息是否已失败。例如,如果存储器620是高速缓冲存储器,则树遍历单元610确定高速缓存缺失是否已发生。
在操作808,树遍历单元610重新开始遍历并初始化路径码。
在操作809,树遍历单元610更新路径码。树遍历单元610将存储在存储器620中的关于节点的信息读出,并基于读出的关于节点的信息更新路径码。
在操作810,树遍历单元610更新路径码。
图9、图10、图11、图12、图13、图14、图15、图16、图17、图18、图19、图20、图21和图22是示出根据一个或多个实施例的遍历树的方法的示图。
参照图9至图22,树遍历单元610可对根节点0至叶节点8进行遍历。左子节点用路径码0表示,而右子节点用路径码1表示。可将路径码倒转(reverse)或可分配除了0和1之外的路径码。
图9示出开始树遍历的树遍历单元610。树遍历单元610从根节点0开始遍历。存储器620可存储地址和节点数据。可将路径指示为current(当前)、next(下一)或push(推入)。bit stack(位堆栈)指示在树的每个深度处是否执行推入。current指示当前路径,next指示下一路径,而push指示被推入到存储器620的节点的路径。
图10示出根节点0的左子节点1被确定为将被遍历的下一节点的情况。图10示出节点1和节点6均为有效遍历目标和左子节点1被确定为目标节点的情况。由于将被遍历的下一节点是根节点0的左子节点1,所以树遍历单元610设置next=0。
由于右子节点6是稍后将被遍历的节点,所以树遍历单元610设置push=1。由于树的根节点被光线命中,所以树遍历单元610设置bit stack=1。由于树遍历单元610将稍后对节点6进行遍历,所以树遍历单元610通过使用节点6的路径作为关键值将关于节点6的信息存储在存储器620中。例如,树遍历单元610可通过使用节点6(为1)的路径和指示路径的终止的码1,产生四位二进制码1100作为节点6的路径码。换言之,在码1100中,最左的1指示路径,而第二最左的1指示路径的终止。树遍历单元610将关于节点6的信息存储在存储器620的对应于码1100的地址。
图11示出对节点1进行遍历的树遍历单元610。树遍历单元610设置current=0。
图12示出将节点5推入到存储器620的树遍历单元610。由于下一将被遍历的节点是右子节点2,所以树遍历单元610设置next=(0,1)。例如,这里,由于确定右子节点2是比左子节点5的命中更近的光线的命中,所以左子节点5被推入到存储器620。
由于左子节点5是稍后将被遍历的节点,所以树遍历单元610设置push=(0,0)。由于节点1被光线命中,所以树遍历单元610设置bit stack=(1,1)。由于树遍历单元610将稍后对节点5进行遍历,所以树遍历单元610通过使用节点5的路径作为关键值将关于节点5的信息存储在存储器620中。例如,树遍历单元610可通过使用节点5的路径(为(0,0))和指示路径的终止的码1,来产生四位二进制码0010作为节点5的路径码。换言之,在码0010中,左边的00指示路径,而下一个1指示路径的终止。树遍历单元610将关于节点5的信息存储在对应于码0010的存储器620的地址。
图13示出对节点2进行遍历的树遍历单元610。由于节点2被遍历,所以树遍历单元610设置current=(0,1),表示被用到当前节点2的路径。
图14示出将节点4推入到存储器620的树遍历单元610。由于下一将被遍历的节点是左子节点3,所以树遍历单元610设置next=(0,1,0),表示向着节点3的路径中的下一步。
由于右子节点4是稍后将被遍历的节点,所以树遍历单元610设置push=(0,1,1)。由于节点2被光线命中,所以树遍历单元610设置bit stack=(1,1,1)。由于树遍历单元610将稍后对节点4进行遍历,树遍历单元610通过使用节点4的路径作为关键值,将关于节点4的信息存储在存储器620中。例如,树遍历单元610可通过使用节点4的路径(为(0,1,1))和指示路径的终止的码1,产生四位二进制码0111作为节点4的路径码。换言之,在码0111中,左边的11指示路径,而下一个1指示路径的终止。树遍历单元610将关于节点4的信息存储在存储器620的对应于码0111的地址。
图15示出对节点3进行遍历的树遍历单元610。由于节点3被遍历,所以树遍历单元610设置current=(0,1,0)。
图16是用于描述树遍历单元610对叶节点3进行遍历后的操作的示图。由于节点3是叶节点,所以节点3不具有子节点。由于bit stack=(1,1,1),所以树遍历单元610将当前路径码的第三位倒转,并删除位堆栈的最右边的位。树遍历单元610通过将节点3的路径码的第三位倒转来获得将被遍历的下一节点的路径。由于节点3的路径码是(0,1,0),所以将被遍历的下一节点的路径是(0,1,1)。在bit stack=(1,1,1)中,右边的位被删除,因此,bit stack=(1,1)。
图17示出对节点4进行遍历的树遍历单元610。由于路径码(0,1,1)被获得为将被树遍历单元610遍历的下一节点的路径码,所以树遍历单元610通过使用码0111作为关键值来获得存储器620的地址,并获得存储在对应于码0111的地址的节点数据。由于存储在对应于码0111的地址的节点数据是关于节点4的信息,所以树遍历单元610可使用从存储器620取回的关于节点4的信息来对节点4进行遍历。
图18是示出发生在树遍历单元610对叶节点4进行遍历后的操作的示图。由于节点4是叶节点,所以节点4不具有子节点。因此,由于bit stack=(1,1),所以树遍历单元610通过将节点4的路径码的第二位倒转来获得将被遍历的下一节点的路径。由于节点4的路径码是(0,1,1),所以将被遍历的下一节点的路径是(0,0)。此外,树遍历单元610删除位堆栈的最后位。因此,在bit stack=(1,1)中,右边的位被删除,因此,位堆栈被设置为bit stack=(1)。
图19示出对节点5进行遍历的树遍历单元610。由于路径码(0,0)被获得作为将被树遍历单元610遍历的下一节点的路径码,所以树遍历单元610通过使用码0010作为关键值来获得存储器620的地址,并获得存储在对应于码0010的地址的节点数据。由于存储在对应于码0010的地址的节点数据是关于节点5的信息,所以树遍历单元610可通过使用从存储器620获得的关于节点5的信息来对节点5进行遍历。
图20是示出发生在树遍历单元610对叶节点5进行遍历后的操作的示图。由于节点5是叶节点,所以节点5不具有子节点。因此,由于bit stack=(1),所以树遍历单元610通过将节点5的路径码的第一位倒转来获得将被遍历的下一节点的路径。由于节点5的路径码是(0,0),所以将被遍历的下一节点的路径是(1)。此外,树遍历单元610删除位堆栈的最后位。因此,在bit stack=(1)中,1被删除。
图21示出对节点6进行遍历的树遍历单元610。由于路径码(1)被获得作为将被树遍历单元610遍历的下一节点的路径码,所以树遍历单元610通过使用码1100作为关键值来获得存储器620的地址,并获得存储在对应于码1100的地址的节点数据。由于存储在对应于码1100的地址的节点数据是关于节点6的信息,所以树遍历单元610可通过使用从存储器620获得的关于节点6的信息来对节点6进行遍历。
图22示出终止遍历的树遍历单元610。由于节点6未被光线命中而且没有值被存储在位堆栈中,所以树遍历单元610终止树的遍历。
因此,在一个或多个实施例中,针对每个光线在各自的堆栈存储器中单独存储节点数据可以不是必须的,但相同的存储器可通过根据路径信息存储节点数据,被用于存储多个光线的节点数据。
如上所述,根据上面的实施例中的一个或多个实施例,可将关于节点的信息存储在由树遍历单元共享的存储器中。
树遍历单元可通过使用路径码作为关键值来访问存储器。
树遍历单元可通过使用路径码作为关键值来对树进行遍历。
在图2、图6和图3中示出的执行这里针对图1-图22描述的操作的设备、单元、模块、装置和其他组件可通过硬件组件来实施。硬件组件的示例包括控制器、传感器、发成器、驱动器和任意其他电子组件,所述任意其他电子组件为本领域技术人员中的一个技术人员在对本说明具有全面的理解后所已知。在一个示例中,硬件组件是通过一个或多个处理器或计算机来实施。处理器或计算机是通过一个或多个处理元件(诸如,逻辑门的阵列、控制器和算术逻辑单元、数字信号处理、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或任意其他装置或装置(为本领域技术人员中的一个技术人员在对本说明具有全面的理解后所已知的能以限定的方式响应并执行指令来获得期望的结果)的组合)来实施。在一个示例中,处理器或计算机包括,或连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。通过处理器或计算机实施的硬件组件执行指令(诸如,操作系统(OS)和运行在OS上的一个或多个软件应用),以执行这里针对图1至图22描述的操作。
硬件组件也响应于指令或软件的执行而存取、操作、处理、生成和存储数据。为了简单,单数术语“处理器”或“计算机”可用在这里描述的示例的描述中,但是在其他示例中,多个处理器或计算机被使用,或者处理器或计算机包括多个处理元件或多种类型的处理元件,或两者。在一个示例中,硬件组件包括多个处理器,而在另一示例中,硬件组件包括处理器和控制器。硬件组件具有不同处理配置中的任意一个或多个处理配置,所述处理配置的示例包括单个处理器、独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理和多指令多数据(MIMD)处理。
在图1、图4、图5和图7-图22中示出的执行这里针对图2、图3和图6描述的操作的方法是通过如上面描述的处理器或计算机来执行,所述处理器或计算机执行指令或软件以执行这里描述的操作。
为了单独或集体地命令或配置处理器或计算机作为机器或专用计算机运行以执行如上面描述的由硬件组件执行的操作和方法,控制处理器或计算机实施硬件组件和执行如上面描述的方法的指令被写为计算机程序、代码段、指令或其组合。在一个示例中,指令或软件包括直接由处理器或计算机执行的机器码(诸如,由编译器产生的机器代码)。在另一示例中,指令或软件包括由处理器或计算机使用解释器来执行的更高级代码。本领域技术人员的程序员在完全理解本说明后可基于附图中示出的框图和流程图以及说明中的相应描述来编写指令或软件,所述说明公开了用于如上所述地执行由硬件组件执行的操作和方法的算法。
如上所述的控制处理器或计算机实施硬件组件和执行方法的指令或软件和任何相关的数据、数据文件以及数据结构被记录、存储或固定在一个或多个非暂时性计算机可读存储介质。非暂时性计算机可读存储介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、闪存、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘和任意装置,所述任意装置为本领域技术人员中的一个技术人员在全面理解本说明后已知的能以非暂时性的方式存储指令或软件和任何相关数据、数据文件以及数据结构,并将指令或软件和任何相关数据、数据文件以及数据结构提供给处理器或计算机以便处理器或计算机能执行指令的装置。在一个示例中,指令或软件以及任何相关数据、数据文件以及数据结构是分布在网络连接的计算机系统上,以便以分布式方式存储和执行指令或软件以及任何相关数据、数据文件以及数据结构。这里,术语“单元”和“模块”指示处理特定操作并用硬件示例的单元。
可将被配置为读取代码以实施关于这样的“单元”或“模块”的方法的计算机或处理器存储在将由一个或多个处理装置实施的非暂时性可寻址存储介质或其他计算机或处理器可读非暂时性介质中/上。
虽然本说明包括特定示例,但是本领域普通技术人员将清楚的是:在不脱离权利要求和它们的等同物的精神和范围的情况下,可在这些示例中进行形式上和细节上的各种改变。在此描述的示例应仅在描述意义上考虑,而非为了限制的目的。在每个示例中的特征或方面的描述将被视为可被应用于在其它示例中的相似特征或方面。如果按照不同顺序执行描述的技术,和/或如果按照不同方式组合在描述的系统、架构、装置或电路中的组件和/或由其它组件或其等同物来替代或补充在描述的系统、架构、装置或电路中的组件,则可实现适当的结果。因此,本公开的范围并非由具体实施方式限定而是由权利要求和它们的等同物所限定,并且在权利要求和它们的等同物的范围内的所有变化将被解释为包括在本公开中。
Claims (15)
1.一种遍历树的光线跟踪方法,所述方法包括:
基于对树的父节点的多个子节点是否为第一光线的有效遍历目标的确定,将所述多个子节点中的任意一个子节点确定为目标节点;
并通过使用其余子节点的路径码作为关键值,将关于所述多个子节点中不是所述目标节点的其余子节点的信息存储在存储器中。
2.如权利要求1所述的方法,其中,存储器由多个树遍历单元共享。
3.如权利要求2所述的方法,其中,存储器是高速缓冲存储器。
4.如权利要求1所述的方法,其中,关于父节点的路径信息以及父节点与目标节点的相对位置用于确定目标节点的路径信息。
5.如权利要求1所述的方法,其中,当对所述多个子节点是否为有效遍历目标的确定表明所述多个子节点均不是有效遍历目标以及没有值存储在位堆栈中时,终止对树的遍历。
6.如权利要求5所述的方法,其中,当对所述多个子节点是否为有效遍历目标的确定表明所述多个子节点均不是有效遍历目标,或者不存在针对父节点的子节点时,
终止对父节点的遍历;
从对应于当前目标节点的路径信息获得下一目标节点的路径码;
更新位堆栈的值,所述位堆栈的值表明对应于非根节点的信息是否存储在存储器中;并
通过使用下一目标节点的路径码作为关键值,从存储器获得对应于下一目标节点的信息。
7.如权利要求6所述的方法,其中,对应于下一目标节点的信息包括地址和解码信息。
8.如权利要求1所述的方法,还包括经由相交测试从所述多个子节点确定有效遍历目标。
9.如权利要求1所述的方法,其中,在信息的存储中,指示对应于其余子节点的信息是否存储在存储器中的信息针对树的每个深度被存储在位堆栈中。
10.一种光线跟踪设备,包括:
树遍历单元,均被配置为基于对树的父节点的多个子节点是否为第一光线的有效遍历目标的确定,将所述多个子节点中的任意一个子节点确定为目标节点;
存储器,被配置为通过使用其余子节点的路径码作为关键值,将关于所述多个子节点中不是所述目标节点的其余子节点的信息存储在存储器中,
其中,树遍历单元是由一个或多个处理器实现。
11.如权利要求10所述的光线跟踪设备,其中,存储器被配置为由树遍历单元中的至少两个树遍历单元共享。
12.如权利要求11所述的光线跟踪设备,其中,存储器是高速缓冲存储器。
13.如权利要求10所述的光线跟踪设备备,其中,每个树遍历单元使用关于父节点的路径信息以及父节点与目标节点之间的相对位置来确定目标节点的路径信息。
14.如权利要求10所述的光线跟踪设备,其中,当由树遍历单元中的每一个树遍历单元对所述多个子节点是否为有效遍历目标的确定表明所述多个子节点均不是有效遍历目标并且没有值存储在位堆栈中时,终止对树的遍历。
15.如权利要求14所述的光线跟踪设备,其中,当由树遍历单元中的每一个树遍历单元对多个子节点是否为有效遍历目标的确定表明多个子节点均不是有效遍历目标,或者不存在针对父节点的子节点时,
终止对父节点的遍历;
从与作为当前目标节点的父节点对应的路径信息获得下一目标节点的路径码;
更新位堆栈的值,所述位堆栈的值表明对应于非根节点的信息是否存储在存储器单元中;并
通过使用下一目标节点的路径码作为关键值,从存储器单元获得对应于下一目标节点的信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2015-0135548 | 2015-09-24 | ||
KR1020150135548A KR20170036416A (ko) | 2015-09-24 | 2015-09-24 | 트리를 탐색하는 장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106558091A true CN106558091A (zh) | 2017-04-05 |
Family
ID=57326161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610851588.0A Withdrawn CN106558091A (zh) | 2015-09-24 | 2016-09-26 | 用于遍历树的设备和遍历树的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20170091898A1 (zh) |
EP (1) | EP3147867A1 (zh) |
JP (1) | JP2017062787A (zh) |
KR (1) | KR20170036416A (zh) |
CN (1) | CN106558091A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763322A (zh) * | 2018-05-02 | 2018-11-06 | 山东浪潮通软信息科技有限公司 | 一种实现树结构的方法及装置 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10649524B2 (en) | 2017-04-07 | 2020-05-12 | Intel Corporation | Apparatus and method for foveated rendering, bin comparison and TBIMR memory-backed storage for virtual reality implementations |
US10825230B2 (en) * | 2018-08-10 | 2020-11-03 | Nvidia Corporation | Watertight ray triangle intersection |
US10885698B2 (en) | 2018-08-10 | 2021-01-05 | Nvidia Corporation | Method for programmable timeouts of tree traversal mechanisms in hardware |
US10810785B2 (en) * | 2018-08-10 | 2020-10-20 | Nvidia Corporation | Method for forward progress tree traversal mechanisms in hardware |
WO2021149526A1 (ja) * | 2020-01-23 | 2021-07-29 | ソニーグループ株式会社 | 情報処理装置、情報処理方法及びプログラム |
US11302056B2 (en) | 2020-06-10 | 2022-04-12 | Nvidia Corporation | Techniques for traversing data employed in ray tracing |
CN111708967B (zh) * | 2020-06-11 | 2023-05-16 | 浙江浙大网新国际软件技术服务有限公司 | 一种基于网站地图的指纹识别方法 |
US11450057B2 (en) | 2020-06-15 | 2022-09-20 | Nvidia Corporation | Hardware acceleration for ray tracing primitives that share vertices |
GB2601792A (en) * | 2020-12-10 | 2022-06-15 | Imagination Tech Ltd | Intersection testing for ray tracing |
CN113704294A (zh) * | 2021-08-17 | 2021-11-26 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备和存储介质 |
CN114090157A (zh) * | 2021-11-18 | 2022-02-25 | 中国平安财产保险股份有限公司 | 树形控件的数据处理方法、装置、设备和存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080024489A1 (en) * | 2006-07-28 | 2008-01-31 | Robert Allen Shearer | Cache Utilization Optimized Ray Traversal Algorithm with Minimized Memory Bandwidth Requirements |
US20080088619A1 (en) * | 2006-10-17 | 2008-04-17 | Robert Allen Shearer | Branch Prediction for Acceleration Data Structure Traversal |
US7719532B2 (en) * | 2007-02-09 | 2010-05-18 | International Business Machines Corporation | Efficient and flexible data organization for acceleration data structure nodes |
US9305392B2 (en) * | 2012-12-13 | 2016-04-05 | Nvidia Corporation | Fine-grained parallel traversal for ray tracing |
KR20150057868A (ko) * | 2013-11-20 | 2015-05-28 | 삼성전자주식회사 | 레이 트레이싱 시스템에서의 이진트리 탐색 방법 및 장치 |
US9552664B2 (en) * | 2014-09-04 | 2017-01-24 | Nvidia Corporation | Relative encoding for a block-based bounding volume hierarchy |
-
2015
- 2015-09-24 KR KR1020150135548A patent/KR20170036416A/ko unknown
-
2016
- 2016-06-01 US US15/169,813 patent/US20170091898A1/en not_active Abandoned
- 2016-09-20 JP JP2016183157A patent/JP2017062787A/ja active Pending
- 2016-09-23 EP EP16190472.7A patent/EP3147867A1/en not_active Withdrawn
- 2016-09-26 CN CN201610851588.0A patent/CN106558091A/zh not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763322A (zh) * | 2018-05-02 | 2018-11-06 | 山东浪潮通软信息科技有限公司 | 一种实现树结构的方法及装置 |
CN108763322B (zh) * | 2018-05-02 | 2021-05-18 | 浪潮通用软件有限公司 | 一种实现树结构的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2017062787A (ja) | 2017-03-30 |
US20170091898A1 (en) | 2017-03-30 |
EP3147867A1 (en) | 2017-03-29 |
KR20170036416A (ko) | 2017-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106558091A (zh) | 用于遍历树的设备和遍历树的方法 | |
CN105469440B (zh) | 用于产生和遍历加速结构的方法和设备 | |
CN104616340B (zh) | 射线跟踪方法和设备 | |
US9355491B2 (en) | Ray tracing apparatus and method | |
US8234234B2 (en) | Utilizing ray tracing for enhanced artificial intelligence path-finding | |
JP4348728B2 (ja) | 3次元構造体の2次元写像を作成するための方法及び装置 | |
US8570322B2 (en) | Method, system, and computer program product for efficient ray tracing of micropolygon geometry | |
CN104978759A (zh) | 用于渲染多个帧的相同区域的方法和设备 | |
US20150154791A1 (en) | Conservative cell and portal graph generation | |
US8279227B2 (en) | Method for detecting collisions among large numbers of particles | |
KR101077708B1 (ko) | 계층 구조의 엔트리 포인트들을 식별하기 위한 시스템 및 방법 | |
US20100194751A1 (en) | Ray tracing a three dimensional scene using a grid | |
US8363049B2 (en) | 3D image processing method and apparatus for enabling efficient retrieval of neighboring point | |
CN105793730A (zh) | 对象运动的基于激光雷达的分类 | |
CN101490715A (zh) | 具有最小存储器带宽要求的优化的光线编历算法的高速缓存利用 | |
KR20150039496A (ko) | 이전 렌더링의 결과를 이용하여 광선을 추적하는 방법 및 장치 | |
KR100843292B1 (ko) | 룩업 테이블을 이용한 레이 트레이싱 장치 및 방법 | |
KR20150034062A (ko) | 동일한 그룹의 데이터를 라우팅하는 방법 및 장치, 렌더링 유닛을 재구성하는 방법 및 장치 | |
US20170061673A1 (en) | Method of generating and traversing acceleration structure | |
Debenham et al. | Efficient field of vision algorithms for large 2D grids | |
JP4920775B2 (ja) | 画像生成装置及び画像生成プログラム | |
KR102570584B1 (ko) | Bvh 트리를 구성하기 위한 방법 및 시스템 | |
Kroiss | Collision detection using hierarchical grid spatial partitioning on the GPU | |
Rodrigue | Collision Detection in Video Games |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20170405 |
|
WW01 | Invention patent application withdrawn after publication |