一种基于游戏在智能设备模拟全局光照的方法与流程

文档序号:24556181发布日期:2021-04-06 12:06阅读:72来源:国知局
一种基于游戏在智能设备模拟全局光照的方法与流程

本发明涉及计算机图像处理技术领域,尤其涉及一种基于游戏在智能设备模拟全局光照的方法。



背景技术:

实时渲染中的全局光照技术一直是计算机图像处理领域的热点,通过对真实世界光照环境的合理建模与求解全局光照方程,不但能模拟光源直接照射物体的效果,还可以模拟经过物体反弹的光线对物体的照明效果,能极大的提升渲染结果的真实感。

全局光照方程的求解需要递归积分,所以没有精确解,需使用蒙特卡洛等求积分方式计算近似数值解,蒙特卡洛的主要缺点是收敛速度慢。在运算能力和设备电量均受限的智能设备,容易造成游戏掉帧,影响游戏体验。

相关技术中,一种方案是使用光线追踪方法,它原理简单但运行时计算开销较大,尤其对移动设备而言,因为需要对渲染方程的一系列递归求积;且此方法计算结果有较严重的局限性,使用它很难模拟色彩混合和漫反射等效果。

相关技术中,还有一种处理方式是通过预计算的方式生成光照贴图,在静态物体上实现全局光照;但游戏通常存在大量动态物体允许玩家交互,它们的相对位置会不断发生变化,同时它们的光照结果也在发生变化,离线预计算的光照贴图,无法确定它们发生变化后的光照情况。



技术实现要素:

为此,本发明提供一种基于游戏在智能设备模拟全局光照的方法,用以克服现有技术中游戏在智能设备中光照模拟效率低的问题。

本发明提供一种基于游戏在智能设备模拟全局光照的方法,包括:

步骤1:获取游戏场景中待处理的目标对象;

步骤2:获取游戏场景中所有的虚拟发光体信息;

步骤3:根据目标对象在游戏场景的位置和网格信息,将目标对象划分为连续的多个贴片,贴片是三角形或凸四面体,对于每个贴片,计算其辐射度值;

步骤4:计算每对贴片的形状因子;

步骤5:求辐射度线性方程组系统的数值解,计算每个贴片的辐射率;

步骤6:存储静态对象求解结果中的漫反射部分为二维贴图,rgbm编码;存储探测点位置求解结果的漫反射部分,编码为球谐函数形式;存储探测点反射贴图为cubemap,并计算mipmaps;

步骤7:使用所有贴片上的平均自发射辐射度和反射率关联到平均总辐射率的方程,在求解之后,得到的辐射度结果转换为表面的显示颜色;

所述步骤1到步骤7均在模拟系统中进行,所述模拟系统通过无线连接中控模块,所述中控模块用以控制各单元运行,从而控制步骤1到步骤7的运行过程,其内设置有矩阵。

进一步地,所述步骤3中,对于每个贴片,给出自发射辐射度和反射率,反射率设定为0到1之间的数字;贴片的总辐射度包含通过场景中其它贴片的任意数量的反弹接受的辐射度,以及自发射的辐射度,所述中控模块设置有总辐射度值q,设定q=f+m×r×f。

进一步地,所述中控模块中设置有预设自发射辐射度矩阵f0和预设目标对象与光源的绝对距离矩阵a0;

对于所述预设自发射辐射度矩阵f0,设定f0(f1,f2,f3,f4),其中,f1为第一预设自发射辐射度,f2为第二预设自发射辐射度,f3为第三预设自发射辐射度,f4为第四预设自发射辐射度,各预设自发射辐射度按照顺序逐渐增加;

对于所述预设目标对象与光源的绝对距离矩阵a0,设定a0(a1,a2,a3,a4),其中,a1为第一预设目标对象与光源的绝对距离,a2为第二预设目标对象与光源的绝对距离,a3为第三预设目标对象与光源的绝对距离,a4为第四预设目标对象与光源的绝对距离;

当所述中控模块选用目标对象的自发射幅射度时,将目标对象与光源的绝对距离a与a0矩阵中的参数进行比对并根据比对结果选用对应的自发射幅度值:

当a≤a1时,所述中控模块选用自发射辐射度f1;

当a1<a≤a2时,所述中控模块选用自发射辐射度f2;

当a2<a≤a3时,所述中控模块选用自发射辐射度f3;

