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

文档序号:9433587阅读:492来源:国知局
光子映射中的偏差控制方法
【技术领域】
[0001] 本发明属于计算机图形学技术领域,具体涉及一种光子映射中的偏差控制方法, 应用该方法可以绘制出具有良好光照效果的真实感图像。
【背景技术】
[0002] 人们对于利用计算机图形学方法绘制出逼真光照效果的需求是永无止境的,模拟 现实世界中复杂的光照效果是图形学研究者们一直以来需要解决的重大难题。全局光照明 (Global Illumination),又被称为整体光照明,是照片级别真实感图像得以实现的主要途 径,许多算法都尝试为其提供完善有效的解决方案。光线追踪算法以及本发明主要研究的 光子映射算法都是全局光照明的经典算法,相比较光线追踪,光子映射算法是近二十年不 断发展起来的真实感绘制技术。目前全局光照明算法的研究目的逐渐从绘制出逼真的效果 转移到交互应用的需求之上,本发明所研究的方向也同样为这一需求转移提供重要的理论 依据和实践参考。
[0003] 光子映射算法(Photon Mapping,简称PM)是一种基于光子图实现全局光照 明的算法((Jensen H. ff. :Global illumination using photon maps. In Rendering Techniques 96. Springer, 1996, pp. 21 - 30),光子图用来计算环境引起的漫反射分量,由 于光子映射相比光线追踪能够更好的模拟焦散现象和SDS现象(SDS分别代指光的传播路 径中所产生的反/折射类型,S为镜面反射折射specular,D代表漫反射diffuse,S代表镜 面反射/折射specular,也就是指先后顺序为镜面-漫-镜面的传播所产生的光照现象), 该算法可以得到比光线追踪更加逼真自然的图像。
[0004] 然而,光子映射算法本身是一种有偏差和噪声的算法。辐射亮度估计精度严 重依赖于半径非常小的估算内核以及在估算内核上的准确的光子分布以及收集。从根 本上消除偏差错误,就必须在辐射亮度计算中杜绝可见偏差的产生,然而前人的所有方 法包括 PPM (Progressive Photon Mapping)和 SPPM (Stochastic Progressive Photon Mapping)方法均不能达到这一要求(Toshiya Τ·,Ogaki S.,Jensen H. W. :Progressive photon mapping.ACM Trans.Graph. 27,5(Dec.2008), 130: I - 130:8 ;Toshiya T., Jensen H. ff. : Stochastic progressive photon mapping. ACM Trans. Graph. 28, 5 (D ec. 2009),141:1 - 141:8)。噪声是辐射亮度估计产生的另一类错误现象,其产生的主要原因 在于用于辐射亮度计算的光子数目过少,在经典的光子映射算法中,噪声是通过设置收集 光子数目的阈值来避免的。
[0005] 光子映射算法是一个有偏算法,偏差产生的原因在于辐射亮度估算本质上是计算 射线与估算表面相交点X点处光子密度的过程,由于X点是抽象点不存在体积和大小,只能 近似的使用X点附近区域内的平均光子密度来代替X点的光子密度,这样做必然会引入不 精确的偏差。尽管间接光照计算在光子数目趋近于无穷大是可以趋近于正确的结果,但是 实际上,由于发射的光子数目不可能达到无穷大,分布在辐射亮度估计区域内的光子通常 是有限甚至是稀疏的,这样就造成了估算内核的半径在有限光子的条件下不能趋近于0。另 外,还有其他一些可能导致出现偏差的情况:1)与相交点距离"较远"的光子有时也会用于 计算相交点的辐射亮度,这一部分辐射量是不精确的;2)错误的光子收集,使得与当前相 交点没有表面连接关系的光子也被收集进来用于计算相交点的辐射亮度;3)错误的光子 收集,使得与当前相交点有表面连接且临近关系,但是确定无疑对相交点光照无影响的光 子被收集进来用于计算其辐射亮度。以往的光子映射类方法由于存在上述可能导致偏差的 情况,其根本原因是光子的收集是在三维空间kd-tree结构内进行临近光子的搜索的,而 光子所附着的局部三维场景表面的几何信息是完全未知的,同时估算内核对整个圆盘范围 内均有光子分布的假设在实际中也不能满足,我们称这样导致的错误辐射亮度估算结果为 偏差错误。
[0006] 光子射线方法可以解决光子映射算法的边缘偏差问题(Havran V.,Bittner J. , Herzog R. , Seidel Η. Ρ. :Ray maps for global illumination. In Proceedings of the Sixteenth Eurographics conference on Rendering Techniques (2005),Eurographics Association, pp. 43 - 54.)。基于光子射线方法,光子抛雪球算法改进了光 子 密度估 计(Herzog R. , Havran V.,Kinuwaki S.,Myszkowski K., Seidel Η. -Ρ. :Global illumination using photon ray splatting. In Computer Graphics Forum(2007), vol. 26, Wiley Online Library, pp. 503 - 513.),解决了光子映射方法无法 解决的边缘偏差和拓扑偏差的问题。但是,光子射线映射算法没有发射和收集光子,而是直 接发射和收集射线,因此与光子映射方法属于不同的两类方法。

【发明内容】

[0007] 本发明针对光子映射算法中所存在的偏差和噪声问题,提供一种光子映射中的偏 差控制方法,能够有效消除不恰当收集光子所产生的偏差和噪声。
[0008] 为实现上述目的,本发明采用的技术方案如下:
[0009] -种光子映射中的偏差控制方法,包括如下步骤:
[0010] 1)根据光线与场景相交产生的相交点的估算半径,采用KNN方法对相交点附近的 光子进行收集;
[0011] 2)对收集到的光子进行可见性判断,以剔除杂质光子;
[0012] 3)通过深度连续性检测对收集到的光子进行拓扑偏差控制;
[0013] 4)根据收集到的光子所依附表面法向的拓扑结构,与相交点表面进行几何连续性 检测,从而控制杂质偏差;
[0014] 5)通过凸表面检查对收集到的光子进行边缘偏差控制;
[0015] 6)将剩余的光子作为正确而有效的光子,利用辐射亮度计算公式进行辐射亮度估 算。
[0016] 进一步地,步骤1)采用基于kd-tree结构的KNN方法对相交点附近的光子进行收 集,并设置光子数目阈值N以避免因收集光子数目不足导致的噪声问题。
[0017] 进一步地,步骤2)根据收集到的光子所依附的表面法向与X点表面法向的比较进 行可见性判断。
[0018] 进一步地,步骤3)所述深度连续性检测的方法是:假设X点在当前成像平面上 对应像素的深度为dx,收集到的第i个光子的深度为Cl1,设深度误差阈值为△ d,则一旦 Clx-Cl11 > Δ d,则当前光子被剔除,其相应的面积也被剔除。
[0019] 进一步地,步骤4)所述几何的连续性检测的方法是:
[0020] 1)如果待检测光子i所依附的物体的ID与相交点X所在的物体ID完全不同,则 该光子未通过检测;
[0021] 2)找到距离相交点X最近的物体表面顶点Vx,找到距离光子i最近的物体表面顶 点V1,如果人的η环邻域网格集合与V满η环邻域网格集合之间的交集为空,或者如果V x的η环邻域顶点集合NVn (Vx)与η环邻域顶点集合NV n (V1)之间的交集为空,则表明光 子所在的表面与X点所在的表面无拓扑连接关系,该光子的几何连续性检测未通过。
[0022] 进一步地,步骤5)通过检测有效光子所占面积并计算其面积的累积和,获得准确 的估算内核面积,实现对边缘偏差的控制。
[0023] -种基于光子映射的真实感图像绘制方法,包括如下步骤:
[0024] 1)进行光子追踪过程,建立光子图;
[0025] 2)进行光线追踪过程,当光线与场景相交产生相交点时,采用上述方法收集相交 点附近的光子并对收集到的光子进行辐射亮度计算;
[0026] 3)将得到的辐射亮度计算值转换为色彩值,合成出最终的真实感图像。
[0027] 本发明通过对可见偏差产生的原因分类,利用局部表面光子分布所在场景空间物 体表面所具有的几何特征,依次进行杂质光子剔除,杂质偏差控制,边缘偏差控制以及拓扑 偏差控制,上述偏差控制的先后顺序可根据实际场景情况进行自由调整,并无严格的先后 顺序。采用上述方法,能够消除由于估算内核中非精确光子收集所导致的可见偏差,同时可 以有效地减少辐射亮度
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1