一种基于光子映射的全局光照方法

文档序号:6600102阅读:190来源:国知局
专利名称:一种基于光子映射的全局光照方法
技术领域
本发明属于图像处理技术领域,具体涉及一种基于光子映射的全局光照方法。
背景技术
全局光照方法正是图形学中的三大渲染技术之一。在提出基于光子映射的全局光照方法之前,主流的全局光照渲染方法是光线跟踪和辐射度方法,早期的光线跟踪方法只 能处理镜面反射、折射以及直接光照,随着蒙特卡罗的方法对光线跟踪方法进行的扩展,使 得光线跟踪方法可以处理焦散、间接光照等效果,这种方法对每条光线使用随机的光线分 布,要得到满意的图像需要对光线进行大量的采样。光线跟踪虽然简单、强大、易实现,但真 实世界的很多东西无法很好地处理。比如Color Bleeding 一一辉映,物体间因为光线的漫反射而互相影响颜色, Casuties-焦散,即光通过透明物体的折射被汇聚在一起的现象。直到1993年,光子映射 被提出之前,光线跟踪都无法有效解决这两个问题,而光子映射对这两个问题提供了良好 的解决方案。用光子映射方法,这类漫反射面的间接光照造成的光照可以用预计算的光子 图(Photonmap)来估计。将光线跟踪扩展为光子映射,可以产生一种能解决任何直接或间 接光照的方法。而且光子映射也能处理中间介质(participatingmedia)情况。基于光子映射的全局光照方法一般包括两步第一步,从光源向场景发射光子,并且在它们磁到镜面物体时发生反射,在碰到非 镜面物体时按一定几率反射,将不发生反射的光子保存在一个光子图(photonmap)中,建 立光子图。光子图表示了光源发出的能量在场景中的分布。第二步,渲染,使用统计方法从光子图中提取出场景中所有点的入射通量以及反 射辐射能。光子图与场景表述是完全分离开的,这一特性使得光子映射方法能处理很复杂 的场景,包括千万个三角面片,实例化的几何体,复杂的过程式物体。与有限元辐射度方法相比,光子映射的优势是不用进行网格处理。简单场景下辐 射度的速度可以很快,但一旦场景复杂,辐射度速度就远远落后于光子映射了,而且光子跟 踪还能处理非漫射表面及焦散,辐射度就办不到。和光线跟踪、双向光线跟踪这些能用很少 的内存开销模拟所有全局光照效果的MonteCarfo光线跟踪方法相比,光子映射的最大优 点就是高效,不过代价是需要额外的内存存放光子图。