当a3<a≤a4时,所述中控模块选用自发射辐射度f4;

进一步地,所述中控模块中还设置有预设自发射辐射度调节系数矩阵k0和预设目标对象贴片数量矩阵b0;

对于所述预设自发射辐射度调节系数矩阵k0,设定k0(k1,k2,k3,k4),其中,k1为第一预设自发射辐射度调节系数,k2为第二预设自发射辐射度调节系数,k3为第三预设自发射辐射度调节系数,k4为第四预设自发射辐射度调节系数,各预设自发射辐射度调节系数按照顺序逐渐增加;

对于所述预设目标对象贴片数量矩阵b0,设定b0(b1,b2,b3,b4),其中,b1为第一预设目标对象贴片数量,b2为第二预设目标对象贴片数量,b3为第三预设目标对象贴片数量,b4为第四预设目标对象贴片数量,各预设目标对象贴片数量按照顺序逐渐增加;

当所述中控模块针对预先选定的自发射辐射度fi进行调节时,i=1,2,3,4,中控模块将所述目标对象贴片数量b与b0矩阵中的参数进行比对,并根据比对结果从k0矩阵中选取对应的预设调节系数对fi进行调节:

当b≤b1时,所述中控模块选用k1对fi进行调节;

当b1<b≤b2时,所述中控模块选用k2对fi进行调节;

当b2<b≤b3时,所述中控模块选用k3对fi进行调节;

当b3<b≤b4时,所述中控模块选用k4对fi进行调节;

当所述中控模块选用kj对预先选定的fi进行调节时,j=1,2,3,4,调节后的自发射辐射度为fi’,fi’=fi×kj。

进一步地,所述中控模块中还设置有预设反射率矩阵r0、预设目标对象波长矩阵λ0、预设反射率修正系数矩阵y0和预设虚拟发光体个数矩阵c0;

对于所述预设反射率矩阵r0,设定r0(r1,r2,r3,r4),其中,r1为第一预设反射率,r2为第二预设反射率,r3为第三预设反射率,r4为第四预设反射率,各预设反射率按照顺序逐渐增加;

对于所述预设目标对象波长矩阵λ0,设定λ0(λ1,λ2,λ3,λ4),其中,λ1为第一预设目标对象波长,λ2为第二预设目标对象波长,λ3为第三预设目标对象波长,λ4为第四预设目标对象波长,各预设目标对象波长按照顺序逐渐增加;

当所述中控模块选用反射率时,将目标对象的实际波长λ与λ0中的参数进行比对并根据比对结果选用对应的反射率:

当λ≤λ1时,所述中控模块选用反射率r1;

当λ1<λ≤λ2时,所述中控模块选用反射率r2;

当λ2<λ≤λ3时,所述中控模块选用反射率r3;

当λ3<λ≤λ4时,所述中控模块选用反射率r4;

对于所述预设反射率修正系数矩阵y0,设定y0(y1,y2,y3,y4),其中,y1为第一预设反射率修正系数,y2为第二预设反射率修正系数,y3为第三预设反射率修正系数,y4为第四预设反射率修正系数,各预设反射率修正系数按照顺序逐渐增加;

对于所述预设虚拟发光体个数矩阵c0,设定c0(c1,c2,c3,c4),其中,c1为第一预设虚拟发光体个数,c2为第二预设虚拟发光体个数,c3为第三预设虚拟发光体个数,c4为第四预设虚拟发光体个数,各预设虚拟发光体个数按照顺序逐渐增加;

当所述中控模块针对预先选定的反射率ri进行调节时,i=1,2,3,4,中控模块将所述虚拟发光体个数c与c0矩阵中的参数进行比对,并根据比对结果从y0矩阵中选取对应的预设调节系数对ri进行调节:

当c≤c1时,所述中控模块选用y1对ri进行调节;

当c1<c≤c2时,所述中控模块选用y2对ri进行调节;

当c2<c≤c3时,所述中控模块选用y3对ri进行调节;

当c3<c≤c4时,所述中控模块选用y4对ri进行调节;

当所述中控模块选用yj对预先选定的ri进行调节时,j=1,2,3,4,调节后的反射率为ri’,ri’=ri×yj。

进一步地,所述中控模块中还设置有预设其他贴片反弹数量矩阵m0和预设其他贴片反弹数量修正系数矩阵z0;

