一种基于光照探针的动态游戏对象烘焙方法及其系统与流程

文档序号:29490941发布日期:2022-04-06 13:20阅读:77来源:国知局
一种基于光照探针的动态游戏对象烘焙方法及其系统与流程

1.本发明涉及计算机图形学领域,特别是一种基于光照探针的动态游戏对象烘焙方法及其系统。


背景技术:

2.在游戏渲染方案的选择中,基于游戏性能的考虑,开发人员往往选择光照贴图(light map)这一静态烘焙技术方案。该方案通过存储场景中的全局光照(global illumation)的方式为游戏场景获得更高的光照质量。然而针对场景中非静态或移动的游戏对象却违背其相对光源不可移动的静态原理,故需要运用光照探针(lightprobe)对其另做处理。光照探针实质为空间中的一个个位置点,它能够储存来自所有方向的光线采样,这类光照数据会被编码为名叫“球谐函数(spherical harmonics)”的特殊值。动态游戏对象在移动过程中能从附近的光照探针接收到光照信息数据,使其能够正确接收到周围光照信息,从而正确地融入周围的光照环境。
3.现有光照探针管理方案(这里以游戏引擎unity作为例子),仅仅只能进行光照探针的编辑,主要为单个光照探针的增加、删除、复制、移动等操作。在大型游戏场景渲染中,这一管理方案无疑增加了时间,同时降低了大型游戏场景烘焙的效率。
4.包围盒是一种求解离散点集最优包围空间的算法,基本思想是用体积稍大且特性简单的几何体(称为包围盒)来近似地代替复杂的几何对象。常见的包围盒算法有aabb包围盒、包围球、方向包围盒obb以及固定方向凸包fdh。碰撞检测问题在虚拟现实、计算机辅助设计与制造、游戏及机器人等领域有着广泛的应用,甚至成为关键技术。而包围盒算法是进行碰撞干涉初步检测的重要方法之一。
5.离线烘焙系统是通过计算引擎场景中所有光源对物体的影响最终生成光照贴图并在场景中应用的过程,该系统的目的是减少实时光源的运算,从而提高场景运行效率。


技术实现要素:

