一种基于光照探针的动态游戏对象烘焙方法及其系统技术方案

技术编号:32922805 阅读:22 留言:0更新日期:2022-04-07 12:14
本发明专利技术提供了一种基于光照探针的动态游戏对象烘焙方法,在进行光照探针管理的相关设置后,将光照探针范围信息输入离线烘焙系统中,在离线烘焙系统作业前,根据光照探针范围大小,通过与场景中物件对象进行包围盒检测判断的方式确定光照探针范围内的物件对象。通过索引获取物件对象顶点数据的方式,根据光照探针间距数据,合理分布当前光照探针范围内的光照探针,再纳入离线烘焙系统继续作业,根据现有光照探针分布,收集光照探针周围的光照信息,经由球谐函数系统计算,将光照信息写入光照探针中,在离线烘焙完成后重新载入当前光照环境中;本发明专利技术提高了大型游戏场景烘焙的效率。率。率。

【技术实现步骤摘要】
一种基于光照探针的动态游戏对象烘焙方法及其系统


[0001]本专利技术涉及计算机图形学领域,特别是一种基于光照探针的动态游戏对象烘焙方法及其系统。

技术介绍

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

技术实现思路

[0006]为克服上述问题,本专利技术的目的是提供一种基于光照探针的动态游戏对象烘焙方法,使光照探针在物件表面自动分布,从而避免美术人员花费大量时间于动态游戏对象烘焙。
[0007]本专利技术采用以下方案实现:一种基于光照探针的动态游戏对象烘焙方法,所述方法包括如下步骤:步骤S1、在离线烘焙系统中新增组件光照探针范围,该组件光照探针范围用于设置需要进行光照探针自动排布的场景范围;
[0008]步骤S2、待光照探针范围组件设置完成后,进入烘焙流程,在烘焙作业前先生成光照探针;
[0009]步骤S3、对光照探针进行自动排布,排布完成后在离线烘焙系统中,通过球谐光照技术获得光照探针周围的光照信息,写入光照探针,并将光照探针的光照信息储存到磁盘并重新读取光照探针的光照信息到当前光照环境中;
[0010]步骤S4、查看并编辑已写入光照信息的光照探针,修改光照探针分布,重复S2

S3步骤,直到所有的光照探针重新载入到当前新的光照环境中,来完成游戏对象烘焙。
[0011]进一步的,所述步骤S3中对光照探针进行自动排布进一步具体包括:根据光照探针范围,通过与场景中物件对象进行包围盒检测判断的方式确定光照探针范围内的物件对象;通过索引获取物件对象顶点数据,并根据光照探针间距数据,来自动分布当前光照探针范围内的光照探针。
[0012]进一步的,所述自动排布为:将光照探针合理放置于游戏对象顶点周围,该自动排布依赖于游戏对象,游戏对象都是由三维模型组成,而三维模型都是由一个个三角形组成,只要从模型中获取顶点数据,并根据三角形索引数据,即能获取组成模型的三角形;以三角形的法向量朝向作为判定依据,只要法向量在三维空间朝上,即可判定该点允许放置光照探针;通过该方式能合理将烘焙前的光照探针放置于游戏对象顶点周围;该自动排布的算法原理包括如下步骤:
[0013]步骤S31、以当前屏幕为参照物,设定三维空间的坐标系,其中X轴正对屏幕向外,Y轴在屏幕里平行向右,Z轴在屏幕里垂直向上;
[0014]步骤S32、设定需要放置光照探针的区域,将该区域根据密度划分出沿X轴数量为M和沿Y轴数量为N的网格区域;
[0015]步骤S33、遍历游戏对象,将游戏对象的包围盒和网格区域包围盒进行碰撞,满足交叉碰撞,则执行步骤S34;若不满足则遍历下一个游戏对象,直到所有游戏对象都遍历完毕;
[0016]步骤S34、获取游戏对象三维模型的顶点数据,根据三角形索引数据重新构建组成三维模型的三角形;
[0017]步骤S35、遍历三角形,只要满足在三维空间中,三角形的法向量在Z轴上的数据大于0,即表示该法向量朝向在屏幕里向上,即能判定数据是否是在对应网格区域内的网格中生成的光照探针顶点数据,是则,根据该顶点数据生成对应的光照探针,来排布光照探针。
[0018]进一步的,编辑光照探针包括:光照探针的增加、删除、复制、或移动。
[0019]本专利技术还提供了一种基于光照探针的动态游戏对象烘焙系统,所述系统包括新增组件模块、光照探针生成模块、光照探针排布模块、以及烘焙模块;
[0020]所述新增组件模块,用于在离线烘焙系统中新增组件光照探针范围,该组件光照探针范围用于设置需要进行光照探针自动排布的场景范围;
[0021]所述光照探针生成模块,用于待光照探针范围组件设置完成后,进入烘焙流程,在烘焙作业前先生成光照探针;
[0022]所述光照探针排布模块,对光照探针进行自动排布,排布完成后在离线烘焙系统中,通过球谐光照技术获得光照探针周围的光照信息,写入光照探针,并将光照探针的光照信息储存到磁盘并重新读取光照探针的光照信息到当前光照环境中;
[0023]所述烘焙模块,查看并编辑已写入光照信息的光照探针,修改光照探针分布,重复执行光照探针生成模块和光照探针排布模块,直到所有的光照探针重新载入到当前新的光照环境中,来完成游戏对象烘焙。
[0024]进一步的,所述光照探针排布模块中对光照探针进行自动排布进一步具体包括:根据光照探针范围,通过与场景中物件对象进行包围盒检测判断的方式确定光照探针范围
内的物件对象;通过索引获取物件对象顶点数据,并根据光照探针间距数据,来自动分布当前光照探针范围内的光照探针。
[0025]进一步的,所述自动排布为:将光照探针合理放置于游戏对象顶点周围,该自动排布依赖于游戏对象,游戏对象都是由三维模型组成,而三维模型都是由一个个三角形组成,只要从模型中获取顶点数据,并根据三角形索引数据,即能获取组成模型的三角形;以三角形的法向量朝向作为判定依据,只要法向量在三维空间朝上,即可判定该点允许放置光照探针;通过该方式能合理将烘焙前的光照探针放置于游戏对象顶点周围;该自动排布的算法原理包括如下步骤:
[0026]步骤S51、以当前屏幕为参照物,设定三维空间的坐标系,其中X轴正对屏幕向外,Y轴在屏幕里平行向右,Z轴在屏幕里垂直向上;
[0027]步骤S52、设定需要放置光照探针的区域,将该区域根据密度划分出沿X轴数量为M和沿Y轴数量为N的网格区域;...