对于所述预设其他贴片反弹数量矩阵m0,设定m0(m1,m2,m3,m4),其中,m1为第一预设其他贴片反弹数量,m2为第二预设其他贴片反弹数量,m3为第三预设其他贴片反弹数量,m4为第四预设其他贴片反弹数量,各预设其他贴片反弹数量按照顺序逐渐增加;

当所述中控模块选用其他贴片反弹数量时,中控模块将虚拟发光体个数c与c0矩阵中的参数进行比对并根据比对结果选用其他贴片反弹数量:

当c≤c1时,所述中控模块选用其他贴片反弹数量m1;

当c1<c≤c2时,所述中控模块选用其他贴片反弹数量m2;

当c2<c≤c3时,所述中控模块选用其他贴片反弹数量m3;

当c3<c≤c4时,所述中控模块选用其他贴片反弹数量m4;

对于所述其他贴片反弹数量修正系数矩阵z0,设定z0(z1,z2,z3,z4),其中,z1为第一预设其他贴片反弹数量修正系数,z2为第二预设其他贴片反弹数量修正系数,z3为第三预设其他贴片反弹数量修正系数,z4为第四预设其他贴片反弹数量修正系数,各预设其他贴片反弹数量修正系数按照顺序逐渐增加;

当所述中控模块针对预先选定的其他贴片反弹数量mi进行调节时,i=1,2,3,4,中控模块将所述目标对象贴片数量b与b0矩阵中的参数进行比对,并根据比对结果从z0矩阵中选取对应的预设调节系数对mi进行调节:

当b≤b1时,所述中控模块选用z1对mi进行调节;

当b1<b≤b2时,所述中控模块选用z2对mi进行调节;

当b2<b≤b3时,所述中控模块选用z3对mi进行调节;

当b3<b≤b4时,所述中控模块选用z4对mi进行调节;

当所述中控模块选用zj对预先选定的mi进行调节时,j=1,2,3,4,调节后的其他贴片反弹数量为mi’,mi’=mi×zj。

进一步地,所述中控模块中还设置有预设目标贴片与光源夹角矩阵θ0和自发射辐射度二次调节系数a0;

对于所述目标贴片与光源夹角矩阵θ0,设定θ0(θ1,θ2,θ3,θ4),其中,θ1为第一预设目标贴片与光源夹角,θ2为第二预设目标贴片与光源夹角,θ3为第三预设目标贴片与光源夹角,θ4为第四预设目标贴片与光源夹角,各预设目标贴片与光源夹角按照顺序逐渐增加;

对于所述自发射辐射度二次调节系数a0,设定a0(a1,a2,a3,a4),其中,a1为第一预设自发射辐射度二次调节系数,a2为第二预设自发射辐射度二次调节系数,a3为第三预设自发射辐射度二次调节系数,a4为第四预设自发射辐射度二次调节系数,各预设自发射辐射度二次调节系数按照顺序逐渐增加;

当所述中控模块针对预先选定的自发射辐射度fi进行调节时,中控模块将所述目标贴片与光源夹角θ与θ0矩阵中的参数进行比对,并根据比对结果从a0矩阵中选取对应的预设调节系数对fi进行调节:

当θ≤θ1时,所述中控模块选用a1对fi进行调节;

当θ1<θ≤θ2时,所述中控模块选用a2对fi进行调节;

当θ2<θ≤θ3时,所述中控模块选用a3对fi进行调节;

当θ3<θ≤θ4时,所述中控模块选用a4对fi进行调节;

当所述中控模块选用aj对预先选定的fi进行调节时,j=1,2,3,4,调节后的自发射辐射度为fi”,fi”=fi’×aj。

进一步地,所述中控模块中还设置有预设其他贴片与光源平均夹角矩阵β0、其他贴片反弹辐射度矩阵p0和其他贴片反弹辐射度修正系数矩阵b0;

对于所述其他贴片与光源平均夹角矩阵β0,设定β0(β1,β2,β3,β4),其中,β1为第一预设其他贴片与光源平均夹角,β2为第二预设其他贴片与光源平均夹角,β3为第三预设其他贴片与光源平均夹角,β4为第四预设其他贴片与光源平均夹角,各预设其他贴片与光源平均夹角按照顺序逐渐增加;

对于所述其他贴片反弹辐射度p0,设定p0(p1,p2,p3,p4),其中,p1为第一预设其他贴片反弹辐射度,p2为第二预设其他贴片反弹辐射度,p3为第三预设其他贴片反弹辐射度,p4为第四预设其他贴片反弹辐射度,各预设其他贴片反弹辐射度按照顺序逐渐增加,设定p=m×r×f;

对于所述其他贴片反弹辐射度修正系数b0,设定b0(b1,b2,b3,b4),其中,b1为第一预设其他贴片反弹辐射度修正系数,b2为第二预设其他贴片反弹辐射度修正系数,b3为第三预设其他贴片反弹辐射度修正系数,b4为第四预设其他贴片反弹辐射度修正系数,各预设其他贴片反弹辐射度修正系数按照顺序逐渐增加;

当所述中控模块针对预先选定的其他贴片反弹辐射度pi进行调节时,i=1,2,3,4,中控模块将所述其他贴片与光源平均夹角β与β0矩阵中的参数进行比对,并根据比对结果从b0矩阵中选取对应的预设调节系数对pi进行调节:

当β≤β1时,所述中控模块选用b1对pi进行调节;

当β1<β≤β2时,所述中控模块选用b2对pi进行调节;

当β2<β≤β3时,所述中控模块选用b3对pi进行调节;

当β3<θ≤β4时,所述中控模块选用b4对pi进行调节;

当所述中控模块选用bj对预先选定的pi进行调节时,j=1,2,3,4,调节后的其他贴片反弹辐射度为pi’,pi’=pi×bj。

进一步地,在所述步骤4计算每对贴片的形状因子时,使用半立方算法,同时,使用不连续性网格划分、自适应和分层细分和聚类。

进一步地,在所述步骤5中求辐射度线性方程组系统的数值解时,使用的迭代方法为高斯赛德尔迭代法。

与现有技术相比,本发明的有益效果在于,本发明在实际运行时,实时计算开销小,离线和运行时占用的存储空间小,可以实时地模拟场景的全局光照,可以模拟场景静态物体光照信息,且能为动态物体提供可信的全局光照效果,在计算能力、续航能力和发热均受限的智能设备中,可大幅提高游戏画面的真实性。

进一步地,在进行场景的离散化处理时,贴片足够小,且每个贴片上的辐射度近似恒定,可捕捉诸如附近阴影边界之类的照明变化,同时,生成的贴片数量不会太大,避免了巨量的存储需求以及超长的计算时间。

进一步地,所述中控模块通过将目标对象与光源的绝对距离a与a0矩阵中的参数进行比对选用对应的自发射幅度值fi,再通过将所述目标对象贴片数量b与b0矩阵中的参数进行比对选取对应的预设调节系数对fi进行调节,从而得到更准确的自发射幅度值,进而提高了计算的准确度,进一步提高了目标物体的光照模拟效果。

进一步地,所述中控模块通过将目标对象的实际波长λ与λ0中的参数进行比选用对应的反射率ri,再通过将所述虚拟发光体个数c与c0矩阵中的参数进行比对选取对应的预设调节系数对ri进行调节,从而得到更准确的反射率值,进而提高了计算的准确度,进一步提高了目标物体的光照模拟效果。

进一步地,所述中控模块通过将虚拟发光体个数c与c0矩阵中的参数进行比选用其他贴片反弹数量mi,再通过将所述目标对象贴片数量b与b0矩阵中的参数进行比对选取对应的预设调节系数对mi进行调节,从而得到更准确的其他贴片反弹数量值,进而提高了计算的准确度,进一步提高了目标物体的光照模拟效果。

进一步地,本发明使用随机辐射度算法,在三维场景的世界空间通过预计算的方式,确定场景物体表面辐射度,静态物体的辐射度使用rgbm编码存储为光照贴图,可还原全局光照的漫反射效果;镜面反射部分效果通过预先布置的反射探针抓取反射贴图,使用mipmaps模拟不同粗糙度的反射,进而可以模拟场景静态物体光照信息。

进一步地,本发明通过在场景预先布置探测点,预计算得到全局光照信息后,使用球谐函数保存此空间点上的全局光照信息,通过插值离散探测点上的光照数据,可还原动态移动至探测点附近物体的全局光照的漫反射部分效果;镜面反射部分效果使用反射贴图的插值计算,进而可以实时地模拟场景的全局光照。

