基于神威太湖之光的光路追踪众核加速方法

发布时间:2021-11-11 11:32
  本文主要介绍了基于神威太湖之光异构众核架构的光路追踪加速方法,提出基于从核的光线与场景树求交的加速方法以及在超大规模场景下采用全片共享模式的加速绘制方法,并提出三级并行的光路追踪加速结构。针对分布式场景下多节点并行绘制出现的阴影消失的问题对引擎架构提出修改方案,并且在光路追踪流程的着色过程中提出光源采样光线遮挡判断的加速优化,以降低光路追踪的计算时间,从而提高整体的绘制效率。光路追踪流程中主要包含光线和场景求交运算和交点着色运算,二者占据了90%以上的时间。考虑到光路追踪流程的特点,文章将求交和着色在流程中进行分离,使得二者相互独立又相互联系。针对太湖之光众核结构提出了基于节点流和分布式光线求交两种光线遍历场景树并与几何基元相交计算的加速方法,并且对两种加速方法进行分析和对比,使得能够充分利用从核的计算能力提高光线求交的效率,而且利用太湖之光的主从异步模式能够将一大部分求交任务隐匿起来从而得到更高效率的求交效率。对于超大规模场景绘制,为充分利用核组的计算资源,采取节点内多核组并行的方式将计算任务进一步划分,并提出三级并行计算结构,进而提高整体的绘制效率。针对分布式场景绘制过程出现的阴影... 

【文章来源】:山东大学山东省 211工程院校 985工程院校 教育部直属院校

【文章页数】:65 页

【学位级别】:硕士

【部分图文】:

基于神威太湖之光的光路追踪众核加速方法


图1-1光路追踪7K意图??

边界框,光线,构建过程,场景


光线进行跟踪,直到满足像素点的采样数量。上述光路追踪算法是最??初的迭代式光路追踪算法,由最初的采样光线开始层层迭代,最终计算出该光路??的积分值,进而得到每一条光路源点的颜色值。??1.2.2?K-dimensional?tree?的构建与遍历??在分布式渲染引擎RWing中,采用KD树加速结构对场景进行划分。加速??结构的构建意义在于光线能够对场景进行有效的剔除,减少不必要的遍历,提高??光线求交效率。建树过程中会根据场景的具体分布来选取某一个维度对场景的边??界框进行划分,如图1-2所示,并且在节点中存储划分的维度和分割面,当划分??的空间中的三角形数量满足阈值范围,则不再继续划分,将三角面片的index范??围存放在叶子节点中。因此,在KD树内部节点中,存储的是划分维度和划分的??分割面数据,而在叶子节点中存储的是场景具体的三角形索引。对于三维空间,??共有三个维度,在构建过程中,由于在树的内部节点中存储了分割面的维度,因??此,对于每一次划分实质上是一次二分。??"〇?|?〇;|?I?0?M?O?;??□?口???A?D???A??D...?.*?A???M??图1-2?KD树划分场景的构建过程??光线首先与树的边界框进行相交计算,如果未产生任何交点,则遍历直接会??返回false,否则,确定其近交点与远交点,tmin和tmax,如图1-3所示,在(a)??过程中,光线与KD树边界框相交得到了范围,进而进入节点内部考??虑其两个子节点,以分割面tsplit将其划分为左、右(或者Near和Far)两个子??节点(图(b)过程)。光线首先会进入Near节点中,如果它是一个包含三角面片??的叶子节点,

过程图,遍历,现状,算法


?山东大学硕士学位论文???成一个自己的遍历栈以满足深度优先遍历的需求。??^max?/niax??Far?:?Near??(a)?(b)??/max?:?/imx?:??^sT?:?……??rs^N^??丨丨\、??(c)?(d)??图1-3?KD树的遍历过程??1.2.3国内外研宄现状??众所周知,光路追踪最早是由Appe在1968年提出,其算法可简单概括为,??从视点引出一条光线,找到该光线与场景中的交点,计算出反射光线并继续跟踪,??找到对该交点具有贡献值的光源等。那么,光线如何高效的遍历整个场景并快速??找到交点是近几十年来的研究热点。对于场景,研宄人员设计出许多层次数据加??速结构(如边界体层次结构(BVH)和Kd树等)用来加速光线遍历的速率。??1、无栈遍历方式??光线遍历场景数据结构通常使用维护遍历栈以递归的方式进行,但是,在高??度并行的体系结构中,如果要并行处理多条光线(需要大量的使用内存来存储光??线),或者光线遍历过程中需要挂起或恢复的情况下,必须保证每条光线具有完??整的遍历栈,而这可能会出现一些问题。因此,在这种情况下,无栈遍历开始被??研究。无栈遍历算法可大致归类为三种,一是重新遍历,二是利用数据结构的规??则隐式计算,三是在节点之间建立某种连接。??对于第一类方法,Foley和Sugerman[1]在kd树的基础上提出了两种无找遍??历算法:kd-restart和kd-backtrack,这两种算法修改了标准的Kd树遍历,消除??了所有的栈操作。Kd-restart算法是跟踪沿着光线上的点,该点标记的是己经遍??4??


本文编号:3488782

资料下载
论文发表

本文链接:https://www.wllwen.com/shoufeilunwen/xixikjs/3488782.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户19bab***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com