光子映射中的偏差控制方法_2

文档序号:9433587阅读:来源:国知局
估算中产生的噪声错误。本发明方法的主要贡献可以归结有效消除 不恰当收集光子所产生的偏差和噪声问题。
【附图说明】
[0028] 图1是本发明方法的总体流程图。
[0029] 图2是杂质光子不意图,其中(a)图是侧视图,(b)图是俯视图。
[0030] 图3是典型场景进行拓扑偏差控制示例图,其中左上角为待绘制场景图,左下角 为局部放大图,右图为本方法与其它方法绘制结果的比较图。
[0031] 图4A是杂质偏差场景不意图。
[0032] 图4B是进行杂质偏差控制与未进行杂质偏差控制的对比图,其中(a)图为本发明 方法进行杂质偏差控制的结果图,(b)图为未进行杂质偏差控制的结果图。
[0033] 图4C是杂质偏差解决效果图,其中(a)图是采用本发明方法的结果图,(b)图是 采用传统光子映射方法所得到的结果图。
[0034] 图5A是边缘偏差不意图。
[0035] 图5B是边缘偏差控制对比效果图,其中(a)图为未做边缘偏差控制的结果图,(b) 图为采用本发明方法进行边缘偏差控制的结果图。
【具体实施方式】
[0036] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和 附图,对本发明做进一步说明。
[0037] 标准的光子映射使用两遍过程来绘制一张图像,第一遍过程利用光线追踪建立光 子图(Photon Map),称为光子追踪过程(Photon Tracing Pass);第二遍过程从视点位置 发射光线在场景中遍历,当光线与场景相交产生相交点时便根据存储的光子图使用光子收 集方法并对收集到的光子进行辐射亮度计算,最终计算出相交点的辐射亮度值显示在图像 上,称为光线追踪过程(Ray Tracing Pass)。对相交点上收集到的光子进行福射亮度计 算的过程又被称为福射亮度估算(Radiance Evaluation)或者福射亮度估计(Radiance Estimate)〇
[0038] 本发明的重点是对第二遍过程即光线追踪过程中的光子收集方法进行创新,提出 了一系列有针对性的光子收集和过滤方法以保证最终辐射亮度计算的正确性与准确性,从 而可以避免或者尽量消除生成的真实感图像中的偏差和噪声现象,获得更好的绘制效果。 因此,本发明只针对有创新性的光子收集和过滤部分进行论述,其他部分由于与其它方法 并无显著不同,故此处不再赘述。
[0039] 本发明方法的流程图如图1所示,包括如下步骤:
[0040] 1)根据光线与待绘制场景中表面相交点X的估算半径采用KNN算法开始进行点X 的光子收集;
[0041] 2)根据收集到的光子所依附的表面法向与X点表面法向的比较进行可见性判断, 剔除杂质光子;
[0042] 3)通过深度连续性检测进行拓扑偏差控制;
[0043] 4)根据收集到的光子所依附表面法向的拓扑结构,与X点表面进行几何连续性检 测,从而控制杂质偏差;
[0044] 5)进行凸表面检查,进行边缘偏差控制;
[0045] 6)剩余的光子作为正确而有效的光子,利用辐射亮度计算公式进行辐射亮度估 算。然后把得到的辐射亮度计算值转换为色彩值,即可合成出最终的真实感图像。
[0046] 下面首先说明本发明的基本概念,然后具体说明上述各个步骤。
[0047] 本发明所针对的绘制对象是三维的场景或者模型,而三维场景或者模型在计算机 图形与动画中最常常采用的是三角网格表面。本发明的方法适用于各种多边形网格表面, 但是为了论述方便,本发明选择最典型的三角形网格表面为论述的对象。首先给出三角网 格表面的相关定义。令:V = Iv1, V2,…,vn}表示三角网格顶点集,E = R1, e2,…,ej表示 三角网格边集,F = {f\,f2,…,fn}表示三角网格面集,M = (G,P)表示具有二维流形性质 的三角网格,其中G = (V,E,F)表示由V,E,F生成的连通图,P表示集合V中顶点之间的 拓扑关系及几何信息。
[0048] 对于任意的ViG M,定义其1环邻域(Ι-ring)顶点集合NV i⑴为:由与顶点¥;直 接相连的所有顶点构成;定义其1环邻域(Ι-ring)三角面片集合NT1 (i):由包含顶点^的 所有三角形构成。网格表面上顶点间的拓扑邻接关系由NV1 (i)和NT1 (i)共同组成。根据顶 点间的拓扑关系,可以定义点的N环邻域顶点集合NVn⑴和N环邻域三角面片集合NTn(i), 第N环邻域顶点集NVnthα)和第N环邻域三角面片集合NTnth(i)。Inv(i) I表示网格上顶 点邻域集合中顶点数量,Int(i) I表示网格上三角面片邻域集合中三角片数目。
[0049] 步骤1 :收集内核光子
[0050] 对于物体表面上的一个射线与表面的相交点X,为了计算相交点X处对Wi方向 (ω i为入射方向)反射出的辐射亮度L s,根据辐射亮度估算公式需要收集光子图上相交点 附近的光子作为相交点处福射量的来源。首先采用基于kd-tree结构的KNN(k_Nearest Neighbor)搜索方法对X点附近的光子进行收集。为便于辐射亮度估算设置光子数目阈 值N,选取距离相交点最近的N个光子的辐射量计算辐射亮度。假设以相交点X为圆心且 包含这N个光子的最小圆面半径为r,那么,相交点附近区域近似取为物体表面上的最小圆 面,又称该圆面为估算内核(Estimate Kernel),福射亮度估算又被叫做内核估算(Kernel Estimate)。设置光子数目阈值N的目的在于避免因收集光子数目不足导致的噪声问 题,算法需要光子预先存储在支持KNN搜索的空间加速结构如平衡kd-tree (kd-tree是 k-dimensional树的简称,是一种分割k维数据空间的数据结构,主要应用于多维空间关键 数据的搜索,如范围搜索和最近邻搜索,亦可以称作Kd-tree或者kd-树)。平衡kd-tree 能够确保使用kd-tree在η个光子中定位m个光子的时间复杂度为0 (mlog(η))。由于这 m个光子处在临近的空间内,实际中寻找m个光子的时间会进一步减少,从而保证光子映射 算法的计算效率。
[0051] 步骤2:剔除杂质光子
[0052] 步骤1中收集到了 N个临近光子,但并不是所有与相交点X距离小于r (即处于相 交点X表面半球空间)的光子都应该参与辐射亮度计算。本步骤中,我们对收集到的光子 采用可见性判断的方法,剔除掉对当前位置X不可见面片上所附着的光子,同时剔除掉该 光子所占据的估算内核中的等效面积,所谓等效面积是指光子所在的几何平面投影到估算 内核圆面上所占的面积。光子所依附表面与X点之间的可见性判断的方法有多种,最简单 且易于实现方法首选进行法向的比较,可以剔除处于与相交点X背向的光子。假设光子P 所在物体表面的法向为(每个光子在建立光子图阶段就同时记录该光子所依附的表面 的法向),而相交点X的法向为A,那么所有满足< 0的光子都会被剔除掉以去除辐 射亮度估计中的错误效果。
[0053] 如图2所示,图中在四菱台上相交点X,在该点的切平面上选取大小为r的圆面进 行辐射亮度估计,左图((a)图)是侧视图,右图((b)图)是俯视图,四菱台的1,2,3三个面 均包含有光子分布,1,2, 3面上光子产生的等效内核面积在估算圆面上的投影分别为A1, 八2和△ 3,其中X点位于A3内部,△ JP △ 2分别为等效的估算内核贡献两个月牙形的分 量。经过剔除,最终只保留了 3号面上的光子,且估算内核的面积为
[0054] 本步骤方法很好地解决了以往光子映射方法中在一些场景中可能会引入错误的 渗色或者漏光现象。
[0055] 步骤3:拓扑偏差控制
[0056] 上一步通过杂质光子剔除,已经去除掉一些杂质光子,但是并非剩余的所有光子 都是有效的,仍然需要继续进行检测和判断其有效性。由于假设用于辐射亮度估计的光 子都分布在相交点X周围的表面,会导致辐射亮度过量估计的偏差错误。本方法通过对收 集到的光子进行深度连续性检测,以进一步剔除无效的光子。假设X点在当前成像平面 上对应像素的深度为dx,收集到的第i个光子的深度为(I1,设深度误差阈值为△ d,则一旦 Mx-Cl1 |>Ad,则当前光子应被视作无效光子并被剔除,其相应的面积也被剔除。关键是Ad 的设置,其值是一个自适应变化的量,不同场景采用不同的值,在同一个场景内部,其值也 是会跟随场景位置的变化而改变的。
[0057] 图3展示了在极端的条件下场景的拓扑偏差,其中X点为光线相交点,圆圈为光子 收集的半径r,X点位于表面2上,1、3表示位于圆圈半径r之内的其它区域;图中右边为本 发明方法与现有的PM方法、SPPM方法绘制结果的比较图,PM表示Photon Mapping方法, SPPM表示Stochastic Progressive Photon Mapping方法。场景中,在桌子下的栅格条处 物体的拓扑结构变化剧烈,每根栅格条之间
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1