进一步地,在计算每对贴片的形状因子时,使用半立方算法,形状因子的数量是非常巨大的,使用此方法可以有效减小实时计算开销。

进一步地,在求辐射度线性方程组系统的数值解时,使用的迭代方法为高斯赛德尔迭代法,此迭代法大幅减少了计算时长,有效提高了游戏体验。

附图说明

图1为本发明所述基于游戏在智能设备模拟全局光照的方法的流程示意图;

图2为本发明所述基于游戏在智能设备模拟全局光照的系统结构框图;

具体实施方式

下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非在限制本发明的保护范围。

请参阅图1所示,其为本发明所述基于游戏在智能设备模拟全局光照的方法的流程框图。

本发明所述基于游戏在智能设备模拟全局光照的方法,包括:

步骤1:获取游戏场景中待处理的目标对象;

步骤2:获取游戏场景中所有的虚拟发光体信息;

步骤3:根据目标对象在游戏场景的位置和网格信息,将目标对象划分为连续的多个贴片,贴片是三角形或凸四面体,对于每个贴片,计算其辐射度值;

步骤4:计算每对贴片的形状因子;

步骤5:求辐射度线性方程组系统的数值解,计算每个贴片的辐射率;

步骤6:存储静态对象求解结果中的漫反射部分为二维贴图,rgbm编码;存储探测点位置求解结果的漫反射部分,编码为球谐函数形式;存储探测点反射贴图为cubemap,并计算mipmaps;

步骤7:使用所有贴片上的平均自发射辐射度和反射率关联到平均总辐射率的方程,在求解之后,得到的辐射度结果转换为表面的显示颜色;

所述步骤1到步骤7均在模拟系统中进行,所述模拟系统通过无线连接中控模块,所述中控模块用以控制各单元运行,从而控制步骤1到步骤7的运行过程,其内设置有矩阵。

具体而言,所述步骤3中,对于每个贴片,给出自发射辐射度和反射率,反射率设定为0到1之间的数字;贴片的总辐射度包含通过场景中其它贴片的任意数量的反弹接受的辐射度,以及自发射的辐射度,所述中控模块设置有总辐射度值q,设定q=f+m×r×f。

具体而言,所述中控模块中设置有预设自发射辐射度矩阵f0和预设目标对象与光源的绝对距离矩阵a0;

对于所述预设自发射辐射度矩阵f0,设定f0(f1,f2,f3,f4),其中,f1为第一预设自发射辐射度,f2为第二预设自发射辐射度,f3为第三预设自发射辐射度,f4为第四预设自发射辐射度,各预设自发射辐射度按照顺序逐渐增加;

对于所述预设目标对象与光源的绝对距离矩阵a0,设定a0(a1,a2,a3,a4),其中,a1为第一预设目标对象与光源的绝对距离,a2为第二预设目标对象与光源的绝对距离,a3为第三预设目标对象与光源的绝对距离,a4为第四预设目标对象与光源的绝对距离;

当所述中控模块选用目标对象的自发射幅射度时,将目标对象与光源的绝对距离a与a0矩阵中的参数进行比对并根据比对结果选用对应的自发射幅度值:

当a≤a1时,所述中控模块选用自发射辐射度f1;

当a1<a≤a2时,所述中控模块选用自发射辐射度f2;

当a2<a≤a3时,所述中控模块选用自发射辐射度f3;

当a3<a≤a4时,所述中控模块选用自发射辐射度f4;

具体而言,所述中控模块中还设置有预设自发射辐射度调节系数矩阵k0和预设目标对象贴片数量矩阵b0;

对于所述预设自发射辐射度调节系数矩阵k0,设定k0(k1,k2,k3,k4),其中,k1为第一预设自发射辐射度调节系数,k2为第二预设自发射辐射度调节系数,k3为第三预设自发射辐射度调节系数,k4为第四预设自发射辐射度调节系数,各预设自发射辐射度调节系数按照顺序逐渐增加;

对于所述预设目标对象贴片数量矩阵b0,设定b0(b1,b2,b3,b4),其中,b1为第一预设目标对象贴片数量,b2为第二预设目标对象贴片数量,b3为第三预设目标对象贴片数量,b4为第四预设目标对象贴片数量,各预设目标对象贴片数量按照顺序逐渐增加;

