CN108022284A - 用于产生加速结构的方法和设备 - Google Patents
用于产生加速结构的方法和设备 Download PDFInfo
- Publication number
- CN108022284A CN108022284A CN201710794757.6A CN201710794757A CN108022284A CN 108022284 A CN108022284 A CN 108022284A CN 201710794757 A CN201710794757 A CN 201710794757A CN 108022284 A CN108022284 A CN 108022284A
- Authority
- CN
- China
- Prior art keywords
- pel
- bounding box
- arrangement
- accelerating structure
- generation
- 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
Links
Classifications
-
- 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
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- 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/55—Radiosity
-
- 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
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/12—Bounding box
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
提供一种用于产生加速结构的方法和设备。用于产生用于光线跟踪的加速结构的方法包括:产生线性码,线性码表示包括在三维(3D)空间中的多个图元中的每个图元的位置;根据产生的线性码,布置所述多个图元;在将布置的所述多个图元顺序地输入到产生的包围盒中的同时,确定产生的包围盒的大小的改变率;基于产生的包围盒的大小的改变率,选择布置的所述多个图元之一;根据选择的图元,将布置的所述多个图元分类到多个确定的包围盒中。
Description
本申请要求于2016年11月4日提交到韩国知识产权局的第10-2016-0146908号韩国专利申请的权益,该韩国专利申请的公开通过引用全部包含于此。
技术领域
本公开涉及用于产生用于光线跟踪的加速结构的方法和设备。
背景技术
三维(3D)渲染是用于将3D对象数据合成为从相机的给定视点观看的图像的图像处理过程。在3D渲染处理中,为了更逼真地表示对象,可使用光线跟踪方法以基于从预设光源发射的光线被对象反射的模式来确定关于对象的数据。
在光线跟踪方法中,为了跟踪光线与将被渲染的对象相交的点,可产生对象被空间分类的加速结构,并且可遍历产生的加速结构以确定光线与图元(primitive)之间的交点(光线-图元交点)。
发明内容
然而,因为光线跟踪方法中的遍历处理和相交测试处理跟踪所有通过对象反射的光线,所以测试处理使用大量的计算和宽的存储器带宽。因此,在产生用于更有效地执行光线跟踪方法中的遍历处理和相交测试处理的加速结构的方法上进行连续的研究。
提供用于产生用于光线跟踪的加速结构的方法和设备,可在维持加速结构的特性的同时提高加速结构的产生速度。
额外的方面将在下面的描述中部分阐述,并且部分从该描述将是清楚的,或者可通过本实施例的实践而获知。
根据示例实施例,一种用于产生用于光线跟踪的加速结构的方法包括:产生线性码,线性码表示包括在三维(3D)空间中的多个图元中的每个图元的位置;根据产生的线性码,布置所述多个图元;在将布置的所述多个图元顺序地输入到产生的包围盒中的同时,确定产生的包围盒的大小的改变率;基于产生的包围盒的大小的改变率,选择布置的所述多个图元之一;根据选择的图元,将布置的所述多个图元分类到多个确定的包围盒中。
根据另一示例实施例,一种用于产生用于光线跟踪的加速结构的设备包括:存储器,存储加速结构和关于包括在三维(3D)空间中的多个图元中的每个图元的位置的信息;处理器,被配置为:根据基于关于所述多个图元中的每个图元的位置的信息的线性码,布置所述多个图元,在将布置的所述多个图元顺序地输入到产生的包围盒中的同时,确定产生的包围盒的大小的改变率,基于产生的包围盒的大小的改变率,选择布置的所述多个图元之一,通过选择的图元,将布置的所述多个图元分类到多个确定的包围盒中。
根据另一示例实施例,一种存储程序的非暂时性计算机可读记录介质,当通过计算机执行所述程序时,使计算机执行以上的加速结构产生方法。
在至少另一示例实施例中,一种用于产生用于光线跟踪的加速结构的方法包括:产生线性码,线性码表示包括在3维(3D)空间中的多个图元中的每个图元的位置;根据产生的线性码,布置所述多个图元;将所述多个图元迭代地添加到包围盒,每个迭代的添加与包围盒的大小的改变相关联;基于每个迭代的添加的包围盒的大小的改变,选择布置的所述多个图元之一;使用包围盒和与选择的图元相关联的包围盒的大小,对布置的所述多个图元进行分类。
附图说明
从以下结合附图对实施例进行的描述,这些和/或其他方面将变得清楚和更容易理解,其中:
图1是示出根据示例实施例的光线跟踪的示图;
图2是示出根据示例实施例的光线跟踪核的示图;
图3是示出根据示例实施例的通过光线跟踪核执行光线跟踪的操作的示图;
图4是示出根据示例实施例的用于加速光线跟踪的方法的示图;
图5是示出根据示例实施例的图4的用于加速光线跟踪的方法的示图;
图6是示出根据示例实施例的加速结构产生设备的框图;
图7是示出根据示例实施例的用于产生加速结构的方法的流程图;
图8是示出根据示例实施例的用于产生莫顿码(Morton code)的方法的示图;
图9是示出根据示例实施例的用于通过加速结构产生设备根据线性码布置多个图元的方法的示图;
图10是示出根据示例实施例的用于通过加速结构产生设备选择布置的多个图元之中的使包围盒(bounding box)的大小的增加率最大的图元的方法的示图;
图11是示出根据示例实施例的用于通过加速结构产生设备通过使用针对多个图元中的每个设置的权重来将多个图元分类到包围盒中的方法的流程图;
图12是示出根据示例实施例的用于通过加速结构产生设备通过使用针对多个图元中的每个设置的权重来将多个图元分类到包围盒中的方法的流程图。
具体实施方式
现在,将详细描述示例实施例,示例实施例的示例在附图中示出,其中,相同的参考标号始终表示相同的元件。在这点上,示例实施例可具有不同形式并且不应该被解释为局限于在此阐述的描述。因此,以下通过参照附图描述的示例实施例解释多个方面。如在此所使用的,术语“和/或”包括一个或更多个相关所列项的任何和所有组合。当诸如“在……中的至少一个”的表述在一列元素之后时,所述表述修饰整列元素,而不是修饰所述列的单个元素。
在下文中,将参照附图详细描述示例实施例。
图1是示出光线跟踪的示图。参照图1,在三维(3D)建模中,光线跟踪核可确定视点10,并可根据视点10确定图像20。当确定了视点10和图像20时,光线跟踪核可从视点10针对图像20的每个像素产生光线。
如在图1中所示,初级光线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的与本示例实施例相关的组件。因此,本领域普通技术人员将理解,在光线跟踪核100中还可包括除了在图2中示出的组件之外的其他通用组件。
光线跟踪核100可跟踪产生的光线与位于3D空间中的对象之间的交点,并确定构成图像的像素的颜色值。换句话说,光线跟踪核100可找到光线与对象之间的交点,根据对象在交点处的特性产生次级光线,并确定交点的颜色值。
当遍历加速结构并执行相交测试时,光线跟踪核100可使用之前的遍历结果和之前的交点测试结果。换句话说,光线跟踪核100可通过将之前的渲染处理的性能结果应用于当前的渲染处理来更快速地执行当前的渲染处理。
光线产生单元110可产生初级光线和次级光线。光线产生单元110可从视点产生初级光线,并在初级光线与对象之间的交点处产生反射次级光线、折射次级光线或阴影次级光线。光线产生单元110还可在次级光线与对象之间的交点处产生另一次级光线。光线产生单元110可产生在预定的和/或期望的次数内的反射光线、折射光线和阴影光线,或者根据对象的特性确定产生反射光线、折射光线和阴影光线的次数。
TRV单元120可从光线产生单元110接收关于产生的光线的信息。产生的光线可包括初级光线、次级光线和从次级光线衍生出的光线中的所有的光线。例如,在初级光线的情况下,TRV单元120可接收关于产生的光线的视点和产生的光线的方向的信息。此外,在次级光线的情况下,TRV单元120可接收关于次级光线的起点和次级光线的方向的信息。次级光线的起点可表示初级光线命中的点。视点或起点可通过坐标来表示,方向可通过矢量来表示。
TRV单元120可从外部存储器250读取关于加速结构的信息。加速结构可通过加速结构产生设备(加速结构产生器)200产生,产生的加速结构可被存储在外部存储器250中。加速结构可表示包括对象在3D空间中的位置信息的结构。例如,加速结构可包括KD树(K维树)和BVH(层次包围体)。
TRV单元120可遍历加速结构并输出光线所命中的叶节点或对象。例如,TRV单元120可遍历包括在加速结构中的节点,并将叶节点之中的光线所命中的叶节点输出到IST单元130,其中,叶节点是节点之中的最低的节点。换句话说,TRV单元120可确定构成加速结构的包围盒中的哪个包围盒被光线命中,并确定包括在包围盒中的对象中的哪个对象被光线命中。关于命中的对象的信息可存储在TRV高速缓存器中。包围盒可表示包括多个对象或图元的单元,并可根据加速结构以不同的形式来表示包围盒。TRV高速缓存器可表示用于暂时储存由TRV单元120在遍历处理中使用的数据的存储器。
TRV单元120可通过使用之前的渲染结果来遍历加速结构。TRV单元120可通过使用存储在TRV高速缓存器中的之前的渲染结果,沿与之前的渲染处理相同的路径来遍历加速结构。例如,当遍历输入光线的加速结构时,TRV单元120可对具有与输入光线相同的视点和方向的之前的光线所命中的包围盒执行遍历。此外,TRV单元120可参照之前的光线的遍历路径来遍历加速结构。
IST单元130可从TRV单元120接收光线所命中的叶节点或对象,并从外部存储器250读取关于包括在命中的对象中的图元的信息。读取的关于图元的信息可存储在IST高速缓存器中。IST高速缓存器可表示用于暂时存储由IST单元130在相交测试处理中使用的数据的存储器。
IST单元130可执行光线与图元之间的相交测试,并输出光线所命中的图元和交点。当从TRV单元120接收光线所命中的对象时,IST单元130可检查包括在命中的对象中的图元中的哪个图元被光线命中。在找到光线所命中的图元之后,IST单元130可输出指示命中的图元的哪个点与光线相交的交点。交点可以以坐标形式输出到着色单元140。
IST单元130可通过使用之前的渲染结果执行相交测试。IST单元130可首先通过使用存储在IST高速缓存器中的之前的渲染结果,对与之前的渲染处理相同的图元执行相交测试。例如,当对输入光线执行相交测试时,IST单元130可首先对具有与输入光线相同的视点和方向的之前的光线所命中的图元执行相交测试。
着色单元140可基于交点的材料性质和从IST单元130接收到的关于交点的信息来确定像素的颜色值。例如,着色单元140可考虑光源和交点的材料基础颜色的影响来确定像素的颜色值。
光线跟踪核100可从外部存储器250接收用于光线跟踪的数据。外部存储器250可存储表示关于图元或通过加速结构产生设备200产生的加速结构的信息的几何数据。图元可包括多边形(诸如,三角形或四边形),几何数据可表示关于包括在对象中的图元的位置和顶点的信息。
加速结构产生设备200可产生包括3D空间中的对象的位置信息的加速结构。加速结构产生设备200可产生各种类型的加速结构。例如,加速结构可以是3D空间被划分为层次树的类型,并且加速结构产生设备200可通过应用BVH或KD树产生表示3D空间中的对象之间的关系的结构。加速结构产生设备200可确定树深度和叶节点的最大图元数量,并基于该确定来产生加速结构。
图3是示出通过光线跟踪核执行光线跟踪的操作的示图。例如,光线跟踪核可具有在图2中示出的光线跟踪核100的结构。因此,尽管在下面省略,但是光线跟踪核100的以上描述也可应用于图3的光线跟踪方法。
在操作310中,光线跟踪核100可产生光线。光线跟踪核100可产生初级光线、次级光线和从次级光线衍生出的光线。
在操作320中,光线跟踪核100可遍历从外部存储器250读取的加速结构。光线跟踪核100可基于产生的光线的视点和方向来遍历加速结构251,检测光线所命中的包围盒,并检测包括在命中的包围盒中的对象之中的光线所命中的对象。光线跟踪核100可重复地遍历加速结构251,直到在操作325检测到命中的对象为止。例如,光线跟踪核100可沿一个路径遍历加速结构,并且当遍历的路径上的叶节点没有被光线命中时,沿另一路径遍历加速结构。
光线跟踪核100可顺序地遍历所有的路径,或者可基于之前的光线遍历信息首先遍历特定的路径。例如,当之前的光线的视点和方向与当前的光线的视点和方向相同或相似时,光线跟踪核100可首先遍历包括之前的光线所命中的叶节点的路径。
在操作330中,光线跟踪核100可执行相交测试。光线跟踪核100可基于从外部存储器250读取的图元的几何数据252来执行相交测试。光线跟踪核100可重复地执行相交测试,直到在操作335检测到命中的图元为止。例如,光线跟踪核100可对一个图元执行相交测试,并且当该图元没有光线被命中时,对另一图元执行相交测试。
光线跟踪核100可顺序地对所有的图元执行相交测试,或者可基于之前的光线相交测试信息首先对特定图元执行相交测试。例如,当之前的光线的视点和方向与当前的光线的视点和方向相同或相似时,光线跟踪核100可首先对之前的光线所命中的图元执行相交测试。
在操作340中,光线跟踪核100可基于相交测试执行像素着色。当完成操作340时,光线跟踪核100可转到操作310。光线跟踪核100可对构成图像的所有像素重复执行操作310至操作340。
图4是示出用于加速光线跟踪的方法的示图。参照图4,第一图像412可表示在t0渲染的图像,第二图像422可表示在t1渲染的图像。因为在第一图像412和第二图像422中仅兔子433移动,四边形431和三角形432不移动,所以第一图像412和第二图像422可彼此几乎相似。因此,光线跟踪核100可通过使用对第一图像412的渲染结果来对第二图像422执行渲染。例如,当第一视点410和第二视点420的位置彼此相同,并且第一光线411和第二光线421的方向彼此相同时,光线跟踪核100可通过将对第一光线411的光线跟踪结果应用于对第二光线421的光线跟踪,来加速对第二光线421的光线跟踪。例如,当对第二光线421执行遍历时,光线跟踪单元100的TRV单元120可首先遍历第一光线411所命中的包围盒。此外,当对第二光线421执行相交测试时,光线跟踪单元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的第三路径遍历加速结构。在这种情况下,当对第二光线421执行遍历时,TRV单元120可首先遍历用于遍历第一光线411所命中的三角形432的第二路径。因此,TRV单元120可跳过遍历第一路径或第三路径的处理。
图6是示出根据实施例的加速结构产生设备200的框图。
参照图6,加速结构产生设备200可包括处理器210和存储器220。在此,加速结构产生设备200可包括图形处理单元(GPU),然而,这仅是示例,加速结构产生设备200不限于GPU。
处理器210可确定包括在3D空间中的图元的位置。根据实施例,处理器210可基于通过将3D空间划分为多个网格而产生的坐标来表示图元的位置。例如,处理器210可沿x轴、y轴和z轴方向以固定间隔划分3D空间。在此,图元的位置可通过包括图元的网格的位置来表示。当图元被包括在多个网格中时,图元的位置可通过包括图元中心的网格的位置来表示。后面将参照图8来描述确定和表示图元的位置的具体方法。
处理器210可确定在图元的3D空间中的由二进制数组成的x轴坐标、y轴坐标和z轴坐标。例如,处理器210可通过包括在二进制数中的一个或多个二进制位,来确定表示图元的位置的x轴坐标、y轴坐标和z轴坐标中的每个坐标。
处理器210可通过将包括在二进制数中的表示图元的x轴坐标的一个或多个二进制位、包括在二进制数中的表示图元的y轴坐标的一个或多个二进制位和包括在二进制数中的表示图元的z轴坐标的一个或多个二进制位以预设的顺序进行组合,来产生线性码。在此,线性码可包括莫顿码(Morton code)。在下文中,为了描述的方便,莫顿码将被描述为线性码的示例。
处理器210可确定对二进制位进行组合的顺序,以根据包括在3D空间中的图元的分布来产生莫顿码。此外,处理器210可不同地设置用于产生莫顿码的x轴坐标、y轴坐标和z轴坐标的各自的二进制位的数目。
处理器210可根据产生的线性码布置多个图元。例如,根据产生的线性码的值的大小,处理器210可布置多个图元,使得具有较小线性码值的图元可在具有较大线性码值的图元之前被定位。
此外,处理器210可在将多个布置的图元顺序地输入到包围盒中的同时确定包围盒的大小的增加率。例如,处理器210可将多个布置的图元顺序输入到包围盒中,直到所有的图元被包括在包围盒中为止。处理器210可通过比较随着布置的多个图元中的每个图元被包括在包围盒中而增加的包围盒的大小,来确定针对多个图元中的每个图元的包围盒的大小的增加率。例如,处理器210可确定包围盒与和顺序输入的图元相关联的第一包围盒之间的大小相对于第一包围盒的改变。
处理器210可基于包围盒的大小的增加率来选择布置的多个图元之一。例如,处理器210可选择布置的多个图元之中的使包围盒的大小的增加率最大的图元。然而,这仅是示例,并且作为另一示例,处理器210可基于包围盒的大小的增加率和针对多个图元中的每个图元预设的权重,来选择多个布置的图元之一。
处理器210可通过选择的图元将布置的多个图元分类到多个包围盒中。此外,处理器210可重复地执行基于包围盒的大小的增加率将包括在每个分类的包围盒中的图元分类到其他包围盒中的处理。
此外,处理器210可产生表示包围盒的包含关系的加速结构。每个包围盒可对应于包括在加速结构中的每个节点。例如,处理器可产生与第一包围盒相应的第一节点,并产生与第二包围盒相应的第二节点。
每个节点可包括数据结构,诸如,结构体(struct)、联合(union)和类(class),但不限于此。
处理器210可将第一节点和第二节点添加到加速结构作为与3D空间相应的第三节点的子节点。
在加速结构中,与父节点相应的包围盒可包括与子节点相应的包围盒。每个包围盒可被分类为两个包围盒。因此,加速结构通常可以以二叉树形式被产生。
存储器220可存储关于加速结构的信息和关于包括在3D空间中的多个图元中的每个图元的位置的信息。关于加速结构的信息可包括关于通过加速结构表示的3D空间的信息。
图7是示出根据实施例的用于产生加速结构的方法的流程图。根据实施例,加速结构产生方法可通过如在图6中所示的加速结构产生设备200执行,并且可执行与加速结构产生设备200相同的操作。
在操作S710中,加速结构产生设备200可产生表示包括在3D空间中的多个图元中的每个图元的位置的线性码。
根据实施例,加速结构产生设备200可获取关于包括在3D空间中的多个图元中的每个图元的位置的信息。在此,例如,关于位置的信息可包括多个图元中的每个图元的中心的坐标。作为另一示例,关于位置的信息可包括包含多个图元中的每个图元的网格的中心的坐标。
此外,加速结构产生设备200可产生表示3D空间中的图元的x轴坐标、y轴坐标和z轴坐标的线性码。在此,线性码可包括莫顿码。例如,加速结构产生设备200可通过将包括在二进制数中的表示x轴坐标的一个或多个二进制位、包括在二进制数中的表示y轴坐标的一个或多个二进制位和包括在二进制数中的表示z轴坐标的一个或多个二进制位以预设的顺序进行组合,来产生莫顿码。后面将参照图8详细描述通过加速结构产生设备200产生莫顿码的方法。
然而,这仅是示例,本实施例的线性码不限于莫顿码。
在操作S720中,加速结构产生设备200可根据产生的线性码来布置多个图元。例如,根据产生的线性码的值的大小,加速结构产生设备200可布置多个图元,使得具有较小线性码值的图元在具有较大线性码值的图元之前被定位。然而,这仅是示例,通过加速结构产生设备200布置多个图元的方法不限于此。
在操作S730中,加速结构产生设备200可在将布置的多个图元顺序地输入到包围盒中的同时确定包围盒的大小的增加率。
根据实施例,加速结构产生设备200可根据布置顺序将多个图元依次输入到包围盒中。例如,加速结构产生设备200可将布置的多个图元之中的第一图元输入到包围盒中,并可将在第一图元的下一个被布置的第二图元额外地输入到包括第一图元的包围盒中。
此外,每当布置的多个图元中的每个图元被输入到包围盒中时,加速结构产生设备200可确定包围盒的大小。例如,加速结构产生设备200可确定输入了第一图元的包围盒的大小以及输入了第一图元和第二图元的包围盒的大小。
当确定了包围盒的大小时,加速结构产生设备200可比较包括第一图元的包围盒的大小与包括第一图元和第二图元的包围盒的大小。基于比较结果,加速结构产生设备200可确定当第二图元被输入到包围盒中时包围盒的大小的增加率。
根据实施例,加速结构产生设备200可将布置的多个图元顺序地输入到包围盒中,直到所有图元被包括在包围盒中为止。此外,当布置的多个图元中的每个图元被包括在包围盒中时,加速结构产生设备200可通过比较包围盒的大小,来确定针对多个图元中的每个图元的包围盒的大小的增加率。
在操作S740中,加速结构产生设备200可基于包围盒的大小的增加率来选择布置的多个图元之一。
根据实施例,加速结构产生设备200可比较针对布置的多个图元中的每个图元的包围盒的大小的增加率。此外,基于比较结果,加速结构产生设备200可选择布置的多个图元之中的使包围盒的大小的增加率最大的图元。通过选择使包围盒的大小的增加率最大的图元,加速结构产生设备200可选择布置的多个图元之中的具有最大表面积的图元。
然而,这仅是示例,加速结构产生设备200可基于增加率和针对多个图元中的每个图元预设的权重,来选择布置的多个图元之一。这将在后面参照图11和图12被更详细地描述。
在操作S750中,加速结构产生设备200可通过选择的图元将布置的多个图元分类到多个包围盒中。
加速结构产生设备200可将布置的多个图元分类到第一包围盒和第二包围盒中,其中,第一包围盒包括选择的图元和在选择的图元之前布置的至少一个图元,第二包围盒包括在选择的图元之后布置的至少一个图元。
此外,根据实施例,加速结构产生设备200可产生与第一包围盒相应的第一节点和与第二包围盒相应的第二节点。加速结构产生设备200可将第一节点和第二节点添加到加速结构作为与3D空间相应的第三节点的子节点。在此,第三节点可以是根节点或可以是添加到根节点的子节点之一。
加速结构产生设备200可将包括在第一包围盒和第二包围盒中的每个包围盒中的图元分类到其他包围盒中。例如,当三个图元被包括在第一包围盒中时,加速结构产生设备200可在将三个图元中的每个图元输入到包围盒中的同时选择使包围盒的大小的增加率最大的图元。加速结构产生设备200可通过选择的图元将第一包围盒分类为第(1a)包围盒和第(1b)包围盒。此外,加速结构产生设备200可将与第(1a)包围盒和第(1b)包围盒相应的节点添加到加速结构作为第一节点的子节点。
加速结构产生设备200可在重复地执行以上操作S740和操作S750的同时将布置的多个图元分类到多个包围盒中。
图8是示出根据实施例的用于产生莫顿码的方法的示图。为了描述的方便,3D空间800以2维(2D)形式被简化和示出。
加速结构产生设备200可通过使用莫顿码来线性地表示包括在3D空间中的图元的位置。
参照图8,加速结构产生设备200可将3D空间800的x轴和y轴中的每个轴划分为四段。因此,加速结构产生设备200可将3D空间800划分为总共16个网格。此外,加速结构产生设备200可通过将二进制位分配给x轴和y轴的每个网格来产生坐标。例如,加速结构产生设备200可将坐标00、01、10、11分配给x轴的四个网格,并将坐标00、01、10、11分配给y轴的四个网格。
加速结构产生设备200可通过使用包括图元的网格的坐标来表示图元的位置。作为另一示例,加速结构产生设备200可通过使用包括图元的中心的网格的坐标来表示图元的位置。在本实施例中,加速结构产生设备200通过使用包括图元的中心的网格的坐标来表示图元的位置。
此外,加速结构产生设备200可通过组合包括图元的网格的坐标信息来产生莫顿码。根据实施例,当图元的x轴坐标被表示为X1X2,图元的y轴坐标被表示为Y1Y2时,图元的莫顿码可被表示为X1Y1X2Y2。在此,X1、X2、Y1和Y2中的每个可以是表示通过二进制数表示x轴坐标和y轴坐标的值的每个数字的二进制位。
例如,在第一图元811的情况下,因为x轴坐标是00,y轴坐标是00,所以X1=0,X2=0,Y1=0,Y2=0。加速结构产生设备200可通过组合第一图元811的x轴坐标“00”和y轴坐标“00”来产生第一图元811的莫顿码0000。
作为另一示例,在第二图元812的情况下,因为x轴坐标是00,y轴坐标是01,所以X1=0,X2=0,Y1=0,Y2=1。加速结构产生设备200可通过组合第二图元812的x轴坐标“00”和y坐标“01”来产生第二图元812的莫顿码0001。
根据以上方法,加速结构产生设备200可针对包括在3D空间800中的多个图元中的每个图元产生莫顿码。因此,莫顿码0000、0001、0011、0100、0111、1000、1010、1100、1101、1110、1111可分别分配给包括在3D空间800中的第一图元811至第十一图元821。
根据另一实施例,当图元的z轴坐标被表示为Z1Z2时,3D空间中的图元的莫顿码可被表示为X1Y1Z1X2Y2Z2。Z1和Z2中的每个可以是表示通过二进制数表示z轴坐标的值的每个数字的二进制位。
图9是示出根据实施例的用于通过加速结构产生设备200根据线性码布置多个图元811至821的方法的示图。
参照图9,加速结构产生设备200可根据多个图元811至821的分配的线性码,布置多个图元811至821。例如,加速结构产生设备200可根据线性码的值的大小来布置多个图元811至821。当加速结构产生设备200首先布置具有较小的线性码值的图元时,多个图元811至821可以以如在图9中所示的第一图元811、第二图元812、第三图元813、第四图元814、第五图元815、第六图元816、第七图元817、第八图元818、第九图元819、第十图元820和第十一图元821的顺序被布置。
加速结构产生设备200可在将布置的多个图元811至821顺序地包括在包围盒中的同时选择用于将布置的多个图元811至821分类到多个包围盒中的参考图元。例如,加速结构产生设备200可在将布置的多个图元811至821顺序地包括在包围盒中的同时计算针对每个输入图元的包围盒的大小的增加率。
加速结构产生设备200可基于计算的增加率选择具有最大的增加率的图元。例如,当选择第一图元时,加速结构产生设备200可将布置的多个图元分类到包括第一图元的第一包围盒和包括第二图元至第十一图元的第二包围盒中。此外,加速结构产生设备200可通过对包括在第二包围盒中的多个图元812至821重复执行以上处理,来将包括在第二包围盒中的多个图元812至821分类到其他包围盒中。
图10是示出根据实施例的用于通过加速结构产生设备200选择布置的多个图元811至821之中的使包围盒的大小的增加率最大的图元的方法的示图。
为了描述的方便,图10仅示出根据图9中的线性码布置的多个图元811至821之中的第一图元811、第二图元812和第三图元813。
根据实施例,加速结构产生设备200可确定包括位于布置的多个图元811至821之中的第一个的第一图元811的包围盒1010的大小。此外,加速结构产生设备200可将布置在第一图元811之后的第二图元812输入到包括第一图元811的包围盒1010中。加速结构产生设备200可通过比较包括第一图元811和第二图元812的包围盒1020的大小与包括第一图元811的包围盒1010的大小,来确定相对于第二图元812的包围盒的大小的增加率。
此外,加速结构产生设备200可将第三图元813输入到包括第一图元811和第二图元812的包围盒1020中。加速结构产生设备200可通过比较包括第一图元811、第二图元812和第三图元813的包围盒1030的大小与包括第一图元811和第二图元812的包围盒1020的大小,来确定相对于第三图元813的包围盒的大小的增加率。
此外,针对布置的多个图元811至821之中的其余的图元814至821中的每个图元,加速结构产生设备200可重复地执行将图元输入到包围盒并确定包围盒的大小的增加率的处理。
加速结构产生设备200可通过比较多个图元811至821的各个增加率来选择具有最大的增加率的图元。在本实施例中,假设第一图元811具有最大的增加率。因此,加速结构产生设备200可将多个图元分类到包括第一图元811的第一包围盒和包括第二图元812至第十一图元821的第二包围盒中。
此外,加速结构产生设备200可重复地执行基于包围盒的大小的增加率对包括在分类后的包围盒中的每个包围盒中图元进行分类的处理。例如,加速结构产生设备200可选择包括在第二包围盒中的第二图元812至第十一图元821之中的具有最大的增加率的图元。加速结构产生设备200可通过选择的图元将第二图元812至第十一图元821分类到第三包围盒和第四包围盒中。
图11是示出根据实施例的用于通过加速结构产生设备200通过使用针对多个图元中的每个图元设置的权重来将多个图元分类到包围盒中的方法的流程图。
在操作S1110中,加速结构产生设备200可产生表示包括在3D空间中的多个图元中的每个图元的位置的线性码。
操作S1110可对应于以上参照图7描述的操作S710。
在操作S1120中,加速结构产生设备200可根据产生的线性码布置多个图元。
操作S1120可对应于以上参照图7描述的操作S720。
在操作S1130中,加速结构产生设备200可根据多个图元的布置顺序来设置权重。
根据实施例,加速结构产生设备200可基于多个图元的数量来确定布置顺序的中心。例如,当多个图元的数量是N时,加速结构产生设备200可将布置顺序的中心确定为N/2。
加速结构产生设备200可针对布置在靠近布置顺序的中心的图元设置较高的权重。例如,当假设布置顺序的中心“N/2”为M,假设多个图元中的每个图元的布置顺序为“i”时,加速结构产生设备200可针对具有1至M的“i”的图元设置权重i/M,针对具有(M+1)至N的“i”的图元设置权重(N-i)/M。
然而,这仅是示例,通过加速结构产生设备200针对布置的多个图元811至821中的每个图元设置权重的方法不限于此。
在操作S1140中,加速结构产生设备200可在将布置的多个图元顺序地输入到包围盒中的同时确定包围盒的大小的增加率。
操作S1140可对应于以上参照图7描述的操作S730。
在操作S1150中,加速结构产生设备200可基于设置的权重和包围盒的大小的增加率来选择布置的多个图元之一。
根据实施例,加速结构产生设备200可比较针对多个图元中的每个图元的权重与包围盒的大小的增加率的组合值。例如,加速结构产生设备200可比较针对布置的多个图元中的每个图元的权重与包围盒的大小的增加率的乘积值。此外,加速结构产生设备200可选择布置的多个图元之中的权重与包围盒的大小的增加率的乘积值最大的图元。
然而,这仅是示例,通过加速结构产生设备200基于权重和包围盒的大小的增加率选择图元的方法不限于此。
在操作S1160中,加速结构产生设备200可通过选择的图元将布置的多个图元分类到多个包围盒中。
操作S1160可对应于以上参照图7描述的操作S750。
图12是示出根据实施例的用于通过加速结构产生设备200通过使用针对布置的多个图元811至821中的每个设置的权重来将多个图元分类到包围盒中的方法的流程图。
参照图12,加速结构产生设备200可根据线性码布置多个图元811至821。假设图12中的多个图元811至821以与以上参照图9描述的方法相同的方式被布置。
加速结构产生设备200可根据布置顺序确定针对布置的多个图元811至821中的每个图元的权重。例如,加速结构产生设备200可确定多个图元811至821的权重,使得布置在靠近布置顺序的中心的图元的权重具有比布置在远离布置顺序的中心的图元的权重更大的值。
当多个图元的数量是N时,加速结构产生设备200可将布置顺序的中心确定为N/2。在本实施例中,假设布置顺序的中心是通过将多个图元811至821的数量“11”除以2获得的5.5。
加速结构产生设备200可针对从第一至第五布置的图元中的每个图元设置权重i/5.5。在此,“i”可表示布置顺序。因此,第一图元811至第五图元815的权重“w1、w2、w3、w4和w5”可被分别设置为1/5.5、2/5.5、3/5.5、4/5.5和5/5.5。此外,加速结构产生设备200可针对从第六至第十一布置的图元中的每个图元设置权重(N-i)/M。因此,第六图元816至第十一图元821的权重“w6、w7、w8、w9、w10和w11”可被分别设置为5/5.5、4/5.5、3/5.5、2/5.5、1/5.5和0。
根据实施例,加速结构产生设备200可比较针对多个图元811至821中的每个图元的权重与包围盒的大小的增加率的组合值。例如,加速结构产生设备200可比较针对布置的多个图元中的每个图元的权重与包围盒的大小的增加率的乘积值。此外,加速结构产生设备200可选择布置的多个图元之中的使权重与包围盒的大小的增加率的乘积值最大的图元。例如,多个图元811至821之中的第一图元811的增加率可具有最大值;然而,当第五图元815的权重与包围盒的大小的增加率的乘积具有最大值的时,第五图元815可被选择。
当选择第五图元815时,加速结构产生设备200可将多个图元811至821分类到包括第一图元811至第五图元815的第一包围盒1210和包括第六图元816和第十一图元821的第二包围盒1220中。此外,加速结构产生设备200可针对包括在第一包围盒1210和第二包围盒1220中的每个包围盒中的图元,重复地执行基于权重和包围盒的大小的增加率对图元进行分类的处理。
根据实施例,加速结构产生设备200可通过使用包围盒的大小的增加率和根据多个图元811至821的布置顺序确定的权重一起对多个图元811至821进行分类,来减缓或防止加速结构的深度值的增加。
以上方法可被写为能够通过计算机执行的程序,并可被实现为通过使用计算机可读记录介质执行程序的通用数字计算机。此外,在以上方法中使用的数据结构可通过各种方式被写入在计算机可读记录介质上。计算机可读记录介质的示例可包括磁存储介质(例如,ROM、RAM、USB、软盘和硬盘)和光学记录介质(例如,CD-ROM和DVD)。
应理解,在此描述的实施例应仅被认为是描述性意义,而不是限制的目的。对每个实施例中的特征或方面的描述通常应被认为可用于其他实施例中的其他相似的特征或方面。
尽管已经参照附图描述了一个或多个示例性实施例,但是本领域的普通技术人员将理解,在不脱离权利要求所限定的精神和范围的情况下,可以对其进行形式和细节上的各种改变。
Claims (19)
1.一种用于产生用于光线跟踪的加速结构的方法,所述方法包括:
产生线性码,线性码表示包括在三维空间中的多个图元中的每个图元的位置;
根据产生的线性码,布置所述多个图元;
在将布置的所述多个图元顺序地输入到产生的包围盒中的同时,确定产生的包围盒的大小的改变率;
基于产生的包围盒的大小的改变率,选择布置的所述多个图元之一;
根据选择的图元,将布置的所述多个图元分类到多个确定的包围盒中。
2.如权利要求1所述的方法,其中,确定的步骤包括:
将布置的所述多个图元之中的第一图元输入到产生的包围盒中,产生的包围盒包括布置的所述多个图元之中的第二图元,第一图元在第二图元的下一个被布置;
确定包括第一图元和第二图元的产生的包围盒相对于包括第二图元的产生的包围盒的大小的改变率。
3.如权利要求1所述的方法,其中,选择的步骤选择布置的所述多个图元之中的与产生的包围盒的大小的最大的改变率相关联的图元。
4.如权利要求1所述的方法,其中,所述多个图元中的每个图元的位置基于三维空间中的所述多个图元中的每个图元的中心的坐标信息。
5.如权利要求1所述的方法,其中,分类的步骤将布置的所述多个图元分类到第一包围盒和第二包围盒中,第一包围盒包括选择的图元和在选择的图元之前布置的至少一个图元,第二包围盒包括在选择的图元之后布置的至少一个图元。
6.如权利要求5所述的方法,还包括:
产生与第一包围盒相应的第一节点和与第二包围盒相应的第二节点;
将第一节点和第二节点添加为加速结构的子节点。
7.如权利要求1所述的方法,还包括:
基于布置的结果设置权重,
其中,选择的步骤基于设置的权重和产生的包围盒的大小的改变率,来选择布置的所述多个图元之一。
8.如权利要求7所述的方法,其中,设置的步骤从布置的所述多个图元的布置顺序的中心减小权重。
9.如权利要求1所述的方法,其中,线性码包括莫顿码。
10.一种用于产生用于光线跟踪的加速结构的设备,所述设备包括:
存储器,存储加速结构和关于包括在三维空间中的多个图元中的每个图元的位置的信息;
处理器,被配置为:根据线性码布置所述多个图元,线性码基于关于所述多个图元中的每个图元的位置的信息;在将布置的所述多个图元顺序地输入到产生的包围盒中的同时,确定产生的包围盒的大小的改变率;基于产生的包围盒的大小的改变率,选择布置的所述多个图元之一;根据选择的图元,将布置的所述多个图元分类到多个确定的包围盒中。
11.如权利要求10所述的设备,其中,处理器被配置为:
将布置的所述多个图元之中的第一图元输入到产生的包围盒中,产生的包围盒包括布置的所述多个图元之中的第二图元,第一图元在第二图元的下一个被布置;
确定包括第一图元和第二图元的产生的包围盒相对于包括第二图元的产生的包围盒的大小的改变率。
12.如权利要求10所述的设备,其中,处理器被配置为选择布置的所述多个图元之中的与产生的包围盒的大小的最大的改变率相关联的图元。
13.如权利要求10所述的设备,其中,所述多个图元中的每个图元的位置基于三维空间中的所述多个图元中的每个图元的中心的坐标信息。
14.如权利要求10所述的设备,其中,处理器被配置为:将布置的所述多个图元分类到第一包围盒和第二包围盒中,第一包围盒包括选择的图元和在选择的图元之前布置的至少一个图元,第二包围盒包括在选择的图元之后布置的至少一个图元。
15.如权利要求14所述的设备,其中,处理器被配置为:产生与第一包围盒相应的第一节点和与第二包围盒相应的第二节点,并将第一节点和第二节点添加为加速结构的子节点。
16.如权利要求10所述的设备,其中,处理器被配置为:基于布置的所述多个图元的布置顺序来设置权重,并基于设置的权重和产生的包围盒的大小的改变率,来选择布置的所述多个图元之一。
17.如权利要求16所述的设备,其中,处理器被配置为从布置的所述多个图元的布置顺序的中心减小权重。
18.如权利要求10所述的设备,其中,线性码包括莫顿码。
19.一种存储程序的非暂时性计算机可读记录介质,当通过计算机执行所述程序时,使计算机执行权利要求1所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2016-0146908 | 2016-11-04 | ||
KR1020160146908A KR20180050124A (ko) | 2016-11-04 | 2016-11-04 | 가속 구조를 생성하는 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108022284A true CN108022284A (zh) | 2018-05-11 |
CN108022284B CN108022284B (zh) | 2023-06-02 |
Family
ID=60190749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710794757.6A Active CN108022284B (zh) | 2016-11-04 | 2017-09-06 | 用于产生加速结构的方法和设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10460506B2 (zh) |
EP (1) | EP3319047B1 (zh) |
JP (1) | JP6948226B2 (zh) |
KR (1) | KR20180050124A (zh) |
CN (1) | CN108022284B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018022011A1 (en) * | 2016-07-26 | 2018-02-01 | Hewlett-Packard Development Company, L.P. | Indexing voxels for 3d printing |
US12013808B2 (en) * | 2019-03-15 | 2024-06-18 | Intel Corporation | Multi-tile architecture for graphics operations |
US11398072B1 (en) * | 2019-12-16 | 2022-07-26 | Siemens Healthcare Gmbh | Method of obtaining a set of values for a respective set of parameters for use in a physically based path tracing process and a method of rendering using a physically based path tracing process |
US12118643B2 (en) * | 2021-12-23 | 2024-10-15 | Nvidia Corporation | Hardware-accelerated nearest neighbor queries for arbitrary data primitives |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013022804A1 (en) * | 2011-08-05 | 2013-02-14 | Caustic Graphics, Inc. | Systems and methods for 3-d scene acceleration structure creation and updatting |
US20150109292A1 (en) * | 2013-10-22 | 2015-04-23 | Samsung Electronics Co., Ltd. | Method and apparatus for generating acceleration structure in ray tracing system |
CN105117533A (zh) * | 2015-08-03 | 2015-12-02 | 常州赞云软件科技有限公司 | 家装设计软件中光线跟踪算法的加速方法 |
CN105469440A (zh) * | 2014-09-30 | 2016-04-06 | 三星电子株式会社 | 用于产生和遍历加速结构的方法和设备 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7580927B1 (en) | 2001-05-29 | 2009-08-25 | Oracle International Corporation | Quadtree center tile/boundary tile optimization |
US8018457B2 (en) | 2006-09-19 | 2011-09-13 | Caustic Graphics, Inc. | Ray tracing system architectures and methods |
GB0710795D0 (en) | 2007-06-05 | 2007-07-18 | Arm Norway As | Method of and apparatus for processing graphics |
US8063902B2 (en) | 2007-10-12 | 2011-11-22 | Caustic Graphics, Inc. | Method and apparatus for increasing efficiency of transmission and/or storage of rays for parallelized ray intersection testing |
US8072460B2 (en) | 2007-10-17 | 2011-12-06 | Nvidia Corporation | System, method, and computer program product for generating a ray tracing data structure utilizing a parallel processor architecture |
US8237711B2 (en) | 2007-11-19 | 2012-08-07 | Caustic Graphics, Inc. | Tracing of shader-generated ray groups using coupled intersection testing |
US8773422B1 (en) | 2007-12-04 | 2014-07-08 | Nvidia Corporation | System, method, and computer program product for grouping linearly ordered primitives |
US8390618B2 (en) * | 2008-03-03 | 2013-03-05 | Intel Corporation | Technique for improving ray tracing performance |
EP3385913B1 (en) | 2008-09-22 | 2020-04-01 | Imagination Technologies Limited | Systems and methods for a ray tracing shader api |
US8379022B2 (en) | 2008-09-26 | 2013-02-19 | Nvidia Corporation | Fragment shader for a hybrid raytracing system and method of operation |
US8243073B2 (en) | 2009-01-28 | 2012-08-14 | International Business Machines Corporation | Tree insertion depth adjustment based on view frustum and distance culling |
KR101004110B1 (ko) | 2009-05-28 | 2010-12-27 | 주식회사 실리콘아츠 | 레이 트레이싱 코어 및 이를 포함하는 레이 트레이싱 칩 |
US8441482B2 (en) | 2009-09-21 | 2013-05-14 | Caustic Graphics, Inc. | Systems and methods for self-intersection avoidance in ray tracing |
US8472455B2 (en) | 2010-01-08 | 2013-06-25 | Nvidia Corporation | System and method for traversing a treelet-composed hierarchical structure |
US8780112B2 (en) | 2011-06-08 | 2014-07-15 | Pacific Data Images Llc | Coherent out-of-core point-based global illumination |
US20130033507A1 (en) | 2011-08-04 | 2013-02-07 | Nvidia Corporation | System, method, and computer program product for constructing an acceleration structure |
GB2546019B (en) * | 2012-11-02 | 2017-08-30 | Imagination Tech Ltd | Geometry processing method for 3-D rendering |
US9317948B2 (en) | 2012-11-16 | 2016-04-19 | Arm Limited | Method of and apparatus for processing graphics |
US20140340412A1 (en) | 2013-05-14 | 2014-11-20 | The Provost, Fellows, Foundation Scholars, & the other members of Board, et al. | Hardware unit for fast sah-optimized bvh constrution |
US10331632B2 (en) | 2013-06-10 | 2019-06-25 | Nvidia Corporation | Bounding volume hierarchies through treelet restructuring |
US10347042B2 (en) | 2014-03-13 | 2019-07-09 | Pixar | Importance sampling of sparse voxel octrees |
US9990758B2 (en) | 2014-03-31 | 2018-06-05 | Intel Corporation | Bounding volume hierarchy generation using a heterogeneous architecture |
US9697640B2 (en) * | 2014-04-21 | 2017-07-04 | Qualcomm Incorporated | Start node determination for tree traversal in ray tracing applications |
-
2016
- 2016-11-04 KR KR1020160146908A patent/KR20180050124A/ko active Search and Examination
-
2017
- 2017-08-29 US US15/689,266 patent/US10460506B2/en active Active
- 2017-09-06 CN CN201710794757.6A patent/CN108022284B/zh active Active
- 2017-10-27 EP EP17198959.3A patent/EP3319047B1/en active Active
- 2017-11-01 JP JP2017211625A patent/JP6948226B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013022804A1 (en) * | 2011-08-05 | 2013-02-14 | Caustic Graphics, Inc. | Systems and methods for 3-d scene acceleration structure creation and updatting |
US20150109292A1 (en) * | 2013-10-22 | 2015-04-23 | Samsung Electronics Co., Ltd. | Method and apparatus for generating acceleration structure in ray tracing system |
CN105469440A (zh) * | 2014-09-30 | 2016-04-06 | 三星电子株式会社 | 用于产生和遍历加速结构的方法和设备 |
CN105117533A (zh) * | 2015-08-03 | 2015-12-02 | 常州赞云软件科技有限公司 | 家装设计软件中光线跟踪算法的加速方法 |
Non-Patent Citations (1)
Title |
---|
陈婵娟等: "一种新的基于内包围盒技术的光线跟踪加速算法", 《西北大学学报(自然科学版)》 * |
Also Published As
Publication number | Publication date |
---|---|
JP6948226B2 (ja) | 2021-10-13 |
KR20180050124A (ko) | 2018-05-14 |
US20180130249A1 (en) | 2018-05-10 |
EP3319047A1 (en) | 2018-05-09 |
EP3319047B1 (en) | 2021-12-01 |
CN108022284B (zh) | 2023-06-02 |
US10460506B2 (en) | 2019-10-29 |
JP2018073427A (ja) | 2018-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8570322B2 (en) | Method, system, and computer program product for efficient ray tracing of micropolygon geometry | |
US7495664B2 (en) | Instant ray tracing | |
KR102712155B1 (ko) | 가속 구조를 생성하는 방법 및 장치 | |
EP3714433B1 (en) | Ray-triangle intersection testing with tetrahedral planes | |
US6052125A (en) | Method for reducing the rendering load for high depth complexity scenes on a computer graphics display | |
KR100889602B1 (ko) | 광선 추적을 위한 광선-삼각형 충돌 처리 방법 및 장치 | |
KR102604737B1 (ko) | 가속 구조를 생성하는 방법 및 장치 | |
US7773087B2 (en) | Dynamically configuring and selecting multiple ray tracing intersection methods | |
US8411088B2 (en) | Accelerated ray tracing | |
CN108022284A (zh) | 用于产生加速结构的方法和设备 | |
US8773422B1 (en) | System, method, and computer program product for grouping linearly ordered primitives | |
US8063902B2 (en) | Method and apparatus for increasing efficiency of transmission and/or storage of rays for parallelized ray intersection testing | |
US8384723B2 (en) | Method and system of rendering parallel global illumination | |
US10586375B2 (en) | Hybrid raytracing approach for modeling light reflection | |
EP3933779A1 (en) | Intersection testing in a ray tracing system | |
JP2009534759A (ja) | 瞬時光線追跡 | |
CN101297325B (zh) | 用于射线跟踪的方法和装置 | |
Hu et al. | Parallel BVH construction using locally density clustering | |
CN118648028A (zh) | 紧密世界空间包围区域的生成 | |
KR101228118B1 (ko) | 다각형 중요도에 기반을 둔 교차 검사 가속화 자료 구조 구성 방법 | |
Domaradzki et al. | Fracturing sparse-voxel-octree objects using dynamical voronoi patterns | |
EP3933781B1 (en) | Intersection testing in a ray tracing system | |
Wang | Accelerating Ray Tracing with Range Query Data Structures | |
Alfrink et al. | Real-Time Spatio-Temporal Databases: Bridging the Gap Between Experimentable Digital Twins and Databases | |
DiNatale et al. | GPU Accelerated Ray-Tracing on NVIDIA Hardware: Using object-based KD-Trees to accelerate image generation |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |