CN105335995A - 一种多光源全局光照绘制方法及装置 - Google Patents
一种多光源全局光照绘制方法及装置 Download PDFInfo
- Publication number
- CN105335995A CN105335995A CN201510715855.7A CN201510715855A CN105335995A CN 105335995 A CN105335995 A CN 105335995A CN 201510715855 A CN201510715855 A CN 201510715855A CN 105335995 A CN105335995 A CN 105335995A
- Authority
- CN
- China
- Prior art keywords
- transfer matrix
- pixel
- light transfer
- sub
- matrix
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
本发明实施例公开了一种多光源全局光照绘制方法及装置。本发明实施例方法包括:对光传递矩阵进行像素聚类得到多个子光传递矩阵;分别计算多个子光传递矩阵中所有像素的解析部分值,随机采样目标子光传递矩阵中预设比例像素,使用光线追踪的方法计算预设比例像素中每个像素的可见项;对目标子光传递矩阵其余像素使用K近邻法估算各像素的可见项;将每个子光传递矩阵中的每个像素的解析部分值和可见项相乘得到带误差的子光传递矩阵;通过矩阵分离算法去除每个得到的带误差的子光传递矩阵中的稀疏误差得到低秩子光传递矩阵,并利用所述低秩子光传递矩阵进行全局光照的绘制。本发明实施例提高了多光源全局光照绘制的效率,减少子光传递矩阵的误差。
Description
技术领域
本发明涉及光照绘制领域,特别涉及一种多光源全局光照绘制方法及装置。
背景技术
全局光照是计算机图形学中非常重要的研究领域,通过对大自然中光照情况进行模拟,可以捕捉真实环境中光多次传播(折射、反射)所产生的软影、间接折射等光照效果,这些效果能大大增强渲染结果的真实感。
在全局光照计算中,绘制方程是进行真实感绘制的基础,它描述的是场景中的点光源到摄像机的能量传递过程。如图1所示,假设能量从光源xk到摄像机xo经过k次折射,xk为其中一个折射点,那么从点xk到xk-1传递的能量可由xk的出射能量、xk-1的双向反射分布函数(BidirectionalReflectanceDistributionFunction,BRDF是一个与材质相关的方程,描述了能量从入射方向输入,经材质影响后,从出射方向输出的能量大小)、几何项(Geometryterm,描述两端点间的空间位置关系)、可视项(Visibilityterm,描述两点间是否有遮挡)相乘得到。根据上述计算方法,可依次计算从xk-1到xk-2,再从xk-2到xk-3,直到x0,整个路径上的光能传递,最终得到光源xk对摄像机感应点x0(即图像中一个像素)的贡献值。
人们提出了很多不同的方法来进行绘制方程计算。大量点光源(Many-light)方法是其中一类重要的全局光照技术,它在场景中生成大量虚拟点光源(VirtualPointLight,VPL),通过分别计算各视角采样点被这些虚拟点光源照亮的程度,来获得全局光照效果。这种技术通过把光复杂的多次传播问题简化为采样点被虚拟点光源直接照亮问题,为全局光照计算提供了一个统一的数学框架,并且拥有很高的灵活性,可以根据实际需要调节算法的复杂度。
Hanson等人提出了使用矩阵的形式来解决大量点光源绘制问题,把每一个虚拟点光源当成矩阵的一列,每个要绘制的像素作为矩阵的一行,生成的矩阵称为光传递矩阵,则可以把大量点光源的绘制问题作为矩阵填充问题来解决。如图2所示,光传递矩阵中的每一个元素对应该列的虚拟点光源对该行的像素的光照贡献,计算出矩阵元素后每一行加和就得到了像素的最终亮度。但是现有的技术在填充光传递矩阵时仍然需要准确地计算每一个元素的值。为了进一步加速计算,我们提出了使用矩阵分离的方法,通过稀疏地采样计算一小部分元素,通过数值计算的方法来填充剩下未知的元素。
上述现有算法仍需要密集地计算光传递矩阵中的每一个元素,当场景中的虚拟点光源和像素各自有成千上万时,整个矩阵的计算非常耗时。
发明内容
本发明实施例提供了一种多光源全局光照绘制方法及装置,提高了多光源全局光照绘制的效率,减少子光传递矩阵的误差。
本发明实施例第一方面提供了一种多光源全局光照绘制方法,包括:
对预先获取的光传递矩阵进行像素聚类,得到多个子光传递矩阵;
分别计算所述多个子光传递矩阵中所有像素的解析部分值,所述解析部分值为双向反射分布函数RBDF和几何项的乘积;
分别以所述多个子光传递矩阵中每个子光传递矩阵为目标子光传递矩阵,随机采样所述目标子光传递矩阵中预设比例像素,使用光线追踪的方法计算所述预设比例像素中每个像素的可见项;对所述目标子光传递矩阵中除所述预设比例之外的像素,使用K近邻法估算各像素的可见项,其中,所述预设比例大于等于5%且小于等于15%;
将所述多个子光传递矩阵中,每个子光传递矩阵中的每个像素的解析部分值和所述每个子光传递矩阵中的每个像素的可见项相乘,得到带误差的子光传递矩阵;
通过矩阵分离算法去除每个得到的带误差的子光传递矩阵中的稀疏误差,得到低秩子光传递矩阵,并利用所述低秩子光传递矩阵进行全局光照的绘制。
可选的,在对预先获取的光传递矩阵进行像素聚类,得到多个子光传递矩阵之前,所述方法还包括:
利用即时光传递方法生成多个虚拟点光源;
把每一个虚拟点光源当成矩阵的一列,每个要绘制的像素作为矩阵的一行,生成光传递矩阵。
可选的,所述对预先获取的光传递矩阵进行像素聚类,得到多个子光传递矩阵,包括:
把所述光传递矩阵的每个像素点投影成一个6维向量,其中,前三维是每个像素点的空间位置坐标,后三维是每个像素点所在表面的法向方向;
利用2均值聚类方法对所述光传递矩阵中的像素点进行二分聚类,直到经不断二分聚类得到的簇刚好不大于预设数值为止,得到若干簇像素点;
将所述若干簇像素点中每一簇像素点与所述多个虚拟点光源组成一个子光传递矩阵,其中,每个子光传递矩阵的行对应簇中的一个像素点,每个子光传递矩阵的列对应一个虚拟点光源。
可选的,所述利用2均值聚类方法对所述光传递矩阵中的像素点进行二分聚类,直到经不断二分聚类得到的簇刚好不大于预设数值为止,得到若干簇像素点,包括:
把所述光传递矩阵中的所有像素点放在一个簇中,然后使用2均值聚类方法进行二分聚类,分成两簇,每一簇继续使用二分聚类再生产新的两簇,直到不断二分聚类得到的簇刚好不大于预设数值为止,得到若干簇像素点。
可选的,所述预设比例为10%。
本发明实施例第一方面提供了一种多光源全局光照绘制装置,包括:
聚类单元,用于对预先获取的光传递矩阵进行像素聚类,得到多个子光传递矩阵;
解析部分计算单元,用于分别计算所述多个子光传递矩阵中所有像素的解析部分值,所述解析部分值为RBDF和几何项的乘积;
可见项计算单元,用于分别以所述多个子光传递矩阵中每个子光传递矩阵为目标子光传递矩阵,随机采样所述目标子光传递矩阵中预设比例像素,使用光线追踪的方法计算所述预设比例像素中每个像素的可见项;对所述目标子光传递矩阵中除所述预设比例之外的像素,使用K近邻法估算各像素的可见项,其中,所述预设比例大于等于5%且小于等于15%;
处理单元,用于将所述多个子光传递矩阵中,每个子光传递矩阵中的每个像素的解析部分值和所述每个子光传递矩阵中的每个像素的可见项相乘,得到带误差的子光传递矩阵;通过矩阵分离算法去除每个得到的带误差的子光传递矩阵中的稀疏误差,得到低秩子光传递矩阵;
绘制单元,用于利用所述低秩子光传递矩阵进行全局光照的绘制。
可选的,所述装置还包括:
光传递矩阵生成单元,用于利用即时光传递方法生成多个虚拟点光源;把每一个虚拟点光源当成矩阵的一列,每个要绘制的像素作为矩阵的一行,生成光传递矩阵。
可选的,所述聚类单元具体用于:
把所述光传递矩阵的每个像素点投影成一个6维向量,其中,前三维是每个像素点的空间位置坐标,后三维是每个像素点所在表面的法向方向;
利用2均值聚类方法对所述光传递矩阵中的像素点进行二分聚类,直到经不断二分聚类得到的簇刚好不大于预设数值为止,得到若干簇像素点;
将所述若干簇像素点中每一簇像素点与所述多个虚拟点光源组成一个子光传递矩阵,其中,每个子光传递矩阵的行对应簇中的一个像素点,每个子光传递矩阵的列对应一个虚拟点光源。
可选的,所述聚类单元具体用于把所述光传递矩阵中的所有像素点放在一个簇中,然后使用2均值聚类方法进行二分聚类,分成两簇,每一簇继续使用二分聚类再生产新的两簇,直到不断二分聚类得到的簇刚好不大于预设数值为止,得到若干簇像素点。
可选的,所述预设比例为10%。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中使用非常少的采样样本以矩阵分离算法填充光传递矩阵,减少光传递矩阵绘制的计算复杂度,提高了多光源全局光照绘制的效率,并使用K近邻算法填充未知元素的可见项,利用局部性减少子光传递矩阵的误差。
附图说明
图1是场景中的点光源到摄像机的能量传递过程示意图;
图2是光传递矩阵的示意图;
图3是本发明实施例中多光源全局光照绘制方法的一个实施例示意图;
图4是本发明实施例中多光源全局光照绘制装置的一个实施例示意图;
图5是本发明实施例中多光源全局光照绘制装置的一个实施例示意图。
具体实施方式
本发明实施例提供了一种多光源全局光照绘制方法及装置,提高了多光源全局光照绘制的效率,减少子光传递矩阵的误差。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面首先介绍本发明实施例中多光源全局光照绘制方法的实施例,所述多光源全局光照绘制方法的执行主体为多光源全局光照绘制装置,该多光源全局光照绘制装置可以是安装在终端中,所述终端可以是计算机、平板等。
请参阅图3,本发明实施例中多光源全局光照绘制方法的一个实施例包括:
301、对预先获取的光传递矩阵进行像素聚类,得到多个子光传递矩阵;
本发明实施例中,在对预先获取的光传递矩阵进行像素聚类,得到多个子光传递矩阵之前,所述方法还包括:
利用即时光传递方法生成多个虚拟点光源,具体的,例如由光源随机生成一些光线,当这些光线与场景中的几何场景有交点时,计算光线在这些几何表面的入射及出射能量,生成虚拟点光源。
把每一个虚拟点光源当成矩阵的一列,每个要绘制的像素作为矩阵的一行,生成光传递矩阵。
可选的,所述对预先获取的光传递矩阵进行像素聚类,得到多个子光传递矩阵,包括:
把所述光传递矩阵的每个像素点投影成一个6维向量,其中,前三维是每个像素点的空间位置坐标,后三维是每个像素点所在表面的法向方向;
利用2均值聚类方法对所述光传递矩阵中的像素点进行二分聚类,直到经不断二分聚类得到的簇刚好不大于预设数值为止,得到若干簇像素点;
将所述若干簇像素点中每一簇像素点与所述多个虚拟点光源组成一个子光传递矩阵,其中,每个子光传递矩阵的行对应簇中的一个像素点,每个子光传递矩阵的列对应一个虚拟点光源。
其中,K均值聚类方法是把n个点(可以是样本的一次观察或一个实例)划分到k个聚类中,使得每个点都属于离他最近的均值(此即聚类中心)对应的聚类,以之作为聚类的标准,因此,此处2均值聚类方法即将n个点划分到2个聚类中,使得每个点都属于离他最近的均值(此即聚类中心)对应的聚类。
本发明实施例中,2均值聚类方法采用的距离函数为||V2-V1||,V1、V2为所述光传递矩阵中任意两个不同的像素点的6维向量。
可选的,所述利用K均值聚类方法对所述光传递矩阵中的像素点进行二分聚类,直到经不断二分聚类得到的簇刚好不大于预设数值为止,得到若干簇像素点,包括:
把所述光传递矩阵中的所有像素点放在一个簇中,然后使用K均值聚类方法进行二分聚类,分成两簇,每一簇继续使用二分聚类再生产新的两簇,直到不断二分聚类得到的簇刚好不大于预设数值为止,得到若干簇像素点。
302、分别计算所述多个子光传递矩阵中所有像素的解析部分值;
其中,解析部分值为BRDF项和几何项的乘积,由于光传递矩阵中元素的值由BRDF、几何项和可见项组成,其中,BRDF和几何项可以由现有的计算方式得到,例如子光举证的RBDF的计算可以采用如下公式计算:
其中,ρ(θi,φi,θr,φr)为子光矩阵的RBDF,L(θr,φr)为反射光能,为E(θr,φr)为入射光能,θr为反射光线的仰角,θi为入射光的仰角,φi为反射光线的方位角,φr为入射光的方位角。
303、分别以所述多个子光传递矩阵中每个子光传递矩阵为目标子光传递矩阵,随机采样所述目标子光传递矩阵中预设比例像素,使用光线追踪的方法计算所述预设比例像素中每个像素的可见项;对所述目标子光传递矩阵中除所述预设比例之外的像素,使用K近邻法估算各像素的可见项;
其中,所述预设比例大于等于5%且小于等于15%;预设比例可以根据绘制精度的要求定义,以适应不同的应用需求,采样比例低,速度快,图像绘制质量有损失;采样比例高,速度慢,图像绘制质量更好,作为适中,预设比例设为10%时,可以达到计算速度和图像质量的平衡。
本发明实施例中,对每个目标子光传递矩阵,随机采样其中小部分元素(例如10%),该采样的小部分元素被称为已知样本,剩余的大部分元素被称为未知元素,先使用光线追踪方法计算已知样本的可见项,再使用K近邻方法估计剩余未知元素的可见项。
由上可知,光传递矩阵中元素的值由BRDF、几何项和可见项组成,其中,可见项的计算需要通过光线追踪来采样,速度非常慢。为了加速光传递矩阵中元素可见项的计算过程,本方案只对随机采样的小部分已知样本进行光线追踪,得到已知样本的可见项之后,再使用K近邻方法猜测剩余未知元素的可见项,矩阵元素的可见项表示了元素对应的像素和虚拟点光源之间是否有遮挡,如果没有遮挡,值为1,否则为0。由于几何场景具有局部性,步骤301中把位置相近的像素点聚类到了同一个子光传递矩阵中,因此子光传递矩阵中的每一列都是一个虚拟点光源对局部的一簇像素的光照。例如,对于该列中每一个未知元素,我们使用K近邻的方法,找3个该列的已知样本来估计该未知元素的可见项,要求找到的3个已知样本对应的像素点为与该未知元素的欧氏距离最接近的3个,然后该未知元素的可见项就随机地取这3个已知样本中的一个(为0或者1)。
本步骤中,使用K近邻算法填充未知元素的可见项,利用局部性减少子光传递矩阵的误差。
其中,K近邻算法:选取目标对象的k个最近邻居(k为正整数,通常较小),目标对象的值由k个邻居中最常见的值决定,若k=1,则目标对象的值直接由最近的一个邻居赋予。
光线追踪的方法:光线追踪模拟物理光在空间中的传播(考虑反射和折射),从投影平面的一个像素点发出一条或多条光线进入场景,遇到物体表面就提取表面的材质信息,沿反射光线继续前进(若是透明物体,再分出一条折射光线),这样递归下去直到光线到达光源、场景之外(环境)或光亮度减小到规定的临界值。到达光源。则该像素点在对应光源下可见,到达场景外或光亮度减小到规定的临界值,则该像素点不可见。
304、将所述多个子光传递矩阵中,每个子光传递矩阵中的每个像素的解析部分值和所述每个子光传递矩阵中的每个像素的可见项相乘,得到带误差的子光传递矩阵;
305、通过矩阵分离算法去除每个得到的带误差的子光传递矩阵中的稀疏误差,得到低秩子光传递矩阵,并利用所述低秩子光传递矩阵进行全局光照的绘制。
由于在步骤303中生成的子光传递矩阵中含有使用K近邻算法生成的可见项,虽然这些可见项是使用局部信息生成的,大部分准确性很高,但是仍然含有稀疏的误差,因此使用的矩阵分离方法将这些误差分离开来。
矩阵分离技术可以分离低秩矩阵中的稀疏误差,它的目标函数为:
s.t.PΩ(L+S)=PΩ(D)
其中L和S是输出。L是一个低秩矩阵,S为稀疏的误差矩阵,D为输入的带误差的矩阵,Ω为一个坐标集,标示了D中哪些元素是已知的,PΩ表示只对Ω标示的元素起作用,||L||*为L矩阵的原子范式(nuclearnorm),最小化原子范式为最小化秩的近似,λ是一个可控的参数。||L||*表示矩阵L的所有奇异值之和,||S||1表示对矩阵S中所有项的绝对值之和。该方法输入一个带误差的输入矩阵D,可以输出L和S两个矩阵。由于光传递矩阵通常是低秩的,所以我们可以使用很少的元素来生成一个带误差的子光传递矩阵,再使用矩阵分离技术来处理这个带误差的子光传递矩阵,分离误差后得到真实的子光传递矩阵的近似。
本发明实施例中使用非常少的采样样本以矩阵分离算法填充光传递矩阵,减少光传递矩阵绘制的计算复杂度,提高了多光源全局光照绘制的效率,并使用K近邻算法填充未知元素的可见项,利用局部性减少子光传递矩阵的误差。
下面介绍本发明实施例中多光源全局光照绘制装置400的实施例。
请参阅图4,本发明实施例中多光源全局光照绘制装置的一个实施例包括:
聚类单元401,用于对预先获取的光传递矩阵进行像素聚类,得到多个子光传递矩阵;
解析部分计算单元402,用于分别计算所述多个子光传递矩阵中所有像素的解析部分值,所述解析部分值为RBDF和几何项的乘积;
可见项计算单元403,用于分别以所述多个子光传递矩阵中每个子光传递矩阵为目标子光传递矩阵,随机采样所述目标子光传递矩阵中预设比例像素,使用光线追踪的方法计算所述预设比例像素中每个像素的可见项;对所述目标子光传递矩阵中除所述预设比例之外的像素,使用K近邻法估算各像素的可见项,其中,所述预设比例大于等于5%且小于等于15%;
处理单元404,用于将所述多个子光传递矩阵中,每个子光传递矩阵中的每个像素的解析部分值和所述每个子光传递矩阵中的每个像素的可见项相乘,得到带误差的子光传递矩阵;通过矩阵分离算法去除每个得到的带误差的子光传递矩阵中的稀疏误差,得到低秩子光传递矩阵;
绘制单元405,用于利用所述低秩子光传递矩阵进行全局光照的绘制。
本发明实施例中使用非常少的采样样本以矩阵分离算法填充光传递矩阵,减少光传递矩阵绘制的计算复杂度,提高了多光源全局光照绘制的效率,并使用K近邻算法填充未知元素的可见项,利用局部性减少子光传递矩阵的误差。
可选的,所述装置还包括:
光传递矩阵生成单元,用于利用即时光传递方法生成多个虚拟点光源;把每一个虚拟点光源当成矩阵的一列,每个要绘制的像素作为矩阵的一行,生成光传递矩阵。
可选的,所述聚类单元401具体用于:
把所述光传递矩阵的每个像素点投影成一个6维向量,其中,前三维是每个像素点的空间位置坐标,后三维是每个像素点所在表面的法向方向;
利用2均值聚类方法对所述光传递矩阵中的像素点进行二分聚类,直到经不断二分聚类得到的簇刚好不大于预设数值为止,得到若干簇像素点;
将所述若干簇像素点中每一簇像素点与所述多个虚拟点光源组成一个子光传递矩阵,其中,每个子光传递矩阵的行对应簇中的一个像素点,每个子光传递矩阵的列对应一个虚拟点光源。
可选的,所述聚类单元401具体用于把所述光传递矩阵中的所有像素点放在一个簇中,然后使用2均值聚类方法进行二分聚类,分成两簇,每一簇继续使用二分聚类再生产新的两簇,直到不断二分聚类得到的簇刚好不大于预设数值为止,得到若干簇像素点。
可选的,所述预设比例为10%。
上面从单元化功能实体的角度对本发明实施例中的多光源全局光照绘制装置进行了描述,下面从硬件处理的角度对本发明实施例中的多光源全局光照绘制装置进行描述,请参阅图5,本发明实施例中的多光源全局光照绘制装置500包括:
输入装置501、输出装置502、处理器503和存储器504(其中处理器503的数量可以一个或多个,图5中以一个处理器503为例)。在本发明的一些实施例中,输入装置501、输出装置502、处理器503和存储器504可通过总线或其它方式连接,其中,图5中以通过总线连接为例。
其中,通过调用存储器504存储的操作指令,处理器503用于执行如下步骤:
本发明实施例涉及的终端可以具有比图5所示出的更多或更少的部件,可以组合两个或更多个部件,或者可以具有不同的部件配置或设置,各个部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件或硬件和软件的组合实现。
所述处理器501用于执行如下操作:
对预先获取的光传递矩阵进行像素聚类,得到多个子光传递矩阵;
分别计算所述多个子光传递矩阵中所有像素的解析部分值,所述解析部分值为双向反射分布函数RBDF和几何项的乘积;
分别以所述多个子光传递矩阵中每个子光传递矩阵为目标子光传递矩阵,随机采样所述目标子光传递矩阵中预设比例像素,使用光线追踪的方法计算所述预设比例像素中每个像素的可见项;对所述目标子光传递矩阵中除所述预设比例之外的像素,使用K近邻法估算各像素的可见项,其中,所述预设比例大于等于5%且小于等于15%;
将所述多个子光传递矩阵中,每个子光传递矩阵中的每个像素的解析部分值和所述每个子光传递矩阵中的每个像素的可见项相乘,得到带误差的子光传递矩阵;
通过矩阵分离算法去除每个得到的带误差的子光传递矩阵中的稀疏误差,得到低秩子光传递矩阵,并利用所述低秩子光传递矩阵进行全局光照的绘制。
可选的,在对预先获取的光传递矩阵进行像素聚类,得到多个子光传递矩阵之前,所述处理器501用于执行如下操作:
利用即时光传递方法生成多个虚拟点光源;
把每一个虚拟点光源当成矩阵的一列,每个要绘制的像素作为矩阵的一行,生成光传递矩阵。
可选的,所述处理器501具体用于执行如下操作:
把所述光传递矩阵的每个像素点投影成一个6维向量,其中,前三维是每个像素点的空间位置坐标,后三维是每个像素点所在表面的法向方向;
利用2均值聚类方法对所述光传递矩阵中的像素点进行二分聚类,直到经不断二分聚类得到的簇刚好不大于预设数值为止,得到若干簇像素点;
将所述若干簇像素点中每一簇像素点与所述多个虚拟点光源组成一个子光传递矩阵,其中,每个子光传递矩阵的行对应簇中的一个像素点,每个子光传递矩阵的列对应一个虚拟点光源。
可选的,所述处理器501具体用于执行如下操作:
把所述光传递矩阵中的所有像素点放在一个簇中,然后使用2均值聚类方法进行二分聚类,分成两簇,每一簇继续使用二分聚类再生产新的两簇,直到不断二分聚类得到的簇刚好不大于预设数值为止,得到若干簇像素点。
可选的,所述预设比例为10%。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种多光源全局光照绘制方法,其特征在于,包括:
对预先获取的光传递矩阵进行像素聚类,得到多个子光传递矩阵;
分别计算所述多个子光传递矩阵中所有像素的解析部分值,所述解析部分值为双向反射分布函数RBDF和几何项的乘积;
分别以所述多个子光传递矩阵中每个子光传递矩阵为目标子光传递矩阵,随机采样所述目标子光传递矩阵中预设比例像素,使用光线追踪的方法计算所述预设比例像素中每个像素的可见项;对所述目标子光传递矩阵中除所述预设比例之外的像素,使用K近邻法估算各像素的可见项,其中,所述预设比例大于等于5%且小于等于15%;
将所述多个子光传递矩阵中,每个子光传递矩阵中的每个像素的解析部分值和所述每个子光传递矩阵中的每个像素的可见项相乘,得到带误差的子光传递矩阵;
通过矩阵分离算法去除每个得到的带误差的子光传递矩阵中的稀疏误差,得到低秩子光传递矩阵,并利用所述低秩子光传递矩阵进行全局光照的绘制。
2.根据权利要求1所述的方法,其特征在于,在对预先获取的光传递矩阵进行像素聚类,得到多个子光传递矩阵之前,所述方法还包括:
利用即时光传递方法生成多个虚拟点光源;
把每一个虚拟点光源当成矩阵的一列,每个要绘制的像素作为矩阵的一行,生成光传递矩阵。
3.根据权利要求1或2所述的方法,其特征在于,所述对预先获取的光传递矩阵进行像素聚类,得到多个子光传递矩阵,包括:
把所述光传递矩阵的每个像素点投影成一个6维向量,其中,前三维是每个像素点的空间位置坐标,后三维是每个像素点所在表面的法向方向;
利用2均值聚类方法对所述光传递矩阵中的像素点进行二分聚类,直到经不断二分聚类得到的簇刚好不大于预设数值为止,得到若干簇像素点;
将所述若干簇像素点中每一簇像素点与所述多个虚拟点光源组成一个子光传递矩阵,其中,每个子光传递矩阵的行对应簇中的一个像素点,每个子光传递矩阵的列对应一个虚拟点光源。
4.根据权利要求3所述的方法,其特征在于,
所述利用2均值聚类方法对所述光传递矩阵中的像素点进行二分聚类,直到经不断二分聚类得到的簇刚好不大于预设数值为止,得到若干簇像素点,包括:
把所述光传递矩阵中的所有像素点放在一个簇中,然后使用2均值聚类方法进行二分聚类,分成两簇,每一簇继续使用二分聚类再生产新的两簇,直到不断二分聚类得到的簇刚好不大于预设数值为止,得到若干簇像素点。
5.根据权利要求1至4中任一所述的方法,其特征在于,
所述预设比例为10%。
6.一种多光源全局光照绘制装置,其特征在于,包括:
聚类单元,用于对预先获取的光传递矩阵进行像素聚类,得到多个子光传递矩阵;
解析部分计算单元,用于分别计算所述多个子光传递矩阵中所有像素的解析部分值,所述解析部分值为RBDF和几何项的乘积;
可见项计算单元,用于分别以所述多个子光传递矩阵中每个子光传递矩阵为目标子光传递矩阵,随机采样所述目标子光传递矩阵中预设比例像素,使用光线追踪的方法计算所述预设比例像素中每个像素的可见项;对所述目标子光传递矩阵中除所述预设比例之外的像素,使用K近邻法估算各像素的可见项,其中,所述预设比例大于等于5%且小于等于15%;
处理单元,用于将所述多个子光传递矩阵中,每个子光传递矩阵中的每个像素的解析部分值和所述每个子光传递矩阵中的每个像素的可见项相乘,得到带误差的子光传递矩阵;通过矩阵分离算法去除每个得到的带误差的子光传递矩阵中的稀疏误差,得到低秩子光传递矩阵;
绘制单元,用于利用所述低秩子光传递矩阵进行全局光照的绘制。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
光传递矩阵生成单元,用于利用即时光传递方法生成多个虚拟点光源;把每一个虚拟点光源当成矩阵的一列,每个要绘制的像素作为矩阵的一行,生成光传递矩阵。
8.根据权利要求6或7所述的装置,其特征在于,
所述聚类单元具体用于:
把所述光传递矩阵的每个像素点投影成一个6维向量,其中,前三维是每个像素点的空间位置坐标,后三维是每个像素点所在表面的法向方向;
利用2均值聚类方法对所述光传递矩阵中的像素点进行二分聚类,直到经不断二分聚类得到的簇刚好不大于预设数值为止,得到若干簇像素点;
将所述若干簇像素点中每一簇像素点与所述多个虚拟点光源组成一个子光传递矩阵,其中,每个子光传递矩阵的行对应簇中的一个像素点,每个子光传递矩阵的列对应一个虚拟点光源。
9.根据权利要求8所述的装置,其特征在于,
所述聚类单元具体用于把所述光传递矩阵中的所有像素点放在一个簇中,然后使用2均值聚类方法进行二分聚类,分成两簇,每一簇继续使用二分聚类再生产新的两簇,直到不断二分聚类得到的簇刚好不大于预设数值为止,得到若干簇像素点。
10.根据权利要求6至9所述的装置,其特征在于,
所述预设比例为10%。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510715855.7A CN105335995B (zh) | 2015-10-28 | 2015-10-28 | 一种多光源全局光照绘制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510715855.7A CN105335995B (zh) | 2015-10-28 | 2015-10-28 | 一种多光源全局光照绘制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105335995A true CN105335995A (zh) | 2016-02-17 |
CN105335995B CN105335995B (zh) | 2018-06-05 |
Family
ID=55286497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510715855.7A Active CN105335995B (zh) | 2015-10-28 | 2015-10-28 | 一种多光源全局光照绘制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105335995B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103971397B (zh) * | 2014-04-16 | 2016-09-28 | 浙江大学 | 基于虚拟点光源和稀疏矩阵还原的全局光照绘制方法 |
CN107452048A (zh) * | 2016-05-30 | 2017-12-08 | 网易(杭州)网络有限公司 | 全局光照的计算方法及装置 |
CN107909639A (zh) * | 2017-11-10 | 2018-04-13 | 长春理工大学 | 根据位置自适应控制光源可见性复用范围的3d场景绘制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130120986A1 (en) * | 2011-11-12 | 2013-05-16 | Raydex Technology, Inc. | High efficiency directional light source with concentrated light output |
CN103971397A (zh) * | 2014-04-16 | 2014-08-06 | 浙江大学 | 基于虚拟点光源和稀疏矩阵还原的全局光照绘制方法 |
CN104008563A (zh) * | 2014-06-07 | 2014-08-27 | 长春理工大学 | 利用虚拟点光源实现动画三维场景的全局光照绘制的方法 |
CN104658033A (zh) * | 2013-11-18 | 2015-05-27 | 华为技术有限公司 | 多光源下的全局光照绘制方法及装置 |
-
2015
- 2015-10-28 CN CN201510715855.7A patent/CN105335995B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130120986A1 (en) * | 2011-11-12 | 2013-05-16 | Raydex Technology, Inc. | High efficiency directional light source with concentrated light output |
CN104658033A (zh) * | 2013-11-18 | 2015-05-27 | 华为技术有限公司 | 多光源下的全局光照绘制方法及装置 |
CN103971397A (zh) * | 2014-04-16 | 2014-08-06 | 浙江大学 | 基于虚拟点光源和稀疏矩阵还原的全局光照绘制方法 |
CN104008563A (zh) * | 2014-06-07 | 2014-08-27 | 长春理工大学 | 利用虚拟点光源实现动画三维场景的全局光照绘制的方法 |
Non-Patent Citations (4)
Title |
---|
JIAWEI OU 等: "LightSlice: Matrix Slice Sampling for the Many-Lights Problem", 《ACM TRANSACTIONS ON GRAPHICS》 * |
MILOS HASAN 等: "Matrix Row-Column Sampling for the Many-Ligh t Problem", 《ACM TRANSACTIONS ON GRAPHICS (TOG) - PROCEEDINGS OF ACM SIGGRAPH 2007 TOG HOMEPAGE》 * |
MILOS HASAN: "Tensor Clustering for Rendering Many-Light Animations", 《EUROGRAPHICS SYMPOSIUM ON RENDERING 2008》 * |
过洁 等: "复杂面光源下实时绘制研究", 《系统仿真学报》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103971397B (zh) * | 2014-04-16 | 2016-09-28 | 浙江大学 | 基于虚拟点光源和稀疏矩阵还原的全局光照绘制方法 |
CN107452048A (zh) * | 2016-05-30 | 2017-12-08 | 网易(杭州)网络有限公司 | 全局光照的计算方法及装置 |
CN107452048B (zh) * | 2016-05-30 | 2019-03-12 | 网易(杭州)网络有限公司 | 全局光照的计算方法及装置 |
CN107909639A (zh) * | 2017-11-10 | 2018-04-13 | 长春理工大学 | 根据位置自适应控制光源可见性复用范围的3d场景绘制方法 |
CN107909639B (zh) * | 2017-11-10 | 2021-02-19 | 长春理工大学 | 光源可见性复用范围的自适应3d场景绘制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105335995B (zh) | 2018-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4120199A1 (en) | Image rendering method and apparatus, and electronic device and storage medium | |
CN111192354A (zh) | 一种基于虚拟现实的三维仿真方法及系统 | |
CN110363294A (zh) | 利用网络中的路径来表示神经网络以提高神经网络的性能 | |
Le Muzic et al. | Illustrative visualization of molecular reactions using omniscient intelligence and passive agents | |
CN107464286B (zh) | 三维城市模型中的孔洞修复方法及装置、设备及可读介质 | |
US9177418B1 (en) | System and method for converting computer aided design data into a three dimensional model | |
Glowacki et al. | A GPU-accelerated immersive audio-visual framework for interaction with molecular dynamics using consumer depth sensors | |
CN104658033A (zh) | 多光源下的全局光照绘制方法及装置 | |
Tariki et al. | Generating complex assembly sequences from 3D CAD models considering insertion relations | |
CN105335995A (zh) | 一种多光源全局光照绘制方法及装置 | |
CN111161398A (zh) | 一种图像生成方法、装置、设备及存储介质 | |
Zakharov et al. | Photo-realistic neural domain randomization | |
CN112883102B (zh) | 数据可视化展示的方法、装置、电子设备及存储介质 | |
CN114266937A (zh) | 模型训练、图像处理方法,装置,设备以及存储介质 | |
Oyekan et al. | A 3D immersive discrete event simulator for enabling prototyping of factory layouts | |
CN105989624A (zh) | 用于绘制全局光照场景的方法和装置 | |
Hung et al. | Automatic clustering method for real-time construction simulation | |
Rahman et al. | Towards accelerated agent-based crowd simulation for Hajj and Umrah | |
CN103971397A (zh) | 基于虚拟点光源和稀疏矩阵还原的全局光照绘制方法 | |
CN108108430B (zh) | 一种基于Unity3D知识森林虚拟现实系统实现的方法 | |
Yong et al. | GVM based intuitive simulation web application for collision detection | |
Cheng et al. | Design and implementation of a software architecture for 3D-DDA | |
CN111723247A (zh) | 基于图的假设计算 | |
Zamri et al. | Research on atmospheric clouds: a review of cloud animation methods in computer graphics | |
Hempe et al. | A semantics-based, active render framework to realize complex eRobotics applications with realistic virtual testing environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |