本发明专利技术提供了一种基于MCMC的镜面光线的渲染方法,渲染时首先确定各个像素点的像素值,然后利用各个像素点的像素值进行渲染,针对任意一个像素点,通过如下步骤确定各个像素点的像素值:基于MCMC的方法确定当前像素点的有效路径,所述的有效路径为镜面光线路径;根据当前素点的有效路径,基于光线传播路径积分公式计算当前像素点的像素值,并对当前像素点进行渲染。本发明专利技术的渲染方法利用MCMC方法在高维空间中对有效的镜面光线路经进行建模,利用有效的镜面光线路径即可求得到各个像素点的像素值,进而完成对复杂镜面光线的渲染方法。
【技术实现步骤摘要】
基于MCMC的镜面光线的渲染方法
本专利技术涉及计算机图形学
,尤其涉及一种基于MCMC的镜面光线的渲染方法。
技术介绍
用无偏蒙特卡罗方法来渲染某些复杂的光线传播路径是一个长期存在的问题,尤其对于一些,存在着照明光线的,并包含镜面或者光滑表面的路径,因为这会使光线的汇聚速度变得很慢。在过去的25年间,模拟光线传播路径,一直是计算机图形学领域研究人员致力研究的内容;它最初是作为有限元模拟、或者辐射度和光线追踪的补充方法。将蒙特卡罗方法用于光线追踪,源自Kajiya将全局光照下的渲染方程的进行公式化的工作,进而形成了一个称为蒙特卡罗全局光照的领域。将图像中的每一个像素都看作一个随机变量,并令其期望值等于渲染方程的解,这样得到的无偏采样方法,从Kajiya提出的源路径追踪方法开始,到双向路径追踪,其中光线传播路径可以部分从来自光源的光线构建,而令一部分从眼睛看到的光线构建;另外,Veach和Guibas在1997提出的开放式的Metropolis光线传播算法,利用了马尔科夫蒙特卡罗框架下的双向路径追踪方法。许多双通道方法,利用一个“粒子追踪”通道来将来自光源的能量传送出去,进而以光子的形式在整个场景中进行追踪,并保存在一个空间数据结构中。另外一个通道用光线追踪的方式来渲染图像,当然也利用存储的粒子的密度来估计光照强度。光子映射和其他双通道方法的特征在于存储了场景中部分光照的近似表示,这种表示方法是基于光照平滑分布的假设。一方面,这使得利用无偏方法渲染一些传播模型变得困难,因为光线经过的确切路径不需要被找到。在平滑假设条件下,眼睛看到的不通光线路径最终在附近的区域结束传播。然而,这种平滑假设本身会导致图像的平滑误差;也就是说,在蒙特卡罗场景中,得到的结果是有偏差的。对于光滑面到光滑面的传播方式,如果没有一个充分良好的漫射面来存储光子,将会使得处理光子贴图变得很困难,因为我们必须收集大量的光子,这样才能在方向、位置空间中充分采样。一些光子映射变体通过将光滑材质作为镜面来处理以避免这个问题,但这也就意味着,当输入场景中的粗糙的表面数量不断增长时,这种处理方法会越来越像路径跟踪。除去全局光照算法,还有很多研究镜面反射路径性质的工作。Mitchell和Hanrahan在1992年提出了一种计算辐射度的方法,该方法用费马原理区间牛顿法全反射路径的定位源点。Walter等人在2009年提出了一种计算有三角网格边界的折射体内的单散辐射度的方法。
技术实现思路
针对现有技术的不足,本专利技术提供了一种基于MCMC(马尔科夫链蒙特卡洛方法(MarkovChainMonteCarlo)的镜面光线的渲染方法,能够有效地处理渲染场景中镜面路径,减少了时间消耗,且容易实施。一种基于MCMC的镜面光线的渲染方法,渲染时首先确定各个像素点的像素值,然后利用各个像素点的像素值进行渲染,针对任意一个像素点,通过如下步骤确定各个像素点的像素值:(1)基于MCMC的方法确定当前像素点的有效路径,所述的有效路径为镜面光线路径;(2)根据当前素点的有效路径,基于光线传播路径积分公式(即渲染方程的推导公式)计算当前像素点的像素值,并对当前像素点进行渲染。本专利技术的基于MCMC的处理复杂镜面光线的渲染方法,利用马尔科夫链蒙特卡罗技术,对场景中有贡献的镜面路径进行采样。在渲染环节中,状态空间就是通过场景的所有路径构成的空间,空间中的状态点就是路径,最终所期望得到的路径的概率分布是和每条路径对待渲染图像的贡献大小(即带给相机的光强)是正相关的。最终的图像即将路径分布投影到图像平面所得到的图像。所述步骤(1)通过如下方法确定当前像素点的有效路径:(1-1)针对当前像素点,确定当前像素点的从视点到光源的原始路径;(1-2)从该原始路径中选择第一个非镜面节点作为初始节点,并针对该初始节点随机选择一个光线出射方向作为扰动方向;(1-3)从初始节点沿该扰动方向出射一光线,使该光线沿原始路径传输:(a1)若传输时遇到非镜面节点,则停止传播,并对得到的第一传播路径进行补全,得到扰动方向上的建议路径;(a2)若传输时未遇到非镜面节点,则直至传播至光源时停止,并以得到的第一传播路径作为该扰动方向上的建议路径;(1-4)针对初始节点增加一个扰动方向,针对新增的扰动方向执行步骤(1-3)确定新增的扰动方向上的建议路径,并判断该建议路径的有效性;循环执行步骤(1-4),直至扰动方向的个数达到预设的个数阈值停止,得到当前像素点的有效路径。个数阈值根据具体应用场景调整,本专利技术中所述的个数阈值为50~150,作为优选为100。所述步骤(a1)中基于迭代法对第一传播路径进行补全包括如下步骤:(S1)判断||xb-x'b||>εL是否满足,其中xb为原始路径中第二个非镜面节点,x'b为传播路径中第二个非镜面节点,ε是预设的误差阈值,L为原始路径相邻两个节点间的最大距离;若不满足,则直接以原始路径中第二个非镜面节点xb之后的部分补接到第一传播路径中最后一个节点之后得到建议路径;否则,进行如下操作:(S2)根据迭代步长确定光源的出射方向,沿该出射方向出射一光线,并使该光线沿着原始路径传播,直至到达非镜面节点时停止传播,得到相应的第二传播路径;(S3)判断||xcn-x'b||<||xb-x'b||是否满足,其中xcn为第二传播路径中最后一个节点:(b1)若满足,则将第二传播路径补接到第一传播路径中得到相应的建议路径,更新xb为xcn,并更新迭代步长,然后返回执行步骤(S1)进行下一次迭代;(b2)若不满足,则将第二传播路径补接到第一传播路径中得到相应的建议路径,更新迭代步长,然后返回执行步骤(S1)进行下一次迭代;依此循环,直至迭代次数达到最大次数后停止,并以最后一次得到的建议路径作为该扰动方向上的建议路径,第一次迭代时迭代步长为1。设置的最大迭代次数和误差阈值直接关系到最终渲染结果的准确性和渲染效率,通常所述的最大迭代次数为10~20个,综合考虑渲染结果的准确性和渲染效率,作为优选,所述的最大迭代次数为20。进一步优选,所述的误差阈值ε=10-7。所述步骤(S2)中根据如下公式确定光源的出射方向:p=x2-βT(x2)P2A-1BkT(xn)T(x'n-xn);其中,β为迭代步长;x2为原始路径中的第二个节点;xn为原始路径中的第二个非镜面节点;x'n为第一传播路径中的第二个非镜面节点;A-1为大小8×8的矩阵,Bk大小为8×1的矩阵,其中矩阵A和Bk满足Y=[B1ABk],其Y中为原始路径对应的约束雅可比矩阵,B1、A、Bk为约束雅可比矩阵Y的分块表示;T(x2)为原始路径中的第二个节点x2处正切平面的一组正交基组成的矩阵,大小为3×3;T(xn)为原始路径的第二个非镜面节点xn处正切平面的一组正交基组成的矩阵,大小为3×3;P2为原始路径中的第二个节点x2对应的投影矩阵,大小为4×8。本专利技术中通过迭代过程中不断更像迭代步长β,以保证收敛速度。作为优选,所述步骤(b1)中利用如下公式:βk+1=min{1,2βk},更新迭代步长;所述步骤(b2)中利用如下公式:βk+1=1/2βk,更新迭代步长;其中,k为迭代次数,βk+1为第k+1次迭代时使用的迭代步长,βk为第k次迭本文档来自技高网...
【技术保护点】
一种基于MCMC的镜面光线的渲染方法,其特征在于,渲染时首先确定各个像素点的像素值,然后利用各个像素点的像素值进行渲染,针对任意一个像素点,通过如下步骤确定各个像素点的像素值:(1)基于MCMC的方法确定当前像素点的有效路径,所述的有效路径为镜面光线路径;(2)根据当前素点的有效路径,基于光线传播路径积分公式计算当前像素点的像素值,并对当前像素点进行渲染。
【技术特征摘要】
1.一种基于MCMC的镜面光线的渲染方法,其特征在于,渲染时首先确定各个像素点的像素值,然后利用各个像素点的像素值进行渲染,针对任意一个像素点,通过如下步骤确定各个像素点的像素值:(1)基于MCMC的方法确定当前像素点的有效路径,所述的有效路径为镜面光线路径;(2)根据当前像素点的有效路径,基于光线传播路径积分公式计算当前像素点的像素值,并对当前像素点进行渲染;所述步骤(1)通过如下方法确定当前像素点的有效路径:(1-1)针对当前像素点,确定当前像素点的从视点到光源的原始路径;(1-2)从该原始路径中选择第一个非镜面节点作为初始节点,并针对该初始节点随机选择一个光线射出方向作为扰动方向;(1-3)从初始节点沿该扰动方向射出一光线,使该光线沿原始路径传播:(a1)若传播时遇到非镜面节点,则停止传播,并对得到的第一传播路径进行补全,得到扰动方向上的建议路径;(a2)若传播时未遇到非镜面节点,则直至传播至光源时停止,并以得到的第一传播路径作为该扰动方向上的建议路径;(1-4)针对初始节点增加一个扰动方向,针对新增的扰动方向执行步骤(1-3)确定新增的扰动方向上的建议路径,并判断该建议路径的有效性;循环执行步骤(1-4),直至扰动方向的个数达到预设的个数阈值停止,得到当前像素点的有效路径。2.如权利要求1所述的基于MCMC的镜面光线的渲染方法,其特征在于,所述步骤(a1)中基于迭代法对第一传播路径进行补全包括如下步骤:(S1)判断||xb-x'b||>εL是否满足,其中xb为原始路径中第二个非镜面节点,x'b为第一传播路径中第二个非镜面节点,ε是预设的误差阈值,L为原始路径相邻两个节点间的最大距离;若不满足,则直接以原始路径中第二个非镜面节点xb之后的部分补接到第一传播路径中最后一个节点之后得到建议路径;否则,进行如下操作:(S2)根据迭代步长确定光源的射出方向,沿该射出方向射出一光线,并使该光线沿着原始路径传播,直至到达非镜面节点时停止传播,得到相应的第二传播路径;(S3)判断||xcn-x'b||<||xb-x'b||是否满足,其中xcn为第二传播路径中最后一个节点:(b1)若满足,则将第二传播路径补接到第一传播路径中得到相应的...
【专利技术属性】
技术研发人员:陆琼,张根源,
申请(专利权)人:浙江传媒学院,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。