一种基于光照环境实时切换烘焙数据的方法及其系统

文档序号:1880858 发布日期:2021-11-26 浏览:18次 >En<

阅读说明:本技术 一种基于光照环境实时切换烘焙数据的方法及其系统 (Method and system for switching baking data in real time based on illumination environment ) 是由 刘德建 董志翔 涂智业 陈宏展 于 2020-05-20 设计创作,主要内容包括:本发明提供了一种基于光照环境实时切换烘焙数据的方法,该方法为:步骤S1、需要烘焙光照环境时,将场景中需要烘焙的物件信息与光源信息输入离线烘焙程序中;步骤S2、离线烘焙程序通过最终聚集算法将物件对应像素的光照信息写入光照贴图中,将采样点处的球谐函数系数写入光照探针中;步骤S3、等待烘焙线程完成后,读取烘焙结果生成光照贴图与光照探针,并存储生产该光照环境对应的烘焙文件;步骤S4、修改光照环境,重复执行步骤S1至步骤S3生成修改后的光照环境对应的烘焙文件,指向修改后的光照环境;步骤S5、通过更改索引的烘焙文件,在不同的光照环境下进行实时切换烘焙文件来达到烘焙效果,能实时切换烘焙数据,实现了展示不同的光照环境。(The invention provides a method for switching baking data in real time based on an illumination environment, which comprises the following steps: step S1, when the lighting environment needs to be baked, inputting the information of the object needing to be baked and the information of the light source in the scene into an off-line baking program; step S2, the off-line baking program writes the illumination information of the corresponding pixel of the object into an illumination map through a final aggregation algorithm, and writes the spherical harmonic coefficient at the sampling point into an illumination probe; step S3, after the baking thread is finished, reading the baking result to generate an illumination map and an illumination probe, and storing and producing a baking file corresponding to the illumination environment; step S4, modifying the illumination environment, and repeatedly executing the step S1 to the step S3 to generate a baking file corresponding to the modified illumination environment and point to the modified illumination environment; and step S5, the baking files are switched in real time under different illumination environments to achieve the baking effect by changing the indexed baking files, the baking data can be switched in real time, and different illumination environments are displayed.)

一种基于光照环境实时切换烘焙数据的方法及其系统

技术领域

本发明涉及计算机图形学技术领域,特别是一种基于光照环境实时切换烘焙数据的方法及其系统。

背景技术

烘焙即在内存中生成光照贴图,以后使用光照贴图即使将灯光禁用也可以正常发光。

预烘焙技术可以有效的帮助开发者实时监测环境光照效果。它可以在场景中实时烘焙,而不保存数据。但是比较耗性能,所以在不做场景烘焙时对它禁用。

在传统的游戏渲染方案中,由于性能的限制,实时渲染计算的部分一般仅包括局部光照(Local Illumation),这部分光照信息表述了光源与物件之间的直接光照效果;而全局光照(Global Illumation)不仅包括直接光照效果,还包含光线经过反弹后的间接光照效果,以及模型间的环境遮挡(Ambient Occlusion)等等一系列现实环境中存在的光学现象。某些方案中,会通过增加场景中的点光源,通过补光来模拟这一全局光照效果。这么做会使场景中的光照环境变得更加复杂,增加了无谓的性能消耗;且使得场景失去明显的明暗变化,场景由于光照不突出而显得呆板。

发明内容

为克服上述问题,本发明的目的是提供一种基于光照环境实时切换烘焙数据的方法,实时切换烘焙数据,实现了展示不同的光照环境,且硬件性能消耗小。

本发明采用以下方案实现:一种基于光照环境实时切换烘焙数据的方法,包括如下步骤:

步骤S1、需要烘焙光照环境时,将场景中需要烘焙的物件信息与光源信息输入离线烘焙程序中;

步骤S2、离线烘焙程序通过最终聚集算法将物件对应像素的光照信息写入光照贴图中,将采样点处的球谐函数系数写入光照探针中;

步骤S3、等待烘焙线程完成后,读取烘焙结果生成光照贴图与光照探针,并存储生产该光照环境对应的烘焙文件;

步骤S4、修改光照环境,重复执行步骤S1至步骤S3生成修改后的光照环境对应的烘焙文件,指向修改后的光照环境;

