当前位置: 首页 > 专利查询>山东大学专利>正文

一种基于光子映射的分布式全局光照计算方法技术

技术编号:14265280 阅读:95 留言:0更新日期:2016-12-23 10:27
本发明专利技术公开了一种基于光子映射的分布式全局光照计算方法,包括:master节点读取场景文件,进行场景数据的划分和分布式存储,master节点根据发射的光子来构建全局光子图并设置光子重叠范围;构建master节点与slave节点之间的通信;master节点将整个屏幕像素空间分成若干个block,每个block作为一个渲染任务,并以从内到外顺时针的顺序给slave节点分配渲染任务,slave节点得到master节点分配的任务后将其入队,并判定block中的每个着色点的任务归属;slave节点在每个着色点周围遍历全局光子图,收集光子得到间接光照颜色值,即渲染结果;各slave节点将渲染结果返回到master节点,master节点根据优先级对得到的所有渲染结果进行合并,最终生成渲染图片。本发明专利技术提升了渲染速度和效果。

【技术实现步骤摘要】

本专利技术涉及图形学真实感渲染领域,具体涉及一种在Intel MIC硬件架构下对基于光子映射的分布式全局光照计算方法
技术介绍
场景渲染就是给场景着色,将场景中的灯光及对象的材质处理成图像的形式。在大规模场景的渲染中,场景数据非常庞大,为了实现优秀的全局光照,渲染时间也会很长。全局光照,表现了直接照明和间接照明的综合效果。光线碰到拍摄对象,反射正反射光或漫反射光,这就控制了色彩、物体间相互作用的反射、折射、焦散等光效,最后演绎了现实的自然光。所以在渲染的时候,为了实现真实的场景效果,就要在渲染器中指定全局光照,全局光照有多种实现方法,例如辐射度、光线追踪、环境光遮蔽(ambient occlusion)、光子贴图、Light Probe等。当光从光源被发射出来后,碰到障碍物就反射和折射,经过无数次的反射和折射,物体表面和角落都会有光感,像真实的自然光。全局光照占内存较多。它属于间接照明,缩写为GI,全名为Global Illumination(全局光照)。由于全局光照占用内存空间较多,现有的全局光照计算方法存在以下问题:(1)计算节点的存储负荷较大,不适用于超大场景的渲染;(2)由于采用单机进行渲染,使得对于场景渲染的速度较慢;(3)在渲染边界点的过程中未提出优化方案,可能出现渲染偏差,使得渲染结果不准确,最终导致全局光照效果不佳的问题。
技术实现思路
为了解决上述问题,本专利技术提供了一种适用于超大场景渲染的基于光子映射的分布式全局光照计算方法,该方法由单机扩展到分布式,结合通信策略和渲染优化方案,提升了渲染速度和全局光照效果。为实现上述目的,本专利技术采用以下技术方案:一种基于光子映射的分布式全局光照计算方法,其中,从光源发射的光线与场景的交点为着色点,该方法包括以下步骤:步骤一、预处理阶段:master节点读取场景文件,进行场景数据的划分和分布式存储,master节点根据发射的光子来构建全局光子图并设置光子重叠范围;构建master节点与slave节点之间的通信;步骤二、Path tracing直接光照阶段:master节点将整个屏幕像素空间分成若干个block,每个block作为一个渲染任务,并以从内到外顺时针的顺序给slave节点分配渲染任务,slave节点得到master节点分配的任务后将其入队,并判定block中的每个着色点的任务归属:若当前block需要的场景数据存在于当前slave节点,则当前slave节点渲染当前block;若当前block需要的场景数据存在于其他slave节点,则当前slave节点将当前block传给相应的slave节点,相应的slave节点得到当前block后直接渲染;若当前block需要的场景数据同时存在于当前slave节点和其他slave节点,则当前block为边界block,则当前slave节点渲染边界block;步骤三、Photon mapping间接光照阶段:slave节点在每个着色点周围遍历全局光子图,收集光子得到间接光照颜色值,即渲染结果;步骤四、各slave节点将渲染结果返回到master节点,master节点根据优先级对得到的所有渲染结果进行合并,最终生成渲染图片。在所述步骤一中,master节点读取场景文件,将场景模型信息存入三维加速结构k-d tree中。本专利技术根据k-d tree分割场景存储,线性地降低了单个计算节点的存储负荷,使超大场景的渲染成为可能。在所述步骤一中,master节点与slave节点通过socket建立连接,根据slave节点数量划分场景数据。在所述步骤一中,全局光子图中的上层节点与k-d treee进行轴向及分割轴位置的同步。在所述步骤一中,master节点与slave节点之间采用同步通信方式。在所述步骤一中,slave节点与slave节点之间采用异步通信方式。这种同步异步搭配的方式,既保证了数据传输的稳定性,又避免过量的网络阻塞。在所述步骤一中,对于与k-d treee,在光子重叠区域内的节点既属于左子节点又属于右子节点。本专利技术设置了光子重叠范围,保证了渲染结果的正确性,能够得到良好的全局光照效果。在所述步骤二中,采用havran求交算法来判定block中的每个着色点的任务归属。在所述步骤三中,在全局光子图中,使用knn临近算法找寻着色点周围的k个光子,收集这k个光子对着色点的影响,进而求出该着色点的间接光照颜色值,即该着色点的渲染结果;其中,k为大于等于1的整数。在所述步骤二中,slave节点将得到的master节点分配的任务入队之前,还设置master节点分配的任务的优先级。这样可以人为地改变渲染次序,很好的保证渲染后期的并行度。本专利技术的有益效果为:(1)本专利技术首先采用master节点读取场景文件进行预处理操作,构建k-d tree,并进行光子映射操作同步构建全局光子图,之后根据分割平面划分场景信息,将场景几何和映射得到的全局光子图分布式存储到各个slave节点;渲染任务开始后,master节点控制总体渲染流程和通信时序,slave节点搭配进行并行渲染,判定渲染任务归属通过并通过slave之间的连接进行数据通信,再并针对任务边界的计算做出优化处理,返回渲染结果给master进行最终的合并,最后又对渲染任务的顺序作并行度调整;本专利技术最终降低单个slave节点存储负荷,提升渲染速度和效果,达到了效果佳的超大场景全局光照的分布式渲染。(2)本专利技术由单机扩展到分布式,结合通信策略和渲染优化方案,线性地提升了渲染速度;还根据k-d tree分割场景存储,线性地降低了单个计算节点的存储负荷,使超大场景的渲染成为可能;本专利技术还设置了光子重叠范围,保证了渲染结果的正确性,能够得到良好的全局光照效果。(3)本专利技术的master节点与slave节点之间采用同步通信方式;slave节点与slave节点之间采用异步通信方式。这种同步异步搭配的方式,既保证了数据传输的稳定性,又避免过量的网络阻塞。附图说明图1为本专利技术的基于光子映射的分布式全局光照计算方法流程图。图2(a)为本专利技术的一种渲染顺序实施例。图2(b)为本专利技术的另一种渲染顺序实施例。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述。本专利技术采用分布式光子映射的方法,在网络多节点集群架构上联合渲染一张图片,需搭建cpu-based集群环境。本专利技术首先采用master节点读取场景文件进行预处理操作,构建k-d tree,并进行光子映射操作同步构建全局光子图,之后根据分割平面划分场景信息,将场景几何和映射得到的全局光子图分布式存储到各个slave节点;渲染任务开始后,master节点控制总体渲染流程和通信时序,slave节点搭配进行并行渲染,判定渲染任务归属通过并通过slave之间的连接进行数据通信,再并针对任务边界的计算做出优化处理,返回渲染结果给master进行最终的合并,最后又对渲染任务的顺序作并行度调整;本专利技术最终降低单个slave节点存储负荷,提升渲染速度和效果,达到了效果佳的超大场景全局光照的分布式渲染。对于一个渲染实例流程,即是将一个已经建模好的三维场景计算成图片的过程。在渲染任务开始前,将三维场景数据转化为渲染引擎可以识别的表达本文档来自技高网...
一种基于光子映射的分布式全局光照计算方法

