本发明涉及图像处理领域技术,具体涉及一种高维空间自适应采样方法及真实感图像绘制方法。
背景技术:
高真实感图像绘制技术所采用的光线跟踪算法主要有三部分组成:对摄像机及场景所对应的维度进行采样,生成连接光源与摄像机的光路;计算光路对应的亮度;根据采样信息以及其对应光路的亮度信息对图像进行重建。
光路亮度的计算所涉及的物理模型是基于能量守恒的光照亮度绘制方程和双向反射分布函数,前者通过积分的形式给出了在某点处出射光线亮度相对于所有入射光线亮度的数学公式表述。后者用于计算在某点出入射光线与出射光线的在不同方向上的能量分布,可以很好的表现出场景中的物体表面的材质信息,例如:塑料材质,金属材质,玻璃材质等。通过上述方程及函数可以计算出光路中光线每次反射的能量变化,从而得到光路最终对应的亮度。
计算机图形学中针对采样算法的研究层出不穷,这里仅列举近些年的一些比较有代表性的研究成果。自适应采样技术被whitted提出,其算法首先用规则的网格对图像空间进行稀疏采样,进一步的对于网格中边角处采样点对应亮度方差较大的网格进行细分,并递归重复上述过程。尽管whitted的方法是基于自适应的,但是却不具有随机性,因此所得图像会产生失真。为了避免这一现象,mitchell、bolin和rigau等人提出了随机的自适应采样技术,算法的采样点随机生成,并在采样点对应光路亮度方差较大的地方进行加密采样。上述方法的提出很大程度上降低了得到相同质量的图像的采样率需求。尽管上述算法在一般的光线跟踪算法上取得了很好的效果,但是随着运动模糊、景深效果的引入所带来的采样空间维度的提升使得上述方法所得图像仍具有很大的噪声。高维空间光路的思想被walter提出以解决这一问题,但是该思想在生成采样点的过程中需要对采样点进行筛选,在采样率需求较大的情况下性能很低。进一步,toshiya提出了高维空间自适应采样算法,该算法首先在高维空间上进行随机的稀疏采样,在采样点对应亮度方差较大的地方进行细分并加密采样,取得了很好的结果。
游戏、电影、动画行业的发展,使得真实感图像绘制技术在上述领域变得尤为重要。对于复杂模型、效果的真实感图像绘制是上述领域近些年发展的一个主要趋势。随着模型复杂度的提升、一些绘制效果的引入,基于蒙特卡洛的光线跟踪技术相较其他算法可以很好的应对这一问题。该技术的理论基础来自于几何光学理论,符合自然界中存在的光学定律,因此能够很好的表现出现实中的各种光影效果。算法通过跟踪从摄像机发出的光线在场景中光学表面发生的反射、折射现象得到光线在场景中传播的光路模型,进一步通过光照明模型计算得出光路所对应的亮度。该算法可以得到同扫描线算法、光线投射算法类似的结果,但前者针对场景中的反射、折射效果的绘制上能够有更精确的模拟。
技术实现要素:
本发明的目的在于提供一种高维空间自适应采样方法及真实感图像绘制方法,
为了达到上述的目的,本发明提供一种高维空间自适应采样方法,包括初始稀疏采样和自适应采样,所述自适应采样中,在生成候选采样点时,将采样空间放大到原始的对应的kd-tree节点的包围盒的n倍,n>1。
上述高维空间自适应采样方法,其中,n=1.1。
上述高维空间自适应采样方法,其中,所述初始稀疏采样中,采用自适应尺度估计技术在不同维度上分布采样点。
上述高维空间自适应采样方法,其中,所述自适应尺度估计技术具体为:对每一维度,先沿该维度把采样点均匀分布到b个桶中;对于每个桶中的采样点,统计其方差以衡量其分布上的差异;进一步计算该维度对应的所有的桶的方差的方差;最后根据每一维度的方差来计算每个维度对应所需要的尺度;根据每个维度对应所需要的尺度分布各维度的采样点。
上述高维空间自适应采样方法,其中,所述初始稀疏采样中,b=10。
本发明提供的另一技术方案是一种真实感图像绘制方法,采用上述高维空间自适应采样方法进行采样。
上述真实感图像绘制方法,其中,所述真实感图像绘制方法还包括图像重建。
上述真实感图像绘制方法,其中,图像重建包括两部分,第一部分对高维空间上的光亮度函数进行重建,第二部分对上述重建光亮度函数在非图像空间维度进行积分,进而得出最终绘制图像。
本发明的高维空间自适应采样方法及真实感图像绘制方法,能消除分割面失真,且实用性强,可得到真实感图像。
附图说明
本发明的高维空间自适应采样方法及真实感图像绘制方法由以下的实施例及附图给出。
图1是自适应尺度估计高维空间自适应采样算法automdas与高维空间自适应采样算法mdas的比较图(台球场景)。
图2是自适应尺度估计高维空间自适应采样算法automdas与高维空间自适应采样算法mdas的比较图(国际象棋场景)。
图3是弹性采样点生成高维空间自适应采样算法extendmdas与高维空间自适应采样算法mdas的比较图(国际象棋场景)。
具体实施方式
以下将结合图1~图3对本发明的高维空间自适应采样方法及真实感图像绘制方法作进一步的详细描述。
本发明的高维空间自适应采样方法基于高维空间自适应采样算法。
现有技术的高维空间自适应采样包括初始稀疏采样和自适应采样;初始稀疏采样采用较低采样率,用以对高维空间上的光亮度函数进行初步估计;自适应采样通过对初始采样点的结果进行分析,在高维空间上的光亮度函数变化剧烈或者是亮度值较大的地方进行第二轮加密采样。
初始稀疏采样的生成采用均匀分布函数,在高维空间中均匀分布各采样点;在所有采样点均被生成之后,采用光线跟踪算法对其亮度值进行计算,所有采样点s=(x,y,u1,...,un)以及其对应的亮度值l(s)建立kd-tree,所有采样点均被存储在kd-tree的叶子节点,每个叶子节点有最多采样点数量限制。
较佳地,初始稀疏采样使用possion圆盘分布生成,可以得到更好的初始采样点分布;考虑到possion圆盘分布生成的时间复杂度,采用均匀分布对初始采样点进行生成。
自适应采样每次选取所有叶子节点中误差最大的一个,在该叶子节点对应采样空间内随机生成若干候选采样点,最终取所有候选采样点中距该叶子节点中的采样点最小距离最大的那个采样点作为最终采样点;算法进而对该最终采样点的光亮度值进行计算,并把其插入到kd-tree之中;若所插入叶子节点中采样点的数量已达到最大,则先对其进行分割进而插入到某个分割后的叶子节点中;最后,更新被插入或分割的叶子节点的整体误差函数值;算法不断重复上述过程,直到生成的采样点数量达到预设值。
现有技术的高维空间自适应采样存在两个问题:1)初始稀疏采样中,现有技术在高维空间中均匀分布各采样点,但在采样空间中不同维度上的采样点对应的亮度的差异是不同的,因此需要对采样点在不同维度上进行缩放,即不同维度采样密度不同;2)自适应采样中,由于每次只在kd-tree节点对应的包围盒内生成候选采样点,导致最终渲染图像质量在kdtree的分割面处存在较明显的变化,造成失真。
本发明针对上述两个问题,对现有技术的高维空间自适应采样方法进行改进。
在采样空间中不同维度上的采样点对应的亮度的差异是不同的,差异较大的维度应提高采样密度,反之使用较低的采样密度,即对不同维度进行更好地采样与估计,所以,问题的解决就变成了寻找一种可以衡量采样点在不同维度中的差异的度量。
针对采样点在不同维度上的缩放问题,本发明提出自适应尺度估计技术。本发明较佳实施例不失一般性地假设采样点维度为(x,y,t),本实施例以时间维度t为例,介绍本发明提出的自适应尺度估计技术:首先沿该维度把采样点均匀分布到b个桶中(通常算法的性能关于b具有一定的鲁棒性,一般取b=10即可);对于每个桶中的采样点,统计其方差以衡量其分布上的差异;进一步计算该维度对应的所有的桶的方差的方差;最后根据每一维度的方差来计算每个维度对应所需要的尺度。根据每个维度对应所需要的尺度分布各维度的采样点。
针对候选采样点生成所造成的沿kd-tree分界面失真的问题,本发明提出弹性采样点生成技术。本发明较佳实施例在生成候选采样点时把采样空间适当的放大,将采样空间放大到原始的对应的kd-tree节点的包围盒的1.1倍,这个简单的做法可以有效地消除这一问题。
现验证本实施例的高维空间自适应采样方法,本实施例实验平台的硬件参数如下:
–处理器:intelcorei5-5257u
–内存:samsung8g
–显卡:intelirisgraphics6100
–硬盘:applessd128gb
本实施例实验平台的软件参数如下所示,
–操作系统:windows10entreprise64bit
–开发环境:visualstudio2013
本实施例实验数据共有两个场景:
–台球场景
–国际象棋场景。
图1所示为自适应尺度估计高维空间自适应采样算法automdas与高维空间自适应采样算法mdas的比较图(台球场景),其中,(a)为mdas效果图,(b)为automdas效果图,(c)为(a)对应的局部1效果图,(d)为(a)对应的局部2效果图,(e)为(b)对应的局部1效果图,(f)为(b)对应的局部2效果图。图2所示为自适应尺度估计高维空间自适应采样算法automdas与高维空间自适应采样算法mdas的比较图(国际象棋场景),其中,(a)为mdas效果图,(b)为automdas效果图,(c)为(a)对应的局部1效果图,(d)为(a)对应的局部2效果图,(e)为(b)对应的局部1效果图,(f)为(b)对应的局部2效果图。
图3所示为弹性采样点生成高维空间自适应采样算法extendmdas与高维空间自适应采样算法mdas的比较图(国际象棋场景),其中,(a)为mdas效果图,(b)为extendmdas效果图。可以看到应用extendmdas原采样密度图中存在的失真部分已经被完全消除了。
本发明的真实感图像绘制方法包括:
1)采样;
采用本发明的高维空间自适应采样方法进行采样;
2)图像重建;
图像重建主要分为两部分,第一部分对高维空间上的光亮度函数进行重建,第二部分对上述重建函数在非图像空间维度进行积分,进而得出最终绘制图像。