CN105989624A - 用于绘制全局光照场景的方法和装置 - Google Patents
用于绘制全局光照场景的方法和装置 Download PDFInfo
- Publication number
- CN105989624A CN105989624A CN201510072569.3A CN201510072569A CN105989624A CN 105989624 A CN105989624 A CN 105989624A CN 201510072569 A CN201510072569 A CN 201510072569A CN 105989624 A CN105989624 A CN 105989624A
- Authority
- CN
- China
- Prior art keywords
- vpl
- high gloss
- energy
- pixel
- gloss
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Landscapes
- Image Generation (AREA)
Abstract
本发明实施例涉及用于绘制全局光照场景的方法和装置。该方法包括:确定像素点对应的虚拟点光源VPL割集,该VPL割集包括多个目标高光泽度VPL;根据该VPL割集中的该多个目标高光泽度VPL对于该像素点的出射方向,确定该像素点的能量。本发明实施例的用于绘制全局光照场景的方法和装置,通过确定全局光照场景中每个像素点对应的虚拟点光源VPL的割集,根据该VPL割集中的多个目标高光泽度VPL确定该像素点的能量值,从而能够绘制高光泽材质属性的全局光照场景,使得全局光照场景的绘制应用更广泛,绘制更准确。
Description
技术领域
本发明涉及通信领域,尤其涉及用于绘制全局光照场景的方法和装置。
背景技术
全局光照是计算机图形学中非常重要的研究领域,通过对大自然中光照情况进行模拟,可以捕捉真实环境中的光经过多次传播(折射、反射)所产生的软影、间接折射等光照效果,这些效果能大大增强渲染结果的真实感。这一技术常应用于电影、动画、三维模型的渲染中。
在全局光计算中,绘制方程是进行真实感绘制的基础,它描述的是场景中的点光源到摄像机的能量传递过程。假设能量从光源xk到摄像机x0经过k-1次折射,xk为其中一个折射点,那么从点xk到xk-1传递的能量可由xk的出射能量(或辐射度)项、xk的双向反射分布函数(BRDF,一个与材质相关的方程,描述了能量从入射方向输入,经材质影响后,从出射方向输出的能量大小)、几何项(Geometry term,描述两端点间的空间位置关系)、可视项(Visibility term,描述两点间是否有遮挡)相乘得到。根据上述计算方法,可依次计算从xk到xk-1,再从xk-1到xk-2,直到x0,整个路径上的光能传递,最终得到光源xk对摄像机感应点x0(即图像中一个像素)的能量贡献值。
人们提出了很多不同的方法来进行绘制方程计算。大量点光源(Many-light)方法是其中一类重要的全局光照技术,它在场景中生成大量虚拟点光源(Virtual Point Light,VPL),通过分别计算各视角采样点被这些虚拟点光源照亮的程度,来获得全局光照效果。这种技术通过把光复杂的多次传播问题简化为采样点被虚拟点光源直接照亮问题,为全局光照计算提供了一个统一的数学框架,并且拥有很高的灵活性,可以根据实际需要调节算法的复杂度。
为进一步提高绘制速度,出现了基于大量点光源框架的光割(Lightcuts)方法,通过对虚拟点光源建立层次结构并使用层次结构树的一个割集代表所有虚拟点光源进行能量计算,这种方法可以有效减少全局光照的计算量并加快计算速度。但现有的光割技术,只包含了对低光泽度VPL(即漫反射VPL,diffuse VPL)的近似计算,因此无法应用于具有高光泽材质属性的场景。
发明内容
本发明提供了一种用于绘制全局光照场景的方法和装置,能够应用于高光泽材质属性的场景。
第一方面,提供了一种用于绘制全局光照场景的方法,该方法包括:确定像素点对应的虚拟点光源VPL割集,该VPL割集包括多个目标高光泽度VPL;根据该VPL割集中的该多个目标高光泽度VPL对于该像素点的出射方向,确定该像素点的能量。
结合第一方面,在第一方面的第一种可能的实现方式中,该根据该VPL割集中的该多个目标高光泽度VPL对于该像素点的出射方向,确定该像素点的能量,包括:根据该多个目标高光泽度VPL对于该像素点的出射方向,确定该多个目标高光泽度VPL的出射能量;根据该多个目标高光泽度VPL的出射能量,确定该像素点的能量。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,该根据该多个目标高光泽度VPL对于该像素点的出射方向,确定该多个目标高光泽度VPL的出射能量,包括:根据公式(1)确定该多个目标高光泽度VPL中的每个目标高光泽度VPL的出射能量G:
G(v;p,λ,μ)=μeλ(v·p-1) (1)
其中,μ为该每个目标高光泽度VPL的入射能量,λ为材质的光泽系数,p为该每个目标高光泽度VPL的镜面反射方向,v为该每个目标高光泽度VPL的出射方向。
结合第一方面或第一方面的第一种至第二种可能的实现方式中的任一种可能的实现方式,在第一方面的第三种可能的实现方式中,该确定全局光照场景中的像素点对应的虚拟点光源VPL割集,包括:获取全局光照场景中的多个高光泽度VPL;根据该多个高光泽度VPL的位置,确定多个高光泽度VPL集合,该多个高光泽度VPL集合中的每个高光泽度VPL集合包括该多个高光泽度VPL中的至少一个高光泽度VPL;根据该多个高光泽度VPL集合中的每个高光泽度VPL集合包括的至少一个高光泽度VPL,确定该每个高光泽度VPL集合的代表高光泽度VPL;从该多个高光泽度VPL集合对应的多个代表高光泽度VPL中确定该像素点对应的该多个目标高光泽度VPL。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,该根据该多个高光泽度VPL的位置,确定多个高光泽度VPL集合,包括:根据该多个高光泽度VPL的位置,通过二分聚类方法生成二叉树,该二叉树包括m层,其中,第x层至多包括2x-1个高光泽度VPL集合,第m层中每个高光泽度VPL集合至多包括a个高光泽度VPL,a、m和x均为大于1的正整数。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,该根据该多个高光泽度VPL的位置,通过二分聚类方法生成二叉树,包括:确定该多个高光泽度VPL中的每个高光泽度VPL的六维坐标,其中,前三维分别表示该每个高光泽度VPL的空间位置x、y和z,后三维分别表示该每个高光泽度VPL的球面高斯角的方向x'、y'和z';根据该多个高光泽度VPL中的每个高光泽度VPL的六维坐标,确定该多个高光泽度VPL中任意两个高光泽度VPL之间的距离;根据该任意两个高光泽度VPL之间的距离通过二分聚类方法生成该二叉树。
结合第一方面的第三种至第五种可能的实现方式中的任一种可能的实现方式,在第一方面的第六种可能的实现方式中,该从该多个高光泽度VPL集合对应的多个代表高光泽度VPL中确定该像素点对应的该多个目标高光泽度VPL,包括:确定该多个高光泽度VPL集合中第一高光泽度VPL集合包括的多个高光泽度VPL对于该像素点的出射能量最大值;根据该出射能量最大值确定第一阈值;当该第一高光泽度VPL集合的第一代表高光泽度VPL对于该像素点的能量小于或等于该第一阈值时,确定该第一代表高光泽度VPL为目标高光泽度VPL。
结合第一方面的第三种至第五种可能的实现方式中的任一种可能的实现方式,在第一方面的第七种可能的实现方式中,该从该多个高光泽度VPL集合对应的多个代表高光泽度VPL中确定该像素点对应的该多个目标高光泽度VPL,包括:确定该多个高光泽度VPL集合中第二高光泽度VPL集合包括的多个高光泽度VPL对于该像素点的能量最大值和最小值;确定该能量最大值与该第二高光泽度VPL集合的第二代表高光泽度VPL对该像素点的能量的差值为第一差值;确定该能量最小值与该第二代表高光泽度VPL对该像素点的能量的差值为第二差值;当该第一差值与该第二差值均小于或等于第二阈值时,确定该第二代表高光泽度VPL为目标高光泽度VPL。
结合第一方面的第三种至第七种可能的实现方式中的任一种可能的实现方式,在第一方面的第八种可能的实现方式中,该根据该多个高光泽度VPL集合中的每个高光泽度VPL集合包括的至少一个高光泽度VPL,确定该每个高光泽度VPL集合的代表高光泽度VPL,包括:根据公式(2)-(6)确定第三高光泽度VPL集合的第三代表高光泽度VPL:
其中,qD为该第三代表高光泽度VPL的三维坐标,N为该第三高光泽度VPL集合中高光泽度VPL的个数,yi为该第三高光泽度VPL集合中第i个高光泽度VPL的位置坐标,nD为该第三代表高光泽度VPL的法向方向,为该第三高光泽度VPL集合中该第i个高光泽度VPL的法向方向,vD为该第三代表高光泽度VPL得到球面高斯角的方向,r为该第三高光泽度VPL集合中多个高光泽度VPL的球面高斯角的方向的平均值,λD为该第三代表高光泽度VPL的光泽度参数,λi为该第三高光泽度VPL集合中该第i个高光泽度VPL的光泽度参数,ID为该第三代表高光泽度VPL的能量强度,Ii为该第三高光泽度VPL集合中该第i个高光泽度VPL的能量强度,||||表示求模运算。
结合第一方面的第三种至第八种可能的实现方式中的任一种可能的实现方式,在第一方面的第九种可能的实现方式中,该获取全局光照场景中的多个高光泽度VPL,包括:确定该全局光照场景的几何场景和光能来源;根据该几何场景和该光能来源确定该多个高光泽度VPL。
第二方面,提供了一种用于绘制全局光照场景的装置,该装置包括:第一确定模块,用于确定像素点对应的虚拟点光源VPL割集,该VPL割集包括多个目标高光泽度VPL;第二确定模块,用于根据该VPL割集中的该多个目标高光泽度VPL对于该像素点的出射方向,确定该像素点的能量。
结合第二方面,在第二方面的第一种可能的实现方式中,该第二确定模块具体用于:根据该多个目标高光泽度VPL对于该像素点的出射方向,确定该多个目标高光泽度VPL的出射能量;根据该多个目标高光泽度VPL的出射能量,确定该像素点的能量。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,该第二确定模块具体用于:根据公式(1)确定该多个目标高光泽度VPL中的每个目标高光泽度VPL的出射能量G:
G(v;p,λ,μ)=μeλ(v·p-1) (1)
其中,μ为该每个目标高光泽度VPL的入射能量,λ为材质的光泽系数,p为该每个目标高光泽度VPL的镜面反射方向,v为该每个目标高光泽度VPL的出射方向。
结合第二方面或第二方面的第一种至第二种可能的实现方式中的任一种可能的实现方式,在第二方面的第三种可能的实现方式中,该第一确定模块具体用于:获取全局光照场景中的多个高光泽度VPL;根据该多个高光泽度VPL的位置,确定多个高光泽度VPL集合,该多个高光泽度VPL集合中的每个高光泽度VPL集合包括该多个高光泽度VPL中的至少一个高光泽度VPL;根据该多个高光泽度VPL集合中的每个高光泽度VPL集合包括的至少一个高光泽度VPL,确定该每个高光泽度VPL集合的代表高光泽度VPL;从该多个高光泽度VPL集合对应的多个代表高光泽度VPL中确定该像素点对应的该多个目标高光泽度VPL。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,该第一确定模块具体用于:根据该多个高光泽度VPL的位置,通过二分聚类方法生成二叉树,该二叉树包括m层,其中,第x层至多包括2x-1个高光泽度VPL集合,第m层中每个高光泽度VPL集合至多包括a个高光泽度VPL,a、m和x均为大于1的正整数。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,该第一确定模块具体用于:确定该多个高光泽度VPL中的每个高光泽度VPL的六维坐标,其中,前三维分别表示该每个高光泽度VPL的空间位置x、y和z,后三维分别表示该每个高光泽度VPL的球面高斯角的方向x'、y'和z';根据该多个高光泽度VPL中的每个高光泽度VPL的六维坐标,确定该多个高光泽度VPL中任意两个高光泽度VPL之间的距离;根据该任意两个高光泽度VPL之间的距离通过二分聚类方法生成该二叉树。
结合第二方面的第三种至第五种可能的实现方式中的任一种可能的实现方式,在第二方面的第六种可能的实现方式中,该第一确定模块具体用于:确定该多个高光泽度VPL集合中第一高光泽度VPL集合包括的多个高光泽度VPL对于该像素点的出射能量最大值;根据该出射能量最大值确定第一阈值;当该第一高光泽度VPL集合的第一代表高光泽度VPL对于该像素点的能量小于或等于该第一阈值时,确定该第一代表高光泽度VPL为目标高光泽度VPL。
结合第二方面的第三种至第五种可能的实现方式中的任一种可能的实现方式,在第二方面的第七种可能的实现方式中,该第一确定模块具体用于:确定该多个高光泽度VPL集合中第二高光泽度VPL集合包括的多个高光泽度VPL对于该像素点的能量最大值和最小值;确定该能量最大值与该第二高光泽度VPL集合的第二代表高光泽度VPL对该像素点的能量的差值为第一差值;确定该能量最小值与该第二代表高光泽度VPL对该像素点的能量的差值为第二差值;当该第一差值与该第二差值均小于或等于第二阈值时,确定该第二代表高光泽度VPL为目标高光泽度VPL。
结合第二方面的第三种至第七种可能的实现方式中的任一种可能的实现方式,在第二方面的第八种可能的实现方式中,该第一确定模块具体用于:根据公式(2)-(6)确定第三高光泽度VPL集合的第三代表高光泽度VPL:
其中,qD为该第三代表高光泽度VPL的三维坐标,N为该第三高光泽度VPL集合中高光泽度VPL的个数,yi为该第三高光泽度VPL集合中第i个高光泽度VPL的位置坐标,nD为该第三代表高光泽度VPL的法向方向,为该第三高光泽度VPL集合中该第i个高光泽度VPL的法向方向,vD为该第三代表高光泽度VPL得到球面高斯角的方向,r为该第三高光泽度VPL集合中多个高光泽度VPL的球面高斯角的方向的平均值,λD为该第三代表高光泽度VPL的光泽度参数,λi为该第三高光泽度VPL集合中该第i个高光泽度VPL的光泽度参数,ID为该第三代表高光泽度VPL的能量强度,Ii为该第三高光泽度VPL集合中该第i个高光泽度VPL的能量强度,||||表示求模运算。
结合第二方面的第三种至第八种可能的实现方式中的任一种可能的实现方式,在第二方面的第九种可能的实现方式中,该第一确定模块具体用于:确定该全局光照场景的几何场景和光能来源;根据该几何场景和该光能来源确定该多个高光泽度VPL。
基于上述技术方案,本发明实施例的用于绘制全局光照场景的方法和装置,通过确定全局光照场景中每个像素点对应的虚拟点光源VPL的割集,根据该VPL割集中的多个目标高光泽度VPL确定该像素点的能量值,从而能够绘制高光泽材质属性的全局光照场景,使得全局光照场景的绘制应用更广泛,绘制更准确。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的VPL的二叉树的示意性流程图。
图2是根据本发明实施例的用于绘制全局光照场景的方法的示意性流程图。
图3是根据本发明实施例的用于绘制全局光照场景的装置的示意性框图。
图4是根据本发明另一实施例的用于绘制全局光照场景的装置的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
在全局光照的计算中,绘制方程描述的是场景中的点光源到摄像机的能量传递过程。假设能量从光源xk到摄像机x0经过k-1次折射,xk为其中一个折射点,那么从点xk到xk-1传递的能量可由xk的出射能量(或辐射度)项、xk的双向反射分布函数(BRDF,一个与材质相关的方程,描述了能量从入射方向输入,经材质影响后,从出射方向输出的能量大小)、几何项(Geometryterm,描述两端点间的空间位置关系)、可视项(Visibility term,描述两点间是否有遮挡)相乘得到。根据上述计算方法,可依次计算从xk到xk-1,再从xk-1到xk-2,直到x0,整个路径上的光能传递,最终得到光源xk对摄像机感应点x0(即图像中一个像素)的能量贡献值。
人们提出了很多不同的方法来进行绘制方程计算。大量点光源(Many-light)方法是其中一类重要的全局光照技术,它在场景中生成大量虚拟点光源(Virtual Point Light,VPL),通过分别计算各视角采样点被这些虚拟点光源照亮的程度,来获得全局光照效果。具体地,可以通过估计真实光源(比如灯光)对场景中某个位置(几何点)的能量贡献,在场景中被照亮的地方产生VPL,并使用这些VPL描述场景中的间接光照(光能经过大于或等于1次折射后到达摄像机感应点)。为了统一计算,场景中的直接光源也会被离散表示成VPL。经过上述过程生成VPL后,计算最终图像的绘制结果时,通过计算出射能量(或辐射度)项、BRDF方程、几何项和可视项的乘积,计算获得每个摄像机的感应点,即图像上的像素点,接收到的场景中所有VPL对它产生的能量贡献值,从而得到该像素最终的总能量。
这种技术通过把光复杂的多次传播问题简化为采样点被VPL直接照亮问题,为全局光照计算提供了一个统一的数学框架,并且拥有很高的灵活性,可以根据实际需要调节算法的复杂度。
为进一步提高绘制速度,出现了基于大量点光源框架的光割(Lightcuts)方法,通过对虚拟点光源建立层次结构并使用层次结构树的一个割集代表所有虚拟点光源进行能量计算,这种方法可以有效减少全局光照的计算量并加快计算速度。
具体地,它将场景中的低光泽度VPL根据位置和方向的相似性,构建成一棵二叉树,如图1所示。树中的每个叶子节点表示一个VPL,每个中间节点代表了它所有子结点的能量贡献。在计算VPL的出射能量阶段,根据给定的误差函数,为每个像素点选择光树上的一个割集,例如图1中的四个黑色节点,只需要计算这个割集对该像素点的能量贡献值,就可以得到所有VPL对该感应点总贡献值的一个近似。
但是上述光割技术,只针对低光泽度VPL的近似计算,没有对场景中的高光泽VPL(经过光泽表面折射的虚拟点光源)进行处理,因此无法应用于具有高光泽材质属性的场景。
为此,本发明实施例提供了一种用于绘制全局光照场景的方法,该方法可以对具有高光泽材质属性的场景进行全局光照场景绘制。图2示出了根据本发明实施例的用于绘制全局光照场景的方法100的示意性流程图,该方法100可以由终端设备执行。如图2所示,该方法100包括:
S110,确定全局光照场景中的像素点对应的虚拟点光源VPL割集,该VPL割集包括多个目标高光泽度VPL;
S120,根据该VPL割集中的多个该目标高光泽度VPL对于该像素点的出射方向,确定该像素点的能量。
具体地,根据全局光照场景获取场景中的VPL,该VPL包括高光泽度VPL,确定该场景中每个像素点对应的VPL割集,该VPL割集包括多个目标高光泽度VPL,该割集中的多个目标高光泽度VPL能够代表该割集内包括的所有高光泽度VPL;根据该VPL割集中所有目标高光泽度VPL对于该像素点的出射方向,计算该VPL割集中所有目标高光泽度VPL对于该像素点的能量值,以便于根据每个像素点的能量值绘制全局光照场景。
因此,本发明实施例的用于绘制全局光照场景的方法,通过确定全局光照场景中每个像素点对应的虚拟点光源VPL的割集,根据该VPL割集中的多个目标高光泽度VPL确定该像素点的能量值,从而能够绘制高光泽材质属性的全局光照场景,使得全局光照场景的绘制应用更广泛,绘制更准确。
在S110中,确定全局光照场景中的像素点对应的虚拟点光源VPL割集,该VPL割集包括多个目标高光泽度VPL。具体地,获取全局光照场景中的VPL,该VPL包括高光泽度VPL;根据该高光泽度VPL的位置,确定多个高光泽VPL集合,可选地,可以通过二分聚类方法生成该高光泽度VPL的二叉树,其中,该二叉树包括m层,第x层至多包括2x-1个高光泽度VPL集合,第m层中每个该高光泽度VPL集合至多包括a个该高光泽度VPL;确定每个该高光泽度VPL集合的代表高光泽度VPL;根据该代表高光泽度VPL确定属于该像素点对应的VPL割集的目标高光泽度VPL。
在本发明实施例中,可以通过全局光照场景的几何场景和光能来源确定VPL。具体地,首先可以通过场景图确定几何场景和光能来源。几何场景是指用来描述场景中几何形状、材质、动画或者光源的专有文件,有很多种格式,比如常见的OBJ格式、3DS格式等,每种都有自己的定义,一般使用3DMAX或者MAYA等工具生成;光能来源即直接光照,也有很多种格式表示,比如用程序中的一个结构体来表示一个发光的点,或者使用一张贴在场景包围球上的贴图来表示环境光,这些对光源的描述既可以集成在上述的几何文件中,也可以使用程序单独设置,本发明并不限于此。对于生成的几何场景和光能来源,由光能来源随机生成一些光线,当这些光线与几何场景有交点时,在这些场景的交点上,生成高光泽度VPL。
在本发明实施例中,对于生成的高光泽度VPL,可以根据高斯函数表示每个高光泽度VPL。具体地,根据球面高斯函数,确定的几个参数来表示该高光泽度VPL;该参数可以包括:高光泽度VPL的顶点位置,该位置可以通过光线与几何场景的交点位置来确定;高光泽度VPL的入射辐射度,该数值可以通过根据入射光线的能量,交点离光源距离以及入射点表面材质来确定;高光泽度VPL的球面高斯角的方向,该方向可以通过入射光线关于入射点的法向对称来确定。根据球面高斯函数来表示高光泽度VPL,可以有效地表示高光泽度VPL并减少计算量。
在本发明实施例中,根据该高光泽度VPL的位置,确定多个高光泽度VPL集合,可选地,可以通过二分聚类方法生成该高光泽度VPL的二叉树,该二叉树包括多个高光泽度VPL集合。具体地,可以将生产的高光泽度VPL投影到一个六维空间,使得该高光泽度VPL为六维向量,其中,前三维分别表示该高光泽度VPL的空间位置x、y和z,后三维分别表示该高光泽度VPL的球面高斯角的方向x'、y'和z'。根据高光泽度VPL在六维空间的位置,确定任意两个该高光泽度VPL之间的距离。可选地,可以通过下面的公式(1)计算两个高光泽度VPL直接的欧式距离s:
s=||s2-s1|| (1)
其中,s1和s2分别为两个高光泽度VPL的六维空间位置向量,||||表示求向量的模长。
在本发明实施例中,可以根据高光泽度VPL之间的距离,通过二分聚类方法生成该高光泽度VPL的二叉树,该二叉树包括m层,其中,第x层至多包括2x-1个高光泽度VPL集合。具体地,该二叉树的第一层包括一个高光泽度VPL集合,该集合包括了所有高光泽度VPL,例如图1所示,该二叉树表示高光泽度VPL的二叉树,在该二叉树的第一层,只有一个高光泽度VPL集合,该集合包括了该场景中的所有高光泽度VPL。再构建该二叉树的第二层,第二层包括两个高光泽度VPL集合,可以将该场景中的所有高光泽度VPL根据欧式距离通过K-means算法进行二分聚类,将高光泽度VPL分为两个高光泽度VPL集合,使得该两个集合中每个集合内的高光泽度VPL之间的欧式距离的均方差最小,例如图1所示,第二层的两个高光泽度VPL集合为第一层的高光泽度VPL集合进行二分聚类得到。通过类似的方法,继续生成二叉树的每一层,当该层的某个高光泽度VPL集合中包括a个高光泽度VPL或小于a个高光泽度VPL时,不再对该集合进行二分聚类,对该层的其它高光泽度VPL集合仍然继续进行二分聚类,则对于该二叉树任意一层第x层至多包括2x-1个高光泽度VPL集合,每个集合至多包括a个高光泽度VPL。直到生成该二叉树的第m层,该第m层中的每个高光泽度VPL集合中至多包括a个高光泽度VPL时,则完成该二叉树的生成过程。其中,该a的值可以根据经验值来确定,例如可以确定a=2,此时会使得后面的计算结果更为精确,但是计算量过大,经过多次试验证明,可以确定为a=16,此时可以取得比较平滑的效果,也不会使得运算量过大,但本发明并不限于此。例如,图1中包括4层,第4层包括8个高光泽度VPL集合,其中每两个高光泽度VPL集合分别属于上一层的一个高光泽度VPL集合通过二分聚类的方法获得,该二叉树的最后一层,即第四层中的每个高光泽度VPL集合中至多包括a个高光泽度VPL。
在本发明实施例中,确定了该场景中的高光泽度VPL的二叉树后,确定该二叉树中的每个高光泽度VPL集合的代表高光泽度VPL,使得可以利用该代表高光泽度VPL代替该集合中包括的所有高光泽度VPL进行计算。具体地,对于多个高光泽度VPL集合中任意一个高光泽度VPL集合,第三高光泽度VPL集合,由于高光泽度VPL为根据球面高斯函数表示的,则可以根据球面高斯函数确定该第三高光泽度VPL集合的第三代表高光泽度VPL,即确定该第三代表高光泽度VPL包括确定该第三代表高光泽度VPL的三维空间位置、该第三代表高光泽度VPL的法向方向、该第三代表高光泽度VPL的高斯球面角的方法、该第三代表高光泽度VPL的光泽度参数和该第三代表高光泽度VPL的能量强度。
在本发明实施例中,确定该第三代表高光泽度VPL的三维空间位置,可以任意选择该第三代表高光泽度VPL所在的第三高光泽度VPL集合中一个高光泽度VPL,令该高光泽度VPL的空间位置为第三代表高光泽度VPL的空间位置,其中,该空间位置为所选择的高光泽度VPL在三维空间的位置,包括x、y和z三个方法。可选地,还可以确定该第三高光泽度VPL集合中能量强度最大的高光泽度VPL的空间位置为该第三代表高光泽度VPL的空间位置。可选地,也可以通过下面的公式(2)确定该第三代表高光泽度VPL的空间位置:
其中,qD为该第三代表高光泽度VPL的位置坐标,N为该第三高光泽度VPL集合中高光泽度VPL的个数,yi为该第三高光泽度VPL集合中第i个高光泽度VPL的位置坐标,通过该公式(2)确定第三高光泽度VPL集合中的高光泽度VPL的空间位置的平均值为第三代表高光泽度VPL的位置,但本发明并不限于此。
在本发明实施例中,确定该第三代表高光泽度VPL的法向方向,可以任意选择该第三代表高光泽度VPL所在的第三高光泽度VPL集合中一个高光泽度VPL,令该高光泽度VPL的法向方法为第三代表高光泽度VPL的法向方向。可选地,还可以确定该第三高光泽度VPL集合中能量强度最大的高光泽度VPL的法向方法为该第三代表高光泽度VPL的法向方向。可选地,也可以通过下面的公式(3)确定该第三代表高光泽度VPL的法向方向,但本发明并不限于此:
其中,nD为该第三代表高光泽度VPL的法向方向,N为该第三高光泽度VPL集合中高光泽度VPL的个数,为该第三高光泽度VPL集合中该第i个高光泽度VPL的法向方向。
在本发明实施例中,确定该第三代表高光泽度VPL的高斯球面角方向的方法,可以任意选择该第三代表高光泽度VPL所在的第三高光泽度VPL集合中一个高光泽度VPL,令该高光泽度VPL的高斯球面角的方向为第三代表高光泽度VPL的高斯球面角的方向。可选地,还可以确定该第三高光泽度VPL集合中能量强度最大的高光泽度VPL的高斯球面角的方向为该第三代表高光泽度VPL的高斯球面角的方向。可选地,也可以通过下面的公式(4)确定该第三代表高光泽度VPL的高斯球面角的方向,但本发明并不限于此:
其中,vD为该第三代表高光泽度VPL得到球面高斯角的方向,r为该第三高光泽度VPL集合中所有高光泽度VPL的球面高斯角的方向的平均值,r为方向向量,||||表示求模长的运算。
在本发明实施例中,确定该第三代表高光泽度VPL的光泽度参数,可以任意选择该第三代表高光泽度VPL所在的第三高光泽度VPL集合中一个高光泽度VPL,令该高光泽度VPL的光泽度参数为第三代表高光泽度VPL的光泽度参数。可选地,还可以确定该第三高光泽度VPL集合中能量强度最大的高光泽度VPL的光泽度参数为该第三代表高光泽度VPL的光泽度参数。可选地,也可以通过下面的公式(5)确定该第三代表高光泽度VPL的光泽度参数,但本发明并不限于此:
其中,λD为该第三代表高光泽度VPL的光泽度参数,r为第三该高光泽度VPL集合中所有高光泽度VPL的球面高斯角的方向的平均值,r为方向向量,||||表示求模长的运算。
在本发明实施例中,确定该第三代表高光泽度VPL的能量强度,可以将该第三代表高光泽度VPL所在的第三高光泽度VPL集合中的高光泽度VPL的能量强度叠加值,作为该第三代表高光泽度VPL的能量强度。可选地,也可以通过下面的公式(6)确定该第三代表高光泽度VPL的能量强度,但本发明并不限于此:
其中,ID为该第三代表高光泽度VPL的能量强度,λi为该第三高光泽度VPL集合中该第i个高光泽度VPL的光泽度参数,Ii为该第三高光泽度VPL集合中该第i个高光泽度VPL的能量强度。
在本发明实施例中,根据球面高斯函数通过公式(2)-(6)确定每个高光泽度VPL集合的代表高光泽度VPL参数,误差较小,计算结果更加准确。
在本发明实施例中,根据二叉树中的每个高光泽度VPL集合的代表高光泽度VPL,确定该像素点对应的VPL割集,该VPL割集包括多个目标高光泽度VPL,使得该多个目标高光泽度VPL能够代替该场景中所有高光泽度VPL对于该像素点的能量贡献。
具体地,可以先确定每个高光泽度VPL集合中高光泽度VPL的各个系数的上下限。对于任意一个高光泽度VPL集合的空间位置上下限,可以通过一个空间包围盒来描述,该空间包围盒为一个六维向量,该六维分别为该高光泽度VPL集合中所有的高光泽度VPL的三维空间位置坐标的最大及最小值,即:x方向最大、最小值,y方向最大、最小值,以及z方向最大、最小值。对于该任意一个高光泽度VPL集合的角度上下限,可以通过两个圆锥体来分别描述高光泽度VPL法向方法和高斯球面角的方向的最大及最小值,每个圆锥体为四维向量,前三维为该圆锥体的中心轴的空间位置坐标,用于表示该高光泽度VPL集合中高光泽度VPL的法向方法的平均值,或高斯球面角的方向的平均值;第四维表示离中心轴最远的高光泽度VPL的法向方向或高斯球面角的方向,与中心轴方向的夹角的余弦值。对于该任意一个高光泽度VPL集合的光泽系数,由于光泽系数为标量,可以直接用数值上的上下限表示;对于该任意一个高光泽度VPL集合的能量强度,不区分上下限,只需要记录该高光泽度VPL集合中每个高光泽度VPL的能量强度之和。
在本发明实施例中,确定每个高光泽度VPL集合中高光泽度VPL的各个系数的上下限后,根据该上下限确定像素点的VPL割集。具体地,可以根据球面高斯函数,即下面的公式(7)确定每个代表高光泽度VPL对于任意像素点的出射能量:
G(v;p,λ,μ)=μeλ(v·p-1) (7)
其中,μ为每个代表高光泽度VPL的入射能量,λ为像素点材质的光泽系数,p为该代表高光泽度VPL的镜面反射方向,v为该代表高光泽度VPL对于该像素点的出射方向。
在本发明实施例中,针对任意一个像素点,根据公式(7)确定高光泽度VPL的二叉树中每个高光泽度VPL集合中的代表高光泽度VPL的出射能量;将该出射能量与相对应的BRDF方程、几何项和可视项相乘,获得每个代表高光泽度VPL对于该像素点的能量贡献值。同样地,再根据公式(7)和每个高光泽度VPL集合中高光泽度VPL的各个系数的上下限,确定每个高光泽度VPL集合出射能量的最大值和最小值;将该出射能量的最大值或最小值与相对应的BRDF方程、几何项和可视项相乘,获得每个高光泽度VPL集合对该像素点的能量贡献值的最大值或最小值。
在本发明实施例中,确定任意像素点的VPL割集。具体地,针对该像素点,构建一个VPL割集,首先将高光泽度VPL二叉树中第一层的高光泽度VPL集合的代表高光泽度VPL放入该割集中,计算将该代表高光泽度VPL代替该高光泽度VPL集合包括的所有高光泽度VPL时产生的误差。当该误差满足误差函数时,则该代表高光泽度VPL为属于该VPL割集的目标高光泽度VPL,可以通过该目标高光泽度VPL代替所有高光泽度VPL;当该误差值不满足误差函数时,则将该代表高光泽度VPL推出该VPL割集,并将属于该高光泽度VPL集合的下一层的两个高光泽度VPL集合放入该VPL割集中,分别进行误差计算,将满足误差函数的高光泽度VPL集合的代表高光泽度VPL留在VPL割集中,作为目标高光泽度VPL,将不满足误差函数的高光泽度VPL集合的代表高光泽度VPL推出该VPL割集,并重新放入属于该高光泽度VPL集合下一层的两个高光泽度VPL集合的代表高光泽度VPL,知道遍历该高光泽度VPL二叉树中每个高光泽度VPL集合的代表高光泽度VPL,确定出多个满足误差函数的代表高光泽度VPL作为VPL割集中的目标高光泽度VPL,这些目标高光泽度VPL可以代替该场景中的所有高光泽度VPL。例如图1所示,图中黑色圆圈代表的高光泽度VPL集合中的代表高光泽度VPL即为最后确定的目标高光泽度VPL,这些目标高光泽度VPL构成VPL割集。
在本发明实施例中,可选地,计算的误差是否满足误差函数,可以通过下列方法判断。具体地,可以根据公式(7)计算多个代表高光泽度VPL中任意一个代表高光泽度VPL第一代表高光泽度VPL的出射能量,并进一步计算该第一代表高光泽度VPL对于该像素点的能量贡献值;同样的,计算该第一代表高光泽度VPL所在的第一高光泽度VPL集合对于该像素点的能量贡献值的最大值。当该第一代表高光泽度VPL对于该像素点的能量贡献值小于或等于第一阈值时,该第一代表高光泽度VPL满足误差函数。可选地,该第一阈值可以根据经验值设定,也可以根据该第一代表高光泽度VPL所在的第一高光泽度VPL集合对于该像素点的能量贡献值的最大值设定,可以设定为该最大值的0.0001倍,本发明并不限于此。
可选地,还可以根据公式(7)计算任意一个代表高光泽度VPL第二代表高光泽度VPL所在的第二高光泽度VPL集合对于该像素点的能量贡献值的最大和最小值。根据第二代表高光泽度VPL对于该像素点的能量贡献值和第二高光泽度VPL集合对该像素点的能量贡献值的最大值确定第一差值;再根据第二代表高光泽度VPL的能量贡献值和最小值确定第二差值。当第一差值和第二差值均小于或等于第二阈值时,该第二代表高光泽度VPL满足误差函数。该误差函数Error(x)可以表示为下面的公式(8):
Error(x)=max{Lparent-Ln,Lm-Lparent} (8)
其中,Lparent表示第二代表高光泽度VPL,Ln为该第二代表高光泽度VPL所在的第二高光泽度VPL集合对于该像素点的能量贡献值的最小值,Lm为该第二代表高光泽度VPL所在的第二高光泽度VPL集合对于该像素点的能量贡献值的最大值。可选地,该第二阈值可以根据经验值设定,也可以根据该第二代表高光泽度VPL所在的第二高光泽度VPL集合对于该像素点的能量贡献值的最大值设定,可以设定为该最大值的0.001倍,本发明并不限于此。
在本发明实施例中,根据上述误差函数遍历高光泽度VPL的光束中每层结构的代表高光泽度VPL,从而确定属于该像素点的VPL割集,能够有效地减少误差,并提高了高光泽度场景的全局光照绘制速度。
在S120中,根据上述方法确定每个像素点对应的VPL割集后,根据该VPL割集中的多个目标高光泽度VPL确定对应像素点的出射能量,根据该出射能量确定该VPL割集对该像素点的能量贡献值,从而绘制出全局光照场景。
具体地,在本发明实施例中,可以根据公式(7)确定每个目标高光泽度VPL对于像素点的出射能量G,其中,μ为该目标高光泽度VPL的入射能量,λ为材质的光泽系数,p为该目标高光泽度VPL的镜面反射方向,v为该目标高光泽度VPL的出射方向。
在本发明实施例中,根据每个像素点对应的VPL割集中的目标高光泽度VPL的出射能量、该像素点的BRDF方程、几何项和可视项的乘积,确定每个像素点的能量,从而绘制全局光照场景。可选地,该像素点的BRDF方程、几何项和可视项可以根据现有技术进行计算。
具体地,对于任意像素点,可以通过下面的方法确定该像素点的BRDF方程。该像素点包括高光泽材质和低光泽材质部分。低光泽材质指的是光泽变化平缓的材质,其材质的BRDF方程与出射方向无关,比如Lambertian材质是一种常见的低光泽材质,其BRDF方程为下面的公式(9):
O=L·NC (9)
其中O表示经过材质表面反射后的出射能量,L表示光线的入射方向,N表示材质的法向,L·N表示两者的夹角,C是表示材质颜色系数。
高光泽材质的BRDF方程则与出射光的方向相关,比如常见的Phong模型的光泽分量表示为下面的公式(10):
O=(R·V)αC (10)
其中R表示VPL入射方向L在物体表面的镜面反射方向,即R=2(L·N)-L,V为接受能量的视角方向,α为表示光泽强度的一个参数,C是表示材质颜色系数。
应理解,在本发明实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
因此,本发明实施例的用于绘制全局光照场景的方法,通过确定全局光照场景中每个像素点对应的虚拟点光源VPL的割集,该割集中包括多个目标高光泽度VPL,根据球面高斯函数表示该目标高光泽度VPL,并计算该VPL割集中的多个目标高光泽度VPL对于该该像素点的能量值,从而能够绘制高光泽材质属性的全局光照场景,使得全局光照场景的绘制应用更广泛,绘制过程中,更加有效地表示高光泽度VPL,并减少误差,提高了绘制速度,使得绘制结果更准确。
上文中结合图1和图2,详细描述了根据本发明实施例的用于绘制全局光照场景的方法,下面将结合图3,描述根据本发明实施例的用于绘制全局光照场景的装置。
如图3所示,根据本发明实施例的用于绘制全局光照场景的装置200包括:
第一确定模块210,用于确定全局光照场景中的像素点对应的虚拟点光源VPL割集,该VPL割集包括多个目标高光泽度VPL;
第二确定模块220,用于根据该VPL割集中的多个该目标高光泽度VPL对于该像素点的出射方向,确定该像素点的能量。
具体地,根据全局光照场景获取场景中的VPL,该VPL包括高光泽度VPL,通过第一确定模块210确定该场景中每个像素点对应的VPL割集,该VPL割集包括多个目标高光泽度VPL,该割集中的多个目标高光泽度VPL能够代表该割集内包括的所有高光泽度VPL;再通过第二确定模块220根据该VPL割集中所有目标高光泽度VPL对于该像素点的出射方向,确定该VPL割集中所有目标高光泽度VPL对于该像素点的能量值,以便于根据每个像素点的能量值绘制全局光照场景。
因此,本发明实施例的用于绘制全局光照场景的装置,通过确定全局光照场景中每个像素点对应的虚拟点光源VPL的割集,根据该VPL割集中的多个目标高光泽度VPL确定该像素点的能量值,从而能够绘制高光泽材质属性的全局光照场景,使得全局光照场景的绘制应用更广泛,绘制更准确。
在本发明实施例中,通过第一确定模块210确定全局光照场景中的像素点对应的虚拟点光源VPL割集,该VPL割集包括多个目标高光泽度VPL。具体地,该第一确定模块210确定全局光照场景中的像素点对应的虚拟点光源VPL割集,该VPL割集包括多个目标高光泽度VPL。具体地,获取全局光照场景中的VPL,该VPL包括高光泽度VPL;根据该高光泽度VPL的位置,确定多个高光泽VPL集合,可选地,可以通过二分聚类方法生成该高光泽度VPL的二叉树,其中,该二叉树包括m层,第x层至多包括2x-1个高光泽度VPL集合,第m层中每个该高光泽度VPL集合至多包括a个该高光泽度VPL;确定每个该高光泽度VPL集合的代表高光泽度VPL;根据该代表高光泽度VPL确定属于该像素点对应的VPL割集的目标高光泽度VPL。
在本发明实施例中,第一确定模块210先获取场景中的VPL,可以通过全局光照场景的几何场景和光能来源确定VPL。具体地,可以通过场景图确定几何场景和光能来源。几何场景是指用来描述场景中几何形状、材质、动画或者光源的专有文件,有很多种格式,比如常见的OBJ格式、3DS格式等,每种都有自己的定义,一般使用3DMAX或者MAYA等工具生成;光能来源即直接光照,也有很多种格式表示,比如用程序中的一个结构体来表示一个发光的点,或者使用一张贴在场景包围球上的贴图来表示环境光,这些对光源的描述既可以集成在上述的几何文件中,也可以使用程序单独设置,本发明并不限于此。对于生成的几何场景和光能来源,由光能来源随机生成一些光线,当这些光线与几何场景有交点时,在这些场景的交点上,生成高光泽度VPL。
在本发明实施例中,对于获取到的高光泽度VPL,第一确定模块210可以根据高斯函数表示每个高光泽度VPL。具体地,通过确定球面高斯函数的几个参数表示该高光泽度VPL;该参数可以包括:高光泽度VPL的顶点位置,该位置可以通过光线与几何场景的交点位置来确定;高光泽度VPL的入射辐射度,该数值可以通过根据入射光线的能量,交点离光源距离以及入射点表面材质来确定;高光泽度VPL的球面高斯角的方向,该方向可以通过入射光线关于入射点的法向对称来确定。通过球面高斯函数来表示高光泽度VPL,可以有效地表示高光泽度VPL并减少计算量。
在本发明实施例中,根据该高光泽度VPL的位置,第一确定模块210确定高光泽度VPL集合,可选地,可以通过二分聚类方法生成该高光泽度VPL的二叉树。具体地,可以将生产的高光泽度VPL投影到一个六维空间,使得该高光泽度VPL为六维向量,其中,前三维分别表示该高光泽度VPL的空间位置x、y和z,后三维分别表示该高光泽度VPL的球面高斯角的方向x'、y'和z'。根据高光泽度VPL在六维空间的位置,确定任意两个该高光泽度VPL之间的距离。可选地,可以通过公式(1)计算两个高光泽度VPL直接的欧式距离s,其中,s1和s2分别为两个高光泽度VPL的六维空间位置向量,||||表示求向量的模长。
在本发明实施例中,第一确定模块210可以根据高光泽度VPL之间的距离,通过二分聚类方法生成该高光泽度VPL的二叉树,该二叉树包括m层,其中,第x层至多包括2x-1个高光泽度VPL集合。具体地,该二叉树的第一层包括一个高光泽度VPL集合,该集合包括了所有高光泽度VPL,例如图1所示,该二叉树表示高光泽度VPL的二叉树,在该二叉树的第一层,只有一个高光泽度VPL集合,该集合包括了该场景中的所有高光泽度VPL。再构建该二叉树的第二层,第二层包括两个高光泽度VPL集合,可以将该场景中的所有高光泽度VPL根据欧式距离通过K-means算法进行二分聚类,将高光泽度VPL分为两个高光泽度VPL集合,使得该两个集合中每个集合内的高光泽度VPL之间的欧式距离的均方差最小,例如图1所示,第二层的两个高光泽度VPL集合为第一层的高光泽度VPL集合进行二分聚类得到。通过类似的方法,继续生成二叉树的每一层,当该层的某个高光泽度VPL集合中包括a个高光泽度VPL或小于a个高光泽度VPL时,不再对该集合进行二分聚类,对该层的其它高光泽度VPL集合仍然继续进行二分聚类,则对于该二叉树任意一层第x层至多包括2x-1个高光泽度VPL集合,每个集合至多包括a个高光泽度VPL。直到生成该二叉树的第m层,该第m层中的每个高光泽度VPL集合中至多包括a个高光泽度VPL时,则完成该二叉树的生成过程。其中,该a的值可以根据经验值来确定,例如可以确定a=2,此时会使得后面的计算结果更为精确,但是计算量过大,经过多次试验证明,可以确定为a=16,此时可以取得比较平滑的效果,也不会使得运算量过大,但本发明并不限于此。例如,图1中包括4层,第4层包括8个高光泽度VPL集合,其中每两个高光泽度VPL集合分别属于上一层的一个高光泽度VPL集合通过二分聚类的方法获得,该二叉树的最后一层,即第四层中的每个高光泽度VPL集合中至多包括a个高光泽度VPL。
在本发明实施例中,生成了该场景中的高光泽度VPL的二叉树后,通过第一确定模块210确定该二叉树中的每个高光泽度VPL集合的代表高光泽度VPL,使得可以利用该代表高光泽度VPL代替该集合中包括的所有高光泽度VPL进行计算。具体地,对于多个高光泽度VPL集合中任意一个高光泽度VPL集合,第三高光泽度VPL集合,由于高光泽度VPL为根据球面高斯函数表示的,则可以根据球面高斯函数确定该第三高光泽度VPL集合的第三代表高光泽度VPL,即确定该第三代表高光泽度VPL包括确定该第三代表高光泽度VPL的三维空间位置、该第三代表高光泽度VPL的法向方向、该第三代表高光泽度VPL的高斯球面角的方法、该第三代表高光泽度VPL的光泽度参数和该第三代表高光泽度VPL的能量强度。
在本发明实施例中,第一确定模块210确定该第三代表高光泽度VPL的三维空间位置,可以任意选择该第三代表高光泽度VPL所在的第三高光泽度VPL集合中一个高光泽度VPL,令该高光泽度VPL的空间位置为第三代表高光泽度VPL的空间位置,其中,该空间位置为所选择的高光泽度VPL在三维空间的位置,包括x、y和z三个方法。可选地,还可以确定该第三高光泽度VPL集合中能量强度最大的高光泽度VPL的空间位置为该第三代表高光泽度VPL的空间位置。可选地,也可以通过下面的公式(2)确定该第三代表高光泽度VPL的空间位置,其中,qD为该第三代表高光泽度VPL的位置坐标,N为该第三高光泽度VPL集合中高光泽度VPL的个数,yi为该第三高光泽度VPL集合中第i个高光泽度VPL的位置坐标,通过该公式(2)确定第三高光泽度VPL集合中的高光泽度VPL的空间位置的平均值为第三代表高光泽度VPL的位置,但本发明并不限于此。
在本发明实施例中,第一确定模块210确定该第三代表高光泽度VPL的法向方向,可以任意选择该第三代表高光泽度VPL所在的第三高光泽度VPL集合中一个高光泽度VPL,令该高光泽度VPL的法向方法为第三代表高光泽度VPL的法向方向。可选地,还可以确定该第三高光泽度VPL集合中能量强度最大的高光泽度VPL的法向方法为该第三代表高光泽度VPL的法向方向。可选地,也可以通过下面的公式(3)确定该第三代表高光泽度VPL的法向方向,但本发明并不限于此,其中,nD为该第三代表高光泽度VPL的法向方向,N为该第三高光泽度VPL集合中高光泽度VPL的个数,为该第三高光泽度VPL集合中该第i个高光泽度VPL的法向方向,但本发明并不限于此。
在本发明实施例中,第一确定模块210确定该第三代表高光泽度VPL的高斯球面角方向的方法,可以任意选择该第三代表高光泽度VPL所在的第三高光泽度VPL集合中一个高光泽度VPL,令该高光泽度VPL的高斯球面角的方向为第三代表高光泽度VPL的高斯球面角的方向。可选地,还可以确定该第三高光泽度VPL集合中能量强度最大的高光泽度VPL的高斯球面角的方向为该第三代表高光泽度VPL的高斯球面角的方向。可选地,也可以通过下面的公式(4)确定该第三代表高光泽度VPL的高斯球面角的方向,其中,vD为该第三代表高光泽度VPL得到球面高斯角的方向,r为该第三高光泽度VPL集合中所有高光泽度VPL的球面高斯角的方向的平均值,r为方向向量,||||表示求模长的运算。可选地,还可以通过其它方法确定高斯球面角方向,本发明并不限于此。
在本发明实施例中,第一确定模块210确定确定该第三代表高光泽度VPL的光泽度参数,可以任意选择该第三代表高光泽度VPL所在的第三高光泽度VPL集合中一个高光泽度VPL,令该高光泽度VPL的光泽度参数为第三代表高光泽度VPL的光泽度参数。可选地,还可以确定该第三高光泽度VPL集合中能量强度最大的高光泽度VPL的光泽度参数为该第三代表高光泽度VPL的光泽度参数。可选地,也可以通过下面的公式(5)确定该第三代表高光泽度VPL的光泽度参数,其中,λD为该第三代表高光泽度VPL的光泽度参数,r为第三该高光泽度VPL集合中所有高光泽度VPL的球面高斯角的方向的平均值,r为方向向量,||||表示求模长的运算。可选地,还可以通过其它方法确定光泽度参数,本发明并不限于此。
在本发明实施例中,第一确定模块210确定该第三代表高光泽度VPL的能量强度,可以将该第三代表高光泽度VPL所在的第三高光泽度VPL集合中的高光泽度VPL的能量强度叠加值,作为该第三代表高光泽度VPL的能量强度。可选地,也可以通过下面的公式(6)确定该第三代表高光泽度VPL的能量强度,其中,ID为该第三代表高光泽度VPL的能量强度,λi为该第三高光泽度VPL集合中该第i个高光泽度VPL的光泽度参数,Ii为该第三高光泽度VPL集合中该第i个高光泽度VPL的能量强度,本发明并不限于此。
在本发明实施例中,第一确定模块210根据球面高斯函数通过公式(2)-(6)确定每个高光泽度VPL集合的代表高光泽度VPL参数,误差较小,计算结果更加准确。
在本发明实施例中,根据二叉树中的每个高光泽度VPL集合的代表高光泽度VPL,第一确定模块210确定该像素点对应的VPL割集,该VPL割集包括多个目标高光泽度VPL,使得该多个目标高光泽度VPL能够代替该场景中所有高光泽度VPL对于该像素点的能量贡献。
具体地,第一确定模块210可以先确定每个高光泽度VPL集合中高光泽度VPL的各个系数的上下限。对于任意一个高光泽度VPL集合的空间位置上下限,可以通过一个空间包围盒来描述,该空间包围盒为一个六维向量,该六维分别为该高光泽度VPL集合中所有的高光泽度VPL的三维空间位置坐标的最大及最小值,即:x方向最大、最小值,y方向最大、最小值,以及z方向最大、最小值。对于该任意一个高光泽度VPL集合的角度上下限,可以通过两个圆锥体来分别描述高光泽度VPL法向方法和高斯球面角的方向的最大及最小值,每个圆锥体为四维向量,前三维为该圆锥体的中心轴的空间位置坐标,用于表示该高光泽度VPL集合中高光泽度VPL的法向方法的平均值,或高斯球面角的方向的平均值;第四维表示离中心轴最远的高光泽度VPL的法向方向或高斯球面角的方向,与中心轴方向的夹角的余弦值。对于该任意一个高光泽度VPL集合的光泽系数,由于光泽系数为标量,可以直接用数值上的上下限表示;对于该任意一个高光泽度VPL集合的能量强度,不区分上下限,只需要记录该高光泽度VPL集合中每个高光泽度VPL的能量强度之和。
在本发明实施例中,确定每个高光泽度VPL集合中高光泽度VPL的各个系数的上下限后,第一确定模块210根据该上下限确定像素点的VPL割集。具体地,可以根据球面高斯函数,即公式(7)确定每个代表高光泽度VPL对于任意像素点的出射能量,其中,μ为每个代表高光泽度VPL的入射能量,λ为像素点材质的光泽系数,p为该代表高光泽度VPL的镜面反射方向,v为该代表高光泽度VPL对于该像素点的出射方向。
在本发明实施例中,针对任意一个像素点,根据公式(7)确定高光泽度VPL的二叉树中每个高光泽度VPL集合中的代表高光泽度VPL的出射能量;将该出射能量与相对应的BRDF方程、几何项和可视项相乘,获得每个代表高光泽度VPL对于该像素点的能量贡献值。同样地,再根据公式(7)和每个高光泽度VPL集合中高光泽度VPL的各个系数的上下限,确定每个高光泽度VPL集合出射能量的最大值和最小值;将该出射能量的最大值或最小值与相对应的BRDF方程、几何项和可视项相乘,获得每个高光泽度VPL集合对该像素点的能量贡献值的最大值或最小值。
在本发明实施例中,第一确定模块210可以确定任意像素点的VPL割集。具体地,针对该像素点,构建一个VPL割集,首先将高光泽度VPL二叉树中第一层的高光泽度VPL集合的代表高光泽度VPL放入该割集中,计算将该代表高光泽度VPL代替该高光泽度VPL集合包括的所有高光泽度VPL时产生的误差。当该误差满足误差函数时,则该代表高光泽度VPL为属于该VPL割集的目标高光泽度VPL,可以通过该目标高光泽度VPL代替所有高光泽度VPL;当该误差值不满足误差函数时,则将该代表高光泽度VPL推出该VPL割集,并将属于该高光泽度VPL集合的下一层的两个高光泽度VPL集合放入该VPL割集中,分别进行误差计算,将满足误差函数的高光泽度VPL集合的代表高光泽度VPL留在VPL割集中,作为目标高光泽度VPL,将不满足误差函数的高光泽度VPL集合的代表高光泽度VPL推出该VPL割集,并重新放入属于该高光泽度VPL集合下一层的两个高光泽度VPL集合的代表高光泽度VPL,知道遍历该高光泽度VPL二叉树中每个高光泽度VPL集合的代表高光泽度VPL,确定出多个满足误差函数的代表高光泽度VPL作为VPL割集中的目标高光泽度VPL,这些目标高光泽度VPL可以代替该场景中的所有高光泽度VPL。例如图1所示,图中黑色圆圈代表的高光泽度VPL集合中的代表高光泽度VPL即为最后确定的目标高光泽度VPL,这些目标高光泽度VPL构成VPL割集。
在本发明实施例中,可选地,第一确定模块210计算的误差是否满足误差函数,可以通过下列方法判断。具体地,可以根据公式(7)计算多个代表高光泽度VPL中任意一个代表高光泽度VPL第一代表高光泽度VPL的出射能量,并进一步计算该第一代表高光泽度VPL对于该像素点的能量贡献值;同样的,计算该第一代表高光泽度VPL所在的第一高光泽度VPL集合对于该像素点的能量贡献值的最大值。当该第一代表高光泽度VPL对于该像素点的能量贡献值小于或等于第一阈值时,该第一代表高光泽度VPL满足误差函数。可选地,该第一阈值可以根据经验值设定,也可以根据该第一代表高光泽度VPL所在的第一高光泽度VPL集合对于该像素点的能量贡献值的最大值设定,可以设定为该最大值的0.0001倍,本发明并不限于此。
可选地,第一确定模块210还可以根据公式(7)计算任意一个代表高光泽度VPL第二代表高光泽度VPL所在的第二高光泽度VPL集合对于该像素点的能量贡献值的最大和最小值。根据第二代表高光泽度VPL对于该像素点的能量贡献值和第二高光泽度VPL集合对该像素点的能量贡献值的最大值确定第一差值;再根据第二代表高光泽度VPL的能量贡献值和最小值确定第二差值。当第一差值和第二差值均小于或等于第二阈值时,该第二代表高光泽度VPL满足误差函数。该误差函数Error(x)可以表示为公式(8),其中,Lparent表示第二代表高光泽度VPL,Ln为该第二代表高光泽度VPL所在的第二高光泽度VPL集合对于该像素点的能量贡献值的最小值,Lm为该第二代表高光泽度VPL所在的第二高光泽度VPL集合对于该像素点的能量贡献值的最大值。可选地,该第二阈值可以根据经验值设定,也可以根据该第二代表高光泽度VPL所在的第二高光泽度VPL集合对于该像素点的能量贡献值的最大值设定,可以设定为该最大值的0.001倍,本发明并不限于此。
在本发明实施例中,根据上述误差函数遍历高光泽度VPL的光束中每层结构的代表高光泽度VPL,从而确定属于该像素点的VPL割集,能够有效地减少误差,并提高了高光泽度场景的全局光照绘制速度。
在本发明实施例中,根据上述方法确定每个像素点对应的VPL割集后,第二确定模块220根据该VPL割集中的多个目标高光泽度VPL确定对应像素点的出射能量,根据该出射能量确定该VPL割集对该像素点的能量贡献值,从而绘制出全局光照场景。
具体地,在本发明实施例中,第二确定模块220可以根据公式(7)确定每个目标高光泽度VPL对于像素点的出射能量G,其中,μ为该目标高光泽度VPL的入射能量,λ为材质的光泽系数,p为该目标高光泽度VPL的镜面反射方向,v为该目标高光泽度VPL的出射方向。
在本发明实施例中,根据每个像素点对应的VPL割集中的目标高光泽度VPL的出射能量、该像素点的BRDF方程、几何项和可视项的乘积,确定每个像素点的能量,从而绘制全局光照场景。可选地,该像素点的BRDF方程、几何项和可视项可以根据现有技术进行计算。
具体地,对于任意像素点,可以通过下面的方法确定该像素点的BRDF方程。该像素点包括高光泽材质和低光泽材质部分。低光泽材质指的是光泽变化平缓的材质,其材质的BRDF方程与出射方向无关,比如Lambertian材质是一种常见的低光泽材质,其BRDF方程见公式(9),其中O表示经过材质表面反射后的出射能量,L表示光线的入射方向,N表示材质的法向,L·N表示两者的夹角,C是表示材质颜色系数。
高光泽材质的BRDF方程则与出射光的方向相关,比如常见的Phong模型的光泽分量表示为公式(10),其中R表示VPL入射方向L在物体表面的镜面反射方向,即R=2(L·N)-L,V为接受能量的视角方向,α为表示光泽强度的一个参数,C是表示材质颜色系数。
应理解,在本发明实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
应理解,根据本发明实施例的用于绘制全局光照场景的装置200可对应于执行本发明实施例中的方法的100,并且用于绘制全局光照场景的装置200中的各个模块的上述和其它操作和/或功能分别为了实现图1和图2中的各个方法的相应流程,为了简洁,在此不再赘述。
因此,本发明实施例的用于绘制全局光照场景的装置,通过确定全局光照场景中每个像素点对应的虚拟点光源VPL的割集,根据该VPL割集中的多个目标高光泽度VPL确定该像素点的能量值,从而能够绘制高光泽材质属性的全局光照场景,使得全局光照场景的绘制应用更广泛,绘制更准确。
如图4所示,本发明实施例还提供了一种用于绘制全局光照场景的装置300,包括处理器310、存储器320和总线系统330。其中,处理器310和存储器320通过总线系统330相连,该存储器320用于存储指令,该处理器310用于执行该存储器320存储的指令。该存储器320存储程序代码,且处理器310可以调用存储器320中存储的程序代码执行以下操作:确定像素点对应的虚拟点光源VPL割集,该VPL割集包括多个目标高光泽度VPL;根据该VPL割集中的该多个目标高光泽度VPL对于该像素点的出射方向,确定该像素点的能量。
因此,本发明实施例的用于绘制全局光照场景的装置,通过确定全局光照场景中每个像素点对应的虚拟点光源VPL的割集,根据该VPL割集中的多个目标高光泽度VPL确定该像素点的能量值,从而能够绘制高光泽材质属性的全局光照场景,使得全局光照场景的绘制应用更广泛,绘制更准确。
应理解,在本发明实施例中,该处理器310可以是中央处理单元(CentralProcessing Unit,简称为“CPU”),该处理器310还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器320可以包括只读存储器和随机存取存储器,并向处理器310提供指令和数据。存储器320的一部分还可以包括非易失性随机存取存储器。例如,存储器320还可以存储设备类型的信息。
该总线系统330除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统330。
在实现过程中,上述方法的各步骤可以通过处理器310中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器320,处理器310读取存储器320中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
可选地,作为一个实施例,处理器310可以调用存储器320中存储的程序代码执行以下操作:根据该多个目标高光泽度VPL对于该像素点的出射方向,确定该多个目标高光泽度VPL的出射能量;根据该多个目标高光泽度VPL的出射能量,确定该像素点的能量。
可选地,作为一个实施例,处理器310可以调用存储器320中存储的程序代码执行以下操作:根据公式(7)确定该多个目标高光泽度VPL中的每个目标高光泽度VPL的出射能量G,其中,μ为该每个目标高光泽度VPL的入射能量,λ为材质的光泽系数,p为该每个目标高光泽度VPL的镜面反射方向,v为该每个目标高光泽度VPL的出射方向。
可选地,作为一个实施例,处理器310可以调用存储器320中存储的程序代码执行以下操作:获取全局光照场景中的多个高光泽度VPL;根据该多个高光泽度VPL的位置,确定多个高光泽度VPL集合,该多个高光泽度VPL集合中的每个高光泽度VPL集合包括该多个高光泽度VPL中的至少一个高光泽度VPL;根据该多个高光泽度VPL集合中的每个高光泽度VPL集合包括的至少一个高光泽度VPL,确定该每个高光泽度VPL集合的代表高光泽度VPL;从该多个高光泽度VPL集合对应的多个代表高光泽度VPL中确定该像素点对应的该多个目标高光泽度VPL。
可选地,作为一个实施例,处理器310可以调用存储器320中存储的程序代码执行以下操作:根据该多个高光泽度VPL的位置,通过二分聚类方法生成二叉树,该二叉树包括m层,其中,第x层至多包括2x-1个高光泽度VPL集合,第m层中每个高光泽度VPL集合至多包括a个高光泽度VPL,a、m和x均为大于1的正整数。
可选地,作为一个实施例,处理器310可以调用存储器320中存储的程序代码执行以下操作:确定该多个高光泽度VPL中的每个高光泽度VPL的六维坐标,其中,前三维分别表示该每个高光泽度VPL的空间位置x、y和z,后三维分别表示该每个高光泽度VPL的球面高斯角的方向x'、y'和z';根据该多个高光泽度VPL中的每个高光泽度VPL的六维坐标,确定该多个高光泽度VPL中任意两个高光泽度VPL之间的距离;根据该任意两个高光泽度VPL之间的距离通过二分聚类方法生成该二叉树。
可选地,作为一个实施例,处理器310可以调用存储器320中存储的程序代码执行以下操作:确定该多个高光泽度VPL集合中第一高光泽度VPL集合包括的多个高光泽度VPL对于该像素点的出射能量最大值;根据该出射能量最大值确定第一阈值;当该第一高光泽度VPL集合的第一代表高光泽度VPL对于该像素点的能量小于或等于该第一阈值时,确定该第一代表高光泽度VPL为目标高光泽度VPL。
可选地,作为一个实施例,处理器310可以调用存储器320中存储的程序代码执行以下操作:确定该多个高光泽度VPL集合中第二高光泽度VPL集合包括的多个高光泽度VPL对于该像素点的能量最大值和最小值;确定该能量最大值与该第二高光泽度VPL集合的第二代表高光泽度VPL对该像素点的能量的差值为第一差值;确定该能量最小值与该第二代表高光泽度VPL对该像素点的能量的差值为第二差值;当该第一差值与该第二差值均小于或等于第二阈值时,确定该第二代表高光泽度VPL为目标高光泽度VPL。
可选地,作为一个实施例,处理器310可以调用存储器320中存储的程序代码执行以下操作:根据公式(2)-(6)确定第三高光泽度VPL集合的第三代表高光泽度VPL,其中,其中,qD为该第三代表高光泽度VPL的三维坐标,N为该第三高光泽度VPL集合中高光泽度VPL的个数,yi为该第三高光泽度VPL集合中第i个高光泽度VPL的位置坐标,nD为该第三代表高光泽度VPL的法向方向,为该第三高光泽度VPL集合中该第i个高光泽度VPL的法向方向,vD为该第三代表高光泽度VPL得到球面高斯角的方向,r为该第三高光泽度VPL集合中多个高光泽度VPL的球面高斯角的方向的平均值,λD为该第三代表高光泽度VPL的光泽度参数,λi为该第三高光泽度VPL集合中该第i个高光泽度VPL的光泽度参数,ID为该第三代表高光泽度VPL的能量强度,Ii为该第三高光泽度VPL集合中该第i个高光泽度VPL的能量强度,||||表示求模运算。
可选地,作为一个实施例,处理器310可以调用存储器320中存储的程序代码执行以下操作:确定该全局光照场景的几何场景和光能来源;根据该几何场景和该光能来源确定该多个高光泽度VPL。
应理解,根据本发明实施例的用于绘制全局光照场景的装置300可对应于本发明实施例中的用于绘制全局光照场景的装置200,并可以对应于执行根据本发明实施例的方法100中的相应主体,并且用于绘制全局光照场景的装置300中的各个模块的上述和其它操作和/或功能分别为了实现图1至图2中的各个方法的相应流程,为了简洁,在此不再赘述。
因此,本发明实施例的用于绘制全局光照场景的装置,通过确定全局光照场景中每个像素点对应的虚拟点光源VPL的割集,根据该VPL割集中的多个目标高光泽度VPL确定该像素点的能量值,从而能够绘制高光泽材质属性的全局光照场景,使得全局光照场景的绘制应用更广泛,绘制更准确。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (20)
1.一种用于绘制全局光照场景的方法,其特征在于,所述方法包括:
确定像素点对应的虚拟点光源VPL割集,所述VPL割集包括多个目标高光泽度VPL;
根据所述VPL割集中的所述多个目标高光泽度VPL对于所述像素点的出射方向,确定所述像素点的能量。
2.根据权利要求1所述的方法,其特征在于,所述根据所述VPL割集中的所述多个目标高光泽度VPL对于所述像素点的出射方向,确定所述像素点的能量,包括:
根据所述多个目标高光泽度VPL对于所述像素点的出射方向,确定所述多个目标高光泽度VPL的出射能量;
根据所述多个目标高光泽度VPL的出射能量,确定所述像素点的能量。
3.根据权利要求2所述的方法,其特征在于,所述根据所述多个目标高光泽度VPL对于所述像素点的出射方向,确定所述多个目标高光泽度VPL的出射能量,包括:
根据公式(1)确定所述多个目标高光泽度VPL中的每个目标高光泽度VPL的出射能量G:
G(v;p,λ,μ)=μeλ(v·p-1) (1)
其中,μ为所述每个目标高光泽度VPL的入射能量,λ为材质的光泽系数,p为所述每个目标高光泽度VPL的镜面反射方向,v为所述每个目标高光泽度VPL的出射方向。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述确定全局光照场景中的像素点对应的虚拟点光源VPL割集,包括:
获取全局光照场景中的多个高光泽度VPL;
根据所述多个高光泽度VPL的位置,确定多个高光泽度VPL集合,所述多个高光泽度VPL集合中的每个高光泽度VPL集合包括所述多个高光泽度VPL中的至少一个高光泽度VPL;
根据所述多个高光泽度VPL集合中的每个高光泽度VPL集合包括的至少一个高光泽度VPL,确定所述每个高光泽度VPL集合的代表高光泽度VPL;
从所述多个高光泽度VPL集合对应的多个代表高光泽度VPL中确定所述像素点对应的所述多个目标高光泽度VPL。
5.根据权利要求4所述的方法,其特征在于,所述根据所述多个高光泽度VPL的位置,确定多个高光泽度VPL集合,包括:
根据所述多个高光泽度VPL的位置,通过二分聚类方法生成二叉树,所述二叉树包括m层,其中,第x层至多包括2x-1个高光泽度VPL集合,第m层中每个高光泽度VPL集合至多包括a个高光泽度VPL,a、m和x均为大于1的正整数。
6.根据权利要求5所述的方法,其特征在于,所述根据所述多个高光泽度VPL的位置,通过二分聚类方法生成二叉树,包括:
确定所述多个高光泽度VPL中的每个高光泽度VPL的六维坐标,其中,前三维分别表示所述每个高光泽度VPL的空间位置x、y和z,后三维分别表示所述每个高光泽度VPL的球面高斯角的方向x'、y'和z';
根据所述多个高光泽度VPL中的每个高光泽度VPL的六维坐标,确定所述多个高光泽度VPL中任意两个高光泽度VPL之间的距离;
根据所述任意两个高光泽度VPL之间的距离通过二分聚类方法生成所述二叉树。
7.根据权利要求4至6中任一项所述的方法,其特征在于,所述从所述多个高光泽度VPL集合对应的多个代表高光泽度VPL中确定所述像素点对应的所述多个目标高光泽度VPL,包括:
确定所述多个高光泽度VPL集合中第一高光泽度VPL集合包括的多个高光泽度VPL对于所述像素点的出射能量最大值;
根据所述出射能量最大值确定第一阈值;
当所述第一高光泽度VPL集合的第一代表高光泽度VPL对于所述像素点的能量小于或等于所述第一阈值时,确定所述第一代表高光泽度VPL为目标高光泽度VPL。
8.根据权利要求4至6中任一项所述的方法,其特征在于,所述从所述多个高光泽度VPL集合对应的多个代表高光泽度VPL中确定所述像素点对应的所述多个目标高光泽度VPL,包括:
确定所述多个高光泽度VPL集合中第二高光泽度VPL集合包括的多个高光泽度VPL对于所述像素点的能量最大值和最小值;
确定所述能量最大值与所述第二高光泽度VPL集合的第二代表高光泽度VPL对所述像素点的能量的差值为第一差值;
确定所述能量最小值与所述第二代表高光泽度VPL对所述像素点的能量的差值为第二差值;
当所述第一差值与所述第二差值均小于或等于第二阈值时,确定所述第二代表高光泽度VPL为目标高光泽度VPL。
9.根据权利要求4至8中任一项所述的方法,其特征在于,所述根据所述多个高光泽度VPL集合中的每个高光泽度VPL集合包括的至少一个高光泽度VPL,确定所述每个高光泽度VPL集合的代表高光泽度VPL,包括:
根据公式(2)-(6)确定第三高光泽度VPL集合的第三代表高光泽度VPL:
其中,qD为所述第三代表高光泽度VPL的三维坐标,N为所述第三高光泽度VPL集合中高光泽度VPL的个数,yi为所述第三高光泽度VPL集合中第i个高光泽度VPL的位置坐标,nD为所述第三代表高光泽度VPL的法向方向,nyi为所述第三高光泽度VPL集合中所述第i个高光泽度VPL的法向方向,vD为所述第三代表高光泽度VPL得到球面高斯角的方向,r为所述第三高光泽度VPL集合中多个高光泽度VPL的球面高斯角的方向的平均值,λD为所述第三代表高光泽度VPL的光泽度参数,λi为所述第三高光泽度VPL集合中所述第i个高光泽度VPL的光泽度参数,ID为所述第三代表高光泽度VPL的能量强度,Ii为所述第三高光泽度VPL集合中所述第i个高光泽度VPL的能量强度,|| ||表示求模运算。
10.根据权利要求4至9中任一项所述的方法,其特征在于,所述获取全局光照场景中的多个高光泽度VPL,包括:
确定所述全局光照场景的几何场景和光能来源;
根据所述几何场景和所述光能来源确定所述多个高光泽度VPL。
11.一种用于绘制全局光照场景的装置,其特征在于,所述装置包括:
第一确定模块,用于确定像素点对应的虚拟点光源VPL割集,所述VPL割集包括多个目标高光泽度VPL;
第二确定模块,用于根据所述VPL割集中的所述多个目标高光泽度VPL对于所述像素点的出射方向,确定所述像素点的能量。
12.根据权利要求11所述的装置,其特征在于,所述第二确定模块具体用于:
根据所述多个目标高光泽度VPL对于所述像素点的出射方向,确定所述多个目标高光泽度VPL的出射能量;
根据所述多个目标高光泽度VPL的出射能量,确定所述像素点的能量。
13.根据权利要求12所述的装置,其特征在于,所述第二确定模块具体用于:
根据公式(1)确定所述多个目标高光泽度VPL中的每个目标高光泽度VPL的出射能量G:
G(v;p,λ,μ)=μeλ(v·p-1) (1)
其中,μ为所述每个目标高光泽度VPL的入射能量,λ为材质的光泽系数,p为所述每个目标高光泽度VPL的镜面反射方向,v为所述每个目标高光泽度VPL的出射方向。
14.根据权利要求11至13中任一项所述的装置,其特征在于,所述第一确定模块具体用于:
获取全局光照场景中的多个高光泽度VPL;
根据所述多个高光泽度VPL的位置,确定多个高光泽度VPL集合,所述多个高光泽度VPL集合中的每个高光泽度VPL集合包括所述多个高光泽度VPL中的至少一个高光泽度VPL;
根据所述多个高光泽度VPL集合中的每个高光泽度VPL集合包括的至少一个高光泽度VPL,确定所述每个高光泽度VPL集合的代表高光泽度VPL;
从所述多个高光泽度VPL集合对应的多个代表高光泽度VPL中确定所述像素点对应的所述多个目标高光泽度VPL。
15.根据权利要求14所述的装置,其特征在于,所述第一确定模块具体用于:
根据所述多个高光泽度VPL的位置,通过二分聚类方法生成二叉树,所述二叉树包括m层,其中,第x层至多包括2x-1个高光泽度VPL集合,第m层中每个高光泽度VPL集合至多包括a个高光泽度VPL,a、m和x均为大于1的正整数。
16.根据权利要求15所述的装置,其特征在于,所述第一确定模块具体用于:
确定所述多个高光泽度VPL中的每个高光泽度VPL的六维坐标,其中,前三维分别表示所述每个高光泽度VPL的空间位置x、y和z,后三维分别表示所述每个高光泽度VPL的球面高斯角的方向x'、y'和z';
根据所述多个高光泽度VPL中的每个高光泽度VPL的六维坐标,确定所述多个高光泽度VPL中任意两个高光泽度VPL之间的距离;
根据所述任意两个高光泽度VPL之间的距离通过二分聚类方法生成所述二叉树。
17.根据权利要求14至16中任一项所述的装置,其特征在于,所述第一确定模块具体用于:
确定所述多个高光泽度VPL集合中第一高光泽度VPL集合包括的多个高光泽度VPL对于所述像素点的出射能量最大值;
根据所述出射能量最大值确定第一阈值;
当所述第一高光泽度VPL集合的第一代表高光泽度VPL对于所述像素点的能量小于或等于所述第一阈值时,确定所述第一代表高光泽度VPL为目标高光泽度VPL。
18.根据权利要求14至16中任一项所述的装置,其特征在于,所述第一确定模块具体用于:
确定所述多个高光泽度VPL集合中第二高光泽度VPL集合包括的多个高光泽度VPL对于所述像素点的能量最大值和最小值;
确定所述能量最大值与所述第二高光泽度VPL集合的第二代表高光泽度VPL对所述像素点的能量的差值为第一差值;
确定所述能量最小值与所述第二代表高光泽度VPL对所述像素点的能量的差值为第二差值;
当所述第一差值与所述第二差值均小于或等于第二阈值时,确定所述第二代表高光泽度VPL为目标高光泽度VPL。
19.根据权利要求14至18中任一项所述的装置,其特征在于,所述第一确定模块具体用于:
根据公式(2)-(6)确定第三高光泽度VPL集合的第三代表高光泽度VPL:
其中,qD为所述第三代表高光泽度VPL的三维坐标,N为所述第三高光泽度VPL集合中高光泽度VPL的个数,yi为所述第三高光泽度VPL集合中第i个高光泽度VPL的位置坐标,nD为所述第三代表高光泽度VPL的法向方向,nyi为所述第三高光泽度VPL集合中所述第i个高光泽度VPL的法向方向,vD为所述第三代表高光泽度VPL得到球面高斯角的方向,r为所述第三高光泽度VPL集合中多个高光泽度VPL的球面高斯角的方向的平均值,λD为所述第三代表高光泽度VPL的光泽度参数,λi为所述第三高光泽度VPL集合中所述第i个高光泽度VPL的光泽度参数,ID为所述第三代表高光泽度VPL的能量强度,Ii为所述第三高光泽度VPL集合中所述第i个高光泽度VPL的能量强度,|| ||表示求模运算。
20.根据权利要求14至19中任一项所述的装置,其特征在于,所述第一确定模块具体用于:
确定所述全局光照场景的几何场景和光能来源;
根据所述几何场景和所述光能来源确定所述多个高光泽度VPL。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510072569.3A CN105989624A (zh) | 2015-02-11 | 2015-02-11 | 用于绘制全局光照场景的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510072569.3A CN105989624A (zh) | 2015-02-11 | 2015-02-11 | 用于绘制全局光照场景的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105989624A true CN105989624A (zh) | 2016-10-05 |
Family
ID=57041800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510072569.3A Withdrawn CN105989624A (zh) | 2015-02-11 | 2015-02-11 | 用于绘制全局光照场景的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105989624A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106504315A (zh) * | 2016-11-17 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 模拟全局光照的方法和装置 |
CN106780707A (zh) * | 2016-11-17 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 模拟场景中全局光照的方法和装置 |
CN113537194A (zh) * | 2021-07-15 | 2021-10-22 | Oppo广东移动通信有限公司 | 光照估计方法、光照估计装置、存储介质与电子设备 |
WO2023185317A1 (zh) * | 2022-04-02 | 2023-10-05 | 腾讯科技(深圳)有限公司 | 虚拟地形的光照渲染方法、装置、介质、设备和程序产品 |
-
2015
- 2015-02-11 CN CN201510072569.3A patent/CN105989624A/zh not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106504315A (zh) * | 2016-11-17 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 模拟全局光照的方法和装置 |
CN106780707A (zh) * | 2016-11-17 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 模拟场景中全局光照的方法和装置 |
CN106504315B (zh) * | 2016-11-17 | 2018-09-07 | 腾讯科技(深圳)有限公司 | 模拟全局光照的方法和装置 |
CN106780707B (zh) * | 2016-11-17 | 2019-08-06 | 腾讯科技(深圳)有限公司 | 模拟场景中全局光照的方法和装置 |
CN113537194A (zh) * | 2021-07-15 | 2021-10-22 | Oppo广东移动通信有限公司 | 光照估计方法、光照估计装置、存储介质与电子设备 |
WO2023185317A1 (zh) * | 2022-04-02 | 2023-10-05 | 腾讯科技(深圳)有限公司 | 虚拟地形的光照渲染方法、装置、介质、设备和程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11328472B2 (en) | Watertight ray triangle intersection | |
US11928772B2 (en) | Method for forward progress and programmable timeouts of tree traversal mechanisms in hardware | |
US11966737B2 (en) | Robust, efficient multiprocessor-coprocessor interface | |
US11804000B2 (en) | Query-specific behavioral modification of tree traversal | |
US11790595B2 (en) | Method for handling of out-of-order opaque and alpha ray/primitive intersections | |
US11200725B2 (en) | Method for continued bounding volume hierarchy traversal on intersection without shader intervention | |
US7773087B2 (en) | Dynamically configuring and selecting multiple ray tracing intersection methods | |
US8004518B2 (en) | Combined spatial index for static and dynamic objects within a three-dimensional scene | |
US10810785B2 (en) | Method for forward progress tree traversal mechanisms in hardware | |
US8018453B2 (en) | Deferred acceleration data structure optimization for improved performance | |
CN110390644A (zh) | 通过平滑锯齿边缘向计算机生成的图像添加更大的真实感 | |
US8339398B2 (en) | Integrated acceleration data structure for physics and ray tracing workload | |
CN105989624A (zh) | 用于绘制全局光照场景的方法和装置 | |
US20240211255A1 (en) | Robust, efficient multiprocessor-coprocessor interface | |
Novello et al. | Riemannian Ray Tracing | |
Yan et al. | Neural Rendering and Its Hardware Acceleration: A Review | |
Usoh | Parallel process techniques for 3D model-based vision | |
Suzuki et al. | A fast Ray-tracing using bounding spheres and frustum Rays for dynamic scene rendering | |
Goradia et al. | Fmm-based illumination maps for point models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20161005 |
|
WW01 | Invention patent application withdrawn after publication |