The present invention provides a method of tracking, GPU light which is based on CPU terminal loading scene model, analytic triangular element information, material information, source information sent to the GPU terminal; GPU end to obtain triangular element information, material information, information source, are stored into the corresponding global memory and constant memory; to establish the model of the whole scene at GPU 3D scene is the root node of Kd Tree; GPU end ray tracing operation; CPU end image processing: image pixel information CPU end read buffer, display screen, complete rendering. The invention improves the ray tracing efficiency by reasonably calling CPU and GPU to work together. Compared with the traditional CPU rendering, the rendering efficiency is improved obviously, and the model rendering work with the same effect can be done in a short time.
【技术实现步骤摘要】
一种基于GPU的光线跟踪方法
本专利技术属于计算机图形学领域,特别涉及一种基于GPU的光线跟踪方法。
技术介绍
光线跟踪方法用于生成逼真的三维虚拟场景,是计算机图形学核心之一。自提出之日起发展至今,已经被广泛应用于影视制作、三维仿真、计算机辅助设计等领域,并且极大的促进了虚拟现实技术的进步。该方法是一项基于几何光学的通用技术,它通过跟踪与物体发生交互作用的光线,从而得到光线在物体表面产生的反射、散射等现象的路径,用以模拟生成真实的虚拟场景,被认为是图形处理的未来方向。光线跟踪方法需要跟踪场景中的每一条光线,由此涉及到每一条光线的折射、反射,并最后完成投影、可见面判定和着色三方面的任务,这导致了成像过程中计算开销的增大。尤其在大型复杂场景中,光线与物体相交次数多,并且由于物体表面材质的不同使得光线传播路线复杂,这都导致了计算开销的剧增。因此,计算密集且费时费力成为光线跟踪发展的重大障碍。提高光线跟踪的效率一直是该领域研究的重点。目前,这类问题的研究主要分为两个方向:一是改进空间加速结构,提高光线在场景中求交的速度;二是利用计算机硬件的并行原理,加快光线跟踪算法的执行速度。文献“启发式探查最佳分割平面的快速KD—Tree构建方法”,提出了一种基于分区(binning)算法的快速构建方法,该方法首先通过分析kd—tree的成本函数,启发式地定位了当前节点的分割平面所在的子区间;其次,对探查到的子区间进行进一步的细化采样(sub-sampling),使得到的分削平面更好地逼近最优分割位置,但是文章实现的是算法的单线程版本,未对内存管理进行优化,未充分利用计算机并行 ...
【技术保护点】
一种基于GPU的光线跟踪方法,其特征在于,包括:步骤1:CPU端加载场景模型,解析得到三角片元信息、材质信息、光源信息后打包发送给GPU端;步骤2:GPU端得到三角片元信息、材质信息、光源信息,分别存储到对应的全局存储器和常量存储器;步骤3:GPU端建立以整个3D场景的场景模型为根节点的Kd‑Tree;步骤4:GPU端进行光线跟踪操作;步骤5:CPU端进行后期图像处理:CPU端读取图像缓存区的像素信息,显示到屏幕,完成渲染。
【技术特征摘要】
1.一种基于GPU的光线跟踪方法,其特征在于,包括:步骤1:CPU端加载场景模型,解析得到三角片元信息、材质信息、光源信息后打包发送给GPU端;步骤2:GPU端得到三角片元信息、材质信息、光源信息,分别存储到对应的全局存储器和常量存储器;步骤3:GPU端建立以整个3D场景的场景模型为根节点的Kd-Tree;步骤4:GPU端进行光线跟踪操作;步骤5:CPU端进行后期图像处理:CPU端读取图像缓存区的像素信息,显示到屏幕,完成渲染。2.根据权利要求1所述的基于GPU的光线跟踪方法,其特征在于,所述步骤1,包括:步骤1.1:CPU端开辟内存或显存空间,将场景模型加载到内存或显存空间中;步骤1.2:CPU端对场景模型进行解析,得到三角片元信息、材质信息、光源信息;步骤1.3:将解析好的三角片元信息、材质信息、光源信息分别打包发送到GPU端。3.根据权利要求1所述的基于GPU的光线跟踪方法,其特征在于,所述步骤3,包括:步骤3.1:建立3D场景中的各个场景模型的包围盒及整个3D场景模型的包围盒;步骤3.2:以整个3D场景模型的包围盒为根节点,自上而下进行分割,建立以Kd-Tree。4.根据权利要求3所述的基于GPU的光线跟踪方法,其特征在于,所述步骤3.2,包括:步骤3.2.1:分别将整个3D场景模型的包围盒沿着不同轴向分割成两个子空间即得到左孩子节点、右孩子节点,分别划入左子树、右子树;步骤3.2.2:计算不同轴向的分割成本C(V)≈Kt+Ki(PLNl+PRNr),Nl,Nr为左孩子节点、右孩子节点中的场景模型包围盒数量,Kt、Ki为常数,PL、PR为光线进入左子树、右子树的概率,PL=SA(VL)/SA(V),SA(VL)表示左孩...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。