6.为克服上述问题,本发明的目的是提供一种基于光照探针的动态游戏对象烘焙方法,使光照探针在物件表面自动分布,从而避免美术人员花费大量时间于动态游戏对象烘焙。
7.本发明采用以下方案实现:一种基于光照探针的动态游戏对象烘焙方法,所述方法包括如下步骤:步骤s1、在离线烘焙系统中新增组件光照探针范围,该组件光照探针范围用于设置需要进行光照探针自动排布的场景范围;
8.步骤s2、待光照探针范围组件设置完成后,进入烘焙流程,在烘焙作业前先生成光照探针;
9.步骤s3、对光照探针进行自动排布,排布完成后在离线烘焙系统中,通过球谐光照技术获得光照探针周围的光照信息,写入光照探针,并将光照探针的光照信息储存到磁盘并重新读取光照探针的光照信息到当前光照环境中;
10.步骤s4、查看并编辑已写入光照信息的光照探针,修改光照探针分布,重复s2-s3步骤,直到所有的光照探针重新载入到当前新的光照环境中,来完成游戏对象烘焙。
11.进一步的,所述步骤s3中对光照探针进行自动排布进一步具体包括:根据光照探针范围,通过与场景中物件对象进行包围盒检测判断的方式确定光照探针范围内的物件对象;通过索引获取物件对象顶点数据,并根据光照探针间距数据,来自动分布当前光照探针范围内的光照探针。
12.进一步的,所述自动排布为:将光照探针合理放置于游戏对象顶点周围,该自动排布依赖于游戏对象,游戏对象都是由三维模型组成,而三维模型都是由一个个三角形组成,只要从模型中获取顶点数据,并根据三角形索引数据,即能获取组成模型的三角形;以三角形的法向量朝向作为判定依据,只要法向量在三维空间朝上,即可判定该点允许放置光照探针;通过该方式能合理将烘焙前的光照探针放置于游戏对象顶点周围;该自动排布的算法原理包括如下步骤:
13.步骤s31、以当前屏幕为参照物,设定三维空间的坐标系,其中x轴正对屏幕向外,y轴在屏幕里平行向右,z轴在屏幕里垂直向上;
14.步骤s32、设定需要放置光照探针的区域,将该区域根据密度划分出沿x轴数量为m和沿y轴数量为n的网格区域;
15.步骤s33、遍历游戏对象,将游戏对象的包围盒和网格区域包围盒进行碰撞,满足交叉碰撞,则执行步骤s34;若不满足则遍历下一个游戏对象,直到所有游戏对象都遍历完毕;
16.步骤s34、获取游戏对象三维模型的顶点数据,根据三角形索引数据重新构建组成三维模型的三角形;
17.步骤s35、遍历三角形,只要满足在三维空间中,三角形的法向量在z轴上的数据大于0,即表示该法向量朝向在屏幕里向上,即能判定数据是否是在对应网格区域内的网格中生成的光照探针顶点数据,是则,根据该顶点数据生成对应的光照探针,来排布光照探针。
18.进一步的,编辑光照探针包括:光照探针的增加、删除、复制、或移动。
19.本发明还提供了一种基于光照探针的动态游戏对象烘焙系统,所述系统包括新增组件模块、光照探针生成模块、光照探针排布模块、以及烘焙模块;
20.所述新增组件模块,用于在离线烘焙系统中新增组件光照探针范围,该组件光照探针范围用于设置需要进行光照探针自动排布的场景范围;
21.所述光照探针生成模块,用于待光照探针范围组件设置完成后,进入烘焙流程,在烘焙作业前先生成光照探针;
22.所述光照探针排布模块,对光照探针进行自动排布,排布完成后在离线烘焙系统中,通过球谐光照技术获得光照探针周围的光照信息,写入光照探针,并将光照探针的光照信息储存到磁盘并重新读取光照探针的光照信息到当前光照环境中;
23.所述烘焙模块,查看并编辑已写入光照信息的光照探针,修改光照探针分布,重复执行光照探针生成模块和光照探针排布模块,直到所有的光照探针重新载入到当前新的光照环境中,来完成游戏对象烘焙。
24.进一步的,所述光照探针排布模块中对光照探针进行自动排布进一步具体包括:根据光照探针范围,通过与场景中物件对象进行包围盒检测判断的方式确定光照探针范围
内的物件对象;通过索引获取物件对象顶点数据,并根据光照探针间距数据,来自动分布当前光照探针范围内的光照探针。
25.进一步的,所述自动排布为:将光照探针合理放置于游戏对象顶点周围,该自动排布依赖于游戏对象,游戏对象都是由三维模型组成,而三维模型都是由一个个三角形组成,只要从模型中获取顶点数据,并根据三角形索引数据,即能获取组成模型的三角形;以三角形的法向量朝向作为判定依据,只要法向量在三维空间朝上,即可判定该点允许放置光照探针;通过该方式能合理将烘焙前的光照探针放置于游戏对象顶点周围;该自动排布的算法原理包括如下步骤:
26.步骤s51、以当前屏幕为参照物,设定三维空间的坐标系,其中x轴正对屏幕向外,y轴在屏幕里平行向右,z轴在屏幕里垂直向上;
27.步骤s52、设定需要放置光照探针的区域,将该区域根据密度划分出沿x轴数量为m和沿y轴数量为n的网格区域;
28.步骤s53、遍历游戏对象,将游戏对象的包围盒和网格区域包围盒进行碰撞,满足交叉碰撞,则执行步骤s54;若不满足则遍历下一个游戏对象,直到所有游戏对象都遍历完毕;
29.步骤s54、获取游戏对象三维模型的顶点数据,根据三角形索引数据重新构建组成三维模型的三角形;
30.步骤s55、遍历三角形,只要满足在三维空间中,三角形的法向量在z轴上的数据大于0,即表示该法向量朝向在屏幕里向上,即能判定数据是否是在对应网格区域内的网格中生成的光照探针顶点数据,是则,根据该顶点数据生成对应的光照探针,来排布光照探针。
31.进一步的,编辑光照探针包括:光照探针的增加、删除、复制、或移动。
32.本发明的有益效果在于:1、采用光照探针范围的光照探针自动分布功能,使场景中动态物件在移动过程中更加融入当前位置的光照环境,丰富了动态物件的效果,提高了美术人员在进行动态对象烘焙的效率,加快场景资源生成的效率。
33.2、保留光照探针编辑系统,有利于纠错光照探针自动分布算法导致的光照探针不合理现象,通过编辑的形式,使动态对象能够正确接收光照信息。
附图说明
34.图1是本发明的方法流程示意图。
35.图2是本发明的实施例中光照探针进行自动排布后的分布图。
36.图3是本发明的系统原理框图。
具体实施方式
37.下面结合附图对本发明做进一步说明。
38.本发明提供了一种基于光照探针的动态游戏对象烘焙方法,在进行光照探针管理的相关设置后,将光照探针范围信息输入离线烘焙系统中,在离线烘焙系统作业前,根据光照探针范围大小,通过与场景中物件对象进行包围盒检测判断的方式确定光照探针范围内的物件对象。通过索引获取物件对象顶点数据的方式,根据光照探针间距数据,合理分布当前光照探针范围内的光照探针,再纳入离线烘焙系统继续作业,根据现有光照探针分布,收
集光照探针周围的光照信息,经由球谐函数系统计算,将光照信息写入光照探针中,在离线烘焙完成后重新载入当前光照环境中。
39.请参见图1所示,一种基于光照探针的动态游戏对象烘焙方法,所述方法包括如下步骤:步骤s1、在离线烘焙系统中新增组件光照探针范围,该组件光照探针范围用于设置需要进行光照探针自动排布的场景范围;
40.步骤s2、待光照探针范围组件设置完成后,进入烘焙流程,在烘焙作业前先生成光照探针;
41.步骤s3、对光照探针进行自动排布(如图2所示),排布完成后在离线烘焙系统中,通过球谐光照技术获得光照探针周围的光照信息,写入光照探针,并将光照探针的光照信息储存到磁盘并重新读取光照探针的光照信息到当前光照环境中;其中,球谐光照技术该技术已经是现有技术,可以参见由green r在2003年的archives of the game developers conference中发表的spherical harmonic lighting(球谐光照技术)。所述步骤s3中对光照探针进行自动排布进一步具体包括:根据光照探针范围,通过与场景中物件对象进行包围盒检测判断的方式确定光照探针范围内的物件对象;通过索引获取物件对象顶点数据,并根据光照探针间距数据,来自动分布当前光照探针范围内的光照探针。
42.步骤s4、查看并编辑已写入光照信息的光照探针,修改光照探针分布,重复s2-s3步骤,直到所有的光照探针重新载入到当前新的光照环境中,来完成游戏对象烘焙。编辑光照探针包括:光照探针的增加、删除、复制、或移动。
43.所述自动排布为:将光照探针合理放置于游戏对象顶点周围,该自动排布依赖于游戏对象,游戏对象都是由三维模型组成,而三维模型都是由一个个三角形组成,只要从模型中获取顶点数据,并根据三角形索引数据,即能获取组成模型的三角形;以三角形的法向量朝向作为判定依据,只要法向量在三维空间朝上,即可判定该点允许放置光照探针;通过该方式能合理将烘焙前的光照探针放置于游戏对象顶点周围;该自动排布的算法原理包括如下步骤:
44.步骤s31、以当前屏幕为参照物,设定三维空间的坐标系,其中x轴正对屏幕向外,y轴在屏幕里平行向右,z轴在屏幕里垂直向上;
45.步骤s32、设定需要放置光照探针的区域,将该区域根据密度划分出沿x轴数量为m和沿y轴数量为n的网格区域;
46.步骤s33、遍历游戏对象,将游戏对象的包围盒和网格区域包围盒进行碰撞,满足交叉碰撞,则执行步骤s34;若不满足则遍历下一个游戏对象,直到所有游戏对象都遍历完毕;
47.步骤s34、获取游戏对象三维模型的顶点数据,根据三角形索引数据重新构建组成三维模型的三角形;
48.步骤s35、遍历三角形,只要满足在三维空间中,三角形的法向量在z轴上的数据大于0,即表示该法向量朝向在屏幕里向上,即能判定数据是否是在对应网格区域内的网格中生成的光照探针顶点数据,是则,根据该顶点数据生成对应的光照探针,来排布光照探针。
49.请参阅图3所示,本发明还提供了一种基于光照探针的动态游戏对象烘焙系统,所述系统包括新增组件模块、光照探针生成模块、光照探针排布模块、以及烘焙模块;
50.所述新增组件模块,用于在离线烘焙系统中新增组件光照探针范围,该组件光照
探针范围用于设置需要进行光照探针自动排布的场景范围;
51.所述光照探针生成模块,用于待光照探针范围组件设置完成后,进入烘焙流程,在烘焙作业前先生成光照探针;
52.所述光照探针排布模块,对光照探针进行自动排布,排布完成后在离线烘焙系统中,通过球谐光照技术获得光照探针周围的光照信息,写入光照探针,并将光照探针的光照信息储存到磁盘并重新读取光照探针的光照信息到当前光照环境中;
53.所述烘焙模块,查看并编辑已写入光照信息的光照探针,修改光照探针分布,重复执行光照探针生成模块和光照探针排布模块,直到所有的光照探针重新载入到当前新的光照环境中,来完成游戏对象烘焙;编辑光照探针包括:光照探针的增加、删除、复制、或移动。
54.所述光照探针排布模块中对光照探针进行自动排布进一步具体包括:根据光照探针范围,通过与场景中物件对象进行包围盒检测判断的方式确定光照探针范围内的物件对象;通过索引获取物件对象顶点数据,并根据光照探针间距数据,来自动分布当前光照探针范围内的光照探针。
55.所述自动排布为:将光照探针合理放置于游戏对象顶点周围,该自动排布依赖于游戏对象,游戏对象都是由三维模型组成,而三维模型都是由一个个三角形组成,只要从模型中获取顶点数据,并根据三角形索引数据,即能获取组成模型的三角形;以三角形的法向量朝向作为判定依据,只要法向量在三维空间朝上,即可判定该点允许放置光照探针;通过该方式能合理将烘焙前的光照探针放置于游戏对象顶点周围;该自动排布的算法原理包括如下步骤:
56.步骤s51、以当前屏幕为参照物,设定三维空间的坐标系,其中x轴正对屏幕向外,y轴在屏幕里平行向右,z轴在屏幕里垂直向上;
57.步骤s52、设定需要放置光照探针的区域,将该区域根据密度划分出沿x轴数量为m和沿y轴数量为n的网格区域;
58.步骤s53、遍历游戏对象,将游戏对象的包围盒和网格区域包围盒进行碰撞,满足交叉碰撞,则执行步骤s54;若不满足则遍历下一个游戏对象,直到所有游戏对象都遍历完毕;
59.步骤s54、获取游戏对象三维模型的顶点数据,根据三角形索引数据重新构建组成三维模型的三角形;
60.步骤s55、遍历三角形,只要满足在三维空间中,三角形的法向量在z轴上的数据大于0,即表示该法向量朝向在屏幕里向上,即能判定数据是否是在对应网格区域内的网格中生成的光照探针顶点数据,是则,根据该顶点数据生成对应的光照探针,来排布光照探针。
61.以某一个游戏场景烘焙为例。当地形编辑人员正在对当前光照环境下的场景进行场景烘焙时,可以通过光照探针系统进行光照探针管理的相关设置,主要包括:
62.1、光照探针生成方式的选择,包括通过光照探针范围系统自动生成光照探针、通过光照探针编辑系统生成光照探针。
63.2、光照探针范围系统主要为光照探针范围的设置,包括光照探针范围设置的增加、删除、复制、移动及光照探针间距的设置。
64.3、光照探针编辑系统,包括光照探针的增加、删除、复制、移动。
65.待光照探针管理相关设置完成后,点击开始烘焙按钮,即可开始离线烘焙系统作
业。在该系统作业前,编辑器先根据当前光照探针管理相关设置信息,选择是否需要进行光照探针自动排布计算。在进行光照探针自动排布计算过程中,会根据设置好的光照探针范围对其内物件对象进行处理,主要根据其顶点数据,按照设置的光照探针间距进行排布。待排布完成后,进入烘焙系统,通过球谐光照技术将光照探针周围的光照信息经由球谐函数计算成系数写入光照探针。
66.当烘焙完成后,可通过光照探针编辑系统查看光照探针分布情况,若发现有光照探针放置位置不合理或相对当前场景而言冗余,可以通过编辑方式进行光照探针修改,待编辑完成后,可再重新进行烘焙系统作业。
67.总之,本发明通过依据场景中游戏对象顶点的方式,根据自动排布算法将光照探针合理放置于游戏对象顶点周围,尽可能使光照探针在物件表面自动分布,从而避免美术人员花费大量时间于动态游戏对象烘焙。
68.以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1