步骤S5、通过更改索引的烘焙文件,在不同的光照环境下进行实时切换烘焙文件来达到烘焙效果。

进一步的,所述物件信息包括但不限于:顶点缓存、索引缓存、顶点法线、材质漫反射纹理、以及纹理坐标;所述光源信息包括但不限于:光源类型、光源强度、光源颜色、以及衰减程度;所述离线烘焙程序能根据所述物件信息和光源信息生产光照贴图。

进一步的,所述步骤S2进一步具体为:配置场景的烘焙选项,该烘焙选项包括:全局烘焙配置、单个物件烘焙配置、光源配置以及光照探针编辑;所述全局烘焙配置包括烘焙类型、是否烘焙地形、是否生成环境遮挡、环境遮挡强度、间接光反弹次数、离线烘焙算法;

所述单个物件烘焙配置包括设置烘焙分组、烘焙分辨率、是否接收阴影、是否产生阴影、是否接收环境遮挡、是否产生环境遮挡;所述光源配置包括增加光源、删除光源、移动光源以及修改光照类型、光照强度、光照方向、光照颜色;离线烘焙程序根据场景的烘焙选项通过最终聚集算法将物件对应像素的光照信息写入光照贴图中,将采样点处的球谐函数系数写入光照探针中。

进一步的,所述烘焙类型包括但不限于:全烘焙、间接光烘焙、以及阴影烘焙。

进一步的,所述光照信息包括但不限于:光照贴图和光照探针。

进一步的,所述步骤S5进一步具体为:在不同的光照环境下时,更改索引的烘焙文件,读取更改后的烘焙文件,遍历主场景所有物件,根据烘焙文件ID更新光照贴图,清空主场景所有光照探针,加载光照探针数据,从而达到烘焙效果。

本发明还提供了一种基于光照环境实时切换烘焙数据的系统,所述系统包括:输入模块、烘焙模块、存储模块、执行模块、以及切换模块;

所述输入模块,用于需要烘焙光照环境时,将场景中需要烘焙的物件信息与光源信息输入离线烘焙程序中;

所述烘焙模块,用于离线烘焙程序通过最终聚集算法将物件对应像素的光照信息写入光照贴图中,将采样点处的球谐函数系数写入光照探针中;

所述存储模块,用于等待烘焙线程完成后,读取烘焙结果生成光照贴图与光照探针,并存储生产该光照环境对应的烘焙文件;

所述执行模块,用于修改光照环境,重复执行输入模块、烘焙模块、存储模块生成修改后的光照环境对应的烘焙文件,指向修改后的光照环境;

所述切换模块,用于通过更改索引的烘焙文件,在不同的光照环境下进行实时切换烘焙文件来达到烘焙效果。

进一步的,所述物件信息包括但不限于:顶点缓存、索引缓存、顶点法线、材质漫反射纹理、以及纹理坐标;所述光源信息包括但不限于:光源类型、光源强度、光源颜色、以及衰减程度;所述离线烘焙程序能根据所述物件信息和光源信息生产光照贴图。

进一步的,所述烘焙模块进一步具体为:配置场景的烘焙选项,该烘焙选项包括:全局烘焙配置、单个物件烘焙配置、光源配置以及光照探针编辑;所述全局烘焙配置包括烘焙类型、是否烘焙地形、是否生成环境遮挡、环境遮挡强度、间接光反弹次数、离线烘焙算法;

所述单个物件烘焙配置包括设置烘焙分组、烘焙分辨率、是否接收阴影、是否产生阴影、是否接收环境遮挡、是否产生环境遮挡;所述光源配置包括增加光源、删除光源、移动光源以及修改光照类型、光照强度、光照方向、光照颜色;离线烘焙程序根据场景的烘焙选项通过最终聚集算法将物件对应像素的光照信息写入光照贴图中,将采样点处的球谐函数系数写入光照探针中。

进一步的,所述烘焙类型包括但不限于:全烘焙、间接光烘焙、以及阴影烘焙。

进一步的,所述光照信息包括但不限于:光照贴图和光照探针。