【技术保护点】

【技术特征摘要】
1.一种基于光照探针的动态游戏对象烘焙方法,其特征在于:所述方法包括如下步骤:步骤S1、在离线烘焙系统中新增组件光照探针范围,该组件光照探针范围用于设置需要进行光照探针自动排布的场景范围;步骤S2、待光照探针范围组件设置完成后,进入烘焙流程,在烘焙作业前先生成光照探针;步骤S3、对光照探针进行自动排布,排布完成后在离线烘焙系统中,通过球谐光照技术获得光照探针周围的光照信息,写入光照探针,并将光照探针的光照信息储存到磁盘并重新读取光照探针的光照信息到当前光照环境中;步骤S4、查看并编辑已写入光照信息的光照探针,修改光照探针分布,重复S2

S3步骤,直到所有的光照探针重新载入到当前新的光照环境中,来完成游戏对象烘焙。2.根据权利要求1所述的一种基于光照探针的动态游戏对象烘焙方法,其特征在于:所述步骤S3中对光照探针进行自动排布进一步具体包括:根据光照探针范围,通过与场景中物件对象进行包围盒检测判断的方式确定光照探针范围内的物件对象;通过索引获取物件对象顶点数据,并根据光照探针间距数据,来自动分布当前光照探针范围内的光照探针。3.根据权利要求1所述的一种基于光照探针的动态游戏对象烘焙方法,其特征在于:所述自动排布为:将光照探针合理放置于游戏对象顶点周围,该自动排布依赖于游戏对象,游戏对象都是由三维模型组成,而三维模型都是由一个个三角形组成,只要从模型中获取顶点数据,并根据三角形索引数据,即能获取组成模型的三角形;以三角形的法向量朝向作为判定依据,只要法向量在三维空间朝上,即可判定该点允许放置光照探针;通过该方式能合理将烘焙前的光照探针放置于游戏对象顶点周围;该自动排布的算法原理包括如下步骤:步骤S31、以当前屏幕为参照物,设定三维空间的坐标系,其中X轴正对屏幕向外,Y轴在屏幕里平行向右,Z轴在屏幕里垂直向上;步骤S32、设定需要放置光照探针的区域,将该区域根据密度划分出沿X轴数量为M和沿Y轴数量为N的网格区域;步骤S33、遍历游戏对象,将游戏对象的包围盒和网格区域包围盒进行碰撞,满足交叉碰撞,则执行步骤S34;若不满足则遍历下一个游戏对象,直到所有游戏对象都遍历完毕;步骤S34、获取游戏对象三维模型的顶点数据,根据三角形索引数据重新构建组成三维模型的三角形;步骤S35、遍历三角形,只要满足在三维空间中,三角形的法向量在Z轴上的数据大于0,即表示该法向量朝向在屏幕里向上,即能判定数据是否是在对应网格区域内的网格中生成的光照探针顶点数据,是则,根据该顶点数据生成对应的光照探针,来排布光照探针。4.根据权利要求1所述的一种基于光照探针的动态游戏对象烘焙方法,其特征在于:编辑光照探针包括:光照探针的增加、删除、复制、或移动。5.一种基于光照探针的动态游戏对象烘焙系统,其特征在于:所述系统...

【专利技术属性】
技术研发人员:刘德建涂智业梁淇杰陈宏展李佳
申请(专利权)人:福建天晴在线互动科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1