CN110599579B - 基于光子重采样的随机渐近光子映射图像渲染方法及系统 - Google Patents
基于光子重采样的随机渐近光子映射图像渲染方法及系统 Download PDFInfo
- Publication number
- CN110599579B CN110599579B CN201910905563.8A CN201910905563A CN110599579B CN 110599579 B CN110599579 B CN 110599579B CN 201910905563 A CN201910905563 A CN 201910905563A CN 110599579 B CN110599579 B CN 110599579B
- Authority
- CN
- China
- Prior art keywords
- photon
- ray
- collision point
- error value
- collision
- 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.)
- Active
Links
- 238000012952 Resampling Methods 0.000 title claims abstract description 43
- 238000009877 rendering Methods 0.000 title claims abstract description 42
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000013507 mapping Methods 0.000 title claims abstract description 29
- 238000005070 sampling Methods 0.000 claims abstract description 54
- 238000004040 coloring Methods 0.000 claims abstract description 13
- 238000003860 storage Methods 0.000 claims description 6
- 238000003672 processing method Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 22
- 238000004422 calculation algorithm Methods 0.000 description 17
- 238000005286 illumination Methods 0.000 description 9
- 238000009826 distribution Methods 0.000 description 8
- 230000000750 progressive effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000035807 sensation Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003518 caustics Substances 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20021—Dividing image into blocks, subimages or windows
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
本公开公开了基于光子重采样的随机渐近光子映射图像渲染方法及系统,从视点发射第一光线,记录第一光线与场景物体的碰撞点位置;从光源发射第二光线,得到光子图;将光子图划分为若干个连续的图像子块,计算每个图像子块内碰撞点距离误差值和光子数误差值;在着色阶段,遍历碰撞点;首次执行时,对每一个碰撞点,根据设定半径进行光子采样;在非首次执行时,对每一个碰撞点,根据碰撞点距离误差值和光子数误差值,计算碰撞点的若干个新的采样半径,利用若干个新的采样半径,对当前图像子块内碰撞点新的采样半径内的光子进行重新采样;当所有的碰撞点均进行光子重采样后,得到渲染后的图像,返回着色阶段,直至满足设定迭代次数,得到渲染图像。
Description
技术领域
本公开涉及图形学真实感渲染技术领域,特别是涉及基于光子重采样的随机渐近光子映射图像渲染方法及系统。
背景技术
本部分的陈述仅仅是提到了与本公开相关的背景技术,并不必然构成现有技术。
计算机图形学中涉及的图形真实感绘制目的是为了生成单一的或者连续帧的图像,以此来表现一些虚拟的场景,并让这些场景看起来尽可能的和真实场景相似。全局光照方法是图像真实感绘制的重要内容,它可以有效的增强虚拟场景的真实感。
全局光照指的是除了考虑光源对物体的直接作用外还需要考虑场景中由于物体之间的相互作用而产生的间接光照情况,它包括了场景中所有的光照。光线追踪算法利用光线可逆原理,让光线从视点出发,沿着视线方向寻找反射和透射的物体,从而来确定屏幕上每一点的亮度。它模拟光在空中传播的过程,与空间物体发生碰撞后渲染出不同的颜色以及明暗效果。光线追踪涉及到大量光线与物体的求交运算,对内存的要求较高,同时作为一个离散采样算法,在绘制过程中有时会出现严重走样的现象。
1996年,HenrikWann Jensen引入了光子映射算法,它是光线追踪的延伸,是当前模拟全局光照最快的算法之一。它从光源发射大量光子,并在它们碰到漫反射物体时,将他们保存在一个光子图中,以建立光子图;使用统计技术从光子图中提取出屏幕上光线的碰撞点计算其入射通量以及反射辐射能,即在最后的图像渲染时,通过光子图对色彩进行估算。光子映射能够模拟全局光照中的很多现象,比如焦散、镜面反射、辉映等光线追踪无法模拟的现象。但是由于光子发射函数的随机性,会导致光子分布不均以至于渲染阶段可能会出现噪声,需要结合最终聚集算法来解决这些问题。
2008年,Hachisuka等人提出了渐进式光子映射(Progressive Photon Mapping)方法,PPM倒转了Ray Tracing和Photon Tracing的顺序,存储Ray Tracing阶段检测到的碰撞点,然后一轮轮地发射光子,给碰撞点“送光”,每一轮将半径R减小一次,通过不断缩小渲染半径,使图像的细节被强调出来。随着轮数的增多,半径越来越小,光子越来越多,渲染的结果更加逼真。PPM提出一个新的辐射度计算方法,当提供足够多的光子时,可以收敛到正确的辐射值。随后,Hachisuka稍稍改进了PPM算法,提出了随机渐进光子映射(StochasticProgressive Photon Mapping)。SPPM与PPM的不同之处在于,SPPM在每一次光子发射完毕后,使用分布式光线追踪算法在区域内随机生成碰撞点,使得每次光子图中存储的光子数据都不一样。分布式光线追踪中一个像素点有多条光线穿过,即多个采样点,和传统的光线追踪相比,采样更加精确。
在实现本公开的过程中,发明人发现现有技术中存在以下技术问题:
现有的随机渐近光子映射中效率低下和光子覆盖率慢。
发明内容
为了解决现有技术的不足,本公开提供了基于光子重采样的随机渐近光子映射图像渲染方法及系统;
第一方面,本公开提供了基于光子重采样的随机渐近光子映射图像渲染方法;
基于光子重采样的随机渐近光子映射图像渲染方法,包括:
从视点发射第一光线,记录第一光线与场景物体的碰撞点位置为GatherPoint;
从光源发射第二光线,对第二光线与场景表面相交位置的所有的光子按照第二光线发射路径进行连接,得到光子图;
将光子图均匀划分为若干个连续的图像子块,计算每个图像子块内碰撞点距离误差值和光子数误差值;
在着色阶段,遍历碰撞点GatherPoint;
首次执行时,对每一个碰撞点GatherPoint,根据设定半径进行光子采样;
在非首次执行时,对每一个碰撞点GatherPoint,根据碰撞点距离误差值和光子数误差值,计算碰撞点的若干个新的采样半径,利用若干个新的采样半径,对当前图像子块内碰撞点新的采样半径内的光子进行重新采样;
当所有的碰撞点均进行光子重采样后,得到第一次渲染后的图像,返回着色阶段,直至满足设定迭代次数,得到渲染后的最终图像。
第二方面,本公开还提供了基于光子重采样的随机渐近光子映射图像渲染系统;
基于光子重采样的随机渐近光子映射图像渲染系统,包括:
碰撞点获取模块,其被配置为:从视点发射第一光线,记录第一光线与场景物体的碰撞点位置为GatherPoint;
光子图获取模块,其被配置为:从光源发射第二光线,对第二光线与场景表面相交位置的所有的光子按照第二光线发射路径进行连接,得到光子图;
计算模块,其被配置为:将光子图均匀划分为若干个连续的图像子块,计算每个图像子块内碰撞点距离误差值和光子数误差值;
着色模块,其被配置为:在着色阶段,遍历碰撞点GatherPoint;
首次执行时,对每一个碰撞点GatherPoint,根据设定半径进行光子采样;
在非首次执行时,对每一个碰撞点GatherPoint,根据碰撞点距离误差值和光子数误差值,计算碰撞点的若干个新的采样半径,利用若干个新的采样半径,对当前图像子块内碰撞点新的采样半径内的光子进行重新采样;
输出模块,其被配置为当所有的碰撞点均进行光子重采样后,得到第一次渲染后的图像,返回着色模块,直至满足设定迭代次数,得到渲染后的最终图像。
第三方面,本公开还提供了一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成第一方面所述方法的步骤。
第四方面,本公开还提供了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成第一方面所述方法的步骤。
与现有技术相比,本公开的有益效果是:
1.本发明首次提出基于光子重采样的随机渐近光子映射,用GatherPoint结构来保存碰撞信息,加速了光子的覆盖率。在迭代完成时,计算每一个碰撞点的间接光照,与直接光照相结合,最后输出图像,缩短了算法的执行时间,提高了算法的执行效率。
2.通过距离误差值判断节点是否位于不同物体处。通过光子数误差值判断节点内的光子分布情况,分析距离函数和光子数函数,采用我们提出的光子重采样技术。较之前的算法来说,可以使光子分布的更均匀,并减少图像噪声。
3.采用图像空间的概念,可以顺序的提取图像的特征,方便对图像子块进行操作,体现了连贯性和一致性。
4.本发明基于随机渐进光子映射的思想,减少了需要存储的光子数量,不断缩短光子渲染半径,突出其图像细节。更好的解决光子的分布问题,同时对内存没有限制,增加了算法的灵活性和健壮性。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为第一个实施例的方法流程图;
图2(a)和图2(b)为第一个实施例的实验场景图。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
实施例一,本公开提供了基于光子重采样的随机渐近光子映射图像渲染方法;
如图1所示,基于光子重采样的随机渐近光子映射图像渲染方法,包括:
S1:从视点发射第一光线,记录第一光线与场景物体的碰撞点位置为GatherPoint;
S2:从光源发射第二光线,对第二光线与场景表面相交位置的所有的光子按照第二光线发射路径进行连接,得到光子图;
S3:将光子图均匀划分为若干个连续的图像子块,计算每个图像子块内碰撞点距离误差值和光子数误差值;
S4:在着色阶段,遍历碰撞点GatherPoint;
首次执行时,对每一个碰撞点GatherPoint,根据设定半径进行光子采样;
在非首次执行时,对每一个碰撞点GatherPoint,根据碰撞点距离误差值和光子数误差值,计算碰撞点的若干个新的采样半径,利用若干个新的采样半径,对当前图像子块内碰撞点新的采样半径内的光子进行重新采样;
S5:当所有的碰撞点均进行光子重采样后,得到第一次渲染后的图像,返回S4,直至满足设定迭代次数,得到渲染后的最终图像。
作为一个或多个实施例,所述S1的具体步骤包括:光线追踪阶段,从视点发射第一光线,第一光线在场景物体表面进行一系列的反射、折射或漫反射,直到第一光线逃离场景或者达到最大反射次数E;第一光线每一次的反射、折射或漫反射发生时,发生的位置即为第一光线与场景物体的碰撞点;记录第一光线与场景物体的碰撞点位置为GatherPoint。
作为一个或多个实施例,所述S2的具体步骤包括:从光源发射第二光线,第二光线从光源发射出来后,在场景物体表面进行一系列的反射、折射或漫反射,直到第二光线逃离场景或者达到最大反射次数E;第二光线每一次的反射、折射或漫反射发生时,在第二光线与场景表面相交位置创建一个光子,当第二光线在场景中遍历完毕,得到若干个光子,然后对所有的光子按照第二光线发射路径进行连接,得到光子图。
作为一个或多个实施例,所述S3的具体步骤包括:
将光子图均匀划分为若干个连续的图像子块,每一个图像子块中依次保存图像像素,并为图像子块建立索引;根据第一光线与场景物体的碰撞点位置GatherPoint设定搜索半径内的光子的数量和光子的位置坐标,计算每个图像子块内碰撞点距离误差值和光子数误差值。
作为一个或多个实施例,距离误差值等于当前图像子块内所有相邻碰撞点距离的平均值与当前图像子块内相邻碰撞点之间距离的最大值之间的比值。
距离误差值的计算公式:
其中,derror指的是当前图像子块内所有碰撞点之间距离的误差值,d_ave指的是当前图像子块内所有碰撞点之间距离的平均值,d_max指的是当前图像子块内所有碰撞点之间距离的最大值。
作为一个或多个实施例,光子数误差值等于当前图像子块内光子数量的平均值与当前图像子块内光子数量的最大值之间的比值。
光子数误差值函数公式:
其中,merror指的是当前图像子块内光子数的误差值,m_ave指的是当前图像子块内光子数量的平均值,m_max指的是当前图像子块内光子数量的最大值。
m_ave公式:
其中,m_ave指的是当前图像子块内光子数量的平均值,N指的是当前图像子块内第i个碰撞点在设定搜索半径内的光子数量,n指的是当前图像子块内碰撞点的个数。
m_ave_ave公式如下:
其中,m_ave_ave所有图像子块的平均值的平均值,m_ave指的是第j个图像子块内光子数量的平均值,block指的是所有图像子块的总数。
作为一个或多个实施例,所述光子重采样,采用K最近邻(kNN,k-NearestNeighbor)分类算法。
作为一个或多个实施例,对每一个碰撞点GatherPoint,根据碰撞点距离误差值和光子数误差值,计算碰撞点的若干个新的采样半径,利用若干个新的采样半径,对当前图像子块内碰撞点新的采样半径内的光子进行重新采样的具体步骤包括:
当merror>m_ave时,缩小采样半径r;
当m_ave<m_ave_ave时,扩大采样半径r;
当m_ave>m_ave_ave时,则缩小采样半径r;
当derror>d_ave时,缩小采样半径r。
光子重采样半径变化公式:
r1=a1r;(1)
r2=a2r;(2)
r3=a3r;(3)
其中a1,a2,a3为半径变化系数。通过改变a1、a2和a3的值来改变采样半径。公式(1)、公式(2)和公式(3)是同时使用的;首次采样半径为r,非首次采样的采样半径则根据公式(1)、公式(2)和公式(3)计算得出;计算出三个新的采样半径r1、r2和r3后,三个新的采样半径r1、r2和r3同时进入下一次的迭代步骤。
a1,a2,a3公式如下:
Kajiya在1996年提出了渲染方程的理论,来表示当场景中的光能达到稳定以后,来计算场景中某个交点在某个方向上的入射辐射率和出射辐射率。在Kajiya将渲染方程引入图形学研究以后,很多基于全局光照的研究,都以渲染方程为基础,简化方程以达到最优解,进而达到提高性能的目的。我们在渲染方程的基础上,提出了距离函数和光子数函数。距离函数根据光子的信息来判断此节点是否位于不同的物体处,光子数函数来判断此节点是否需要更多的光子,同时提出了光子重采样技术。计算距离函数的距离误差值以及光子数函数的光子数误差值,并分析距离误差值和光子误差值,对子块内的碰撞点不断改变采样半径进行光子重新采样。图1为基于光子重采样的随机渐近光子映射流程图。
图2(a)和图2(b)为实验场景图。
本发明专利的有益效果:
1.本发明首次提出基于光子重采样的随机渐近光子映射,用GatherPoint结构来保存碰撞信息,加速了光子的覆盖率。在迭代完成时,计算每一个碰撞点的间接光照,与直接光照相结合,最后输出图像,缩短了算法的执行时间,提高了算法的执行效率。
2.本发明设计了距离函数和光子数函数的概念。将距离函数和光子数函数保存到GatherPoint的子块中,通过距离误差值判断节点是否位于不同物体处。通过光子数误差值判断节点内得光子分布情况,分析距离函数和光子数函数,采用我们提出的光子重采样技术。较之前的算法来说,可以使光子分布的更均匀,并减少图像噪声。
3.采用图像空间的概念,在S2步骤中,我们将光子图均匀划分为若干个连续的图像子块。可以顺序的提取图像的特征,方便对子块进行操作,体现了连贯性和一致性。
4.本发明基于随机渐进光子映射的思想,减少了需要存储的光子数量,不断缩短光子渲染半径,突出其图像细节。更好的解决光子的分布问题,同时对内存没有限制,增加了算法的灵活性和健壮性。
基于随机渐近光子映射和图像空间的主要思想,我们将图像均匀的划分为若干个规则子块,每一个图像子块中依次保存图像像素,并为图像子块建立索引。使用图像空间的概念,可以顺序的提取图像的特征,方便我们对子块进行操作,体现了连贯性。我们将屏幕光线与场景的交点信息存储在图像空间的GatherPoint结构体中,提出距离函数和光子数函数的概念,并将其保存到图像空间的GatherPoint子块中。通过距离函数我们计算距离误差来了解渲染过程中不同物体处的渲染点,找到物体与物体之间的分界点。在发射光子时,会导致光子分布不均,从而明暗较为明显。通过光子数函数我们计算光子数误差来了解节点中光子的分布情况。通过分析子块中的距离误差和光子数误差,我们进行光子重采样。此方法可以加快光子的覆盖率,提高算法性能,使光子分布更均匀,在渲染阶段减少甚至消除噪声。
实施例二,本实施例还提供了基于光子重采样的随机渐近光子映射图像渲染系统;
基于光子重采样的随机渐近光子映射图像渲染系统,包括:
碰撞点获取模块,其被配置为:从视点发射第一光线,记录第一光线与场景物体的碰撞点位置为GatherPoint;
光子图获取模块,其被配置为:从光源发射第二光线,对第二光线与场景表面相交位置的所有的光子按照第二光线发射路径进行连接,得到光子图;
计算模块,其被配置为:将光子图均匀划分为若干个连续的图像子块,计算每个图像子块内碰撞点距离误差值和光子数误差值;
着色模块,其被配置为:在着色阶段,遍历碰撞点GatherPoint;
首次执行时,对每一个碰撞点GatherPoint,根据设定半径进行光子采样;
在非首次执行时,对每一个碰撞点GatherPoint,根据碰撞点距离误差值和光子数误差值,计算碰撞点的若干个新的采样半径,利用若干个新的采样半径,对当前图像子块内碰撞点新的采样半径内的光子进行重新采样;
输出模块,其被配置为当所有的碰撞点均进行光子重采样后,得到第一次渲染后的图像,返回着色模块,直至满足设定迭代次数,得到渲染后的最终图像。
本公开还提供了一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成方法中的各个操作,为了简洁,在此不再赘述。
所述电子设备可以是移动终端以及非移动终端,非移动终端包括台式计算机,移动终端包括智能手机(Smart Phone,如Android手机、IOS手机等)、智能眼镜、智能手表、智能手环、平板电脑、笔记本电脑、个人数字助理等可以进行无线通信的移动互联网设备。
应理解,在本公开中,该处理器可以是中央处理单元CPU,该处理器还算可以是其他通用处理器、数字信号处理器DSP、专用集成电路ASIC,现成可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本公开所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元即算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能的划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外一点,所显示或讨论的相互之间的耦合或者直接耦合或者通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (6)
1.基于光子重采样的随机渐近光子映射图像渲染方法,其特征是,包括:
从视点发射第一光线,记录第一光线与场景物体的碰撞点位置为GatherPoint;
从光源发射第二光线,对第二光线与场景物体表面相交位置的所有的光子按照第二光线发射路径进行连接,得到光子图;
将光子图均匀划分为若干个连续的图像子块,计算每个图像子块内碰撞点距离误差值和光子数误差值;在着色阶段,遍历碰撞点GatherPoint;
首次执行时,对每一个碰撞点GatherPoint,根据设定半径进行光子采样;
在非首次执行时,对每一个碰撞点GatherPoint,根据碰撞点距离误差值和光子数误差值,计算碰撞点的若干个新的采样半径,利用若干个新的采样半径,对当前图像子块内碰撞点新的采样半径内的光子进行重新采样;当所有的碰撞点均进行光子重采样后,得到第一次渲染后的图像,返回着色阶段,直至满足设定迭代次数,得到渲染后的最终图像;
所述将光子图均匀划分为若干个连续的图像子块,计算每个图像子块内碰撞点距离误差值和光子数误差值的具体步骤包括:
将光子图均匀划分为若干个连续的图像子块,每一个图像子块中依次保存图像像素,并为图像子块建立索引;根据第一光线与场景物体的碰撞点位置GatherPoint设定搜索半径内的光子的数量和光子的位置坐标,计算每个图像子块内碰撞点距离误差值和光子数误差值;
碰撞点距离误差值等于当前图像子块内所有相邻碰撞点距离的平均值与当前图像子块内相邻碰撞点之间距离的最大值之间的比值;
光子数误差值等于当前图像子块内光子数量的平均值与当前图像子块内光子数量的最大值之间的比值;
所述的根据碰撞点距离误差值和光子数误差值对该碰撞点进行光子重采样的具体步骤包括:
当merror>m_ave时,缩小采样半径r;
当m_ave<m_ave_ave时,扩大采样半径r;
当m_ave>m_ave_ave时,则缩小采样半径r;
当derror>d_ave时,缩小采样半径r;
其中,merror指的是当前图像子块内光子数的误差值,m_ave指的是当前图像子块内光子数量的平均值,m_ave_ave所有图像子块的平均值的平均值,derror指的是当前图像子块内所有碰撞点之间距离的误差值,d_ave指的是当前图像子块内所有碰撞点之间距离的平均值;
光子重采样半径扩大或缩小的公式:
r1=a1r;(1)
r2=a2r;(2)
r3=a3r;(3)
其中a1,a2,a3为半径变化系数;通过改变a1、a2和a3的值来改变采样半径;
公式(1)、公式(2)和公式(3)是同时使用的;首次采样半径为r,非首次采样的采样半径则根据公式(1)、公式(2)和公式(3)计算得出;计算出三个新的采样半径r1、r2和r3后,三个新的采样半径r1、r2和r3同时进入下一次的迭代步骤。
2.如权利要求1所述的方法,其特征是,所述从视点发射第一光线,记录第一光线与场景物体的碰撞点位置为GatherPoint的具体步骤包括:光线追踪阶段,从视点发射第一光线,第一光线在场景物体表面进行一系列的反射、折射或漫反射,直到第一光线逃离场景物体或者达到最大反射次数E;第一光线每一次的反射、折射或漫反射发生时,发生的位置即为第一光线与场景物体的碰撞点;记录第一光线与场景物体的碰撞点位置为GatherPoint。
3.如权利要求1所述的方法,其特征是,所述从光源发射第二光线,对第二光线与场景物体表面相交位置的所有的光子按照第二光线发射路径进行连接,得到光子图的具体步骤包括:从光源发射第二光线,第二光线从光源发射出来后,在场景物体表面进行一系列的反射、折射或漫反射,直到第二光线逃离场景物体或者达到最大反射次数E;第二光线每一次的反射、折射或漫反射发生时,在第二光线与场景物体表面相交位置创建一个光子,当第二光线在场景物体中遍历完毕,得到若干个光子,然后对所有的光子按照第二光线发射路径进行连接,得到光子图。
4.基于光子重采样的随机渐近光子映射图像渲染系统,其中采用了如权利要求1-3任一项所述的光子重采样的随机渐近光子映射图像渲染方法,其特征是,包括:
碰撞点获取模块,其被配置为:从视点发射第一光线,记录第一光线与场景物体的碰撞点位置为GatherPoint;
光子图获取模块,其被配置为:从光源发射第二光线,对第二光线与场景物体表面相交位置的所有的光子按照第二光线发射路径进行连接,得到光子图;
计算模块,其被配置为:将光子图均匀划分为若干个连续的图像子块,计算每个图像子块内碰撞点距离误差值和光子数误差值;
着色模块,其被配置为:在着色阶段,遍历碰撞点GatherPoint;
首次执行时,对每一个碰撞点GatherPoint,根据设定半径进行光子采样;
在非首次执行时,对每一个碰撞点GatherPoint,根据碰撞点距离误差值和光子数误差值,计算碰撞点的若干个新的采样半径,利用若干个新的采样半径,对当前图像子块内碰撞点新的采样半径内的光子进行重新采样;
输出模块,其被配置为当所有的碰撞点均进行光子重采样后,得到第一次渲染后的图像,返回着色模块,直至满足设定迭代次数,得到渲染后的最终图像。
5.一种电子设备,其特征是,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成权利要求1-3任一项方法所述的步骤。
6.一种计算机可读存储介质,其特征是,用于存储计算机指令,所述计算机指令被处理器执行时,完成权利要求1-3任一项方法所述的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910905563.8A CN110599579B (zh) | 2019-09-20 | 2019-09-20 | 基于光子重采样的随机渐近光子映射图像渲染方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910905563.8A CN110599579B (zh) | 2019-09-20 | 2019-09-20 | 基于光子重采样的随机渐近光子映射图像渲染方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110599579A CN110599579A (zh) | 2019-12-20 |
CN110599579B true CN110599579B (zh) | 2023-02-24 |
Family
ID=68862792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910905563.8A Active CN110599579B (zh) | 2019-09-20 | 2019-09-20 | 基于光子重采样的随机渐近光子映射图像渲染方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110599579B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111445422B (zh) * | 2020-04-17 | 2022-06-07 | 山东大学 | 基于神经网络的随机渐近式光子映射图像降噪方法及系统 |
CN113298925B (zh) * | 2021-04-14 | 2023-07-11 | 江苏理工学院 | 一种基于光线路径复用的动态场景渲染加速方法 |
CN117351134A (zh) * | 2022-06-29 | 2024-01-05 | 华为技术有限公司 | 一种图像渲染方法及其相关设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183276A (zh) * | 2007-12-13 | 2008-05-21 | 上海交通大学 | 基于摄像头投影仪技术的交互系统 |
CN102981840A (zh) * | 2012-11-08 | 2013-03-20 | 苏州两江科技有限公司 | 基于光子映射图的整体光照计算机模拟处理方法 |
CN104050710A (zh) * | 2013-03-14 | 2014-09-17 | 想象技术有限公司 | 用隐式几何体进行3d图形渲染 |
CN104200509A (zh) * | 2014-08-19 | 2014-12-10 | 山东大学 | 一种基于点缓存的光子映射加速方法 |
CN104714784A (zh) * | 2015-03-30 | 2015-06-17 | 山东大学 | 用于mic架构协处理器的光子映射并行方法 |
JP2015114775A (ja) * | 2013-12-10 | 2015-06-22 | キヤノン株式会社 | 画像処理装置および画像処理方法 |
CN106251393A (zh) * | 2016-07-14 | 2016-12-21 | 山东大学 | 一种基于样本消除的渐进式光子映射优化方法 |
CN107464277A (zh) * | 2016-06-03 | 2017-12-12 | 西门子保健有限责任公司 | 用于蒙特卡罗体积渲染的预采样的光子图 |
CN108961372A (zh) * | 2018-03-27 | 2018-12-07 | 北京大学 | 一种基于统计模型检验的渐进式光子映射方法 |
CN109932726A (zh) * | 2019-04-18 | 2019-06-25 | 北京石头世纪科技股份有限公司 | 机器人测距校准方法、装置、机器人和介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0902681D0 (en) * | 2009-02-18 | 2009-04-01 | Uws Ventures Ltd | Rendering caustics in computer graphics |
US9414051B2 (en) * | 2010-07-20 | 2016-08-09 | Memory Engine, Incorporated | Extensible authoring and playback platform for complex virtual reality interactions and immersive applications |
KR101845231B1 (ko) * | 2011-06-14 | 2018-04-04 | 삼성전자주식회사 | 영상 처리 장치 및 방법 |
US10438392B2 (en) * | 2016-12-13 | 2019-10-08 | Evan John Molinelli | Techniques for ontology driven animation |
US10349087B2 (en) * | 2017-07-13 | 2019-07-09 | The University Of North Carolina At Chapel Hill | Methods, systems, and computer readable media for reconstructing images using blurring and noise-enhanced pixel intensity resampling |
-
2019
- 2019-09-20 CN CN201910905563.8A patent/CN110599579B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183276A (zh) * | 2007-12-13 | 2008-05-21 | 上海交通大学 | 基于摄像头投影仪技术的交互系统 |
CN102981840A (zh) * | 2012-11-08 | 2013-03-20 | 苏州两江科技有限公司 | 基于光子映射图的整体光照计算机模拟处理方法 |
CN104050710A (zh) * | 2013-03-14 | 2014-09-17 | 想象技术有限公司 | 用隐式几何体进行3d图形渲染 |
JP2015114775A (ja) * | 2013-12-10 | 2015-06-22 | キヤノン株式会社 | 画像処理装置および画像処理方法 |
CN104200509A (zh) * | 2014-08-19 | 2014-12-10 | 山东大学 | 一种基于点缓存的光子映射加速方法 |
CN104714784A (zh) * | 2015-03-30 | 2015-06-17 | 山东大学 | 用于mic架构协处理器的光子映射并行方法 |
CN107464277A (zh) * | 2016-06-03 | 2017-12-12 | 西门子保健有限责任公司 | 用于蒙特卡罗体积渲染的预采样的光子图 |
CN106251393A (zh) * | 2016-07-14 | 2016-12-21 | 山东大学 | 一种基于样本消除的渐进式光子映射优化方法 |
CN108961372A (zh) * | 2018-03-27 | 2018-12-07 | 北京大学 | 一种基于统计模型检验的渐进式光子映射方法 |
CN109932726A (zh) * | 2019-04-18 | 2019-06-25 | 北京石头世纪科技股份有限公司 | 机器人测距校准方法、装置、机器人和介质 |
Non-Patent Citations (4)
Title |
---|
Multiresolution Cube Propagation for 3-D Ultrasound Image Reconstruction;Jiahui Dong;《IEEE Transactions on Computational Imaging》;20190120;全文 * |
基于Renderman的光子映射算法研究与实现;崔云鹏;《中国优秀硕士学位论文全文数据库信息科技辑》;20150115;全文 * |
基于光子映射的全局光照技术研究;康春萌;《中国优秀博士学位论文全文数据库信息科技辑》;20170315;全文 * |
基于光子映射的分布式全局光照计算方法研究;孟祥雨;《中国优秀硕士学位论文全文数据库信息科技辑》;20170215;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110599579A (zh) | 2019-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110599579B (zh) | 基于光子重采样的随机渐近光子映射图像渲染方法及系统 | |
US20220207820A1 (en) | Method and apparatus for recognizing pixel point, illumination rendering method and apparatus, electronic device, and storage medium | |
US11010516B2 (en) | Deep learning based identification of difficult to test nodes | |
ES2272547T3 (es) | Generacion de valores de pixeles utilizando metodologias estrictamente deterministicas para generar puntos de muestra. | |
JP5756940B2 (ja) | レイトレーシングによるレンダリングシステムおよび方法 | |
US8223148B1 (en) | Method and apparatus for computing indirect lighting for global illumination rendering in 3-D computer graphics | |
US11651194B2 (en) | Layout parasitics and device parameter prediction using graph neural networks | |
CN114419240B (zh) | 光照渲染方法、装置、计算机设备和存储介质 | |
CN105718420B (zh) | 数据处理装置及其操作方法 | |
CN110533707A (zh) | 照明估计 | |
JP2017188093A (ja) | 光マップを決定するための重要度サンプリング | |
CN107330966A (zh) | 一种渲染方法和装置 | |
CN113205586A (zh) | 图像处理方法及装置、电子设备、计算机可读存储介质 | |
CN112446943A (zh) | 图像渲染的方法、装置及计算机可读存储介质 | |
CN115082611A (zh) | 光照渲染方法、装置、设备和介质 | |
US20220262447A1 (en) | Error detection pin encoding scheme to avoid maximum transitions and further improve signal integrity on high speed graphic memory interfaces | |
CN113648652B (zh) | 对象渲染方法和装置、存储介质及电子设备 | |
EP2875490A1 (en) | Customized image filters | |
CN112819940B (zh) | 渲染方法、装置和电子设备 | |
Lee et al. | Two-AABB traversal for mobile real-time ray tracing | |
JP6274962B2 (ja) | 情報処理装置、制御方法、プログラム及び記録媒体 | |
CN116740253B (zh) | 一种光线追踪方法和电子设备 | |
EP3437072B1 (en) | System and method for rendering points without gaps | |
CN114782666A (zh) | 识别模型训练方法及装置、车牌识别方法及装置 | |
CN112967369A (zh) | 一种光线展示方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |