CN111402388A - 一种基于众核处理器的光线并行求交方法及光路追踪系统 - Google Patents
一种基于众核处理器的光线并行求交方法及光路追踪系统 Download PDFInfo
- Publication number
- CN111402388A CN111402388A CN202010261054.9A CN202010261054A CN111402388A CN 111402388 A CN111402388 A CN 111402388A CN 202010261054 A CN202010261054 A CN 202010261054A CN 111402388 A CN111402388 A CN 111402388A
- Authority
- CN
- China
- Prior art keywords
- intersection
- core
- light
- ray
- data area
- 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
Links
Images
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本公开公开了一种基于众核处理器的光线并行求交方法及光路追踪系统,包括:在主核中开辟用于存储采样光线的全局数据区,从核对所述采样光线进行光线并行求交,并将求交结果存储至全局数据区,所述主核根据求交结果进行着色操作,并计算采样光线在光路上的积分值。将光线求交和着色操作相互分离,计算光线求交与着色操作的时间比,对二者的任务量进行划分,从核中执行的第二部分光线求交和主核中执行的第一部分着色操作同步进行,充分利用从核内存,利用并行光线求交方式有效提高其求交效率,减少光路追踪算法的总时间,并且能够保证求交的准确性,从而保证图像的绘制质量。
Description
技术领域
本公开涉及图形真实渲染技术领域,特别是涉及一种基于众核处理器的光线并行求交方法及光路追踪系统。
背景技术
本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。
光路追踪算法是一种基于物理的真实感渲染方法,利用真实世界的物理原理在虚拟世界中来模拟光和物质的相互作用产生的视觉感。真实感渲染的目的是将同一场景下的三维场景生成的图像与现实世界的照片难以区分。光路追踪算法是以观察者的视角,根据光的可逆性物理原理,对光线进行逆向追踪,从观察屏幕的像素点发射虚拟光,并计算光在虚拟三维场景中与物质相交产生的反射、折射和散射等物理效果,最终生成逼真的图像。光路追踪算法在影视动漫、VR、仿真和游戏等领域有广泛的应用价值和研究价值。
在物理世界中,观察者的每一个成像点的颜色值是由来自不同方向的光线效果的共同作用而产生的。在现实世界中,光线的数量是无法估计的,而在虚拟场景中的虚拟光线的数量则是有限的。同理,在光路追踪算法中,每个像素点的光线采样数量越多,则渲染的图片质量越高,因此,为提高绘制图像的质量和真实感,需要提高光线的采样数量。
发明人发现,在光路追踪绘制过程中,每一条光线需要对场景进行相交运算,找到交点并计算光源对该交点产生的辐射度影响值,因此需要在该交点处对光源进行采样,并生成一条射线与场景进行相交运算,判断交点与光源之间是否存在物体遮挡。因此,在追踪光线的每一层级时,都至少需要进行两次求交运算。
在光路追踪算法中,经发明人统计,光线与场景求交是最为耗时的。场景经过网格化生成了数十万数百万乃至更多个三角面片,光线需要与该三角面片集进行遍历和相交测试,确定交点的最终位置。为了能够有效的遍历和求交,利用BVH和KD-tree等树形结构对场景进行划分,从而减少不必要的相交测试,有效的对场景进行剔除,最终仅仅对很少的一部分三角形进行有效的相交测试。而在高采样的环境中,大量的光线需要与场景进行相交测试,消耗了大量的计算时间,降低了光路追踪算法整体的效率。
发明内容
为了解决上述问题,本公开提出了一种基于众核处理器的光线并行求交方法及光路追踪系统,将光线求交和着色操作相互分离,计算光线求交与着色操作的时间比,对二者的任务量进行划分,从核中执行的第二部分光线求交和主核中执行的第一部分着色操作同步进行,充分利用从核内存,利用并行光线求交方式有效提高其求交效率,减少光路追踪算法的总时间,并且能够保证求交的准确性,从而保证图像的绘制质量。
为了实现上述目的,本公开采用如下技术方案:
第一方面,本公开提供一种基于众核处理器的光线并行求交方法,包括:
在众核处理器的主核中开辟用于存储采样光线的全局数据区,众核处理器的从核对所述采样光线进行光线并行求交,并将求交结果存储至全局数据区,所述主核根据求交结果进行着色操作,并计算采样光线在光路上的积分值。
第二方面,本公开提供一种基于众核处理器的光线遮挡判断并行求交方法,包括:
在众核处理器的主核中开辟用于存储采样光线的全局数据区,众核处理器的从核对所述采样光线进行光线并行求交,并将求交结果存储至全局数据区;所述主核根据求交结果进行着色操作;
在所述着色操作中根据交点对光源进行采样得到阴影采样光线,从核对所述阴影采样光线进行并行求交,判断阴影采样光线是否存在遮挡,主核根据遮挡判断结果对光路的积分值进行更新。
第三方面,本公开提供一种基于众核处理器的光路追踪系统,包括若干个核组,所述核组包括主核和从核,在任意一个核组的主核中对光路追踪进行划分,将划分的光路追踪子任务分配至其他核组内;
所述核组完成如基于众核处理器的光线并行求交方法或基于众核处理器的光线遮挡判断并行求交方法所述的步骤。
与现有技术相比,本公开的有益效果为:
本公开能够充分利用从核稀少的存储,利用并行光线求交方式有效提高其求交效率,能够减少光路追踪算法的总时间,并且能够保证求交的准确性,从而保证图像的绘制质量。
本公开利用申威异构众核架构并结合光路追踪算法特点,将求交与着色相互分离,计算光线求交与着色的时间比,对二者的任务量进行有效的划分,将第二部分求交工作异步交于从核进行,减少一大部分的求交时间,从而提高光线求交效率,缩短有效的光路追踪时间。
本公开将阴影光线遮挡判断和阴影光线的求交集中交于从核进行求交运算,降低着色过程的计算时间,对提高整体的绘制效率。
本公开针对大规模场景的绘制,在全片共享模式下充分利用申威处理器的计算资源,对整个光路追踪的工作进一步划分,使得节点内核组间能够并行执行光路追踪方法,使得其计算效率明显提高。
附图说明
构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。
图1是本公开实施例1提供的一种光路追踪算法中求交与着色操作的分离流程图;
图2是本公开实施例1提供的一种基于众核处理器从核的光线求交示意图;
图3是本公开实施例1提供的一种主从异步求交的示意图;
图4是本公开实施例2提供的一种从核对阴影光线并行求交的流程图;
图5是本公开实施例3提供的一种全片共享模式下的三级并行光路追踪方法架构图;
图6(a)是本公开实施例3提供的Sponza-Lucy场景在原始模式下的绘制结果;
图6(b)是本公开实施例3提供的Sponza-Lucy场景在三级并行模式下的绘制结果;
图6(c)是本公开实施例3提供的Sponza-Lucy场景在两种模式下的差值图。
具体实施方式:
下面结合附图与实施例对本公开做进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
实施例1
光路追踪算法流程是从照相机或观察者视点发射一条光线,根据光的可逆性光学原理逆向追踪光线,光线首先与场景进行相交操作,然后进行交点处的着色操作,并生成反射或折射光线,即下一级光线(次级光线),然后继续追踪,直到该光线与光源相交。这是一条光线完整的光路,在这条光路上进行积分,计算该条光线对像素点的光辐射度的贡献值。
在本实施例中,提供一种基于众核处理器的光线并行求交方法,如图1所示,具体包括:
在主核中开辟用于存储采样光线的全局数据区,从核对所述采样光线进行光线并行求交,并将求交结果存储至全局数据区,所述主核根据求交结果进行着色操作,并计算采样光线在光路上的积分值。
本实施例使用的处理器为申威26010众核处理器,该处理器共有四个核组,每个核组包含一个主核和64个从核,每个主核有8GB主存,而每个从核仅有64KB的局存,单核的主频是1.45GHz。
在光路追踪算法中,光线求交与着色操作二者互相依赖,着色操作依赖求交结果信息,在本实施例中,光线需要在申威处理器的从核中与场景并行求交,因此需要对光路追踪算法中求交与着色操作相互分离。
S101:在主核中开辟用于存储采样光线的全局数据区,所述全局数据区包括光线集数据区和信息区;
在具体实施中,步骤S101中开辟全局数据区的过程为:
开辟光线集数据区,用于存储从核进行光线求交所需要的采样光线,便于从核批量式获取光线集;由主核对像素点发射的光线进行收集,得到采样光线集;
开辟信息区,用于存储从核求交结果,信息区包括光线求交结果、求交时间和交点信息,其中交点信息包括交点所处的几何体和三角形的索引值,求交时间是指从光线起点到交点的时间,如下公式:
其中,IP即Intersection Point表示交点位置向量,Ray.o表示光线的源点向量,Ray.d表示光线的方向向量,t表示从该光线源点沿光线方向到达交点所需要的时间。
S102:主核收集光线并对从核求交所需要的参数进行初始化;
具体地,主核首先对像素点发射的采样光线进行搜集,并将光线集存入到全局数据区中的光线集数据区;
获取划分场景的树的根节点信息、三角形数组的首地址以及场景的边界框信息,将该数据存储到结构体中方便从核调用。在本实施例中,采用KD-tree结构对场景进行划分,KD-tree是一种树形结构的划分方式,从三个维度对场景进行划分,内部节点中存放划分的维度和分割面信息,叶子节点中存放一定范围数量的三角形索引,以便光线与其进行相交测试。
S103:从核进行光线与场景的并行求交;
具体的,核组的从核从全局数据区中获取光线集,通过DMA连续内存访问方法批量式将光线存入从核的缓存中;通过光线求交运算,将每条光线的求交结果通过DMA连续内存访问方式写入到全局数据区的信息区中。
如图2所示,由于从核仅有的64KB缓存无法存储大量的KD树节点和三角形,而且从核跨存访问主存带来的时间损耗较大,因此,需要针对从核设计一种适用于极少存储的光线遍历KD树的方法,实现在低存储的条件下实现高效的光线求交速率,并且能够保证求交结果的正确性。
在本实施例中,KD树内部节点中存储了左子树的根节点地址,右子树根节点地址相对左子树根节点地址加一,其本质是一颗二叉树。
对于KD树结构,某一个节点的子树并不是连续存储的,因此无法批量式获取大量的节点信息。对于光线遍历KD树而言,实质上是一种深度遍历操作,对于深度遍历操作,不同的光线可能会有不同的遍历路径和遍历栈,因此批量获取KD树节点是不太现实的。
本实施例根据光线遍历KD树节点的特点,采用取节点方式,先将树的根节点采用DMA方式获取到从核中,然后将其左右子节点同样取到从核中,然后根据与内部节点的求交结果判断下一个需要求交的子节点,即左节点或右节点,由于左、右子节点已预先取到从核中,因此不需要再次进行内存访问,此时再将该子节点的下级节点取到从核中,以便下一次遍历操作。
该方法是一种自适应遍历的方式,提高整体的求交效率,能够根据求交结果得到下一个需要遍历的节点,每条光线都有自己的遍历栈,能够保证光线求交的准确性。如表1所示为Sponza-Lucy场景下从核光线求交相对于原始模式下的加速情况,如表1的求交结果可知,在Sponza-Lucy场景下,从核并行光线求交的效率是原始模式下的40倍以上。
表1 Sponza-Lucy场景下从核光线求交相对原始模式下的求交时间与加速情况
光线数量/条 | 原始时间/s | 从核时间/s | 加速比 |
41779200 | 2095s | 49s | 42.7倍 |
83558400 | 4217s | 99s | 42.5倍 |
125337600 | 6323s | 147s | 43.0倍 |
S104:主核进行着色操作;
从核求交任务结束后,主核根据求交结果进行着色操作,计算光线的积分值,生成次级光线,并对次级光线进行收集,依次方式迭代下去,直到达到光线追踪层级,每条光线在其光路上的积分值计算结束。
本实施例将光路追踪算法中的光线求交与着色操作进行分离,在每一级光线中,从核进行光线求交任务,主核进行着色操作。
如图3所示,根据求交与着色相互分离的特点,本实施例通过对相同光线下的求交与着色的时间进行统计,对求交与着色的工作进一步划分,利用主核和从核的工作模式进一步对从核光线求交进行优化,提供一种主从异步模式下的求交方式,利用主核和从核的工作模式,能够将部分求交时间隐匿起来,进一步提高光线求交效率,降低光线求交的有效时间。
具体的,根据从核求交时间和主核着色时间的比例分别对光路追踪中光线求交和着色操作进行划分,将从核光线求交与主核着色操作的工作分为两部分,为保证第二部分求交时间能够完全被覆盖,其划分比例满足:
Task1:Task2>Tits:Tshader,
其中,Task1与Task2表示求交与着色分别划分的工作量,Tits表示从核求交的时间,Tshader表示主核进行着色的时间。为保证第一部分着色时间能够完全覆盖第二部分从核的求交时间,因此两部分任务的划分比例要大于求交时间与着色时间的比值。
第一部分光线求交任务在从核中进行,此时主核处于阻塞状态;第一部分求交任务结束后,第一部分着色工作在主核中进行,同时将第二部分求交任务提交到从核执行;当第一部分着色工作结束后,第二部分的求交任务也已完成,最后主核直接进行第二部分着色工作。该模式下,第二部分的求交时间被隐匿,大大减少了求交时间。
本实施例通过对Sponza-Lucy绘制过程中从核求交和主核着色的时间统计,相同数量的主核着色时间与从核光线求交时间的比值能够达到40倍左右。本实施例为保证第一部分着色工作结束时第二部分求交任务也能结束,将求交和着色的工作量均分为1:4,理论上能降低4/5的有效时间。如表2所示,将工作量分为1:4后,异步求交加速比是原从核求交加速比的5倍左右,是原始模式下的200倍以上。本实施例为展示异步求交的优化效果,仅将工作量划分为1:4,但可通过测试达到最佳的划分方式。
表2异步光线求交统计结果
光线数量/条 | 原始求交 | 从核求交 | 加速比 | 异步求交 | 加速比 |
41779200 | 2095s | 49s | 42.7倍 | 10s | 209.5倍 |
83558400 | 4217s | 99s | 42.5倍 | 19.6s | 215.1倍 |
125337600 | 6323s | 147s | 43.0倍 | 29.5s | 214.3倍 |
实施例2
如图4所示,本实施例提供一种基于众核处理器的光线遮挡判断并行求交方法,将着色过程中交点对光源采样后的遮挡判断并行执行,降低着色过程所消耗的时间,有效缩短了光路追踪的计算时间,具体包括:
在主核中开辟用于存储采样光线的全局数据区,从核对所述采样光线进行光线并行求交,并将求交结果存储至全局数据区;所述主核根据求交结果进行着色操作;
在所述着色操作中根据交点对光源进行采样得到阴影采样光线,从核对所述阴影采样光线进行并行求交,判断阴影采样光线是否存在遮挡,主核根据遮挡判断结果对光路的积分值进行更新。
在本实施例中,在主核中开辟阴影光线数据区和贡献值数据区,所述阴影采样光线存储至阴影光线数据区,将阴影采样光线未发生遮挡时,光源对交点的辐射度影响值存储至辐射度影响值数据区。
另外,全局数据区还包括光线集数据区和信息区;所述光线集数据区用于存储从核进行光线求交所需要的采样光线,所述信息区用于存储从核求交结果;
具体包括:
S201:从核对主光线进行光线求交操作,并将求交结果反馈到主核的信息区;
S202:主核根据主光线求交结果,然后根据交点对光源进行采样,得到阴影采样光线,并将阴影采样光线存储到阴影光线数据区,计算假设该光线未发生任何遮挡时光源对该交点的辐射度影响值,并将辐射度影响值存储到对应的辐射度影响值数据区中;
S203:从核根据主核收集的采样光线进行并行求交操作,判断采样光线是否存在遮挡;
S204:主核根据从核遮挡判断的结果对光路的积分值进行更新,若未发生任何遮挡,则累加光源的辐射度影响值,若发生遮挡,则不更新。
从核的光线求交过程为:从核从全局数据区中通过连续内存访问方法批量式获取待求交光线;
通过DMA方法在光线遍历树中获取待求交光线对应的子节点,根据待求交光线的求交结果判断下一次待求交的子节点,同时将该子节点的下级节点提取到从核中;
在从核中进行光线求交,将每条光线的求交结果通过连续内存访问方式存入到全局数据区。
主核的着色操作过程为:主核根据求交结果进行着色操作,计算光线的积分值,生成次级光线,并对次级光线进行收集,直至光线追踪层级,每条光线在其光路上的积分值计算结束。
主核根据遮挡判断结果对光路的积分值进行更新过程为:
在光路追踪算法中,当光线与场景相交产生交点后,该交点会对光源进行采样,计算光源对该交点的辐射度影响值。在采样过程中,会生成一条指向光源的光线,该光线会与场景进行相交,判断交点与光源二者间是否存在物体遮挡,然后更新积分值,如下公式所示:
Ray.Li+=occluded?0:value
其中,符号“?”表示判断,若采样光线存在遮挡,则不更新主光线中的积分值,若不存在遮挡则更新积分值;occluded表示光源采样光线是否存在遮挡;value表示光源对交点的影响值。
在本实施例中,将阴影光线的遮挡判断从着色流程中分离开来,并且将遮挡判断交给从核并行计算,能够降低着色流程的计算时间,提高整体的光路追踪效率。表3是将遮挡判断交给从核进行的整体求交效率,如表3所示,总求交时间是指主光线的求交时间与阴影光线遮挡判断求交时间的总和,从结果中可以看出,在Sponza-Lucy场景下,从核的总光线求交效率是原始模式下的70倍以上,大大减少了光线求交的时间,提高了光路追踪的运算效率。
表3 Sponza-Lucy场景下阴影光线优化后的光线求交加速效率
运行模式 | 光线数量/条 | 总求交时间/s | 求交加速比 |
原始模式 | 267386880 | 103717 | 1.00 |
主从加速 | 267386880 | 1423 | 72.88 |
实施例3
如图5所示,本实施例提供一种基于众核处理器的光路追踪系统,包括若干个核组,所述核组包括主核和从核,在任意一个核组的主核中对光路追踪进行划分,将划分的光路追踪子任务分配至其他核组内;
所述核组完成如基于众核处理器的光线并行求交方法或基于众核处理器的光线遮挡判断并行求交方法所述的步骤。
调用全片共享模式下其它核组的过程为:将各个核组运行时的参数进行初始化,并区分各共享区中的内存布局,防止各核组间发生并发读和并发写,出现脏数据的问题;
利用pthread库将其它核组进行运行前初始化,然后将执行的工作内容和所需参数交给各核组并开始执行。
可以理解的,一种基于众核处理器的光路追踪系统,包括若干个处理器,所述处理器包括若干个核组,所述核组包括主核和从核,在任意一个核组的主核中对光路追踪进行划分,将划分的光路追踪子任务分配至其他核组内;
各处理器之间完成区域块的光路追踪工作,处理器内各核组间并行完成光路追踪工作;核组内进行从核求交工作和主核着色工作。
本实施例适用于大规模场景绘制,在大规模场景绘制背景下,处理器单个核组的内存(8G)无法满足其需求,因此需要开启全片共享模式,将片上4个核组的主存共32G交给工作的该核组使用以满足存储需求。
在全片共享模式下,默认使用一个核组的计算资源,为充分利用处理器的计算资源,本实施例提供了一种三级并行的光路追踪方法,将其它核组充分利用,提高整体的光路追踪效率。
具体地,第一级是计算节点之间的block并行绘制,第二级是节点内核组间的光路追踪运算的并行,第三级是核组内从核光线求交的并行。计算节点则是一整个申威处理器,在节点内将光路追踪任务分摊到其它的核组中并行绘制,以提高整体的光路追踪效率。各种模式下对光路追踪计算时间和总的求交时间进行统计,如表4所示,计算时间是指光路追踪运算的总时间;求交时间是主光线求交和阴影光线求交的总和;主从加速模式是指求交在从核中进行,但未采用异步求交模式。从表中可以看到,三级并行模式下的光路追踪方法效率是原始模式下的9倍以上,大大提高了光路追踪的效率。由图6(a)-6(c)可以看出,对于Sponza-Lucy场景的绘制效果图,在原始模式下的绘制结果和三级并行下的绘制结果基本相同。
表4三级并行光路追踪方法加速效果
模式 | 光线数量 | 计算时间 | 求交时间 | 求交加速 | 计算加速 |
原始模式 | 267386880 | 163068s | 103717s | 1.00 | 1.00 |
主从加速 | 267386880 | 58518s | 1423s | 72.88 | 2.79 |
三级并行 | 267386880 | 16516s | 604s | 171.72 | 9.87 |
以上仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。
Claims (10)
1.一种基于众核处理器的光线并行求交方法,其特征在于,包括:
在众核处理器的主核中开辟用于存储采样光线的全局数据区,众核处理器的从核对所述采样光线进行光线并行求交,并将求交结果存储至全局数据区,所述主核根据求交结果进行着色操作,并计算采样光线在光路上的积分值。
2.如权利要求1所述的一种基于众核处理器的光线并行求交方法,其特征在于,所述光线并行求交包括:根据从核求交时间和主核着色时间的比例分别对光路追踪中光线求交和着色操作进行划分,从核中执行的第二部分光线求交和主核中执行的第一部分着色操作同步进行;
或,划分比例满足:
Task1:Task2>Tits:Tshader,
其中,Task1与Task2分别是光线求交与着色操作划分的工作量,Tits是从核求交时间,Tshader是主核着色时间;
或,第一部分光线求交在从核中执行,主核阻塞等待;当第一部分光线求交结束后,主核进行第一部分着色操作,从核同时执行第二部分光线求交,第一部分着色操作和第二部分光线求交同时完成,继而主核执行第二部分着色操作。
3.如权利要求1所述的一种基于众核处理器的光线并行求交方法,其特征在于,所述全局数据区包括光线集数据区和信息区;所述光线集数据区用于存储从核进行光线求交所需要的采样光线,所述信息区用于存储从核求交结果;
或,所述信息区包括光线求交结果、求交时间和交点信息,其中交点信息包括交点所处的几何体和三角形的索引值,求交时间指从采样光线起点到交点的时间。
4.如权利要求1所述的一种基于众核处理器的光线并行求交方法,其特征在于,从核从全局数据区中通过连续内存访问方法批量式获取采样光线中待求交光线;
通过DMA方法在光线遍历树中获取待求交光线对应的子节点,根据待求交光线的求交结果判断下一次待求交的子节点,同时将该子节点的下级节点提取到从核中;
在从核中进行光线求交,将每条光线的求交结果通过连续内存访问方式存入到全局数据区。
5.如权利要求1所述的一种基于众核处理器的光线并行求交方法,其特征在于,主核进行着色操作中包括:
所述主核根据求交结果进行着色操作,计算光线的积分值,生成次级光线,并对次级光线进行收集,直至光线与光源相交,每条光线在其光路上的积分值计算结束。
6.一种基于众核处理器的光线遮挡判断并行求交方法,其特征在于,包括:
在众核处理器的主核中开辟用于存储采样光线的全局数据区,众核处理器的从核对所述采样光线进行光线并行求交,并将求交结果存储至全局数据区;所述主核根据求交结果进行着色操作;
在所述着色操作中根据交点对光源进行采样得到阴影采样光线,从核对所述阴影采样光线进行并行求交,判断阴影采样光线是否存在遮挡,主核根据遮挡判断结果对光路的积分值进行更新。
7.如权利要求6所述的一种基于众核处理器的光线遮挡判断并行求交方法,其特征在于,所述全局数据区包括光线集数据区和信息区;所述光线集数据区用于存储从核进行光线求交所需要的采样光线,所述信息区用于存储从核求交结果;
或,所述全局数据区包括阴影光线数据区和辐射度影响值数据区,所述阴影采样光线存储至阴影光线数据区,将阴影采样光线未发生遮挡时,光源对交点的辐射度影响值存储至辐射度影响值数据区。
8.如权利要求6所述的一种基于众核处理器的光线遮挡判断并行求交方法,其特征在于,所述主核根据求交结果进行着色操作,计算光线的积分值,生成次级光线,并对次级光线进行收集,直至光线与光源相交,每条光线在其光路上的积分值计算结束;
或,所述主核根据遮挡判断结果对光路的积分值进行更新过程为:
从核对阴影光线进行求交,并将求交结果存入全局数据区中;
主核根据从核阴影光线遮挡判断的结果,更新光路积分值,若未发生遮挡,则累加光源对交点的辐射度影响值,更新积分值;若发生遮挡,则不更新。
9.如权利要求6所述的一种基于众核处理器的光线遮挡判断并行求交方法,其特征在于,从核从全局数据区中通过连续内存访问方法批量式获取待求交光线;
通过DMA方法在光线遍历树中获取待求交光线对应的子节点,根据待求交光线的求交结果判断下一次待求交的子节点,同时将该子节点的下级节点提取到从核中;
在从核中进行光线求交,将每条光线的求交结果通过连续内存访问方式存入到全局数据区。
10.一种基于众核处理器的光路追踪系统,其特征在于,包括若干个核组,所述核组包括主核和从核,在任意一个核组的主核中对光路追踪进行划分,将划分的光路追踪子任务分配至其他核组内;
所述核组完成如权利要求1-5或权利要求6-9任一项方法所述的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010261054.9A CN111402388A (zh) | 2020-04-03 | 2020-04-03 | 一种基于众核处理器的光线并行求交方法及光路追踪系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010261054.9A CN111402388A (zh) | 2020-04-03 | 2020-04-03 | 一种基于众核处理器的光线并行求交方法及光路追踪系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111402388A true CN111402388A (zh) | 2020-07-10 |
Family
ID=71429426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010261054.9A Pending CN111402388A (zh) | 2020-04-03 | 2020-04-03 | 一种基于众核处理器的光线并行求交方法及光路追踪系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111402388A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113344766A (zh) * | 2021-06-07 | 2021-09-03 | 中天恒星(上海)科技有限公司 | 光线追踪处理器、处理器芯片、设备终端以及光线追踪方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104200508A (zh) * | 2014-08-19 | 2014-12-10 | 山东大学 | 基于Intel众核架构对等模式的光线追踪加速方法 |
US20150109302A1 (en) * | 2013-10-21 | 2015-04-23 | Samsung Electronics Co., Ltd. | Method and apparatus for performing ray tracing for rendering image |
CN104700447A (zh) * | 2015-04-01 | 2015-06-10 | 山东大学 | 基于Intel众核架构的光线追踪并行优化方法 |
CN106776028A (zh) * | 2016-12-21 | 2017-05-31 | 东北大学 | 一种基于gpu的光线跟踪方法 |
CN109118567A (zh) * | 2018-08-16 | 2019-01-01 | 郑州云海信息技术有限公司 | 一种光线追踪方法、系统、设备及计算机可读存储介质 |
-
2020
- 2020-04-03 CN CN202010261054.9A patent/CN111402388A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150109302A1 (en) * | 2013-10-21 | 2015-04-23 | Samsung Electronics Co., Ltd. | Method and apparatus for performing ray tracing for rendering image |
CN104200508A (zh) * | 2014-08-19 | 2014-12-10 | 山东大学 | 基于Intel众核架构对等模式的光线追踪加速方法 |
CN104700447A (zh) * | 2015-04-01 | 2015-06-10 | 山东大学 | 基于Intel众核架构的光线追踪并行优化方法 |
CN106776028A (zh) * | 2016-12-21 | 2017-05-31 | 东北大学 | 一种基于gpu的光线跟踪方法 |
CN109118567A (zh) * | 2018-08-16 | 2019-01-01 | 郑州云海信息技术有限公司 | 一种光线追踪方法、系统、设备及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
柳有权等: "光线跟踪算法的加速技术研究", 《计算机与数字工程》 * |
高兴: "光线追踪技术在国产众核平台上的研究与应用", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113344766A (zh) * | 2021-06-07 | 2021-09-03 | 中天恒星(上海)科技有限公司 | 光线追踪处理器、处理器芯片、设备终端以及光线追踪方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10706608B2 (en) | Tree traversal with backtracking in constant time | |
TWI656481B (zh) | 關於序列平行化消耗的方法、電腦可讀取媒體和系統 | |
US10025879B2 (en) | Tree data structures based on a plurality of local coordinate systems | |
US8065288B1 (en) | System, method, and computer program product for testing a query against multiple sets of objects utilizing a single instruction multiple data (SIMD) processing architecture | |
US11715255B2 (en) | Intersection testing in a ray tracing system using ray bundle vectors | |
US8289324B1 (en) | System, method, and computer program product for spatial hierarchy traversal | |
US9305324B2 (en) | System, method, and computer program product for tiled deferred shading | |
US7990380B2 (en) | Diffuse photon map decomposition for parallelization of global illumination algorithm | |
US11315303B2 (en) | Graphics processing | |
US20140327673A1 (en) | Real-time global illumination using pre-computed photon paths | |
US11010963B2 (en) | Realism of scenes involving water surfaces during rendering | |
US11847733B2 (en) | Performance of ray-traced shadow creation within a scene | |
GB2607348A (en) | Graphics processing | |
US8072454B1 (en) | Parallel processing system, method, and computer program product for selecting a ray tracing entity from a group of ray tracing entities for processing | |
CN111402388A (zh) | 一种基于众核处理器的光线并行求交方法及光路追踪系统 | |
US20220392146A1 (en) | Graphics processing | |
US8059123B1 (en) | Parallel processing system, method, and computer program product for postponing the execution of primitive intersection | |
Frolov et al. | Biased global illumination via irradiance caching and adaptive path tracing on GPUs | |
US12073505B2 (en) | Intersection testing in a ray tracing system using multiple ray bundle intersection tests | |
GB2622226A (en) | Graphics processing | |
Kim et al. | Fast ray-triangle intersection computation using reconfigurable hardware | |
Song | The optimization and performance evaluation of ray tracer on GPU | |
DE102024100495A1 (de) | Untergrundstreuung für echtzeit-rendering-anwendungen | |
Fabianowski | Interactive Manycore Photon Mapping | |
Shi | Efficient Rendering of Scenes with Dynamic Lighting Using a Photons Queue and Incremental Update Algorithm |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200710 |
|
RJ01 | Rejection of invention patent application after publication |