当所述中控模块针对预先选定的自发射辐射度fi进行调节时,i=1,2,3,4,中控模块将所述目标对象贴片数量b与b0矩阵中的参数进行比对,并根据比对结果从k0矩阵中选取对应的预设调节系数对fi进行调节:

当b≤b1时,所述中控模块选用k1对fi进行调节;

当b1<b≤b2时,所述中控模块选用k2对fi进行调节;

当b2<b≤b3时,所述中控模块选用k3对fi进行调节;

当b3<b≤b4时,所述中控模块选用k4对fi进行调节;

当所述中控模块选用kj对预先选定的fi进行调节时,j=1,2,3,4,调节后的自发射辐射度为fi’,fi’=fi×kj。

所述中控模块通过将目标对象与光源的绝对距离a与a0矩阵中的参数进行比对选用对应的自发射幅度值fi,再通过将所述目标对象贴片数量b与b0矩阵中的参数进行比对选取对应的预设调节系数对fi进行调节,从而得到更准确的自发射幅度值,进而提高了计算的准确度,进一步提高了目标物体的光照模拟效果。

具体而言,所述中控模块中还设置有预设反射率矩阵r0、预设目标对象波长矩阵λ0、预设反射率修正系数矩阵y0和预设虚拟发光体个数矩阵c0;

对于所述预设反射率矩阵r0,设定r0(r1,r2,r3,r4),其中,r1为第一预设反射率,r2为第二预设反射率,r3为第三预设反射率,r4为第四预设反射率,各预设反射率按照顺序逐渐增加;

对于所述预设目标对象波长矩阵λ0,设定λ0(λ1,λ2,λ3,λ4),其中,λ1为第一预设目标对象波长,λ2为第二预设目标对象波长,λ3为第三预设目标对象波长,λ4为第四预设目标对象波长,各预设目标对象波长按照顺序逐渐增加;

当所述中控模块选用反射率时,将目标对象的实际波长λ与λ0中的参数进行比对并根据比对结果选用对应的反射率:

当λ≤λ1时,所述中控模块选用反射率r1;

当λ1<λ≤λ2时,所述中控模块选用反射率r2;

当λ2<λ≤λ3时,所述中控模块选用反射率r3;

当λ3<λ≤λ4时,所述中控模块选用反射率r4;

对于所述预设反射率修正系数矩阵y0,设定y0(y1,y2,y3,y4),其中,y1为第一预设反射率修正系数,y2为第二预设反射率修正系数,y3为第三预设反射率修正系数,y4为第四预设反射率修正系数,各预设反射率修正系数按照顺序逐渐增加;

对于所述预设虚拟发光体个数矩阵c0,设定c0(c1,c2,c3,c4),其中,c1为第一预设虚拟发光体个数,c2为第二预设虚拟发光体个数,c3为第三预设虚拟发光体个数,c4为第四预设虚拟发光体个数,各预设虚拟发光体个数按照顺序逐渐增加;

当所述中控模块针对预先选定的反射率ri进行调节时,i=1,2,3,4,中控模块将所述虚拟发光体个数c与c0矩阵中的参数进行比对,并根据比对结果从y0矩阵中选取对应的预设调节系数对ri进行调节:

当c≤c1时,所述中控模块选用y1对ri进行调节;

当c1<c≤c2时,所述中控模块选用y2对ri进行调节;

当c2<c≤c3时,所述中控模块选用y3对ri进行调节;

当c3<c≤c4时,所述中控模块选用y4对ri进行调节;

当所述中控模块选用yj对预先选定的ri进行调节时,j=1,2,3,4,调节后的反射率为ri’,ri’=ri×yj。

所述中控模块通过将目标对象的实际波长λ与λ0中的参数进行比选用对应的反射率ri,再通过将所述虚拟发光体个数c与c0矩阵中的参数进行比对选取对应的预设调节系数对ri进行调节,从而得到更准确的反射率值,进而提高了计算的准确度,进一步提高了目标物体的光照模拟效果。

具体而言,所述中控模块中还设置有预设其他贴片反弹数量矩阵m0和预设其他贴片反弹数量修正系数矩阵z0;

对于所述预设其他贴片反弹数量矩阵m0,设定m0(m1,m2,m3,m4),其中,m1为第一预设其他贴片反弹数量,m2为第二预设其他贴片反弹数量,m3为第三预设其他贴片反弹数量,m4为第四预设其他贴片反弹数量,各预设其他贴片反弹数量按照顺序逐渐增加;

