基于近似点光源的动态物体互反射效果实时绘制方法、装置、系统和存储介质

文档序号:26142789发布日期:2021-08-03 14:27阅读:65来源:国知局
基于近似点光源的动态物体互反射效果实时绘制方法、装置、系统和存储介质

本发明属于实时绘制领域,尤其涉及一种基于近似点光源的动态物体互反射效果实时绘制方法、装置、系统和存储介质。



背景技术:

实时全局光照技术是实时绘制领域中较为重要的部分,其目的在于通过降低计算结果的精度,以换取实时的运行效率,为三维场景的实时绘制提供更具真实感的结果。实时全局光照技术目前被广泛应用于游戏、虚拟现实等对于实时绘制的真实感有较高要求的领域。

互反射效果属于实时全局光照中比较常见的一部分,通常用于模拟物体之间的互相反射。在静态光照的前提下,对于静态物体与静态物体之间的反射,通常使用光照贴图的方法来实现,例如chen等在acmsiggraph2008中提到的基于球谐系数的光照贴图方法,详见参考文献:chen,hao,andxinguoliu."lightingandmaterialofhalo3."acmsiggraph2008games.2008.1-22。对于静态物体对动态物体所造成的反射,通常使用光探测器方法实现,例如现有的虚幻引擎4中所采用的volumetriclightmap方法,将每个光探测器所受到的入射辐射率编码为球谐系数,使用自适应的数据结构进行存储。

其中,球谐系数是一种编码球面函数的方法,在2001年已经被ravi运用于编码环境光,详见参考文献:ramamoorthi,ravi,andpathanrahan."anefficientrepresentationforirradianceenvironmentmaps."proceedingsofthe28thannualconferenceoncomputergraphicsandinteractivetechniques.2001。其主要思想是通过将球面函数投影到一组正交的球谐基上,以获取更小的存储空间,与更快速的内积计算性质。



技术实现要素:

鉴于上述,针对动态物体对于其他物体的反射,本发明提供一种基于近似点光源的动态物体互反射效果实时绘制方法、装置、系统和存储介质,能够实时计算动态物体反射出的漫反射部分的辐照度,并绘制在结果中。

本发明的技术方案为:

第一方面,一种基于近似点光源的动态物体互反射效果实时绘制方法,包括以下步骤:

为场景中的每个动态物体离线计算得到一个光传输矩阵以及一组投影面积球谐系数;

实时绘制时,根据光传输矩阵实时计算得到每个动态物体被近似为点光源后的漫反射出射辐射率,结合漫反射出射辐射率和根据投影面积球谐系数分段线性插值后的结果计算互反射分量光照,以模拟动态物体漫反射出射辐照度的衰减。

第二方面,一种基于近似点光源的动态物体互反射效果实时绘制装置,包括:

离线计算模块,用于为场景中的每个动态物体离线计算得到一个光传输矩阵以及一组投影面积球谐系数;

实时绘制模块,用于根据光传输矩阵实时计算得到每个动态物体被近似为点光源后的漫反射出射辐射率,结合漫反射出射辐射率和根据投影面积球谐系数分段线性插值后的结果计算互反射分量光照,以模拟动态物体漫反射出射辐照度的衰减。

第三方面,一种基于近似点光源的动态物体互反射效果实时绘制系统,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上执行的计算机程序,所述处理器执行所述计算机程序时实现上述基于近似点光源的动态物体互反射效果实时绘制方法。

第四方面,一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理执行时实现上述基于近似点光源的动态物体互反射效果实时绘制方法的步骤。

与现有技术相比,本发明具有的有益效果至少包括:

本发明提供的基于近似点光源的动态物体互反射效果实时绘制方法、装置、系统和存储介质,通过离线为场景中的每个动态物体预先计算得到一个光传输矩阵以及一组投影面积球谐系数,作为动态物体实时绘制的数据基础,以减少实时绘制时的计算消耗;在实时绘制时,根据光传输矩阵实时计算得到每个动态物体被近似为点光源后的漫反射出射辐射率,结合漫反射出射辐射率和一组投影面积球谐系数计算互反射分量光照,以模拟动态物体漫反射出射辐照度的衰减,衰减计算结果更精确;再者,得益于使用点光源近似的方式,能够很好地集成到目前现有的前向绘制管线以及延迟绘制管线中,而不需要做出较大的修改。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。

图1是实施例提供的基于近似点光源的动态物体互反射效果实时绘制方法的流程图;

图2是实施例提供的实施例提供的p点采样示意图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。

图1是实施例提供的基于近似点光源的动态物体互反射效果实时绘制方法的流程图。如图1所示,实施例提供的动态物体互反射效果实时绘制方法包括以下步骤:

步骤1,为场景中的每个动态物体离线计算得到一个光传输矩阵以及一组投影面积球谐系数。

实施例中,为场景中的每个动态物体离线计算得到一个光传输矩阵以及一组投影面积球谐系数包括:

如图2所示,确定动态物体的包围球球心为o,均匀采样一组距离t,使得距离t大于包围球的半径r,对每个采样距离t,均匀采样一组方向v,获得一组点p=o+vt,位于包围球外侧;

对于每个p点,从p点出发,均匀随机采样一组方向w射线,将射线与动态物体做求交计算,若获得交点,记交点为q(v,w),记录漫反射系数ρ(q(v,w))、法线n(q(v,w))以及可见性系数v(v,w)=1;否则,记录可见性系数v(v,w)=0;

