CN115861516A - 图形渲染方法和装置 - Google Patents
图形渲染方法和装置 Download PDFInfo
- Publication number
- CN115861516A CN115861516A CN202111115206.5A CN202111115206A CN115861516A CN 115861516 A CN115861516 A CN 115861516A CN 202111115206 A CN202111115206 A CN 202111115206A CN 115861516 A CN115861516 A CN 115861516A
- Authority
- CN
- China
- Prior art keywords
- vertex
- light
- ray
- path
- illumination
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 114
- 238000009877 rendering Methods 0.000 title claims abstract description 48
- 238000005286 illumination Methods 0.000 claims abstract description 241
- 238000009826 distribution Methods 0.000 claims abstract description 92
- 238000005070 sampling Methods 0.000 claims description 89
- 238000012952 Resampling Methods 0.000 claims description 79
- 230000015654 memory Effects 0.000 claims description 35
- 238000002310 reflectometry Methods 0.000 claims description 33
- 238000005315 distribution function Methods 0.000 claims description 28
- 230000006870 function Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 abstract description 10
- 230000008569 process Effects 0.000 description 25
- 239000000463 material Substances 0.000 description 21
- 238000004422 calculation algorithm Methods 0.000 description 19
- 230000008859 change Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 238000013461 design Methods 0.000 description 10
- 238000003860 storage Methods 0.000 description 10
- 230000002457 bidirectional effect Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 230000000875 corresponding effect Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 3
- 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
- 230000003287 optical effect Effects 0.000 description 3
- 238000000342 Monte Carlo simulation Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 238000004040 coloring Methods 0.000 description 2
- 230000001678 irradiating effect Effects 0.000 description 2
- LFQSCWFLJHTTHZ-UHFFFAOYSA-N Ethanol Chemical compound CCO LFQSCWFLJHTTHZ-UHFFFAOYSA-N 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005034 decoration Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- 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
- G06T15/80—Shading
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本申请提供了一种图形渲染方法和装置,该方法包括:确定光线与物体相交的第一顶点;确定光线的邻域,该邻域内的光照分布与光线的第一个顶点的光照分布相近;确定该邻域内光线的入射光的光照分布,其中,入射光的光照分布与该邻域内的光照分布相近;基于该入射光的光照分布,确定光线的第二顶点;基于第一顶点和第二顶点,确定光线的路径。从而使得获取的路径更为高效,节约计算成本。
Description
技术领域
本申请涉及图形处理领域,并且更具体地,涉及图形渲染方法和装置。
背景技术
目前,大部分离线渲染器都采用基于路径的光线追踪算法进行渲染,此算法对工程人员直观易懂,并且又有严谨的数学理论论证渲染结果,可渲染出照片级真实感图片,广受工业界青睐。
根据路径追踪(path tracing)算法在路径寻找中,通常是根据物体的材质特性提前预置重要性采样的函数,即,在给定光线出射方向下确定光线入射方向的采样权重。这种重要性采样方法比随机均匀采样方法更能寻找到有效光路径。但是,光照贡献值不仅与物体的材质有关,还与物体所处场景中的光照分布有关,如果物体表面反射率高的入射方向上正好光线较暗,则这种重要性采样方法将很低效。
因此,如何高效的寻找光线追踪的路径,成为目前需要解决的技术问题。
发明内容
本申请提供一种图形渲染方法和装置,根据有效邻域内的光照分布,确定光线的路径,从而使得获取的路径更为高效,节约计算成本。
第一方面,提供了一种图形渲染方法,该方法包括:确定光线与物体相交的第一顶点确定所述光线的邻域,所述邻域内的光照分布与所述光线的第一个顶点的光照分布相近;确定所述邻域内光线的入射光的光照分布,所述入射光的光照分布与所述邻域内的光照分布相近;基于所述入射光的光照分布,确定所述光线的第二顶点;基于所述第一顶点和所述第二顶点,确定所述光线的路径。
根据本申请提供的图形渲染方法,渲染器可以根据有效邻域内的光照分布,确定光线的路径。相比现有技术中,确定光线路径只考虑物体的材质特性而言,本申请的技术方案充分考虑材质特性及光照分布的影响,从而使得获取的路径更为高效,节约计算成本。
本申请中,例如,渲染器可以执行上述方法。
结合第一方面,在第一方面的某些实施方式中,所述基于所述入射光的光照分布,确定所述光线的第二顶点,包括:基于邻域内光线的入射光的光照分布函数和邻域内光线的入射光的权重,执行重要性重采样;通过所述重要性重采样方法,获得所述光线的第二顶点。
基于上述技术方案,本申请中,可以对邻域内的光线进行重采样,不会产生重采样运算外的其他运算成本。并且,重采样获得的光线与当前光线第一顶点的光照贡献分布相近,可有效提高采样收敛速度。
结合第一方面,在第一方面的某些实施方式中,该方法还包括:获取所述第一顶点和所述第二顶点的光照参数,基于所述光照参数,确定所述第一顶点的反射率以及所述第一顶点的光照强度;基于所述第一顶点反射率和所述光照强度,确定所述第一顶点的反射光的光照强度。
结合第一方面,在第一方面的某些实施方式中,所述光照参数包括:所述第一顶点和所述第二顶点的入射光的方向、入射光强、采样双向散射分布函数BSDF和采样概率密度函数PDF。
基于上述技术方案,本申请中,可以获取第一顶点和顶点的光照参数,使得在邻域采样的重着色过程中可以直接使用,从而可以快速、有效的重新计算第一个顶点反射率和光照强度。
结合第一方面,在第一方面的某些实施方式中,所述第一顶点反射率β1是基于下述公式确定的,其中,f1为确定所述光线的路径后,所述第一顶点向所述第二顶点采样的双向散射分布函数BSDF,p1为确定所述光线的路径后,所述第一顶点向所述第二顶点采样的概率密度函数PDF,p1s为确定所述光线的路径前,第三顶点向所述第二顶点采样的PDF,所述第三顶点为确定所述光线路径前,邻域内原来照射所述第二顶点的点,w为重要性重采样的权重。
基于上述技术方案,本申请中一旦通过重要性重采样确定第二顶点后,即,光线追踪的路径发生变化后,可以调整第一顶点的反射率,从而确保第一顶点反射光的计算的准确性。
结合第一方面,在第一方面的某些实施方式中,其特征在于,所述第一顶点的光照强度是所述第二顶点的光照强度反射到所述第一顶点所述获得的光照强度,其中,所述第二顶点的光照强度包括:所述第二顶点通过直接光照所获得的光照强度。和所述第二顶点通过间接光所获得的光照强度。
结合第一方面,在第一方面的某些实施方式中,所述第一顶点的光照强度I是基于下述公式确定的,其中,f2d为确定所述光线的路径后,所述第二顶点向光源采样的BSDF;p2d为确定所述光线的路径后,所述第二顶点向光源采样的PDF;p2L为确定所述光线的路径前,所述第二顶点向光源采样的PDF;f2i为确定所述光线的路径后,第二顶点向间接光方向采样的BSDF;p2i为确定所述光线的路径后,第二顶点向间接光方向采样的PDF;p2s为确定所述光线的路径前,第二顶点向间接光方向采样的PDF;/>为所述第二顶点直接光的光照强度;/>为所述第二顶点的间接光的光照强度。
基于上述技术方案,本申请中,一旦通过重要性重采样确定第二顶点后,即,光线追踪的路径发生变化后,可以调整第二顶点的反射率,从而确保第一顶点光照强度计算的准确性,提高采样收敛速度。
基于上述技术方案,本申请中,考虑到第二顶点光照强度的几种可能组成情况,提高了第二顶点光照强度计算的准确性,从而进一步提高了第一顶点光照强度计算的准确性。
本申请中,通过邻域重要性重采样获取到某个样本后,可借用该样本作为当前光线的第二顶点,即,改变了当前光线路径。因此,需要重新计算第一顶点的反射率和光照强度。基于上述技术方案,第一顶点的折射率和光照强度可以重新计算和优化,从而,提高第一顶点反射光光照强度的准确性。
第二方面,提供了一种渲染装置,该装置包括:渲染线程单元、重采样单元,所述渲染线程单元用于确定光线与物体相交的第一顶点;所述重采样单元用于确定所述光线的邻域,所述邻域内的光照分布与所述光线的第一个顶点的光照分布相近;所述重采样单元还用于确定所述邻域内光线的入射光的光照分布,所述入射光的光照分布与所述邻域内的光照分布相近;所述重采样单元用于基于所述入射光的光照分布,确定所述光线的第二顶点;所述渲染线程单元还用于基于所述第一顶点和所述第二顶点,确定所述光线的路径。
结合第二方面,在第二方面的某些实施方式中,所述重采样单元用于基于所述入射光的光照分布,确定所述光线的第二顶点,包括:所述重采样单元具体用于基于邻域内光线的入射光的光照分布函数和邻域内光线的入射光的权重,执行重要性重采样;通过所述重要性重采样方法,所述重采样单元用于获得所述光线的第二顶点。
结合第二方面,在第二方面的某些实施方式中,所述装置还包括:样本输入单元、重着色单元,所述样本输入单元用于获取所述第一顶点和所述第二顶点的光照参数,所述重着色单元用于基于所述光照参数,确定所述第一顶点的反射率以及所述第一顶点的光照强度;所述重着色单元用于基于所述第一顶点反射率和所述光照强度,确定所述第一顶点的反射光的光照强度。
结合第二方面,在第二方面的某些实施方式中,所述重着色单元用于基于下述公式确定所述第一顶点反射率β1,其中,f1为确定所述光线的路径后,所述第一顶点向所述第二顶点采样的双向散射分布函数BSDF,p1为确定所述光线的路径后,所述第一顶点向所述第二顶点采样的概率密度函数PDF,p1s为确定所述光线的路径前,第三顶点向所述第二顶点采样的PDF,所述第三顶点为确定所述光线路径前,邻域内原来照射所述第二顶点的点,w为重要性重采样的权重。
结合第二方面,在第二方面的某些实施方式中,所述第一顶点的光照强度是所述第二顶点的光照强度反射到所述第一顶点所述获得的光照强度,其中,所述第二顶点的光照强度包括:所述第二顶点通过直接光照所获得的光照强度和所述第二顶点通过间接光照所获得的关照强度。
结合第二方面,在第二方面的某些实施方式中,所述重着色单元具体基于下述公式,确定所述第一顶点的光照强度I,其中,f2d为确定所述光线的路径后,所述第二顶点向光源采样的BSDF;p2d为确定所述光线的路径后,所述第二顶点向光源采样的PDF;p2L为确定所述光线的路径前,所述第二顶点向光源采样的PDF;f2i为确定所述光线的路径后,第二顶点向间接光方向采样的BSDF;p2i为确定所述光线的路径后,第二顶点向间接光方向采样的PDF;p2s为确定所述光线的路径前,第二顶点向间接光方向采样的PDF;/>为所述第二顶点直接光的光照强度;/>为所述第二顶点的间接光的光照强度。
结合第二方面,在第二方面的某些实施方式中,所述光照参数包括:所述第一顶点和所述第二顶点的入射光的方向、入射光强、采样BSDF和采样PDF。
结合第三方面,提供了一种图形渲染装置,该装置包括至少一个处理器,所述至少一个处理器用于执行存储器中存储的计算机程序,以使得所述装置实现第一方面中任一种可能实现方式中的方法。
可选的,该装置中还可以包括存储器,该处理器用于读取存储器中存储的指令,并可通过接收器接收信号,通过发射器发射信号,以执行第一方面中任一种可能实现方式中的方法。
可选地,所述处理器为一个或多个,所述存储器为一个或多个。
可选地,所述存储器可以与所述处理器集成在一起,或者所述存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
应理解,相关的数据交互过程例如发送指示信息可以为从处理器输出指示信息的过程,接收能力信息可以为处理器接收输入能力信息的过程。具体地,处理输出的数据可以输出给发射器,处理器接收的输入数据可以来自接收器。其中,发射器和接收器可以统称为收发器。
上述第三方面中的装置可以是芯片,该处理器可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
第四方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序(也可以称为代码,或指令),当所述计算机程序被运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法。
第五方面,提供了一种计算机可读介质,所述计算机可读介质存储有计算机程序(也可以称为代码,或指令),当其在计算机上运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法。
第六方面,提供了一种芯片***,包括处理器,用于从存储器中调用并运行计算机程序,使得安装有该芯片***的设备执行上述第一方面中任一种可能实现方式中的方法。
附图说明
图1是本申请适用的***架构图。
图2是路径追踪算法示意图。
图3是本申请提供的图形渲染方法300的示意性流程图。
图4是本申请两个采样阶段的示意图。
图5是本申请图形渲染方法的示意性流程图。
图6是本申请路径采样的示意性流程图。
图7是本申请确定邻域光线的示意图。
图8是本申请中重要性重采样后获得样本的示意图。
图9是本申请中判断样本遮挡关系的示意图。
图10是本申请中重着色过程的示意图。
图11是本申请中渲染装置1100结构的示意图。
图12是本申请中渲染装置1200结构的示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
图1是本申请适用的***架构图,如图1所示,该架构中包括:3D场景模型101、2D图像102、视角相机103、灯光104、材质105、采样器106、渲染器107、加速器108。
本申请可以应用于3D渲染引擎(rendering engine),3D渲染引擎的主要功能是将3D场景模型,渲染成2D图像。例如,图1中的3D场景101可以通过渲染器107渲染得到2D图像102。3D渲染是游戏、影视行业、家装设计、建筑设计、工业设计等应用的核心模型。通常情况下,设计师会根据需求设计出3D模型(例如,101),设计灯光(例如,104)、材质(例如,105),并指定一个视角相机(例如103),便可通过渲染算法(例如,107)将相机视角所见部分渲染成一张2D图像(例如,102)。图1的架构中还可以包括采样器106和加速结构108。采样器105可以为光线追踪引擎提供采样随机数,加速结构108可以加速光线与3D场景求交的性能。
为了便于理解本申请的技术方案,首先对本申请涉及到的专业术语进行简单的介绍。
渲染:将三维场景中的模型,按照设定好的环境、灯光、材质及渲染参数,二维投影成数字图形的过程。渲染是通过电脑计算的方式,把模型从3D模型呈现出具有2D照片级真实感的图像。计算过程包含光线及辅助光线、材料的材质和纹理以及相机相关设置等综合变量。
重要性采样(importance sampling,IS):在统计学中估计某一分布性质时使用的一种方法。该方法从与原分布不同的另一个分布中采样,而对原先分布的性质进行估计。换句话说,采样要按“重要性”来进行,不应该“平等对待”。如果采样恰到好处的话,可能只需要进行很少的采样(计算若干个点的函数值),就可以求出误差很小的积分。
重要性重采样(resampled importance sampling,RIS):对服从于已知分布的采样样本进行重新采样,使获得的样本服从于另一分布的采样方法。重要性重采样方法是一种基于重要性采样的方法,通过对具有不同权重的备选样本进行重采样来得到服从目标分布的样本。也可以理解为,重要性重采样方法是从一个异于目标分布但容易采样的分布(可以称为“提议分布”或“指导分布”)中采样,然后从这些样本中以某个权重重新采样来得到近似服从目标分布的样本。重要性重采样方法用目标分布和提议分布在备选样本点的比值来作为重采样的权重,该权重衡量了两个分布之间的近似程度.通常情况下,提议分布应尽量的与目标分布近似。
光线追踪(ray tracing):计算机图形的一类渲染算法,该类算法模拟光线在场景中反射、折射等传播行为将3D场景模型渲染成2D图像。例如,将三维场景呈现在二维可视化的图片上。光线追踪的基本原理是:从视点向成像平面上的像素发射光线,找到与该光线相交的最近物体的交点,如果该点处的表面是散射面,则计算光源直接照射该点产生的颜色;如果该点处表面是镜面或折射面,则继续向反射或折射方向跟踪另一条光线,如此递归(也可以理解为“重复”)下去,直到光线逃逸出场景或达到设定的最大递归深度(也可以理解为“设定的最大重复次数”)。
路径追踪(path tracing):光线追踪类算法的一种,路径追踪指的是:从相机出发跟踪光线的传播路径以估算传入相机的光照值,从而将3D场景模型渲染成2D图像。路径追踪的基本原理是:从视点发出一条光线,光线与物体表面相交时,根据物体表面的材质属性继续采样一个方向,发出另一条光线,如此迭代,直到光线打到光源上(或逃逸出场景),然后用蒙特卡洛(Monte Carlo method)原理(蒙特卡洛原理是通过大量随机样本,去了解一个***,进而得到所要计算的参数)计算其光照贡献,从而作为像素的颜色值。
直接光照:由光源直接照射到物体(以物体A为例),产生的反射(包括漫反射和镜面反射)光称为“直接光照”。
间接光照:由非光源照射到物体产生的反射光,可以理解为“间接光照”。例如,由光源照射到物体(以物体A为例),经过物体A反射到物体B,再从物体B反射进入相机(也可以理解为“人眼”)的光称为间接光照。
重着色:由于光线的路径发生变化后,物体某个点的反射率以及光照强度发生改变,需要重新计算其反射光的光照强度,可以称作“重着色”。
双向散射分布函数(bidirectional scattering distribution function,BSDF):由于物体表面上有凹凸不平的微小表面,一道入射光线射到表面而产生散射现象,用BSDF来量化这种散射现象。其中双向(Bidirectional)指入射光与接受散射光的方向,因不同的入射光角度所产生的散射性质亦不相同。
本申请中,某个顶点的BSDF是材质的固有属性,其值与该顶点的采样入射光的方向、该顶点的位置以及该顶点的反射光的方向有关。例如,采样到的入射光方向发生变化后,该顶点BSDF的值也发生变化。
同样的,向某个顶点采样的概率密度函数(probability density function,PDF)与该顶点的采样的入射光的方向、该顶点的位置以及该顶点的反射光的方向有关。例如,采样的入射光方向发生变化后,该顶点的PDF也需要重新计算。
下面结合图2简单介绍一下采用路径追踪算法进行采样的过程:
第一步,首先可以提供一个多维随机数组或多维序列数组,以供多采样数屏幕空间采样及多顶点路径采样使用。这个多维数组的每个元素可以是毫不相关的伪随机数。但是,不相关的伪随机数的采样效果没有精心设计的多维序列数效果好。通常情况,可以使用SOBOL序列或是屏幕空间采样经蓝噪声(blue noise)处理的低差异序列数作为随机数。第二步,光线从相机出发,使用屏幕空间随机数及像素位置确定一个光线方向,此光线称为主光线(例如,图2中的光线#1)。若主光线与场景中物体相交,则此相交点是主光线路径(例如,相机→P1为主光线路径,或者,可以理解为,第一个路径)的第一个顶点(例如,图2中的P1)。此时,以第一顶点为出发点,往光源方向发射阴影光线(例如,图2中的光线#2),检测顶点与光源之间是否有遮挡,如果无遮挡则可以估算光源到此顶点的光照,此时便已构造出顶点数目为1(也可以理解为,1个顶点)的路径并估算出光照贡献值。第三步,构造顶点数目为2(也可以理解为,2个顶点)的路径可以复用顶点数目为1的光线路径(例如,图2中的光线#1)。具体地,可以以第一个顶点(例如,P1)为出发点发射采样光线(例如,图2中的光线#3)继续寻找下一个与场景中的相交点,作为光线路径的第二个路径(例如,P1→P2为第二个路径)的顶点(例如,图2中的P2),再发射阴影光线(例如,图2中的光线#4),若无遮挡,则可估算出此路径为光照的贡献值。采用类似的方法可继续构造出路径顶点数目为3、4、5......一系列光线路径,构造的路径越多或构造的路径越长,则计算成本越大,但估算的结果也越准确。可以使用***法来结束光线路径的构造,并且达到估算无偏性。通常情况下,在路径追踪中,采样方向的确定,会对估算方差影响较大。因此,选择合理的采样方向将加速路径追踪的收敛速度。
由上述路径采样原理可知,每个像素的光照估算值为第一个路径(也可以理解为,路径长度为1)到无穷多个的路径的光照估算值之和。第一个路径(例如,相机→P1→光源)的光照估算值为:第一个顶点的直接光照反射到相机的光照强度;第二个路径(相机→P1→P2→光源)的光照估算值为:第二个顶点的直接光照反射到第一个顶点,再由第一个顶点反射到相机的光照强度。
需要说明的是,本申请中,为了便于理解,有关光线的路径描述可能会涉及两种不同角度的描述,一种是光源→相机(眼睛),即光线真实照射的路径;另一种是光线追踪的角度,也可以理解为光线采样的路径,即,相机(眼睛)→光源的方向。
目前,路径追踪算法在路径寻找中,通常是根据物体的材质特性(例如,物体的反射率)提前预置重要性采样的函数,在给定光线出射方向下确定入射方向的采样权重,虽然,这种做法比随机均匀地采样更能寻找到有效光路径。但是,光照贡献值除了与材质有关,还与物体所处场景中的光照分布有关,如果物体表面反射率高的入射方向上正好光线较暗,则这种重要性采样方法将很低效。
有鉴于此,本申请提供一种图形渲染方法、装置和***,根据有效邻域内的光照分布,确定光线的路径,从而使得获取的路径更为高效,节约计算成本。
图3是本申请图形渲染方法300的流程图,下面结合图3对本申请的图形渲染方法进行说明。
步骤301,确定光线与物体相交的第一顶点。
例如,本申请中渲染器可以确定光线与物体相交的第一个顶点(例如,P1)。其中,光线的初始方向可以是预设的。
步骤302,确定光线的邻域,其中,邻域内的光照分布与光线的第一个顶点的光照分布相近。
例如,本申请中渲染器可以确定光线的邻域。
本申请中的“邻域”可以指的是半径为R的图形像素区域,本申请中的半径R可以预先设定。该半径为R的邻域的光照分布与路径顶点的光照分布相近,也可以理解为,有效邻域内的场景光照分布与路径顶点的光照分布相近,在一次采样中,可以通过有效邻域的光照分布,更好估计当前路径顶点的光照分布。
步骤303,确定邻域内光线的入射光的光照分布,其中,入射光的光照分布与邻域内的光照分布相近。
例如,本申请中渲染器可以确定邻域内光线的入射光的光照分布。
步骤304,基于入射光的光照分布,确定光线的第二顶点。
例如,本申请中渲染器可以基于入射光的光照分布,确定光线的第二顶点(例如,P2),
作为一个示例,渲染器可以基于邻域内光线的入射光的光照分布函数和邻域内光线的入射光的权重,执行重要性重采样,通过重要性重采样方法,获得光线的第二顶点。
步骤305,基于第一顶点和第二顶点,确定光线的路径。
例如,本申请中渲染器可以基于第一顶点和第二顶点,确定光线追踪的路径为:相机→P1→P2→光源。
应理解,本申请中,光线路径追踪的方向与真实场景中人眼看到物体的方向刚好相反。
根据本申请提供的图形渲染方法,渲染器可以根据有效邻域内的光照分布,确定光线的路径。相比现有技术中,确定光线路径只考虑物体的材质特性而言,本申请的技术方案充分考虑材质特性及光照分布的影响,从而使得获取的光线追踪的路径更为高效,提高采样收敛速度,节约计算成本。
为了更好的实现本申请的技术方案,作为一个示例,本申请中,每次采样都可以分为两个阶段的采样,如图4所示。例如,两个阶段的采样包括,路径采样和邻域重要性重采样。即,每次采样都会先进行路径采样(即,第一阶段采样),然后再进行邻域重要性重采样(即,第二阶段的采样)。本申请中路径采样可以用于获取3D场景中各个顶点的光照参数,例如,各个顶点的入射光的方向、入射光强、双向散射分布函数等;在本申请中邻域重要性重采样中可以借用上述光照参数,对第一顶点进行重着色,即,计算第一顶点的反射率和光照强度。需要说明的是,本申请中,每个像素的路径采样不会互相依赖,可以并发执行。每个像素的邻域重要性重采样也不会互相依赖,可以并发执行。通常情况下,邻域重要性重采样所耗时间只要路径采样时间的1/5左右。当然,本申请并不限定只采用路径采样方法可以获取上述光照采样,也可以通过其它途径获取上述光照参数。
图5是本申请图形渲染方法500的流程图,下面结合图5对本申请的图形渲染方法进行说明。
步骤501,使用路径追踪方法进行光线路径采样。
本申请中,该步骤的目的在于获取邻域重要性重采样所需要的数据,例如,从路径采样所获取的数据中可得到更多有关当前路径顶点光照分布的信息。步骤501可以理解为图4中的第一阶段采样。
本申请中,该步骤,例如可以由渲染器中的渲染线程单元执行。
步骤502,确定有效邻域。
本申请中,该步骤目的在于,在3D场景中确定当前路径顶点的一个合适大小的邻域(例如,半径为R的图形像素区域),使得此邻域的光照分布与光线第一个顶点的光照分布相近。后续,可以通过有效邻域内的光照分布,确定光线的第二个顶点。
本申请中,该步骤,例如可以渲染器中的重采样单元执行。
步骤503,对邻域内的光线进行重要性重采样。
首先,可以对邻域内的入射光线进行一次重采样,目的在于获取与当前路径顶点光照贡献分布成正相关的光线样本,再进行重要性采样,这样可以加速路径追踪的收敛速度。
根据重采样理论,M个源自分布函数为p(X)(分布函数p(X)可以理解为前述“提议分布”和“指导分布”)样本,如果给每个样本赋权按照此权重对样本进行重采样,则所得的样本的分布函数与目标分布函数g(X)近似。此处重采样的权重正好是入射光的光照贡献值。例如,可以通过逆变换方法(inversion method)进行重采样,也可以使用其他采样方法获取样本。
本申请中,该步骤,例如可以由渲染器中的渲染线程单元执行。
步骤504,遮挡关系判断。
重要性重采样是在邻域的入射光线里获取一个光线样本,然而,该邻域中的重采样获得的某个入射光线到当前路径顶点的遮挡关系可能发生改变。即,该邻域中的入射某个光线可能无法照射到当前路径顶点,也就是说“有遮挡”。此时,便不能使用该光线作为重采样获得的光线去估算当前路径顶点的光照,可以继续沿用路径追踪算法中获得的光线估算光照值。
本申请中,该步骤,例如可以由渲染器中的重着色单元执行。
步骤505,光线重着色
如果在邻域中获取到一条无遮挡的入射光线,便可以用此光线对当前路径顶点进行重着色。也可以理解为,本申请中,可以借用从该邻域中获得的入射光的光线,重新确定当前路径追踪的第二个顶点。换句话说,经过邻域重要性采样后,如果可以获得一条无遮挡的入射光线,则当前路径追踪过程中光线路径就可以发生变。例如,按照目前路径追踪算法,假设光线的路径为:相机→P1→P2→光源,而按照本申请提供的技术方法,如果在邻域采样中可以获取一条无遮挡的入射光线,可以确定该光线与场景中物体的交点,假如该交点为P2′,则将P2′确定为当前路径的第二顶点,则光线的路径为:相机→P1→P2′→光源。
由于光线的路径发生了变化,即,当前路径第一个顶点(以图1中的P1为例)的入射光方向也发生了变化(P1入射光的方向从P2→P1,改变为P2′→P1),而重着色过程就是重新计算P1点的反射光的光照强度,此时,需要重新计算P1点的反射率和光照强度。后面会结合附图详细介绍。
本申请中,该步骤,例如可以由渲染器中的重着色单元执行。
本申请中,步骤502~步骤505可以理解为图4中的第二阶段采样。
下面详细介绍本申请图形渲染方法,首先,结合图6介绍路径采样(也可以理解为第一阶段采用)的过程。
图6是本申请路径采样方法600的流程图。本申请中以路径追踪算法为例进行说明,即,采用路径追踪算法进行路径采样。如图6所示,步骤601,每个像素都会从相机发出一条路径光线;步骤602,判断是否与场景物体有相交点:如果不相交,则结束本次路径采样;如果相交,则继续执行步骤603,生成路径顶点,并获得材料反射相关参数(例如,入射方向、入射光强、采样BSDF、采样PDF等)。该反射参数在路径采样的重着色过程中可以用于计算当前路径第一个顶点(例如,图1中的P1)的反射率以及光照值;步骤604,光源采样,即,往光源的方向发射阴影光线,并估算光源到此顶点的光照强度,这样就形成一条完整的路径。步骤605,复用此路径顶点使用重要性采样函数确定下一个顶点的方向,并发射光线再继续相交判断。
为了进行后续的邻域重要性采样,在步骤604后,步骤605之前,即在光源采样后,确定下个顶点方向前,还要执行步骤606,即,判断是否为路径的第一个顶点(例如,图1中的P1),或者,是否为路径的第二个顶点,如果是路径的第一个顶点,或者,是第二个顶点,则继续执行步骤607,保存路径采样第一个、第二个路径顶点的位置、入射方向、入射光强、BSDF等信息。这是因为,在后续邻域采样的重着色过程中,可以直接利用本步骤中所保存的参数信息,可以快速、有效的重新计算第一个顶点反射率和光照强度,从而可以得到第一顶点的反射光的光照强度(即,对第一个顶点进行重着色)。
下面介绍邻域采样的过程,可以继续参见图5中的步骤502~步骤505。
如前所述,并不是所有的光线路径都需要进行邻域重要性采样。例如,如果光线路径与场景并没有交点,则不进行邻域重要性采样;如果第一个顶点(例如,图1中的P1)是镜面反射或是表面光滑的光泽反射,此类路径反射后的方向范围狭窄,则也无须再进行邻域重要性重采样。
第一步,确定有效邻域以及邻域中的光线。
首先可以划定一个半径为R(R的值可以是预设的)的像素区域作为邻域,使得此邻域内的光照分布与光线路径第一个顶点(以图1中的P1为例)的光照分布相近。具体地,如果邻域内光线的第一个顶点与当前路径的第一个顶点相距不远且法向朝向相同(此处指的是:邻域光线的第一个顶点所在的平面的法线的方向与P1所在的平面的法线的方向相同),则可以作为有效邻域内的光线。如果邻域内光线的第一个顶点与P1相距较远或法向朝向不同,则可以确定在场景中,该光线与当前主光线的光照条件相差较大,则不作为有效邻域内的光线,即,不作为判断光照贡献值信息的样本。如果有效邻域内可以提供光照贡献值的信息的光线越多,说明该邻域中的光照分布越接近真实的光照贡献分布,则后续进行邻域重要性重采样的效果越好。
如图7所示,从相机出发的一条预设的光线#1,光线#1与场景中的物体的交点记为P1 #1(即,当前路径的第一个顶点为P1 #1)。设定半径为R的像素区域为光线#1邻域,假设,其邻域中有光线#a、光线#b、光线#c和光线#d。如图7所示,邻域中的光线#a与场景中的物体相交与P1 #a点,顶点P1 #a所在的平面的法线水平向右;邻域中的光线#b与场景中的物体相交与P1 #b点,顶点P1 #a所在的平面的法线水平向上,同样,邻域中的光线#c与场景中的物体相交与P1 #c点,顶点P1 #c所在的平面的法线也是水平向上,邻域中的光线#d与场景中的物体相交与P1 #d点,顶点P1 #d所在的平面的法线也是水平向上,但是如图所示,顶点P1 #d与第一个顶点P1 #1相距较远。此时,由于光线#1邻域中的光线#a的第一个顶点P1 #a和光线#1的第一个顶点P1 #1相距较远或法向朝向不同,以及,光线#d的第一个顶点P1 #d和光线#1的第一个顶点P1 #1相距较远,判断光线#a和光线#d在场景中的光照条件和光线#1相差较大,因此不作为邻域内判断光照贡献值的样本。
第二步,对邻域内的光线进行重要性重采样。
确定好要进行重采样的邻域,以及邻域中可以进行重要性重采样的各个光线(例如,在第一步中,所确定的邻域中重要性重采样的光线为:光线#b和光线#c)后,便可以进行重要性重采样。
下面介绍,对确定的邻域光线的样本进行重要性重采样。
如前所述,根据重采样理论,M个源自分布函数为p(X)(分布函数p(X)可以理解为前述“提议分布”和“指导分布”)样本,如果给每个样本赋权重按照此权重对样本进行重采样,则所得的样本的分布函数与目标分布函数g(X)近似。
本步骤中,例如,可以将邻域内光线#c的第一个顶点的间接光看作是源自分布函数p(X)的样本。为了获取与邻域总体光照贡献相近的样本,可以对邻域内的每条光线进行重新赋权,权重正好是邻域内每条光线的第一个顶点间接光的光照贡献权重。
其中,g(Xi)可以理解为是邻域内光线的入射光的光照的分布函数;p(Xi)为邻域内光线的第一个顶点向第二顶点采样的PDF;fi为邻域内光线第一个顶点的反射率,例如,顶点P1 #b的反射率;Li为邻域光线的入射光的光照强度,例如,顶点P1 #b的入射光的光照强度。也就是说,通过计算fi·Li就可以得到邻域内的光线到相机(或者人眼)的光照强度。pi为邻域内的光线的第一个顶点向光源采样PDF通常情况下,p(Xi)分布函数与物体的材质相关,不同材质的p(Xi)分布函数不同,也可以理解为,一旦确定物体的材质后,其p(Xi)分布函数也是确定的。
继续参照图7,以邻域光线#b为例,邻域光线#b可以作为重采样的邻域光线,邻域光线#b与场景的交点为顶点P1 #b。其中,有一条光线#S入射到P1 #b,P1 #b点的光照强度和入射光#S的光照强度有关,入射光光线#S可以理解为P1 #b点的间接光。上述计算的权重Ii可以理解为是入射光线#S对P1 #b点光照强度的贡献权重。
按照该权重进行重要性采样,可以使得邻域中各个光线(例如,光线#c)的间接光的光照分布与邻域真实的入射光的光照分布基本相似。
确定邻域内每条光线的权重Ii后,从而获取邻域内光线第一个顶点入射光的方向。例如,可以采用逆变换方法进行重采样,逆变换采样要求权重归一化,可以用先对权重进行归一化,即,wsum=Σwi,ΣWi=1。然后,再对归一化的权重进行累加,得出光线#c的累积分布函数(cumulative distribution function,CDF),即,/>再求CDF的反函数P-1(ΣWi)=Xi,由于ΣWi的取值在[0,1]之间,所以可以用随机数ξ,获得采样到的样本,即Xi=P-1(ξ),这里样本Xi即就是邻域内光线第一个顶点间接光的方向与物体的交点。
参照图8,假设逆变换后获得的样本为Xi为P2 #c,表明向P1 #1→P2 #c方向采样更为高效,也就是说此光线追踪的路径更为高效。通过邻域重采样可以在邻域光线间接光方向的样本Xi里可以随机获取一个样本Xs,说明对于光线#1而言,往顶点Xs的方向采样更能找到有效光照,即,对于光线#1而言,向P1 #1→Xs方向进行路径追踪更为高效。
如上所述,本步骤中,重采样得到的邻域光线第一个顶点间接光与物体相交的顶点(例如,P2 #c),即,获得了邻域内光线的入射方向,该方向综合考虑当前位置光照分布信息及材质的反射特性,比原来路径追踪算法仅考虑材质的采样方法更为优化和有效。另外,邻域重采样时所用的光照参数信息已经提前获取到,可以减少重采样运算外的其他运算成本。
第三步,遮挡关系判断。
重采样获得样本后(例如,获得的样本为P2 #b),此时,还需要判断获得的样本与当前光线路径第一个顶点P1 #1之间是否有遮挡。如果该邻域中所获得的某个样本不能照射到当前路径的第一个顶点P1 #1,也就是说有遮挡,说明邻域内入射光真实的光照分布与此入射方向上的光照分布有区别,那么就不能借用重采样所获得的样本,去估算当前路径第一个顶点P1 #1的光照强度,可以继续沿用路径追踪算法估算P1 #1的光照强度。例如,如图9所示,假设重采样得到的样本为P2 #b,由于P2 #b与当前路径第一个顶点P1 #1之间有物体遮挡,光线从顶点P2 #b无法照射到顶点P1 #1,此时,便不能使用该样本去估算当前路径顶点P1 #1的光照。可以继续采用路径追踪算法估算P1 #1的光照强度。
第四步,光线重着色。
如果重采样得到的样本Xs与当前路径第一个顶点P1 #1之间没有遮挡,此时便可借用该样本作为当前路径的第二个顶点,为了便于区分记为“P2′”。也可以理解为,光线#1的路径追踪的方向可以是P1 #1→Xs,或者,理解为,根据重采样的样本确定光线#1第二个顶点,即用Xs作为光线#1的第二顶点。如图10所示,可以将P2 #c确定为光线#1的第二个顶点P2′。
此时,由于光线#1的路径发生了变化,如果从光线真实照射的角度来看,对于当前路径的第一个顶点P1 #1而言,入射光的方向为P2 #c→P1,因此,需要对当前路径的第一个顶点P1 #1进行重着色。重着色的过程也可以理解为:通过重新确定P1 #1的反射率以及P1 #1的光照强度,从而确定P1 #1→相机(人眼)的光照强度。这是因为,光线#1的第二个顶点P2′是重新根据重采样的样本确定的,因此第一个顶点P1 #1的反射率以及P1 #1的光照强会发生变化,需要重新计算。反过来,如果从光线追踪的角度来看,采样光线的方向从P1 #c→P2 #c,改变为P1 #1→P2 #c,对于第二顶点P2 #c(即也就是P2′)而言,采样的入射光方向发生了变化(采样入射光线的方向从P1 #c→P2 ′,改变为,P1 #1→P2′),则P2 #c(即也就是P2′)的反射率也会发生变化,也可以理解为,P2 #c的BSDF以及PDF发生变化。
本申请中,P1 #1的反射率与光线照射到第二顶点的概率密度函数(probabilitydensity function,PDF)有关。具体地,P1 #1的反射率与:确定P2′之前,邻域内的其它第一顶点(该邻域内的其它第一顶点指的是,确定P2′之前本来照射到P2′的顶点,如P1 #c)照射到P2′的PDF以及确定P2′后,P1 #1点照射到P2′点的PDF相关,假设重新计算后P1 #1的反射率为β1,则其中,p1为改变光线路径后,即,P1 #1→P2′采样的PDF,p1s为改变光线路径前,邻域内原来的照射到P2′的顶点(例如,邻域内的其它第一顶点,如p1 #c)向P2′采样的PDF(之前在路径采样中已经保存过),f1为改变光线路径后,即,p1 #1→P2′采样的BSDF,w为重要性重采样的权重。本申请中,/>其中,fi为邻域内的光线的第一个顶点的向光源方向采样的BSDF(例如,顶点P2 #c的BSDF,之前在路径采样时保存过),Li为邻域内的光线的第一个顶点的光照强度(例如,顶点P2 #c的光照强度),pi为邻域内的光线的第一个顶点向光源方向采样的的PDF(例如,顶点P1 #c→P2 #c采样的PDF)。
本申请中,由于光线#1的路径发生了变化,P1 #1的光照强度与P1 #1的PDF、BSDF以及P2′的PDF、BSDF有关。P1 #1点的光照强度可以为:P1 #1点的间接光照,也就是说,P2′的光照强度反射到P1 #1点的光照强度,即,P2′→P1 #1的光照强度可能包括以下几种情况:
情况一:光源照射到P2′(也可以理解为是P2′的直接光照),P2′照射到当前路径第一个顶点。
作为一个示例,如图10所示,真实光线的路径为:光源→P2′→P1 #1→相机,相反的,光线追踪的路径为:相机→P1 #1→P2′→光源。
此时,P1的光照强度其中,f2d为改变采样光线路径后,即,重采样获得的样本为P2′,P2′→光源方向的采样BSDF(即,需要重新计算该方向上采样的BSDF,这是因为对于P2′而言,其采样的入射光的方向从P2 #c→P1 #1变为:P1 #1→P2′,因此,P2′→光源方向的采样BSDF也会随之发生变化),p2d为改变采样光线路径后,即,重采样获得的样本为P2′,P2′→光源方向采样的PDF(即,需要重新计算该方向上采样的PDF,同样的,对于P2′而言,其采样的入射光的方向从P2 #c→P1 #1变为:P1 #1→P2′,因此,P2′→光源方向的采样PDF也会随之发生变化),p2L为改变采样光线路径前,P2′→光源方向采样的PDF(之前在路径采样时保存过),/>为光源的光照强度,也可以理解为,/>为第二顶点直接光的光照强度(之前在路径采样时保存过)。
即,改变采样光线路径之后,如果P2′是直接光照(即,某个光源可以直接照射到P2′)时,此时在计算P2′反射到P1 #1点的光照时,需要考虑到P2′的反射率发生变化(即,P2′的BSDF和PDF需要优化)。
情况二:非光源照射到P2′(也可以理解为是P2′点的间接光照),P2′照射到当前路径第一个顶点。
作为一个示例,如图10所示,真实光线的路径为:即P3→P2′→P1 #1→相机,相反的,光线追踪的路径为:相机→P1 #1→P2′→P3。
此时,其中,f2i为改变光线路径方向后,即,重采样获得的样本为P2′,P2′→P3采样的BSDF,也可以理解是,第二顶点向间接光方向采样的BSDF;p2i为改变光线路径方向后,即,重采样获得的样本为P2′,P2′→P3采样的PDF,也可以理解是,第二顶点向间接光方向采样的PDF;p2s为改变光线路径前,P2′→P3采样的PDF,也可以理解是,改变光线路径前,第二顶点向间接光方向采样的PDF(之前在路径采样时保存过);IL2为P2′点的间接光的光照强度(之前在路径采样时保存过)。
即,改变采样光线路径之后,如果P2′是间接光照(即,非光源照射到P2′)时,此时在计算P2′反射到P1 #1点的光照时,也需要考虑到P2′的反射率发生变化(即,P2′的BSDF和PDF需要优化)。
情况三:P2′本身就是一个自发光体或是光源,真实光线路径:P2′照射到当前路径第一个顶点,即P2′(光源)→P1 #1→相机,
由上可知,本申请中,P2′→P1 #1的光照强度I=I1+I2+I3。因此,P1 #1的光照强度I总=I1+I2+I3,则,P1 #1→相机(人眼)的光照强度=I总·β1
根据本申请提供的方法,通过邻域重要性重采样方法,对目前路径追踪算法中第二个顶点的确定方法进行了优化和改进。而且,本申请中根据有效邻域内的光照分布,确定光线的路径,可以使得获取的光线追踪的路径的更为高效,提高采样收敛速度,降低运算成本。
图11是本申请提供的渲染装置1100的组件结构示意图,图11中主要包括以下各个模块或者单元:
用户界面(userinterface,UI)、建模工具(例如,blender)、渲染会话管理层(Render Session)可以用于查看用户的请求等各种操作、路径追踪中央处理器(pathtracingcentral processing unit,PTCPU)、路径追踪开放计算机语言(path tracingopen computerlanguage,PTCPU)、双向路径追踪(bidirectional path tracing,BPT)、计算机重要性重采样(computer importance sampling,CIS)中央处理器(centralprocessing unit,CPU)、路径追踪器(path tracer)等,本申请提供的图形渲染装置还包括:
采样器(sampler)单元(或者也可以理解为“模块”)1101负责给每个像素、每轮采样产1序列数,并负责采样任务分配。
渲染线程(render thread)单元1102负责执行路径采样及邻域重要性重采样的任务。
样本输入(sample entry)单元1103用于保存路径采样的中间结果会,包括第一、二个顶点直接光照、BSDF、入射光照强度等。
重采样(resampling)单元1104用于完成邻域范围的确定、邻域数据载入、权重计算并完成样本重采样。
重着色(reshading)单元1105用于遮挡关系判断以及对第一个顶点进行重着色。
具体地,在一些实施例中,所述渲染线程单元用于确定光线与物体相交的第一顶点;所述重采样单元用于确定所述光线的邻域,所述邻域内的光照分布与所述光线的第一个顶点的光照分布相近;所述重采样单元还用于确定所述邻域内光线的入射光的光照分布,所述入射光的光照分布与所述邻域内的光照分布相近;所述重采样单元用于基于所述入射光的光照分布,确定所述光线的第二顶点;所述渲染线程单元还用于基于所述第一顶点和所述第二顶点,确定所述光线的路径。
在一种可能的设计中,所述重采样单元用于基于所述入射光的光照分布,确定所述光线的第二顶点,包括:所述重采样单元具体用于基于邻域内光线的入射光的光照分布函数和邻域内光线的入射光的权重,执行重要性重采样;通过所述重要性重采样方法,所述重采样单元用于获得所述光线的第二顶点。
在一种可能的设计中,所述装置还包括:样本输入单元、重着色单元,所述样本输入单元用于获取所述第一顶点和所述第二顶点的光照参数,所述重着色单元用于基于所述光照参数,确定所述第一顶点的反射率以及所述第一顶点的光照强度;所述重着色单元用于基于所述第一顶点反射率和所述光照强度,确定所述第一顶点的反射光的光照强度。
在一种可能的设计中,所述重着色单元具体基于所述重着色单元具体用于基于下述公式确定所述第一顶点反射率β1,其中,f1为确定所述光线的路径后,所述第一顶点向所述第二顶点采样的双向散射分布函数BSDF,p1为确定所述光线的路径后,所述第一顶点向所述第二顶点采样的概率密度函数PDF,p1s为确定所述光线的路径前,第三顶点向所述第二顶点采样的PDF,所述第三顶点为确定所述光线路径前,邻域内原来照射所述第二顶点的点,w为重要性重采样的权重。
在一种可能的设计中,所述重着色单元具体基于所述重着色单元具体用于基于下述公式,确定所述第一顶点的光照强度I,其中,f2d为确定所述光线的路径后,所述第二顶点向光源采样的BSDF;为确定所述光线的路径后,所述第二顶点向光源采样的PDF;p2L为确定所述光线的路径前,所述第二顶点向光源采样的PDF;f2i为确定所述光线的路径后,第二顶点向间接光方向采样的BSDF;p2i为确定所述光线的路径后,第二顶点向间接光方向采样的PDF;p2s为确定所述光线的路径前,第二顶点向间接光方向采样的PDF;/>为所述第二顶点直接光的光照强度;/>为所述第二顶点的间接光的光照强度。
该装置1100可以执行本申请实施例的方法300、方法500、方法600所对应的步骤。应理解,各单元执行上述相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,在此不再赘述。
图12是本申请实施例提供的渲染装置1200的示意性框图。如图所示,该装置1200包括:至少一个处理器1220。该处理器1220与存储器耦合,用于执行存储器中存储的指令,以发送信号和/或接收信号。可选地,该装置1200还包括存储器1230,用于存储指令。
该处理器和收发器可以对应图11中的各个单元。
应理解,上述处理器1220和存储器1230可以合成一个处理装置,处理器1220用于执行存储器1230中存储的程序代码来实现上述功能。具体实现时,该存储器1230也可以集成在处理器1220中,或者独立于处理器1220。
应理解,处理器执行上述相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,在此不再赘述。
根据本申请实施例提供的方法,本申请还提供一种计算机程序产品,该计算机程序产品上存储有计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行本实施的方法,例如,方法300、方法500、方法500中任意一个方法。
根据本申请实施例提供的方法,本申请还提供一种计算机可读介质,该计算机可读介质存储有程序代码,当该程序代码在计算机上运行时,使得该计算机执行本实施例的方法,例如方法300、方法500、方法600中任一个方法。
实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
应注意,本申请实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch-link DRAM,SLDRAM)和直接内存总线随机存取存储器(directram-bus RAM,DRRAM)。应注意,本文描述的***和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disc,SSD))等。
上述各个装置实施例中网络侧设备与终端设备和方法实施例中的网络侧设备或终端设备对应,由相应的模块或单元执行相应的步骤,例如通信单元(收发器)执行方法实施例中接收或发送的步骤,除发送、接收外的其它步骤可以由处理单元(处理器)执行。具体单元的功能可以参考相应的方法实施例。其中,处理器可以为一个或多个。
在本说明书中使用的术语“组件”、“单元”、“模块”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地***、分布式***和/或网络问的另一部件交互的二个部件的数据,例如通过信号与其它***交互的互联网)的信号通过本地和/或远程进程来通信。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所述领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (17)
1.一种图形渲染方法,其特征在于,包括:
确定光线与物体相交的第一顶点;
确定所述光线的邻域,所述邻域内的光照分布与所述光线的第一个顶点的光照分布相近;
确定所述邻域内光线的入射光的光照分布,所述入射光的光照分布与所述邻域内的光照分布相近;
基于所述入射光的光照分布,确定所述光线的第二顶点;
基于所述第一顶点和所述第二顶点,确定所述光线的路径。
2.根据权利要求1所述的方法,其特征在于,所述基于所述入射光的光照分布,确定所述光线的第二顶点,包括:
基于邻域内光线的入射光的光照分布函数和邻域内光线的入射光的权重,执行重要性重采样;
通过所述重要性重采样方法,获得所述光线的第二顶点。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
获取所述第一顶点和所述第二顶点的光照参数,
基于所述光照参数,确定所述第一顶点的反射率以及所述第一顶点的光照强度;
基于所述第一顶点反射率和所述光照强度,确定所述第一顶点的反射光的光照强度。
5.根据权利要求3或4所述的方法,其特征在于,所述第一顶点的光照强度是所述第二顶点的光照强度反射到所述第一顶点所述获得的光照强度,
其中,所述第二顶点的光照强度包括:所述第二顶点通过直接光照所获得的光照强度和所述第二顶点通过间接光所获得的光照强度。
8.根据权利要求3至7中任一项所述的方法,其特征在于,所述光照参数包括:所述第一顶点和所述第二顶点的入射光的方向、入射光强、采样BSDF和采样PDF。
9.一种图形渲染装置,所述装置包括:渲染线程单元、重采样单元,
所述渲染线程单元用于确定光线与物体相交的第一顶点;
所述重采样单元用于确定所述光线的邻域,所述邻域内的光照分布与所述光线的第一个顶点的光照分布相近;
所述重采样单元还用于确定所述邻域内光线的入射光的光照分布,所述入射光的光照分布与所述邻域内的光照分布相近;
所述重采样单元用于基于所述入射光的光照分布,确定所述光线的第二顶点;
所述渲染线程单元还用于基于所述第一顶点和所述第二顶点,确定所述光线的路径。
10.根据权利要求9所述的装置,其特征在于,所述重采样单元用于基于所述入射光的光照分布,确定所述光线的第二顶点,包括:所述重采样单元具体用于基于邻域内光线的入射光的光照分布函数和邻域内光线的入射光的权重,执行重要性重采样;通过所述重要性重采样方法,所述重采样单元用于获得所述光线的第二顶点。
11.根据权利要求9或10所述的装置,其特征在于,所述装置还包括:样本输入单元、重着色单元,
所述样本输入单元于获取所述第一顶点和所述第二顶点的光照参数,
所述重着色单元用于基于所述光照参数,确定所述第一顶点的反射率以及所述第一顶点的光照强度;
所述重着色单元用于基于所述第一顶点反射率和所述光照强度,确定所述第一顶点的反射光的光照强度。
13.根据权利要求11或12所述的装置,其特征在于,所述第一顶点的光照强度是所述第二顶点的光照强度反射到所述第一顶点所述获得的光照强度,
其中,所述第二顶点的光照强度包括:所述第二顶点通过直接光照所获得的光照强度和所述第二顶点通过间接光照所获得的关照强度。
16.根据权利要求11至15中任一项所述的装置,其特征在于,所述光照参数包括:所述第一顶点和所述第二顶点的入射光的方向、入射光强、采样BSDF和采样PDF。
17.一种渲染装置,其特征在于,包括至少一个处理器,所述至少一个处理器用于执行存储器中存储的计算机程序,以使得所述装置实现如权利要求1至8中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111115206.5A CN115861516A (zh) | 2021-09-23 | 2021-09-23 | 图形渲染方法和装置 |
PCT/CN2022/119644 WO2023045874A1 (zh) | 2021-09-23 | 2022-09-19 | 图形渲染方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111115206.5A CN115861516A (zh) | 2021-09-23 | 2021-09-23 | 图形渲染方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115861516A true CN115861516A (zh) | 2023-03-28 |
Family
ID=85652240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111115206.5A Pending CN115861516A (zh) | 2021-09-23 | 2021-09-23 | 图形渲染方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115861516A (zh) |
WO (1) | WO2023045874A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6760024B1 (en) * | 2000-07-19 | 2004-07-06 | Pixar | Method and apparatus for rendering shadows |
CN112840378B (zh) * | 2018-07-26 | 2024-06-07 | 辉达公司 | 在路径追踪中使用共享光照贡献进行相互作用的全局照明 |
CN112639802B (zh) * | 2018-09-18 | 2024-06-28 | Oppo广东移动通信有限公司 | 用于生成伪结构光照射面部的方法、***及存储介质 |
US10922790B2 (en) * | 2018-12-21 | 2021-02-16 | Intel Corporation | Apparatus and method for efficient distributed denoising of a graphics frame |
CN113012273B (zh) * | 2021-03-24 | 2022-07-12 | 网易(杭州)网络有限公司 | 基于目标模型的光照渲染方法、装置、介质及设备 |
-
2021
- 2021-09-23 CN CN202111115206.5A patent/CN115861516A/zh active Pending
-
2022
- 2022-09-19 WO PCT/CN2022/119644 patent/WO2023045874A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023045874A1 (zh) | 2023-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Keller | Quasi-Monte Carlo image synthesis in a nutshell | |
CN112840378B (zh) | 在路径追踪中使用共享光照贡献进行相互作用的全局照明 | |
US9245377B1 (en) | Image processing using progressive generation of intermediate images using photon beams of varying parameters | |
US12014457B2 (en) | Importance sampling for determining a light map | |
US11030800B2 (en) | Rendering images using modified multiple importance sampling | |
EP3206190A1 (en) | Device and process for improving efficiency of image rendering | |
US20150378019A1 (en) | Methods, systems, and computer readable media for modeling interactive diffuse reflections and higher-order diffraction in virtual environment scenes | |
KR20150108623A (ko) | 영상 처리 장치 및 방법 | |
US20220148135A1 (en) | Denoising images rendered using monte carlo renderings | |
US10607404B2 (en) | Device and method for estimating a glossy part of radiation | |
US20230081137A1 (en) | Spatial metrics for denoising depth image data | |
JP6478784B2 (ja) | 電波伝搬シミュレーション装置 | |
US9595133B2 (en) | Information processing apparatus, control method, and storage medium for defining tiles with limited numbers of fragments | |
CN115861516A (zh) | 图形渲染方法和装置 | |
Chandak et al. | Fast and accurate geometric sound propagation using visibility computations | |
Durany et al. | Analytical computation of acoustic bidirectional reflectance distribution functions | |
Schregle | The RADIANCE Photon Map Extension User Manual | |
Luksch et al. | Real-time Approximation of Photometric Polygonal Lights. | |
WO2018046398A1 (en) | Device and method for scene rendering with product importance sampling | |
Bálint | Closed Form Transmittance in Heterogeneous Media Using Cosine Noise | |
KR102332920B1 (ko) | 6 자유도 가상현실의 렌더링 시스템 및 방법 | |
Novak | Discrete method of images for 3D radio propagation modeling | |
D’Amore et al. | An objective criterion for stopping light–surface interaction. Numerical validation and quality assessment | |
EP1628263B1 (en) | Generating pixel values using strictly deterministic methodologies for generating sample points | |
Kinev et al. | Methods for Calculating and Visualizing the Spatial Distribution of Illumination in Three-dimensional Models of Optically Complex Scenes |
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 |