一种面向3D场景的光线追踪优化方法技术

技术编号:18085164 阅读:61 留言:0更新日期:2018-05-31 13:32
本发明专利技术提供一种面向3D场景的光线追踪优化方法,包括:创建3D场景的包围盒和3D场景中每个物体的AABB包围盒;建立3D场景的KD‑Tree;建立渲染管道。本发明专利技术通过使用GPU并行计算来提升光线追踪的渲染效率。不同于以往直接使用CPU对结点进行计算,同过并行计算解决光线追踪过程中大量重复的冗余计算。在基于传统SAH算法划分的基础上,对结点的优化划分处理。为了进一步提升渲染效率,本发明专利技术将KD‑Tree划分的任务块通过共享内存进行进一步的加速与优化,减少GPU与memory的传输次数,从而提高效率,提升渲染效果,通过对KD‑Tree的结点进行分类,将传统KD‑Tree中的同一种结点划分为不同种类的两种结点,同过对不同的结点处理实施不同的处理方法。这样同过这种方式可以增加渲染效率。

【技术实现步骤摘要】
一种面向3D场景的光线追踪优化方法
本专利技术涉及数字媒体
,具体是一种面向3D场景的光线追踪优化方法。
技术介绍
随着计算机行业的迅速发展,人们对图形图像要求的日益增高,3D场景的规模越来越大,模型的精度也越来越高,对场景和模型的直接渲染已经不能满足人们的需求,以此为背景基于光线追踪的渲染在今年来开始逐渐普及,并渐渐成为渲染方式的主流。然而,光线追踪计算量巨大,任务总量在渲染未结束之前基本无法确定,这使得渲染任务变得更复杂,对计算机的渲染能力有了更高的需求。与此同时,一方面计算机硬件的升级暂时缓解了上述的需求,CPU计算能力有了部分提升,但是已经趋于物理瓶颈,短时间内无法有较大的提升;另一方面,人们开始寻找新的解决大量重复的计算的新的方法,GPU计算应运而生。人们开始思考用GPU并行计算来完成光线追踪的任务。CUDA平台是目前最完善的GPU并行计算平台,通过对GPU中大量GPU单元的控制与操作完成大量重复的简单计算。CUDA平台所使用的并行计算不仅适用于光线追踪算法中大量的计算任务,也对光线追踪中的负载均衡提供了便捷的途径。可见,通过CUDA平台不仅能高速的完成光线追踪渲染任务,并且可以得到更优质的渲染结果。其中,部分学者已经提出用优化过的KD-Tree结构来实现光线追踪渲染的并行化。因为涉及到3D场景的渲染,采用表面积启发算法(SAH)[GoldsmithSalmon1987]来处理KD-Tree各个结点。这样做在宏观上便于任务的拆分,但具体到GPU的渲染过程,高速的共享内存并未得到充分的利用。光线追踪(raytracing)(也叫光束投射法)是一个在二维(2D)屏幕上呈现三维(3D)图像的方法。光线追踪最早诞生于几何光学,应用于一些光学设备。随后,这个概念被引入三维计算机图形学,用来进行渲染。光线追踪算法在1980年被正式提出,但光线追踪与现实中的真实光线传播仍有细微的差异。现实中光线进入人眼,而光线追踪是模拟人眼或者摄像机发射射线,然后通过光学原理进计算,最终得到所需的渲染效果。光线追踪主要分两个步骤:射线发射器向问题域发出许多光线,并且确定这些光线中有哪些能抵达接收者,以便找出对问题域有贡献的光线。继而通过物理光学(physicaloptics,PO)计算光线的相互作用之后,根据计算所有的光线对每个检测点的贡献得出结果。综上所述,由于巨大数量的运算量,这种方法将变得十分耗时。在射线发射器中,模拟器也许将不得不检测每条光线和(三角)面的交叉,射线发射器所发射的数以百万计的光线中也许只有几条最终才能到达检测点。因此大家尝试用可视图、包围盒、树形图等方法提升射线发射器早期的效率。通过这些算法,可以完全避免大部分的重复的独立三角形面交叉检测。在此基础上,学者们使用了发射反射光线法(SBR)。Lind等人采用SBR计算开放的凹陷的界面,在此之后,SBR模拟器在光线追踪领域得到了广泛的应用。由于SBR遵循物理光学传播,完全切合对象的表面,在处理几何展现时,SBR会更加灵活。SBR中设置的光线的启动数量与能碰撞到检测点的概率成比例,因而使得SBR变得更快更高效。一些情况下,过多的预处理抵消了预期的效率提升,甚至增加了模拟运行的时间,尤其是使用PO方式的时候。确定性的光线追踪直接寻找从源头道接受点处,他们通常比射线发射器更精确更快速。可见光线追踪的实现需要对预处理和自身数据大小做出合理的均衡。近些年来,由于硬件性能的提升以及价格的下降,使得对硬件依赖较高的光线追踪算法得到过了越来越普遍的应用,例如电影渲染引擎“万物之流”(Pantaray),建模引擎3Dmax,Maya,视屏处理软件AdobeAfterEffect,一些游戏也部分使用了光线追踪技术。KD-tree是一种由二叉搜索树推广而来的用于多维检索的树的结构形式(K即为空间的维数),是一种分割空间的数据结构,是一种特殊的二叉树。
技术实现思路
针对现有技术存在的问题,本专利技术提供一种面向3D场景的光线追踪优化方法。本专利技术的技术方案如下:一种面向3D场景的光线追踪优化方法,包括:步骤1、创建3D场景的包围盒和3D场景中每个物体的AABB包围盒;步骤2、建立3D场景的KD-Tree;步骤3、建立渲染管道。所述步骤1,包括:步骤1.1:使用CPU获取3D场景:加载3D场景中的三角形片源;步骤1.2:通过3D场景中每个物体的各三角形的三个顶点,GPU并行计算确定物体AABB包围盒的坐标范围及整个3D场景的AABB包围盒的坐标范围,并依此确定物体AABB包围盒的max值和min值、整个3D场景的AABB包围盒的max值和min值;步骤1.3:用三角形作为构造函数,根据确定的max值和min值使用CPU创建整个3D场景的AABB包围盒、3D场景中每个物体的AABB包围盒。所述步骤2中KD-Tree通过SAH方法作为标准建立的,具体方法是:步骤2.1:通过CPU将整个3D场景的AABB包围盒作为根结点;步骤2.2:根据设定数量选取待划分面,利用GPU并行运算将待划分面预划分整个3D场景的AABB包围盒;步骤2.3:通过GPU计算表面积和计算预划分生成的AABB包围盒中涵盖内容的代价值,计算预划分生成的AABB包围盒的SAH值;步骤2.4:选取所述代价值与SAH值最为相近时对应的待划分面为划分面;步骤2.5:利用划分面将根结点划分为两个孩子结点,通过设定的阈值判断,其为大结点或小结点,如果为小结点通过GPU完成,若为大结点,通过CPU完成;步骤2.6:对两个孩子结点分别做步骤2.3-2.5的操作,直到每个孩子结点的三角形数目达到阈值时,建立出以整个3D场景的AABB包围盒为根结点的KD-Tree。所述步骤3,包括:步骤3.1:变换处理:通过CPU运算将3D场景中的物体模型从自身坐标系转换到摄像机坐标系下;步骤3.2:裁剪处理:通过CPU运算将视锥体外的3D场景临时舍弃掉;步骤3.3:采用单点透视进行光线追踪投影,通过CPU与GPU的协调运算把三维物体变为二维图形表示;步骤3.4:光栅化:从物体模型变换到像素的过程。所述步骤3.3,包括:步骤3.3.1:根据输入数据确定观察点与像素点;步骤3.3.2:通过CPU运算根据观察点与像素点生成射线,每个线程负责一条射线;步骤3.3.3:根据生成的射线向3D场景的KD-Tree做相交检测,其中涉及到大结点时使用CPU计算,涉及到小结点包围盒时使用GPU并行计算;步骤3.3.4:相交检测过程中,根据射线碰撞的KD-Tree结点的光学属性,确定光线路径上所累加的像素并通过GPU进行累加计算,并且确定射线的新的传播方向;步骤3.3.5:将步骤3.3.4得到的结果投射在屏幕上。所述步骤3.3.4中确定光线路径上所累加的像素,具体是方法是:判断射线的传播是否经过具有散射属性的KD-Tree结点:是,则停止像素累加的计算,否则继续累加。所述步骤3.3.4中确定射线的新的传播方向,具体方法是:确定该结点是否有反射或折射的性质:如果有,则根据反射或折射的方向确定当前射线新的传播方向,否则当前射线继续传播。有益效果:本专利技术通过使用GPU并行计算来提升光线追踪的渲染效率。不同于以往直接使用CPU对结点进行计算,同过并行计算解决光线追踪过程本文档来自技高网
...
一种面向3D场景的光线追踪优化方法