根据求交记录,计算得到每个采样距离t对应的一个光传输矩阵后,综合所有光传输矩阵确定每个动态物体的一个光传输矩阵,在采样距离t=(1.0~3.0)r的范围内按照依次递增的间隔选择多个t值,并获得多个t值对应的多个投影面积球谐系数,组成一组投影面积球谐系数。

经过试验探究,发现选取t=1.1r,t=1.3r,以及t=1.9r时的投影面积球谐系数,并设定t=3.0r时的面积系数为0,以此作为最终的一组投影面积球谐系数。

实施例中,采用以下公式计算得到每个采样距离t对应的一个光传输矩阵和一个投影面积的球谐系数:

a(v)=∫θv(v,w)dw

其中,mij为采样距离t对应的光传输矩阵中位置(i,j)处的元素,v(v,w)为p点朝w方向上的可见性系数,若在w方向上与动态物体相交,则v(v,w)=1,否则v(v,w)=0,q(v,w)为p点朝w方向上发出射线后与动态物体的交点,ρ(q(v,w))为q点的漫反射系数,n(q(v,w))为q点的法线,为对应法线n(q(v,w))的球面cos函数的球谐系数,yj(v)为球谐基函数,为采样距离t对应的投影面积的球谐系数,a(v)为p点对应的投影面积系数,yi(v)为球谐基函数,θ表示积分区域在单位球面上。

实施例中,综合所有光传输矩阵确定每个动态物体的一个光传输矩阵包括:

以每个动态物体的所有采样距离t对应的所有光传输矩阵的平均值作为每个动态物体最终的一个光传输矩阵。

在离线预计算完成后,利用预计算光传输矩阵以及一组投影面积球谐系数对实时绘制进行加速。

步骤2,实时绘制时,根据光传输矩阵实时计算得到每个动态物体被近似为点光源后的漫反射出射辐射率,结合漫反射出射辐射率和根据投影面积球谐系数分段线性插值后的结果计算互反射分量光照,以模拟动态物体漫反射出射辐照度的衰减。

实施例中,根据光传输矩阵实时计算得到每个动态物体被近似为点光源后的漫反射出射辐射率包括:

计算当前需要绘制的p点相对于近似点光源的距离和方向,即公式p=o+vt中的v,t两项,需要注意到,v表示动态物体局部坐标系下的方向。

根据光传输矩阵计算近似点光源的漫反射出射辐射率:

其中,为近似点光源在v方向上的出射辐射率,为近似点光源出射辐射率的球谐系数,yi(v)为球谐基函数,为动态物体包围球球心o点入射环境光辐射率的球谐系数,m为预计算的光传输矩阵。需要注意到,表示动态物体的局部坐标系下的环境光球谐系数。

实施例中,结合漫反射出射辐射率和根据投影面积球谐系数分段线性插值后的结果计算互反射分量光照包括:

根据投影面积球谐系数分段线性插值后的结果,采用以下公式计算近似点光源在v方向上的投影面积系数:

其中,a(v,t)为p点上该近似点光源的投影面积系数,为根据投影面积球谐系数经过分段线性插值后获得的近似点光源投影面积的球谐系数,具体分段线性插值过程为:根据t=1.1r,1.3r,1.9r的3组投影面积球谐系数,结合t=3.0r时为0的球谐系数,插值出t>1.0时的任意点位置的投影面积球谐系数,yi(v)为球谐基函数;

根据投影面积系数a(v,t)和漫反射出射辐射率计算p点的互反射分量光照:

其中,lp为p点的互反射光照的辐射率,ρ(p)为p点的漫反射系数,max为取最大值,n为p点在动态物体的局部坐标系下的法向。

上述提供的基于近似点光源的动态物体互反射效果实时绘制方法,可以实时计算动态物体对于其他物体的漫反射辐照度。同时,基于投影面积系数,使用了相比于点光源的平方反比方式更加精确的衰减方法。此外,得益于使用点光源近似的方式,能够很好地集成到目前现有的前向绘制管线以及延迟绘制管线中,而不需要做出较大的修改。

实施例还提供了一种基于近似点光源的动态物体互反射效果实时绘制装置,包括:

离线计算模块,用于为场景中的每个动态物体离线计算得到一个光传输矩阵以及一组投影面积球谐系数;

实时绘制模块,用于根据光传输矩阵实时计算得到每个动态物体被近似为点光源后的漫反射出射辐射率,结合漫反射出射辐射率和一组投影面积球谐系数计算互反射分量光照,以模拟动态物体漫反射出射辐照度的衰减。

需要说明的是,实施例提供的基于近似点光源的动态物体互反射效果实时绘制装置在进行实时绘制时,应以上述各功能模块的划分进行举例说明,可以根据需要将上述功能分配由不同的功能模块完成,即在终端或服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,实施例提供的基于近似点光源的动态物体互反射效果实时绘制装置与基于近似点光源的动态物体互反射效果实时绘制方法实施例属于同一构思,其具体实现过程详见基于近似点光源的动态物体互反射效果实时绘制方法实施例,这里不再赘述。

实施例还提供了一种基于近似点光源的动态物体互反射效果实时绘制系统,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上执行的计算机程序,所述处理器执行所述计算机程序时实现上述基于近似点光源的动态物体互反射效果实时绘制方法。

一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理执行时实现上述基于近似点光源的动态物体互反射效果实时绘制方法的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。

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