当所述中控模块选用其他贴片反弹数量时,中控模块将虚拟发光体个数c与c0矩阵中的参数进行比对并根据比对结果选用其他贴片反弹数量:

当c≤c1时,所述中控模块选用其他贴片反弹数量m1;

当c1<c≤c2时,所述中控模块选用其他贴片反弹数量m2;

当c2<c≤c3时,所述中控模块选用其他贴片反弹数量m3;

当c3<c≤c4时,所述中控模块选用其他贴片反弹数量m4;

对于所述其他贴片反弹数量修正系数矩阵z0,设定z0(z1,z2,z3,z4),其中,z1为第一预设其他贴片反弹数量修正系数,z2为第二预设其他贴片反弹数量修正系数,z3为第三预设其他贴片反弹数量修正系数,z4为第四预设其他贴片反弹数量修正系数,各预设其他贴片反弹数量修正系数按照顺序逐渐增加;

当所述中控模块针对预先选定的其他贴片反弹数量mi进行调节时,i=1,2,3,4,中控模块将所述目标对象贴片数量b与b0矩阵中的参数进行比对,并根据比对结果从z0矩阵中选取对应的预设调节系数对mi进行调节:

当b≤b1时,所述中控模块选用z1对mi进行调节;

当b1<b≤b2时,所述中控模块选用z2对mi进行调节;

当b2<b≤b3时,所述中控模块选用z3对mi进行调节;

当b3<b≤b4时,所述中控模块选用z4对mi进行调节;

当所述中控模块选用zj对预先选定的mi进行调节时,j=1,2,3,4,调节后的其他贴片反弹数量为mi’,mi’=mi×zj。

所述中控模块通过将虚拟发光体个数c与c0矩阵中的参数进行比选用其他贴片反弹数量mi,再通过将所述目标对象贴片数量b与b0矩阵中的参数进行比对选取对应的预设调节系数对mi进行调节,从而得到更准确的其他贴片反弹数量值,进而提高了计算的准确度,进一步提高了目标物体的光照模拟效果。

具体而言,所述中控模块中还设置有预设目标贴片与光源夹角矩阵θ0和自发射辐射度二次调节系数a0;

对于所述目标贴片与光源夹角矩阵θ0,设定θ0(θ1,θ2,θ3,θ4),其中,θ1为第一预设目标贴片与光源夹角,θ2为第二预设目标贴片与光源夹角,θ3为第三预设目标贴片与光源夹角,θ4为第四预设目标贴片与光源夹角,各预设目标贴片与光源夹角按照顺序逐渐增加;

对于所述自发射辐射度二次调节系数a0,设定a0(a1,a2,a3,a4),其中,a1为第一预设自发射辐射度二次调节系数,a2为第二预设自发射辐射度二次调节系数,a3为第三预设自发射辐射度二次调节系数,a4为第四预设自发射辐射度二次调节系数,各预设自发射辐射度二次调节系数按照顺序逐渐增加;

当所述中控模块针对预先选定的自发射辐射度fi进行调节时,中控模块将所述目标贴片与光源夹角θ与θ0矩阵中的参数进行比对,并根据比对结果从a0矩阵中选取对应的预设调节系数对fi进行调节:

当θ≤θ1时,所述中控模块选用a1对fi进行调节;

当θ1<θ≤θ2时,所述中控模块选用a2对fi进行调节;

当θ2<θ≤θ3时,所述中控模块选用a3对fi进行调节;

当θ3<θ≤θ4时,所述中控模块选用a4对fi进行调节;

当所述中控模块选用aj对预先选定的fi进行调节时,j=1,2,3,4,调节后的自发射辐射度为fi”,fi”=fi’×aj。

具体而言,所述中控模块中还设置有预设其他贴片与光源平均夹角矩阵β0、其他贴片反弹辐射度矩阵p0和其他贴片反弹辐射度修正系数矩阵b0;

对于所述其他贴片与光源平均夹角矩阵β0,设定β0(β1,β2,β3,β4),其中,β1为第一预设其他贴片与光源平均夹角,β2为第二预设其他贴片与光源平均夹角,β3为第三预设其他贴片与光源平均夹角,β4为第四预设其他贴片与光源平均夹角,各预设其他贴片与光源平均夹角按照顺序逐渐增加;

