一种基于梯度的自适应光子映射优化算法

文档序号:8364016阅读:352来源:国知局
一种基于梯度的自适应光子映射优化算法
【技术领域】
[0001] 本发明涉及图形学真实感渲染领域,具体涉及一种基于梯度的自适应光子映射优 化算法。
【背景技术】
[0002] 光子映射算法是一种实现真实感渲染效果的全局光照算法。实现真实感渲 染技术是目前影视制动领域的最核心技术,是一种追求真实的照片级图像质量的渲染 (PhotorealisticRendering)。真实感渲染可以使三维动漫作品更加逼真,实现与现实生 活中同样的真实性效果。真实感渲染技术的主要实现方法是全局光照算法。全局光照算法 不只渲染光源对物体的照射效果,还渲染物体与物体之间的照射效果,包括色溢、焦散、环 境遮挡等效果。
[0003] 光子映身寸算法[Apracticalguidetoglobalilluminationusingraytracing andphotonmapping]是一种两步实现的全局光照算法。在第一步中,光源发射光子,通 过从光源出发进行正向的光线跟踪来追踪光子,并且在漫反射物体表面存储光子到光子图 中,存储的数据包括光子的能量,位置,方向等。在光子追踪过程中,光子与物体表面发送 碰撞,光子可以被反射,折射,散射或是吸收;根据光子的碰撞行为,继续追踪光子。光子 在碰撞过程中并不会分裂,只有光子的能量根据碰撞物体的吸收发生了变化。在完成了全 部的光子追踪后,所有被保存的光子被组织成一棵KD-树,便于第二部分渲染中的查找。 在第二步渲染中,使用了和光线追踪方法结合的渲染方法。光线追踪算法[Animproved illuminationmodelforshadeddisplay]是一种基本的全局光照渲染算法。从屏幕空间 发射主光线,并在场景空间中跟踪光线,主光线与物体的交点,收集各个光源的照射效果计 算直接光照颜色,还可以根据物体表面属性继续发射光线并返回交点颜色用来计算物体表 面发生的发射折射等效果,主光线将颜色返回给屏幕空间形成图像,交点被称为着色点。在 光子映射的实现方法中,在计算交点的颜色时,不再收集各个光源的照射信息,而是查找光 子图,找到交点附近的k(k> 1)个光子来估计光源的照射效果。
[0004] 中国专利(【申请号】CN201010138101,专利名称:一种基于光子映射的全局光照 方法)中提出了一种将光子映射和光线追踪结合的方法。该方法需要通过大规模的光子发 射才能保证渲染精度,在光子跟踪阶段和渲染阶段都需要较大的系统执行时间和存储空间 开销,使计算效率较低。而在选择发射一定数量的光子渲染时,光子的收集数目k会影响渲 染效果。在k的取值较小时,因为光子的随机分布出现噪声,而在k的取值较大时在特征边 缘会出现偏差等问题。
[0005] JESEN在文章[PhotonmapsinbidirectionalMonteCarloraytracingof complexobjects]中第一次提出了采用一种滤波的方法来优化光子映射渲染效果。在收集 光子来估计光照效果时,增加一个滤波函数来决定每个光子贡献的权值。这个函数是一个 高斯函数,在距离渲染点近的光子贡献度大,在距离渲染点远的光子贡献度小。
[0006] SCH」0TH在文章[Diffusionbasedphotonmapping]中提出了一种各向异性的 滤波方法。通过在光子发射和渲染过程中间加一步全局梯度的计算保存在光子图中,在渲 染时,使用这些中间数据来进行改变每个光子贡献的权值。在这个方法中光子贡献权值的 改变是各向异性的。

【发明内容】

[0007] 为解决现有技术存在的不足,本发明针对现有的光子映射算法中搜索数目k的选 取大会出现偏差选取小会出现噪声的问题,提供一种基于梯度的自适应光子映射优化算 法。利用着色点附近收集的k个最近邻光子计算的局部梯度信息,梯度值可以反映光子分 布的特征,如果渲染点位于光照平滑的位置,则梯度值较小,如果渲染点位于光照的边缘等 特征位置,梯度的值会较大。利用梯度值,计算影响因子,影响因子随梯度值得增大递减,根 据影响因子自适应地选择搜索光子的数目。另外利用光子分布梯度的方向,改变光子搜索 范围的形状,使其变为沿着梯度垂直方向的狭长的椭球形状。最后重新计算搜索的最近邻 的光子的贡献,得出光照信息。
[0008] 为实现上述目的,本发明的具体方案如下:
[0009] 一种基于梯度的自适应光子映射优化算法,包括如下步骤:
[0010] 步骤1.光子跟踪阶段;通过从光源发出一定数量的光子并对光子进行正向的跟 踪来追踪光子,在漫反射物体表面存储光子到光子图中构建一棵光子的KD-树;
[0011] 步骤2.渲染搜索阶段;从屏幕空间发射光线,在光线与物体表面的交点处计算表 面颜色,交点被称为着色点,在着色点处收集最近邻的k个光子并计算光照信息;
[0012] 步骤3.计算梯度阶段;根据收集着色点附近的k个最近邻光子的分布信息计算梯 度,同时梯度计算出的影响因子自适应地选择搜索光子的数目,并利用光子分布梯度的方 向,改变光子搜索范围的形状,使其变为沿着特征垂直方向的狭长的椭球形状;
[0013] 步骤4.渲染成像阶段;根据最新的搜索范围,重新搜索得到最近邻的光子,并利 用光照公式和物体的颜色计算出着色点的颜色,按照光线返回屏幕空间形成图像。
[0014] 所述步骤(1)包括如下步骤:
[0015] 步骤(I. 1):从光源发射一定数量的光子,利用sobol随机序列算法来确定光子的 出射方向,并在场景中追踪光子光线;
[0016] 步骤(1.2):当光子在碰撞到非漫反射物体表面时,根据物体的属性被反射、折 射、散射或吸收;当光子碰撞在漫反射表面时光子发生漫反射或吸收,同时保存光子的能 量、方向、位置及表面法向信息到光子图中,所有被保存的构建一棵光子的KD-树。
[0017] 所述步骤(2)包括如下步骤:
[0018] 步骤(2. 1):在屏幕空间按照像素生成的顺序选取采样点,根据摄像机位置进行 投影,形成主光线,并追踪主光线,与场景物体求交,得出与光线相交的距离屏幕最近的物 体表面位置;
[0019] 步骤(2.2):在交点即着色点X处查找其在全局光子图中最近邻的k个光子, k> 1。
[0020] 所述步骤(3)包括如下步骤:
[0021] 步骤(3. 1):利用步骤(2. 2)收集的k个光子的分布计算梯度;
[0022] 步骤(3. 2):利用梯度的大小,计算出影响因子a,采用一个递减的经验公式,利 用影响因子a,将k个光子中离着色点x最远的光子和x的距离进行缩放,得出新的搜索距 离r' (X);
[0023] 步骤(3. 3):使用梯度的方向,改变重新划分的搜索范围的形状,椭球是以着色点 X为球心的椭球,
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1