【技术保护点】
一种面向3D场景的光线追踪优化方法,其特征在于,包括:步骤1、创建3D场景的包围盒和3D场景中每个物体的AABB包围盒;步骤2、建立3D场景的KD‑Tree;步骤3、建立渲染管道。

【技术特征摘要】
1.一种面向3D场景的光线追踪优化方法,其特征在于,包括:步骤1、创建3D场景的包围盒和3D场景中每个物体的AABB包围盒;步骤2、建立3D场景的KD-Tree;步骤3、建立渲染管道。2.根据权利要求1所述的面向3D场景的光线追踪优化方法,其特征在于,所述步骤1,包括:步骤1.1:使用CPU获取3D场景:加载3D场景中的三角形片源;步骤1.2:通过3D场景中每个物体的各三角形的三个顶点,GPU并行计算确定物体AABB包围盒的坐标范围及整个3D场景的AABB包围盒的坐标范围,并依此确定物体AABB包围盒的max值和min值、整个3D场景的AABB包围盒的max值和min值;步骤1.3:用三角形作为构造函数,根据确定的max值和min值使用CPU创建整个3D场景的AABB包围盒、3D场景中每个物体的AABB包围盒。3.根据权利要求1所述的面向3D场景的光线追踪优化方法,其特征在于,所述步骤2中KD-Tree通过SAH方法作为标准建立的,具体方法是:步骤2.1:通过CPU将整个3D场景的AABB包围盒作为根结点;步骤2.2:根据设定数量选取待划分面,利用GPU并行运算将待划分面预划分整个3D场景的AABB包围盒;步骤2.3:通过GPU计算表面积和计算预划分生成的AABB包围盒中涵盖内容的代价值,计算预划分生成的AABB包围盒的SAH值;步骤2.4:选取所述代价值与SAH值最为相近时对应的待划分面为划分面;步骤2.5:利用划分面将根结点划分为两个孩子结点,通过设定的阈值判断,其为大结点或小结点,如果为小结点通过GPU完成,若为大结点,通过CPU完成;步骤2.6:对两个孩子结点分别做步骤2.3-2.5的操作,直到每个孩子结点的三角形数目达到阈值时,建立出以整个...

【专利技术属性】
技术研发人员:高天寒王天阳
申请(专利权)人:沈阳品尚科技有限公司
类型:发明
国别省市:辽宁,21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1