对于所述其他贴片反弹辐射度p0,设定p0(p1,p2,p3,p4),其中,p1为第一预设其他贴片反弹辐射度,p2为第二预设其他贴片反弹辐射度,p3为第三预设其他贴片反弹辐射度,p4为第四预设其他贴片反弹辐射度,各预设其他贴片反弹辐射度按照顺序逐渐增加,设定p=m×r×f;

对于所述其他贴片反弹辐射度修正系数b0,设定b0(b1,b2,b3,b4),其中,b1为第一预设其他贴片反弹辐射度修正系数,b2为第二预设其他贴片反弹辐射度修正系数,b3为第三预设其他贴片反弹辐射度修正系数,b4为第四预设其他贴片反弹辐射度修正系数,各预设其他贴片反弹辐射度修正系数按照顺序逐渐增加;

当所述中控模块针对预先选定的其他贴片反弹辐射度pi进行调节时,i=1,2,3,4,中控模块将所述其他贴片与光源平均夹角β与β0矩阵中的参数进行比对,并根据比对结果从b0矩阵中选取对应的预设调节系数对pi进行调节:

当β≤β1时,所述中控模块选用b1对pi进行调节;

当β1<β≤β2时,所述中控模块选用b2对pi进行调节;

当β2<β≤β3时,所述中控模块选用b3对pi进行调节;

当β3<θ≤β4时,所述中控模块选用b4对pi进行调节;

当所述中控模块选用bj对预先选定的pi进行调节时,j=1,2,3,4,调节后的其他贴片反弹辐射度为pi’,pi’=pi×bj。

具体而言,在所述步骤4计算每对贴片的形状因子时,使用半立方算法,同时,使用不连续性网格划分、自适应和分层细分和聚类。

具体而言,在所述步骤5中求辐射度线性方程组系统的数值解时,使用的迭代方法为高斯赛德尔迭代法。

为了使本发明的目的和优点更加清楚明白,下面结合模拟系统对本发明作进一步描述;应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。

请参阅图2所示,其为本发明所述基于游戏在智能设备模拟全局光照的系统结构框图。

一种基于游戏在智能设备模拟全局光照的系统,包括:

设置单元,用于设置虚拟发光体位置和光源信息;用于设置漫反射探测点位置,分布;用于设置镜面反射探测点位置,精度;用于调整预计算光照数据的准确度,计算耗时,存储精度和压缩方式。

计算单元,根据设置装置的参数和第一方面所述方法,离线计算全局光照的结果。

存储单元,用二维贴图保存静态物体的全局光漫反射分量;自定义二进制格式保存漫反射探测点计算结果;cubemap保存探测点镜面反射结果,自动计算mipmaps;根据设置装置参数压缩所有数据。

显示单元,运行时载入预计算的各部分全局光照分量,实时显示场景的全局光照结果。

其中,设置单元,包括:

第一设置模块,用于设置直接光线发射密度,单位为条/平方单位,更高的密度能得到更准确的结果,但计算装置的生成时间会变长;

第二设置模块,用于设置反弹光线发射密度,单位为条/平方单位,更高的密度能得到更准确的结果,但计算装置的生成时间会快速变长;

第三设置模块,间接光线的反弹次数,越大计算装置的生成时间越长;

第四设置模块,滤波器,用于计算装置的对离线计算的中间结果进行降噪操作;

第五设置模块,游戏场景的1平方单位所占用的光照贴图像素数量,越大存储装置存储的结果越准确,但计算时间会变长,存储空间会变大;

第六设置模块,1张光照贴图的尺寸大小上限,超出部分会分割为额外的贴图;

第七设置模块,光照贴图数据压缩格式。

显示单元,包括:

第一显示模块,根据场景预计算的信息,加载对应的光照贴图,设置到物体的渲染组件,着色时用于计算全局光的漫反射分量;

第二显示模块,对于动态物体,显示装置需要收集物体当前的位置信息和包围盒信息,根据位置信息和包围盒信息,从预计算和存储的探针数据中,筛选出对应空间附近的一组探针数据进行插值,设置到动态物体的渲染组件,着色时用于计算全局光的漫反射分量;

第三显示模块,镜面反射的全局光分量,需要显示装置收集物体当前的位置信息,决定选用的环境探针数据,允许最多在两个探针数据插值。

至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

以上所述仅为本发明的优选实施例,并不用于限制本发明;对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1