基于光线投射步进补偿的实时烟雾渲染算法

文档序号:6537047阅读:201来源:国知局
基于光线投射步进补偿的实时烟雾渲染算法
【专利摘要】本发明公开了一种基于光线投射步进补偿的实时烟雾渲染方法,将原始烟雾的密度场序列函数分解成一组带权重的径向基函数和一个残余场,并计算所有径向基函数中心的源辐射值,根据光线投射法,确定视点光线与原始烟雾的交点,通过各个径向基函数中心的源辐射值计算各个交点的源辐射值,并根据所有交点的源辐射值计算各个像素点的辐射能量,进而完成图像渲染。本发明的实时烟雾渲染方法大大降低数据总量从而节省内存,提高了烟雾渲染的速度,能够实现实时烟雾渲染,且光线投射法确定视点光线与原始烟雾的交点,在光线步进中对利用残余场对视点光线的辐射能量进行补偿,处理快且能够较好的保留原始烟雾的细节,提高渲染效果。
【专利说明】基于光线投射步进补偿的实时烟雾渲染算法
【技术领域】
[0001]本发明涉及计算机图形领域,尤其涉及一种基于光线投射步进补偿的实时烟雾渲染算法。
【背景技术】
[0002]烟雾渲染是通过各种方法将场景渲染成一个将烟雾作为参与媒介以模拟烟雾效果的过程。人们在对参与媒体的实际的模拟上已经做了大量的研究工作,虽然以前的技术已经可以在静态画面上做出令人印象深刻的渲染效果,但他们没有提供一种可以对实时动画序列进行渲染的有效方法。烟雾作为最常见的自然景物之一,它在游戏、电影特效中有着重要的作用。
[0003]近年来,随着烟雾的应用越来越广,吸引了许多国内外学者的研究,很多新的方法涌现出来,并能得到一些比较好的效果。目前烟雾模拟的方法主要有:基于物理模型模拟、基于粒子系统模拟、基于密度函数模拟等。Ebert[1990]在进行扩散模拟时,简单的假定光线传播过程中最多只进行一次扩散,Max[1994]将该理论运用在参与媒介的渲染中,虽然该类方法非常的简单,但是它的模拟效果也比较差。Stam[1993]提出了扩散过程的多重散射模拟方法,揭示了单散射的弊端,通过传输理论进行扩散的近似模拟推导,因为需要很高的计算代价和巨大的存储需要他提出的方法不能很好的在3维场景中运用。采用Navier-Stokes方程和半拉格朗日方法求解烟雾的物理模型方程来模拟烟雾动画,该方法根据流体力学原理进行物理模型的建立,并通过微分方程离散化计算烟雾的速度场和密度场,需要求解复杂的非线性方程组,不能达到实时性要求。采用粒子系统原理进行烟雾效果的模拟,使用大量具有一定生命周期和属性的粒子作为烟雾模拟的基本元素,这类方法的问题在于对烟雾运动建模不够精准,没有考虑到烟雾的扩散特性。ZHU0[2008]提出了结合流体力学和粒子系统进行烟雾效果的模拟,并采用空间分割树进行碰撞检测,该方法效果较好,但是需要进行复杂的计算,非常耗费时间。
[0004]烟雾渲染因为对光线的传播有着复杂的作用,一直是计算机图形学中非常具有挑战性的问题。由于烟雾空间不均匀,在烟雾中,光线在每个点上都会经历吸收和散射现象。在静态参与媒介中,散射作用的数量和复杂性导致庞大的计算开支。对于像烟雾这样的动态媒介,结构的体积会随着时间动态变化,其计算成本将会高到无法承受。

【发明内容】