进一步的,所述切换模块进一步具体为:在不同的光照环境下时,更改索引的烘焙文件,读取更改后的烘焙文件,遍历主场景所有物件,根据烘焙文件ID更新光照贴图,清空主场景所有光照探针,加载光照探针数据,从而达到烘焙效果。

本发明的有益效果在于:1、采用光照贴图,还原了静态物件的全局光照环境,且性能消耗较小;光照探针的应用,丰富了动态物件的效果,使动态物体完美契合场景光源。2、实时切换光照信息功能,能应对不同光照环境下(特别是白天与黑夜)的需求,使场景昼夜变换更加真实。

附图说明

图1是本发明的方法流程示意图。

图2是本发明光照信息切换的流程示意图。

图3是本发明一实施例的流程示意图。

图4是本发明的系统原理框图。

具体实施方式

下面结合附图对本发明做进一步说明。

请参阅图1所示,本发明的一种基于光照环境实时切换烘焙数据的方法,包括如下步骤:

步骤S1、需要烘焙光照环境时,为了不影响其余操作,编辑器开辟新的线程,将场景中需要烘焙的物件信息与光源信息转为离线烘焙支持的格式后输入离线烘焙程序中;所述物件信息包括但不限于:顶点缓存、索引缓存、顶点法线、材质漫反射纹理、以及纹理坐标;所述光源信息包括但不限于:光源类型、光源强度、光源颜色、以及衰减程度;所述离线烘焙程序能根据所述物件信息和光源信息生产光照贴图。

步骤S2、离线烘焙程序通过最终聚集算法将物件对应像素的光照信息写入光照贴图中,将采样点处的球谐函数系数写入光照探针中;

步骤S3、等待烘焙线程完成后,读取烘焙结果生成光照贴图与光照探针,并存储生产该光照环境对应的烘焙文件,如将烘焙文件储存到磁盘;

步骤S4、修改光照环境,重复执行步骤S1至步骤S3生成修改后的光照环境对应的烘焙文件,指向修改后的光照环境;

步骤S5、通过更改索引的烘焙文件,在不同的光照环境下进行实时切换烘焙文件来达到烘焙效果(即待整体离线烘焙完成后,对应生成一份文件指向这一烘焙结果,在场景多次烘焙产生多份烘焙结果后,可以通过切换文件索引来完成烘焙方案的切换。)。

所述步骤S2进一步具体为:配置场景的烘焙选项,该烘焙选项包括:全局烘焙配置、单个物件烘焙配置、光源配置以及光照探针编辑;所述全局烘焙配置包括烘焙类型、是否烘焙地形、是否生成环境遮挡、环境遮挡强度、间接光反弹次数、离线烘焙算法;

所述单个物件烘焙配置包括设置烘焙分组、烘焙分辨率、是否接收阴影、是否产生阴影、是否接收环境遮挡、是否产生环境遮挡;所述光源配置包括增加光源、删除光源、移动光源以及修改光照类型、光照强度、光照方向、光照颜色;离线烘焙程序根据场景的烘焙选项通过最终聚集算法将物件对应像素的光照信息写入光照贴图中,将采样点处的球谐函数系数写入光照探针中。其中,所述烘焙类型包括但不限于:全烘焙、间接光烘焙、以及阴影烘焙。所述光照信息包括但不限于:光照贴图和光照探针。

如图2所示,所述步骤S5进一步具体为:在不同的光照环境下时,更改索引的烘焙文件,读取更改后的烘焙文件,遍历主场景所有物件,根据烘焙文件ID更新光照贴图,清空主场景所有光照探针,加载光照探针数据,从而达到烘焙效果。

下面结合一具体实施例对本发明作进一步说明:

参见图3所示,以某一个游戏场景编辑为例。例如现在地形编辑人员需要在同一场景下烘焙白天与夜晚两种不同光照环境下光照贴图与光照探针,首先需要配置白天的烘焙选项,其中包括:

1、全局烘焙设置,包括烘焙类型(全烘焙、间接光烘焙、阴影烘焙等)、是否烘焙地形、是否生成环境遮挡、环境遮挡强度、间接光反弹次数、离线烘焙算法等。

2、单个物件烘焙配置、包括设置烘焙分组、烘焙分辨率、是否接收阴影、是否产生阴影、是否接收环境遮挡、是否产生环境遮挡等。

