一种基于体素化全局光照算法进行光贴图烘培的算法的制作方法

文档序号:17071163发布日期:2019-03-08 23:19阅读:506来源:国知局
一种基于体素化全局光照算法进行光贴图烘培的算法的制作方法

本发明涉及光照算法领域,具体涉及一种基于体素化全局光照算法进行光贴图烘培的算法。



背景技术:

在三维渲染程序中,计算光路传输是核心问题之一。光从光源发出,进入场景,并在场景中经过单次或多次反射后到达观察者所在的位置。要生成真实的图像,就需要在程序中模拟计算复杂的光路,往往无法达到实时的需求。

光贴图烘培是一种常用的技巧。光贴图是一种特殊的纹理,储存了场景中物体表面各处的最终光照。当场景中的物体和光源没有发生变化时,光路也不会发生变化,因此光贴图可以通过预计算得到。这样,在实时渲染过程中就可以避免复杂的光路计算而直接使用保存在光贴图中的光照信息。预计算光贴图的过程称作光贴图烘培。

现有的光贴图烘培算法采用光线跟踪算法,通过在场景中跟踪大量光线的光路计算物体各处的入射光,其计算速度缓慢。例如,对于一个一百多平方米的室内场景,需要数小时的烘培时间。



技术实现要素:

本发明提供一种基于体素化全局光照算法进行光贴图烘培的算法,解决现有光贴图烘培算法需要大量计算,所需时间较长的问题。

为实现上述目的,本发明提供如下技术方案:一种基于体素化全局光照算法进行光贴图烘培的算法,包括预计算部分和实时渲染部分,

所述预计算部分使用体素化全局光照明算法,根据场景信息烘培光贴图,包括如下步骤:

步骤一、三维场景的体素化

将场景中的物体进行切割,使其由若干个立体像素构成,通过网格对其进行切分,相邻的8个网格节点构成一个小的立体像素,立体像素代表该场景的一些可测量的特性或独立变量,由网格节点来表示立体像素对光线的作用。

步骤二、光锥跟踪

每个立体像素均被场景中的直接光锥照亮,利用现有的超快直接光照技术来为射到立体像素上的光线正确计算色彩和强度。在下一个阶段,这些被照亮的立体像素作为光源,产生间接光照,所有被照亮的立体像素给出起点、方向和角度执行锥形聚焦光线追踪,沿着小范围的锥形路径生成光线漫反射效果,

步骤三、根据场景信息烘培光贴图

根据立体像素存储的场景信息计算出光贴图,

所述实时渲染部分,

根据预计算好的光贴图中的光线跟踪算法进行实时渲染。

作为优选,每一个立体像素都可以进行多个光锥跟踪,根据实际光源的方向及反射表面,设定锥形范围及追踪数量。

作为优选,对每个立体像素执行多次宽幅锥形追踪,生成二次反射间接光照效果。

作为优选,立体像素采用树状结构分布,以便能够对其进行高效地定位,这种树会根据每一帧而更新,所有立体像素均利用它来收集光照信息。

作为优选,所述预计算部分和实时渲染部分基于gpu进行实现。通过gpu强大的运算能力,让锥形追踪足够快,以使我们能够实时地对每个立体像素执行一次或多次追踪。

本发明的有益效果是:

本发明使用体素化全局光照算法进行光贴图烘培,并在实时渲染中使用烘培好的光贴图,既避免了光线跟踪算法耗时的问题,取得大幅度的效率提升,又使得体素化全局光照算法可以运行在非实时条件下,所以无需受限于实时算法的帧率要求,从而增加体素分辨率和光锥数量,提供高质量的全局光照结果。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与发明的实施例一起用于解释本发明,并不构成对本发明的限制。

在附图中:

图1是本发明的算法流程图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

参阅图1,一种基于体素化全局光照算法进行光贴图烘培的算法,包括预计算部分和实时渲染部分,

所述预计算部分使用体素化全局光照明算法,根据场景信息烘培光贴图,包括如下步骤:

步骤一、三维场景的体素化

将场景中的物体进行切割,使其由若干个立体像素构成,通过网格对其进行切分,相邻的8个网格节点构成一个小的立体像素,立体像素代表该场景的一些可测量的特性或独立变量,由网格节点来表示立体像素对光线的作用。

步骤二、光锥跟踪

每个立体像素均被场景中的直接光锥照亮,利用现有的超快直接光照技术来为射到立体像素上的光线正确计算色彩和强度。在下一个阶段,这些被照亮的立体像素作为光源,产生间接光照,所有被照亮的立体像素给出起点、方向和角度执行锥形聚焦光线追踪,沿着小范围的锥形路径生成光线漫反射效果,对每个立体像素执行多次宽幅锥形追踪,生成二次反射间接光照效果。

步骤三、根据场景信息烘培光贴图

根据立体像素存储的场景信息计算出光贴图,立体像素采用树状结构分布,以便能够对其进行高效地定位,这种树会根据每一帧而更新,所有立体像素均利用它来收集光照信息。

所述实时渲染部分,

根据预计算好的光贴图中的光线跟踪算法进行实时渲染。

所述预计算部分和实时渲染部分基于gpu进行实现。通过gpu强大的运算能力,让锥形追踪足够快,能够实时地对每个立体像素执行一次或多次追踪。

本优选实施例选择虚幻引擎4作为实现平台,选择场景约20平米的室内场景。使用本发明的算法,烘培时间约为4秒,使用传统算法约为20分40秒。同时,本发明将体素化全局光照明算法转移到了预计算部分,因而可以采用更高的体素化分辨率,从而保留阴影,同时,因为本发明采用了光贴图,因此在实时渲染时仍能保持100帧/秒以上的帧率。

最后应说明的是:以上所述仅为本发明的优选实例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。



技术特征:

技术总结
本发明公开了一种基于体素化全局光照算法进行光贴图烘培的算法,包括预计算部分和实时渲染部分,所述预计算部分使用体素化全局光照明算法,根据场景信息烘培光贴图,所述实时渲染部分,根据预计算好的光贴中的光线跟踪算法进行实时渲染。本发明解决了现有光贴图烘培算法需要大量计算,所需时间较长的问题。

技术研发人员:潘明皓;帕斯卡·亚瑟;李熠
受保护的技术使用者:当家移动绿色互联网技术集团有限公司
技术研发日:2017.08.23
技术公布日:2019.03.08
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1