[0005]本发明提供了一种基于光线投射步进补偿的实时烟雾渲染算法,大大地减少了时间和内存的消耗,且容易实施。
[0006]一种基于光线投射步进补偿的实时烟雾渲染方法,包括:
[0007](I)将原始烟雾的体积密度场序列函数分解成若干个带权重的径向基函数和一个残余场函数,并确定各个径向基函数的中心和半径,以带权重的径向基函数的加权和为原始烟雾的近似密度函数;[0008](2)分别计算各个径向基函数的中心的单散射的源辐射值和多重散射的源辐射值,并将各个径向基函数中心的单散射的源辐射和多重散射的源辐射值相加得到相应径向基函数中心处的源辐射值;
[0009](3)针对待渲染图像中的任意一个像素点,采用光线投射法的确定视点光线与原始烟雾的交点;
[0010](4)根据所有径向基函数中心处的源辐射值、残余场函数和近似密度函数,计算当前像素点对应的各个交点的源辐射值,并根据当前像素点对应的所有交点的源辐射值计算得到当前像素点的福射能量;
[0011](5)根据待渲染图像中所有像素点的辐射能量对待渲染图像中进行渲染,得到渲染图像。
[0012]步骤(1)得到径向基函数实际上为一个关于原始烟雾中点的坐标的函数,当涉及到具体的点时,即取相应点的函数值。
[0013]本发明实时烟雾渲染方法中首先将输入的由体积密度场序列代表的烟雾密度分解成一组带权重的径向基函数和一个残余场,然后计算所有径向基函数中心处的源辐射值,根据光线投射法的确定视点光线与原始烟雾的交点,通过交点与径向基函数的对应关系,计算得到该视点光线与原始烟雾的交点的所 有交点的源辐射值,并根据所有交点的源辐射值计算当前像素点的辐射能量,并进一步得到所有待渲染图像中所有像素点的辐射能量完成图像渲染。
[0014]本发明的实时烟雾渲染方法用赋予权值的径向基函数近似表示原始烟雾,实际上可理解为将原始烟雾进行分割为若干个部分,大大降低数据总量从而节省内存,提高了烟雾渲染的速度,能够实现实时烟雾渲染。且通过光线投射法确定视点光线与原始烟雾的交点,在光线步进中对利用残余场对视点光线的辐射能量进行补偿,处理快且能够较好的保留原始烟雾的细节,提高渲染效果。
[0015]所述步骤(1)包括步骤:
[0016](1-1)设定径向基函数的个数,并根据原始烟雾的分布和径向基函数的个数确定各个径向基函数的中心;
[0017](1-2)根据设定的径向基函数的个数,通过求取:
【权利要求】
1.一种基于光线投射步进补偿的实时烟雾渲染方法,其特征在于,包括: (1)将原始烟雾的体积密度场序列函数分解成若干个带权重的径向基函数和一个残余场函数,并确定各个径向基函数的中心和半径,以带权重的径向基函数的加权和为原始烟雾的近似密度函数; (2)分别计算各个径向基函数的中心的单散射的源辐射值和多重散射的源辐射值,并将各个径向基函数中心的单散射的源辐射和多重散射的源辐射值相加得到相应径向基函数中心处的源辐射值; (3)针对待渲染图像中的任意一个像素点,采用光线投射法确定视点光线与原始烟雾的交点; (4)根据所有径向基函数中心处的源辐射值、残余场函数和近似密度函数,计算当前像素点对应的各个交点的源辐射值,并根据当前像素点对应的所有交点的源辐射值计算得到当前像素点的辐射能量; (5)根据待渲染图像中所有像素点的辐射能量对待渲染图像中进行渲染,得到渲染图像。
2.如权利要求1所述的基于光线投射步进补偿的实时烟雾渲染方法,其特征在于,所述步骤(1)包括步骤: (1-1)设定径向基函数的个数,并根据原始烟雾的分布和径向基函数的个数确定各个径向基函数的中心; (1-2)根据设定的径向基函数的个数,通过求取:
3.如权利要求2所述的基于光线投射步进补偿的实时烟雾渲染方法,其特征在于,所述步骤(2)中根据以下步骤计算各个径向基函数的中心单散射的源辐射值: (211)对于任意一个径向基函数,根据当前径向基函数和单位径向基函数的中心,确定当前径向基函数与各个单位径向基函数相关的散射方向并形成当前径向基函数的散射方向集; (212)确定当前径向基函数的中心在散射方向集中任意一个散射方向上与原始烟雾的交点以及与各个交点对应的径向基函数,分别根据同一散射方向上的交点对应的径向基函数形成当前径向基函数在相应散射方向上的相关径向基函数集; (213)根据:
4.如权利要求3所述的基于光线投射步进补偿的实时烟雾渲染方法,其特征在于,所述的单位径向基函数为半径为I的径向基函数。
5.如权利要求4所述的基于光线投射步进补偿的实时烟雾渲染方法,其特征在于,所述步骤(211)中当前径向基函数与单位径向基函数Bu(X)相关的散射方向根据:
6.如权利要求5所述的基于光线投射步进补偿的实时烟雾渲染方法,其特征在于,所述步骤(212)中将中心与交点的距离大小于半径的径向基函数作为该交点对应的径向基函数。
7.如权利要求6所述的基于光线投射步进补偿的实时烟雾渲染方法,其特征在于,所述步骤(2)中根据:
8.如权利要求7所述的基于光线投射步进补偿的实时烟雾渲染方法,其特征在于,所述步骤(4)包括步骤:
9.如权利要求8所述的基于光线投射步进补偿的实时烟雾渲染方法,其特征在于,所述的步骤(1)中设定径向基函数的个数η的取值为600~1200。
【文档编号】G06T15/08GK103886636SQ201410039593
【公开日】2014年6月25日 申请日期:2014年1月28日 优先权日:2014年1月28日
【发明者】张丹, 董建锋, 张大龙, 李盼, 赵磊, 许端清 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1