3、光源配置,包括增加光源、删除光源、移动光源以及修改光照类型、光照强度、光照方向、光照颜色等。

4、光照探针编辑,包括光照探针的增加、删除、复制、移动。

完成后点击烘焙预览可实时预览烘焙效果,不断调整实时效果至满足需求后,点击开始烘焙按钮,离线烘焙程序开始作业,系统内部执行多个烘焙任务,最终生成烘焙信息,其中将对应的像素信息储存为光照贴图;将采样点处的球谐函数系数写入光照探针,并默认应用这些光照数据并保存场景,生成对应烘焙文件命名为morning。

修改同一场景中的夜晚光照环境,同样在烘焙预览中确认效果后再次启动烘焙线程,选择另一保存路径,保存夜晚环境下的光照贴图与光照探针数据,并生成新的烘焙文件命名为night。

在编辑器UI中会列出该场景所有的烘焙方案,双击点选morning方案即应用白天光照环境下的光照信息;反之双击点选night方案即应用夜晚光照环境下的光照信息。如没有选取烘焙方案,则默认应用最新一次的烘焙效果。而游戏中则是通过程序代码切换白天与夜晚的光照环境。

参阅图4所示,本发明还提供了一种基于光照环境实时切换烘焙数据的系统,所述系统包括:输入模块、烘焙模块、存储模块、执行模块、以及切换模块;

所述输入模块,用于需要烘焙光照环境时,将场景中需要烘焙的物件信息与光源信息输入离线烘焙程序中;

所述烘焙模块,用于离线烘焙程序通过最终聚集算法将物件对应像素的光照信息写入光照贴图中,将采样点处的球谐函数系数写入光照探针中;

所述存储模块,用于等待烘焙线程完成后,读取烘焙结果生成光照贴图与光照探针,并存储生产该光照环境对应的烘焙文件;

所述执行模块,用于修改光照环境,重复执行输入模块、烘焙模块、存储模块生成修改后的光照环境对应的烘焙文件,指向修改后的光照环境;

所述切换模块,用于通过更改索引的烘焙文件,在不同的光照环境下进行实时切换烘焙文件来达到烘焙效果。

其中,所述物件信息包括但不限于:顶点缓存、索引缓存、顶点法线、材质漫反射纹理、以及纹理坐标;所述光源信息包括但不限于:光源类型、光源强度、光源颜色、以及衰减程度;所述离线烘焙程序能根据所述物件信息和光源信息生产光照贴图。

进一步的,所述烘焙模块进一步具体为:配置场景的烘焙选项,该烘焙选项包括:全局烘焙配置、单个物件烘焙配置、光源配置以及光照探针编辑;所述全局烘焙配置包括烘焙类型、是否烘焙地形、是否生成环境遮挡、环境遮挡强度、间接光反弹次数、离线烘焙算法;

所述单个物件烘焙配置包括设置烘焙分组、烘焙分辨率、是否接收阴影、是否产生阴影、是否接收环境遮挡、是否产生环境遮挡;所述光源配置包括增加光源、删除光源、移动光源以及修改光照类型、光照强度、光照方向、光照颜色;离线烘焙程序根据场景的烘焙选项通过最终聚集算法将物件对应像素的光照信息写入光照贴图中,将采样点处的球谐函数系数写入光照探针中。所述烘焙类型包括但不限于:全烘焙、间接光烘焙、以及阴影烘焙。所述光照信息包括但不限于:光照贴图和光照探针。

另外,所述切换模块进一步具体为:在不同的光照环境下时,更改索引的烘焙文件,读取更改后的烘焙文件,遍历主场景所有物件,根据烘焙文件ID更新光照贴图,清空主场景所有光照探针,加载光照探针数据,从而达到烘焙效果。

总之,本发明通过离线渲染过程,将光照信息预烘焙到光照贴图(Light Map)或光照探针(Light Probe)中,在游戏中再去采样这二者的数据,还原真实的光照环境;目前离线渲染技术除了用于游戏场景的预烘焙外,还广泛应用于电影特效制作,动画制作中;同时,为了应对同一场景不同时刻不同光照环境的需求,本方案通过实时切换烘焙数据,实现了展示不同的光照环境。

以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:信息显示控制方法、装置和电子设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类