【技术保护点】
一种基于光子映射的分布式全局光照计算方法,其中,从光源发射的光线与场景的交点为着色点,其特征在于,该方法包括以下步骤:步骤一、预处理阶段:master节点读取场景文件,进行场景数据的划分和分布式存储,master节点根据发射的光子来构建全局光子图并设置光子重叠范围;构建master节点与slave节点之间的通信;步骤二、Path tracing直接光照阶段:master节点将整个屏幕像素空间分成若干个block,每个block作为一个渲染任务,并以从内到外顺时针的顺序给slave节点分配渲染任务,slave节点得到master节点分配的任务后将其入队,并判定block中的每个着色点的任务归属:若当前block需要的场景数据存在于当前slave节点,则当前slave节点渲染当前block;若当前block需要的场景数据存在于其他slave节点,则当前slave节点将当前block传给相应的slave节点,相应的slave节点得到当前block后直接渲染;若当前block需要的场景数据同时存在于当前slave节点和其他slave节点,则当前block为边界block,则当前slave节点渲染边界block;步骤三、Photon mapping间接光照阶段:slave节点在每个着色点周围遍历全局光子图,收集光子得到间接光照颜色值,即渲染结果;步骤四、各slave节点将渲染结果返回到master节点,master节点根据优先级对得到的所有渲染结果进行合并,最终生成渲染图片。...

【技术特征摘要】
1.一种基于光子映射的分布式全局光照计算方法,其中,从光源发射的光线与场景的交点为着色点,其特征在于,该方法包括以下步骤:步骤一、预处理阶段:master节点读取场景文件,进行场景数据的划分和分布式存储,master节点根据发射的光子来构建全局光子图并设置光子重叠范围;构建master节点与slave节点之间的通信;步骤二、Path tracing直接光照阶段:master节点将整个屏幕像素空间分成若干个block,每个block作为一个渲染任务,并以从内到外顺时针的顺序给slave节点分配渲染任务,slave节点得到master节点分配的任务后将其入队,并判定block中的每个着色点的任务归属:若当前block需要的场景数据存在于当前slave节点,则当前slave节点渲染当前block;若当前block需要的场景数据存在于其他slave节点,则当前slave节点将当前block传给相应的slave节点,相应的slave节点得到当前block后直接渲染;若当前block需要的场景数据同时存在于当前slave节点和其他slave节点,则当前block为边界block,则当前slave节点渲染边界block;步骤三、Photon mapping间接光照阶段:slave节点在每个着色点周围遍历全局光子图,收集光子得到间接光照颜色值,即渲染结果;步骤四、各slave节点将渲染结果返回到master节点,master节点根据优先级对得到的所有渲染结果进行合并,最终生成渲染图片。2.如权利要求1所述的一种基于光子映射的分布式全局光照计算方法,其特征在于,在所述步骤一中,master节点读取场景文件,将场景模型信息存入三维加速结构k...

【专利技术属性】
技术研发人员:王璐徐延宁孟祥旭
申请(专利权)人:山东大学
类型:发明
国别省市:山东;37

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

1