发明内容
本发明的目的在于提供一种新的基于光子映射的全局光照方法,能使得运行速 度、渲染效果,以及使用的存储空间等方面得到一定的改进。本发明提供的技术方案如下本发明提供一种基于光子映射的全局光照方法,包括以下步骤(1)光源向场景随机发射光子;(2)判断发射后的光子状态;
(3)根据物体表面的信息递归跟踪光子;(4)保存光子信息;(5)进行渲染场景,包括将蒙特卡罗反向追踪方法与原光子映射方法相结合使用 来进行渲染场景。优选的,根据物体表面的信息递归跟踪光子具体为在第一路运程里,跟踪光子运动时根据物体表面的全部光照特性来保存光子,并 进行递归跟踪。优选的,在光子映射方法的第一路运程中,采用根据物体表面所拥有的各种不同 特性,分别反射不同类型的光子的方式。优选的,将光子打中一个物体表面时,能量=原光子能量/交点到光源的距离。优选的,所述进行渲染场景包括步骤1:从视角开始向场景中发射反向追踪光线;;步骤2 当光线打中物体表面时,先根据物体表面的漫反射特性计算直接光照,然 后根据物体表面的镜面反射特性和折射特性分别计算反射和折射光照,最后根据光子图计 算间接光照;步骤3 在根据光子图计算间接光照的过程中,根据光子的坐标信息在光子图中 搜索离它最近的设定数量的光子,并将这部分光子的能量叠加到交点处的光子能量上;步骤4 将直接光照,反射光照,折射光照和间接光照叠加到一起作为交点处的光 照信息进行渲染;步骤5 保存得到的光照信息,并计算下一个像素点的光照信息,跳转至步骤1。上述技术方案可以看出,本发明的益处在于通在最初的光子映射方法的基础上进行探索,通过将原方法进行部分修改并将修 改后的方法与原方法进行比较来试图到一个改进后的方法,并在运行速度,渲染效果,以及 使用的存储空间等方面得到一定的改进。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其它的附图。图1是本发明新的基于光子映射的全局光照方法的第一流程图;图2是本发明新的基于光子映射的全局光照方法的第二流程图;图3是本发明光子打中物体表面后所需要记录的信息图;图4是本发明复合场景渲染图;图5是本发明漫反射场景渲染图;图6是本发明镜面反射场景渲染图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它 实施例,都属于本发明保护的范围。
下面结合附图对本发明方法作详细描述。本发明提供一种新的基于光子映射的全局光照方法,能在运行速度,渲染效果,以 及使用的存储空间等方面得到一定的改进。本发明提供的基于光子映射的全局光照方法,具体来说利用PhotonMapping方法 来模拟场景中的全局光照效果,而光线跟踪方法则用于最终对场景的采样以及对镜面反射 和透射效果的计算。PhotonMapping是一种2路方法,在第1路中,光子从光源发出,当该光 子与场景中的非镜面反射对象相交时将该光子存储到光子图(Photon map)中;第2路是渲 染路,该路通过光线跟踪方法对场景进行采样,利用光子图中存储的相关信息来计算出采 样点处的反射光强值,从而对整个场景的全局光照效果进行绘制。本发明的改进方法主要包括以下几个部分1)采用物体表面的全部信息跟踪光子在光子映射方法的第一路运程中,提出一种新的对于跟踪光子的处理方式。即在 进行光子追踪的过程中,不再采用俄罗斯轮盘的方式来决定对该光子做何处理如,反射,折 射和保存等,而采用根据物体表面所拥有的各种不同特性,分别反射不同类型的光子的方 式。这样可以,充分的体现出物体表面的各种属性而不只是依照一定概率反映一种属性,增 强渲染效果。2)采用一种新的光子能量计算方法在传统的光子映射方法中光源发射出的光子初始能量=光源能量/发射的光子 个数。在本发明方法中光源发射出的光子初始能量=光源能量而每次光子打中一个物体表面时能量=原光子能量/交点到光源的距离。3)将光子映射方法与蒙特卡罗反向追踪方法结合使用将蒙特卡洛反向光线追踪方法与光子映射方法结合起来共同进行渲染。传统的光 子映射方法在渲染复杂效果上较好,但是在运行速度和效率上较低,而蒙特卡洛反向光线 追踪方法与之正好相反。因此,在本发明中的光子映射方法第一运程里面依旧使用原有的光子图,而在第 二路运程中采用蒙特卡洛反向追踪方法的颜色渲染方法,将光照效果分为各种不同的部 分,分别计算,并且在计算时使用第一路中生成的光子图数据结构。以下结合附图对本发明方法进行详细介绍。如图1所示是基于光子映射的全局光照改进方法的流程图,主要包括以下步骤(1)光源向场景随机发射光子在本发明中所指的光子路径主要是通过计算从光源进行路径跟踪而打到物体表 面时候的坐标信息。通过在光源处的一个随机函数随机的生成光子发射的方向。(2)判断发射后的光子状态
在本发明中,对步骤(1)中所确定的随机方向而发射的光线进行跟踪,并判断是 或否与场景中的物体有交点。如果有,则记录下交点处物体的信息以及交点的坐标和发向 量等信息。如果没有,则丢弃该光子。在附图中3中可以看到光子打中物体表面后所需要记录的信息。如图3所示,信 息包括交点坐标、交点法向量、交点处物体的漫反射系数、交点处物体的镜面发射系数、交 点处物体的折射系数。(3)根据物体表面的信息递归跟踪光子在本发明中,光子打中物体表面后将根据物体表面的信息进行反射或折射跟踪。 而在针对光子打中的物体具有复杂信息的情况,没有采用传统的俄罗斯轮盘的方法来根据 概率决定采用何种跟踪,而是根据打中物体表面的全部信息分别进行递归跟踪。(4)保存光子信息在本发明中,当光子从光源发射出而打中物体表面时,需要将一些必要的信息保存进光子图,而其中一个重要的信息就是光子的能量。初始发射时光子的初始能量=光源能量。而每次光子打中一个物体表面时能量=原光子能量/交点到光源的距离。这样将距离因素考虑进光子能量的计算,更真实的展现了场景中的光照信息。(5)渲染场景在本发明中的第二路运程中主要实现场景的渲染。在渲染时主要采用将蒙特卡洛反向追踪方法与光子映射方法结合使用来渲染场 景,同时也使用了在第一路运程所生成的光子信息,整个渲染过程分为以下几个步骤,如图 2所示步骤1 从视角开始向场景中发射反向追踪光线。步骤2 当光线打中物体表面时,先根据物体表面的漫反射特性计算直接光照,然 后根据物体表面的镜面反射特性和折射特性分别计算反射和折射光照,最后根据光子图计 算间接光照。步骤3 在根据光子图计算间接光照的过程中,将会根据光子的坐标信息在光子 图中搜索离它最近的一定数量的光子,并将这部分光子的能量叠加到交点处的光子能量 上。步骤4 将直接光照,反射光照,折射光照和间接光照叠加到一起作为交点处的光 照信息进行渲染。步骤5 保存得到的光照信息,并计算下一个像素点的光照信息,跳转至步骤1.步骤6:结束。这样,通过第一路运程中生成的光子图和第二路运程中的渲染过程就可以对一个 虚拟场景进行真实的光照效果渲染。在附图4、5、6中分别显示了改进后的全局光照方法对 于不同场景的渲染效果。图4是本发明复合场景渲染图;图5是本发明漫反射场景渲染图; 图6是本发明镜面反射场景渲染图。上述技术方案可以看出,本发明的益处在于通在最初的光子映射方法的基础上 进行探索,通过将原方法进行部分修改并将修改后的方法与原方法进行比较来试图到一个改进后的方法,并在运行速度,渲染效果,以及使用的存储空间等方面得到一定的改进。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可 以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存 储介质可以包括只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。以上对本发明实施例所提供的一种基于光子映射的全局光照方法,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只 是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发 明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理 解为对本发明的限制。
权利要求
一种基于光子映射的全局光照方法,其特征在于,包括以下步骤(1)光源向场景随机发射光子;(2)判断发射后的光子状态;(3)根据物体表面的信息递归跟踪光子;(4)保存光子信息;(5)进行渲染场景,包括将蒙特卡罗反向追踪方法与原光子映射方法相结合使用来进行渲染场景。
2.根据权利要求1所述的基于光子映射的全局光照方法,其特征在于,根据物体表面 的信息递归跟踪光子具体为在第一路运程里,跟踪光子运动时根据物体表面的全部光照特性来保存光子,并进行 递归跟踪。
3.根据权利要求1或2所述的基于光子映射的全局光照方法,其特征在于在光子映射方法的第一路运程中,采用根据物体表面所拥有的各种不同特性,分别反 射不同类型的光子的方式。
4.根据权利要求1或2所述的基于光子映射的全局光照方法,其特征在于将光子打中一个物体表面时,能量=原光子能量/交点到光源的距离。
5.根据权利要求1或2所述的基于光子映射的全局光照方法,其特征在于所述进行渲染场景包括步骤1:从视角开始向场景中发射反向追踪光线;;步骤2 当光线打中物体表面时,先根据物体表面的漫反射特性计算直接光照,然后根 据物体表面的镜面反射特性和折射特性分别计算反射和折射光照,最后根据光子图计算间 接光照;步骤3:在根据光子图计算间接光照的过程中,根据光子的坐标信息在光子图中搜索 离它最近的设定数量的光子,并将这部分光子的能量叠加到交点处的光子能量上;步骤4 将直接光照,反射光照,折射光照和间接光照叠加到一起作为交点处的光照信 息进行渲染;步骤5 保存得到的光照信息,并计算下一个像素点的光照信息,跳转至步骤1。
全文摘要
本发明公开了一种新的基于光子映射的全局光照方法,本发明属于图像处理技术领域。本发明方法的步骤主要包括(1)光源向场景随机发射光子;(2)判断发射后的光子状态;(3)根据物体表面的信息递归跟踪光子;(4)保存光子信息;(5)进行渲染场景,包括将蒙特卡罗反向追踪方法与原光子映射方法相结合使用来进行渲染场景。使用本发明的技术方案,可以使得运行速度、渲染效果,以及使用的存储空间等方面得到一定的改进。
文档编号G06T15/50GK101826214SQ20101013810
公开日2010年9月8日 申请日期2010年3月29日 优先权日2010年3月29日
发明者杨彪, 罗笑南 申请人:中山大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1