CN112396684A - 光线追踪方法、装置及机器可读存储介质 - Google Patents

光线追踪方法、装置及机器可读存储介质 Download PDF

Info

Publication number
CN112396684A
CN112396684A CN202011271638.0A CN202011271638A CN112396684A CN 112396684 A CN112396684 A CN 112396684A CN 202011271638 A CN202011271638 A CN 202011271638A CN 112396684 A CN112396684 A CN 112396684A
Authority
CN
China
Prior art keywords
ray
light
scene
tracing
determined
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
Application number
CN202011271638.0A
Other languages
English (en)
Inventor
蔡欢
郝稼力
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beike Technology Co Ltd
Original Assignee
Beike Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beike Technology Co Ltd filed Critical Beike Technology Co Ltd
Priority to CN202011271638.0A priority Critical patent/CN112396684A/zh
Publication of CN112396684A publication Critical patent/CN112396684A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing

Abstract

本发明实施例提供一种光线追踪方法、装置及机器可读存储介质,属于计算机科学领域。该光线追踪方法包括:确定始于观察点的光线是否与场景相交,其中,光线来自于从环境至观察点的光路的反向路径;以及在光线与场景相交的情况下,确定相交点及在该相交点处光路的法线方向、入射方向及出射方向;基于PBR材质、所确定的法线方向、入射方向及出射方向计算相交点处的颜色值;根据所述光线的当前状态判断是否继续追踪光线;以及在继续追踪光线的情况下,重复确定光线是否与场景相交、在光线与场景相交的情况下计算颜色值及判断是否继续追踪光线的过程,直到不继续追踪光线。藉此,实现了光线追踪与PBR材质结合。

Description

光线追踪方法、装置及机器可读存储介质
技术领域
本发明涉及计算机科学领域,具体地涉及一种光线追踪方法、装置及机器可读存储介质。
背景技术
光线追踪技术随着近代GPU硬件技术的发展,从之前的CPU顺序计算到现在的GPU实时光线追踪,渐渐成为3D图形界普遍认可的未来发展方向,光线追踪技术摆脱了之前基于光栅化的美术制作流程,可以更加真实的渲染出高质量的图形,但是制作和开发难度高。
由于光线追迹对算力的要求极高,再这之前的几十年中一直无法用于实时渲染和对渲染效率要求高的场景,因此大部分图形渲染引擎使用光栅化的技术,其中材质系统历经从传统的布林·冯材质到PBR(基于物理的渲染)材质,尤其是PBR材质,已经成为了美术制作的主流,改材质制作方便,渲染引擎使用也方便。
光线追踪技术固然效果更好,但提升了艺术家的学习成本,改变了美术制作流程,造成了三维产品制作成本上的增加;传统的光栅化的PBR材质方案,尽管效果不如光线追踪,但制作流程简单,开发流程难度低。二者很难取长补短合二为一。
发明内容
本发明的目的是提供一种光线追踪方法、装置及机器可读存储介质,其可解决或至少部分解决上述问题。
为了实现上述目的,本发明的一个方面提供一种光线追踪方法,该光线追踪方法包括:确定始于观察点的光线是否与场景相交,其中,所述光线来自于从环境至所述观察点的光路的反向路径;以及在所述光线与所述场景相交的情况下,确定相交点及在该相交点处所述光路的法线方向、入射方向及出射方向;基于PBR材质、所确定的所述法线方向、所述入射方向及所述出射方向计算所述相交点处的颜色值;根据所述光线的当前状态判断是否继续追踪所述光线;以及在继续追踪所述光线的情况下,重复确定所述光线是否与所述场景相交、在光线与所述场景相交的情况下计算所述颜色值及判断是否继续追踪所述光线的过程,直到不继续追踪所述光线。
可选地,所述基于PBR材质、所确定的所述法线方向、所述入射方向及所述出射方向计算所述相交点处的颜色值为根据以下公式计算所述颜色值:
Figure BDA0002777869760000021
其中,p表示所述观察点、ωo表示
所述出射方向、ωi表示所述入射方向、Li表示光源颜色方程、fr表示双向反射分布函数,n表示所述法线方向。
可选地,所述判断是否继续追踪所述光线包括:根据当前的光线追踪次数和/或光线能量衰减系数判断是否继续追踪所述光线。
可选地,所述光线能量衰减系数根据以下公式确定:A=f/pdf,其中,A为衰减系数,f为分布函数,pdf为概率密度函数。
相应地,本发明的另一方面还提供一种光线追踪装置,该光线追踪装置包括:相交确定模块,用于确定始于观察点的光线是否与场景相交,其中,所述光线来自于从环境至所述观察点的光路的反向路径;以及处理模块,用于:在所述光线与所述场景相交的情况下,确定相交点及在该相交点处所述光路的法线方向、入射方向及出射方向;基于PBR材质、所确定的所述法线方向、所述入射方向及所述出射方向计算所述相交点处的颜色值;根据所述光线的当前状态判断是否继续追踪所述光线;以及在继续追踪所述光线的情况下,重复确定所述光线是否与所述场景相交、在光线与所述场景相交的情况下计算所述颜色值及判断是否继续追踪所述光线的过程,直到不继续追踪所述光线。
可选地,所述基于PBR材质、所确定的所述法线方向、所述入射方向及所述出射方向计算所述相交点处的颜色值为根据以下公式计算所述颜色值:
Figure BDA0002777869760000031
其中,p表示所述观察点、ωo表示所述出射方向、ωi表示所述入射方向、Li表示光源颜色方程、fr表示双向反射分布函数,n表示所述法线方向。
可选地,所述判断是否继续追踪所述光线包括:根据当前的光线追踪次数和/或光线能量衰减系数判断是否继续追踪所述光线。
可选地,所述光线能量衰减系数根据以下公式确定:A=f/pdf,其中,A为衰减系数,f为分布函数,pdf为概率密度函数。
此外,本发明的另一方面还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行上述的方法。
另外,本发明的另一方面还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的方法。
通过上述技术方案,在光线追踪过程中,使用PBR材质,实现了光线追踪与PBR材质结合,实现了光线追踪技术与PBR材质的取长补短。其中,PBR材质方案和光线追踪技术的结合,一方面可以更好的展示软阴影、反射、环境光遮蔽、半透明这类大量依赖全局光照信息的效果,同时由于使用了PBR材质让材质和光照按照现实的物理数据来进行调节,代替以前那种靠感觉调参数的思路,即使是不同的引擎和项目,灯光和材质都倾向于统一,也就是倾向于写实。
本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
图1是本发明一实施例提供的光线追踪方法的流程图;
图2是光线追踪关系图;
图3是法线方向示意图;
图4是发射示意图;
图5是逆向光线追踪示意图;以及
图6是本发明另一实施例提供的光线追踪装置的结构示意图。
附图标记说明
1 相交确定模块 2 处理模块
具体实施方式
以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
本发明实施例的一个方面提供一种光线追踪方法。其中,光线追踪方法包括:确定始于观察点的光线是否与场景相交,其中,光线来自于从环境至观察点的光路的反向路径中;以及在光线与场景相交的情况下,确定出相交点及在该相交点处光路的法线方向、入射方向及出射方向;基于PBR材质、所确定的法线方向、入射方向及出射方向计算相交点处的颜色值;判断是否继续追踪光线;以及在继续追踪光线的情况下,重复确定光线是否与场景相交、在光线与场景相交的情况下计算颜色值及判断是否继续追踪光线的过程,直到不继续追踪光线。
图1是本发明一实施例提供的光线追踪方法的流程图。如图1所示,该方法包括以下内容。
在步骤S10中,确定始于观察点的光线是否与场景相交,其中,光线来自于从环境至观察点的光路的反向路径。若是则执行步骤S11,若否则执行步骤S15。此外,光线与场景相交是指光线射中场景中的哪一物体。在场景中存在有多个物体,光在传播过程中,光线可能会射中场景中的物体,光线射中场景中的物体,即为光线与场景。需要说明的是,在本发明实施例中,在光路中,光线可能射中场景中的一个或多个,不论光线射中哪个物体均称为光线与场景相交,因此,本发明实施例中所述的光线与场景相交,不一定是光线与场景中的同一物体相交,只是阐明光线射中了场景中的物体,光线与场景有相交点。
在步骤S11中,确定相交点及在该相交点处光路的法线方向、入射方向及出射方向。
在步骤S12中,基于PBR材质、所确定的法线方向、入射方向及出射方向计算相交点处的颜色值。其中,可以采用以下公式计算颜色值:
Figure BDA0002777869760000051
其中,p表示观察点、ωo表示出射方向、ωi表示入射方向、Li表示光源颜色方程、fr表示双向反射分布函数,n表示法线方向。
在步骤S13中,根据光线的当前状态判断是否继续追踪光线。若继续追踪,则执行步骤S10;若不继续追踪,则执行步骤S14。其中,光线的当前状态可以是当前的光线追踪次数、当前的光线能量衰减系数等,或者是当前的光线追踪次数和当前的光线能量衰减系数这两者组合。具体地,将当前状态与预设状态进行比较,当当前状态达到预设状态时,则不再追踪光线;当当前状态未达到预设状态时,则继续追踪光线。例如,预设状态可以是预设光线追踪次数、预设光线能量衰减系数,或者这两者的组合。
可选地,在本发明实施例中,可以根据当前的光线追踪次数和/或光线能量衰减系数判断是否继续追踪所述光线。当前的光线追踪次数为在当前这个光线与场景的相交点,光线已被追踪几次,其中,光线与场景相交一次则为追踪一次,确定当前光线的追踪次数可以基于当前光线与场景相交几次来确定。当前的光线能量衰减系数为在当前这个光线与场景的相交点,光线的能量衰减系数是多少,也就是当前的光线能量衰减为初始光线的能量的多少。具体地,预设设置光线追踪次数和/或光线能量衰减系数。当根据当前的光线追踪次数判断是否继续追踪光线时,预先设置光线追踪次数,例如,5次。当当前的光线追踪次数达到预设光线追踪次数时,不再继续追踪光线;当当前的光线追踪次数未达到预设光线追踪次数时,继续追踪光线。当根据当前的光线能量衰减系数判断是否继续追踪光线时,预先设置光线能量衰减系数,例如,十分之一。当当前的光线能量衰减系数达到预设光线能量衰减系数时,不再继续追踪光线;当当前的光线能量衰减系数未达到预设光线能量衰减系数时,则继续追踪光线。当根据当前的光线追踪次数和当前的光线能量衰减系数判断是否继续追踪光线时,预先设置光线追踪次数和光线能量衰减系数。当当前的光线追踪次数和当前的光线能量衰减系数均分别达到预设光线追踪次数和预设光线能量衰减系数时,则不再继续追踪;当当前的光线追踪次数和当前的光线能量衰减系数中有一者未达到其对应的预设设置的状态或者两者均未达到各自对应的预设设置的状态时,则继续追踪光线。
可选地,光线能量衰减系数根据以下公式确定:A=f/pdf,其中,A为衰减系数,f为分布函数,pdf为概率密度函数。优选地,在本发明实施例中,f可以采用双向反射分布函数。优选地,在本发明实施例中,
Figure BDA0002777869760000061
Figure BDA0002777869760000062
在步骤S14中,存储计算出来的颜色值。其中,所存储的颜色值为最后一次追踪对应的颜色值。例如,在某一次光线与场景相交时,通过判断不再继续追踪光线,则在该次光线与场景相交时计算出来的颜色值即为最终存储的颜色值。
在步骤S15中,将光线处理成预设颜色。例如,将光线处理成背景色或采样天空盒的颜色。
通过上述技术方案,在光线追踪过程中,使用PBR材质,实现了光线追踪与PBR材质结合,实现了光线追踪技术与PBR材质的取长补短。其中,PBR材质方案和光线追踪技术的结合,一方面可以更好的展示软阴影、反射、环境光遮蔽、半透明这类大量依赖全局光照信息的效果,同时由于使用了PBR材质让材质和光照按照现实的物理数据来进行调节,代替以前那种靠感觉调参数的思路,即使是不同的引擎和项目,灯光和材质都倾向于统一,也就是倾向于写实。
下面结合图2至图4对本发明实施例提供的光线追踪方法进行示例性介绍。
在本发明实施例中,解决了如何实现将光栅化的PBR材质方案和光线追踪技术相结合。
光线追踪通过追踪光线从观察者的眼睛穿过虚拟3D场景的路径来计算像素的颜色。光线在穿过场景时可能会从一个物体反射到另一个物体(引起反射)、被物体阻挡(引起阴影)、或穿过了透明或半透明物体(模拟半透明或电介质,如玻璃或水)。所有这些交互结合起来就产生了屏幕上所显示像素的最终颜色。
光线追踪可直接模拟穿过虚拟环境的光线。然后对代表光路或光子的光线进行追踪,以确定当前场景相机在给定方向上所感知的光线值。光线追踪通常会遵循如下顺序:a.创建代表从环境到相机的光路的反向路径——光线生成程序(Ray Generation程序);b.光线与场景相交,确定光线射中哪个物体(如果有的话)——场景遍历程序(Scenetraversal)与相交程序(Intersection);c.材质着色器或环境着色器计算光路中的光照值——最近命中程序(Closest Hit)与任意命中程序(Any Hit程序)、未命中程序(Miss程序);d.最后,得出的光照值被写入Framebuffer。其中,光线追踪程序的关系图可以参见图2所示。其中,在图2中,相交程序的部分及场景遍历程序为可编程阶段,其余部分为固定函数
在光栅化实现方案中,光照计算主要是在顶点着色器和像素着色器中,PBR的材质实现也是在这两个阶段。而在光线追踪中,上述的Closest Hit和Any Hit程序协同工作,以实现材质着色器的功能。光线追踪渲染器允许开发者指定一种或多种类型的光线(例如辐射、环境光遮蔽或阴影光线)。材质可指定Closest Hit和Any Hit程序来描述对象与每种光线类型相交时的着色行为。Hit程序通过属性变量从Intersection程序接收信息。它们通过写入ray payload将信息传递回光线生成程序。PBR(Physicallly-Based-Rendering),基于物理的渲染,有时也叫PBS(Physicallly-Based-Shading)。目标是基于与现实世界的物理原理基本相符的理论构成渲染技术。这样美术就可以直接以物理参数为依据来编写材质,不论光照如何材质看上去都是正确的。本发明在上述的Closest Hit和Any Hit实现了PBR的材质渲染。本发明要达到的效果:通过将光线追踪和PBR材质结合,模拟光线的物理行为来生成高度逼真的图像。采用了PBR的着色系统会评估基于物理的反射函数,并生成二次光线来评估反射、折射和光线遮蔽。本发明主要存在四个设计要点,下面进行详细介绍。
要点1:本发明采用实时PBR方案,基于金属度的区分方法广泛的适用于大部分流行引擎且效果非常的好。
基于物理的渲染所坚定的遵循的是一种被称为反射率方程(The ReflectanceEquation)的渲染方程。渲染方程(The Rendering Equation)作为渲染领域中的重要理论,其描述了光能在场景中的流动,是渲染中不可感知方面的最抽象的正式表示。其中,在本发明实施例中所使用的渲染方程为:
Figure BDA0002777869760000091
该函数是个连续函数所以我们需要对其进行离散化,离散化后的各个符号代表的含义如下:p表示观察点;ωo表示观察方向即出射方向;ωi表示入射方向;Li(p,ωi)表示光源颜色方程,即入射光亮度;n·ωi表示入射角带来的入射光衰减;n表示法线方向;fr(p,ωio)表示双向分布函数(也就是双向反射分布函数),是从入射方向到出射方向光的反射比例,即BxDF,一般为BRDF;∫Ω...dwi是入射方向半球的积分。可以看到,该函数主要有两部分——光源颜色方程和双向分布函数组成。
1.1光源颜色方程
光源颜色方程,也称为辐射率方程,其表示的是一个拥有辐射通量Φ的光源在单位面积A,单位立体角ω上的辐射出的总能量:
Figure BDA0002777869760000092
如果我们把立体角ω和面积A看作是无穷小的,那么我们就能用辐射率来表示单束光线穿过空间中的一个点的通量。这样我们可以计算得出作用于单个(片段)点上的单束光线的辐射率,我们实际上把立体角ω转变为方向向量ωi然后把面A转换为点p。这样我们可以直接在着色器中使用辐射率来计算单束光线对每个片段的作用了。
1.2BxDF
BxDF一般而言是对BRDF、BTDF、BSDF、BSSRDF等几种双向分布函数的一个统一的表示。其中,BSDF可以看做BRDF和BTDF更一般的形式,而且BSDF=BRDF+BTDF。本发明采用游戏和电影中最常用的BRDF。BxDF即上文所示渲染方程中的fr项。
本发明采用Disney原则的BRDF。从本质上而言,Disney Principled BRDF模型是金属和非金属的混合型模型,最终结果是基于金属度(metallic)在金属BRDF和非金属BRDF之间进行线性插值。正因为这套新的渲染理念统一了金属和非金属的材质表述,可以仅通过少量的参数来涵盖自然界中绝大多数的材质,并可以得到非常逼真的渲染品质。
本发明的BRDF,采用了Disney原则的Microfacet Cook-Torrance BRDF模型:
Figure BDA0002777869760000101
其中,M为漫反射项。
Figure BDA0002777869760000102
为镜面反射项。D为微平面分布函数,估算在受到表面粗糙度的影响下,取向方向与中间向量一致的微平面的数量。F为菲涅尔反射系数(Fresnel reflection coefficient),描述的是在不同的表面角下表面所反射的光线所占的比率。G为几何衰减(geometric attenuation)/阴影项(shadowing factor);描述了微平面自成阴影的属性;当一个平面相对比较粗糙的时候,平面表面上的微平面有可能挡住其他的微平面从而减少表面所反射的光线。θh为半矢量与法线的夹角,θd为半矢量与视线矢量的夹角,θl为入射角度,θv为出射角度。cosθl表示入射方向与法线n的内积,即(ωin)。cosθv表示入射方向与法线n的内积,即(ωon)。
1.2.1漫反射BRDF模型(Diffuse BRDF)
漫反射BRDF模型(Diffuse BRDF)也就是上面BRDF方程中的M项。本发明采用Disney的漫反射模型,公式为:
Figure BDA0002777869760000103
Figure BDA0002777869760000104
其中,FD90=0.5+2RCcos2θd,cosθd表示入射方向与半矢量h的内积,即(ωih)。半矢量h由入射方向到出射方向夹角一半的向量。cosθl表示入射方向与法线n的内积,即(ωin)。cosθv表示入射方向与法线n的内积,即(ωon)。BJ表示基色(baseColor),RC表示粗糙度(roughness),基色和粗糙度为PBR材质的参数。
1.2.2镜面反射BRDF模型(Specular BRDF)
游戏业界目前最主流的基于物理的镜面反射BRDF模型是基于微平面理论(microfacet theory)的Microfacet Cook-Torrance BRDF(库克-托伦斯微平面BRDF)。上面介绍的
Figure BDA0002777869760000111
项即为镜面反射BRDF项。下面对Microfacet Cook-TorranceBRDF中的D、F、G项分别进行简要说明。
1.2.2.1微平面模型(Specular D)
微平面模型的一个重要特性是微平面法线m的统计分布(statisticaldistribution)。此分布由曲面的法线分布函数(Normal Distribution Function,NDF)定义。微观表面(Micro Surface)与宏观表面(Macro Surface)法线方向如图3所示。
一般我们用宏观表面的半矢量h来表示微观表面法线m,因为仅当m=h表面点的朝向才会将光线l反射到视线v的方向,如图4所示。
本发明的为平面分布函数采用了Disney的Generalized-Trowbridge-Reitz(GTR),如下:
Figure BDA0002777869760000112
其中,α=RC 2,RC表示粗糙度(Roughness),为PBR材质的粗糙度属性;n为宏观表面法向量,m为微光表面法向量。π为圆周率,γ为幂,一般选择为2。
现实世界中,大多数材质具有各向同性的表面外观,但有些特殊材质的微观结构具有显著的各向异性(Anisotropy),例如拉丝金属,从而显著影响其外观。创建各向异性NDF的常用方法是基于现有各向同性NDF进行推导。公式如下:
Figure BDA0002777869760000113
其中,n为宏观表面法向量,m为微光表面法向量,t为切线方向,b为副法线方向,π为圆周率,αx为切线方向的粗糙程度,αy为副法线方向的粗糙程度。在本发明中,这两个值的计算如下:
Figure BDA0002777869760000114
其中,α=RC 2,RC表示粗糙度(Roughness),为PBR材质的粗糙度属性;AG表示各向异性(anisotropy),为PBR材质的各项异性属性。
1.2.2.2菲涅尔效应(Specular F)
菲涅尔效应(Fresnel effect)作为基于物理的渲染理念中的核心理念之一,表示的是看到的光线的反射率与视角相关的现象,由法国物理学家奥古斯丁.菲涅尔率先发现。其具体表现是在掠射角(与法线呈接近90度)下光的反射率会增加。而上述的反射率,便被称为菲涅尔反射率。简单来说,菲涅尔效应即描述视线垂直于表面时反射较弱,而当视线非垂直表面时,夹角越小,反射越明显的一种现象。
对于菲涅尔(Fresnel)项,业界方案一般都采用Schlick的Fresnel近似:FSchlick=F0+(1-F0)(1-cosθd)5。其中:θd为半矢量与视线矢量的夹角。常数F0表示垂直入射时的镜面反射率,来自于PBR材质属性。大多数绝缘体的F0范围为0.02~0.05,而导体的范围为0.5~1.0。
1.2.2.3几何函数(Specular G)
几何函数(Geometry Function)描述了微平面自阴影的属性,是对能顺利完成对光线的入射和出射交互的微平面概率进行建模的函数。
本发明的G函数采用了Smith GGX,公式如下:
G(l,v,h)=GGGX(l)GGGX(v)
Figure BDA0002777869760000121
Figure BDA0002777869760000122
其中:l为光线入射方向,v为出射方向(观察方向),n为宏观表面法向量,h为半矢量。RC表示粗糙度(roughness),为PBR材质的粗糙度属性。
要点2:光线追踪的原理和蒙特卡洛方法
在计算机图形学中,我们常说的渲染或着色,核心的实现就是将一个三维空间的场景渲染成一幅二维的图像。我们要渲染一个场景,假定有一个指定的光源,我们用它发出的光线来描述光能的传递过程,当整个场景中的光能信息被我们计算出来后,我们收集这些信息转化为像素点的亮度和颜色。
传统的正向光线追踪:从光源出发,正向跟踪每一根光线在场景中的传递过程,然后收集信息。然而正向光线追踪计算了大量对当前屏幕颜色不产生贡献的信息,而且它把看不见的物体也计算在内,极大的浪费了效率。
后来,为了减少计算量,有了逆向光线追踪理论,也就是从视点出发,向投影屏幕发出光线,然后追踪这个光线的传递过程。如果这个光线经过若干次反射折射后打到了光源上,则认为该光线是有用的,递归的计算颜色,否则就抛弃它。逆向光线追踪实现可见图5所示。
蒙特卡罗方法也称统计模拟方法,是1940年代中期由于科学技术的发展和电子计算机的发明,而提出的一种以概率统计理论为指导的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。蒙特卡罗方法被引入光线追踪,主要为了接近两个问题。第一个问题是传统的逆向光线追踪算法有两个突出的缺点,就是表面属性的单一,和不考虑漫反射。通过修正传统的逆向光线追踪模型,让表面的属性可以是混合的,比如它有20%的成分是反射,30%的成分是折射,50%的成分是漫反射。这里的百分比可以这样理解,当一根光线打在该表面后,它有20%的概率发生反射,30%的概率发生折射,50%的概率发生漫反射。然后我们通过多次计算光线跟踪,每次按照概率决定光线的反射属性,这样在就把漫反射也考虑了进去。第二个问题是蒙特卡罗光线追踪的本质就是通过概率理论,把半球积分方程进行近似简化,使之可以通过少量相对重要的采样来模拟积分。
蒙特卡罗光线追踪已经是一个比较完备的渲染方案,其极大的解决了光线追踪的模型缺陷和效率问题。
要点3:本发明在光线追踪的可编程阶段,实现了PBR的渲染。
a.在Ray Generation阶段创建代表从环境到相机的光路的反向路径。
b.因为目前都是采用光栅化可用的模型,也就是基于三角片的模型,光线与场景相交,采用默认的求交过程。
c.在Closest Hit阶段,根据上个阶段求交的结果,通过上面的渲染方程计算出直接光照的颜色值,并且发射用于进行阴影计算的光线。根据最大光线跟踪次数以及光线能量衰减情况,确定光线是否继续进行跟踪。光线的能量衰减情况根据光线与物体相交表面的材质确定。
d.如果光线与场景不相交,在Miss阶段处理生成背景色或采样天空盒的颜色,处理阴影光线与场景不相交情况。
e.如果继续光线跟踪,重复b~d过程。
f.最后,得出的光照值写入帧缓冲器FrameBuffer。
要点4:本发明在光线跟踪的过程中,根据蒙特卡罗光线追踪的特性,结合BRDF函数的实现,实现了基于PBR材质的光线衰减的计算方法。
在光线跟踪中,光线与物体表面的每一次相交,进行镜面反射,漫反射或透射等,都会消耗能量,需要经行每一次能量衰减的计算。一般的计算公式为:A=f/pdf。其中A为衰减系数,f为分布函数,pdf为概率密度函数。因本发明使用PBR材质,所以f为双向反射分布函数BRDF。pdf的公式与分布函数BRDF相关,如各项同性材质,公式如下:
Figure BDA0002777869760000141
Figure BDA0002777869760000142
在实施本发明实施例提供的技术方案时,1)采用专业的三维场景制作软件如SketchUp、3Ds MAX等制作场景,并导出或通过转换软件转换为obj格式或gltf格式的文件;2)调用本发明的渲染器的接口函数,传入上述的文件;3)调用本发明的渲染器的渲染函数,进行渲染。可以在渲染器软件的窗口看到渲染效果,可以调整灯光,相机等参数改变渲染效果;4)可以将当前渲染结果保存为jpg、png等格式的图片。
本发明实施例提供的技术方案可以达到的技术效果有:1)可以渲染复杂的三维场景,生成高质量逼真的渲染图片;2)可调整相机、灯光等渲染参数,实时看到渲染效果。
相应地,本发明实施例的另一方面还提供一种光线追踪装置。图6是本发明另一实施例提供的光线追踪装置的结构框图。如图6所示,该光线追踪装置包括相交确定模块1和处理模块2。相交确定模块1用于确定始于观察点的光线是否与场景相交,其中,光线来自于从环境至观察点的光路的反向路径;处理模块2用于:在光线与场景相交的情况下,确定相交点及在该相交点处光路的法线方向、入射方向及出射方向;基于PBR材质、所确定的法线方向、入射方向及出射方向计算相交点处的颜色值;根据光线的当前状态判断是否继续追踪光线;以及在继续追踪光线的情况下,重复确定光线是否与场景相交、在光线与场景相交的情况下计算颜色值及判断是否继续追踪光线的过程,直到不继续追踪光线。
可选地,在本发明实施例中,基于PBR材质、所确定的法线方向、入射方向及出射方向计算相交点处的颜色值为根据以下公式计算所述颜色值:
Figure BDA0002777869760000151
其中,p表示观察点、ωo表示出射方向、ωi表示入射方向、Li表示光源颜色方程、fr表示双向反射分布函数,n表示法线方向。
可选地,在本发明实施例中,判断是否继续追踪光线包括:根据当前的光线追踪次数和/或光线能量衰减系数判断是否继续追踪光线。
可选地,在本发明实施例中,光线能量衰减系数根据以下公式确定:A=f/pdf,其中,A为衰减系数,f为分布函数,pdf为概率密度函数。
本发明实施例提供的光线追踪装置的具体工作原理及益处与本发明实施例提供的光线追踪方法的具体工作原理及益处相似,这里将不再赘述。
所述光线追踪装置包括处理器和存储器,上述相交确定模块和处理模块等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现线追踪与PBR材质结合。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
此外,本发明实施例的另一方面还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行上述实施例中所述的光线追踪方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述实施例中所述的光线追踪方法。
本发明实施例提供了一种电子设备,电子设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:确定始于观察点的光线是否与场景相交,其中,所述光线来自于从环境至所述观察点的光路的反向路径;以及在所述光线与所述场景相交的情况下,确定相交点及在该相交点处所述光路的法线方向、入射方向及出射方向;基于PBR材质、所确定的所述法线方向、所述入射方向及所述出射方向计算所述相交点处的颜色值;根据所述光线的当前状态判断是否继续追踪所述光线;以及在继续追踪所述光线的情况下,重复确定所述光线是否与所述场景相交、在光线与所述场景相交的情况下计算所述颜色值及判断是否继续追踪所述光线的过程,直到不继续追踪所述光线;所述基于PBR材质、所确定的所述法线方向、所述入射方向及所述出射方向计算所述相交点处的颜色值为根据以下公式计算所述颜色值:
Figure BDA0002777869760000161
其中,p表示所述观察点、ωo表示所述出射方向、ωi表示所述入射方向、Li表示光源颜色方程、fr表示双向反射分布函数,n表示所述法线方向;所述判断是否继续追踪所述光线包括:根据当前的光线追踪次数和/或光线能量衰减系数判断是否继续追踪所述光线;所述光线能量衰减系数根据以下公式确定:A=f/pdf,其中,A为衰减系数,f为分布函数,pdf为概率密度函数。本文中的电子设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:确定始于观察点的光线是否与场景相交,其中,所述光线来自于从环境至所述观察点的光路的反向路径;以及在所述光线与所述场景相交的情况下,确定相交点及在该相交点处所述光路的法线方向、入射方向及出射方向;基于PBR材质、所确定的所述法线方向、所述入射方向及所述出射方向计算所述相交点处的颜色值;根据所述光线的当前状态判断是否继续追踪所述光线;以及在继续追踪所述光线的情况下,重复确定所述光线是否与所述场景相交、在光线与所述场景相交的情况下计算所述颜色值及判断是否继续追踪所述光线的过程,直到不继续追踪所述光线;所述基于PBR材质、所确定的所述法线方向、所述入射方向及所述出射方向计算所述相交点处的颜色值为根据以下公式计算所述颜色值:
Figure BDA0002777869760000171
其中,p表示所述观察点、ωo表示所述出射方向、ωi表示所述入射方向、Li表示光源颜色方程、fr表示双向反射分布函数,n表示所述法线方向;所述判断是否继续追踪所述光线包括:根据当前的光线追踪次数和/或光线能量衰减系数判断是否继续追踪所述光线;所述光线能量衰减系数根据以下公式确定:A=f/pdf,其中,A为衰减系数,f为分布函数,pdf为概率密度函数。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种光线追踪方法,其特征在于,该光线追踪方法包括:
确定始于观察点的光线是否与场景相交,其中,所述光线来自于从环境至所述观察点的光路的反向路径;以及
在所述光线与所述场景相交的情况下,
确定相交点及在该相交点处所述光路的法线方向、入射方向及出射方向;
基于PBR材质、所确定的所述法线方向、所述入射方向及所述出射方向计算所述相交点处的颜色值;
根据所述光线的当前状态判断是否继续追踪所述光线;以及
在继续追踪所述光线的情况下,重复确定所述光线是否与所述场景相交、在光线与所述场景相交的情况下计算所述颜色值及判断是否继续追踪所述光线的过程,直到不继续追踪所述光线。
2.根据权利要求1所述的光线追踪方法,其特征在于,所述基于PBR材质、所确定的所述法线方向、所述入射方向及所述出射方向计算所述相交点处的颜色值为根据以下公式计算所述颜色值:
Figure FDA0002777869750000011
其中,p表示所述观察点、ωo表示所述出射方向、ωi表示所述入射方向、Li表示光源颜色方程、fr表示双向反射分布函数,n表示所述法线方向。
3.根据权利要求1所述的光线追踪方法,其特征在于,所述判断是否继续追踪所述光线包括:根据当前的光线追踪次数和/或光线能量衰减系数判断是否继续追踪所述光线。
4.根据权利要求3所述的光线追踪方法,其特征在于,所述光线能量衰减系数根据以下公式确定:
A=f/pdf
其中,A为衰减系数,f为分布函数,pdf为概率密度函数。
5.一种光线追踪装置,其特征在于,该光线追踪装置包括:
相交确定模块,用于确定始于观察点的光线是否与场景相交,其中,所述光线来自于从环境至所述观察点的光路的反向路径;以及
处理模块,用于:
在所述光线与所述场景相交的情况下,
确定相交点及在该相交点处所述光路的法线方向、入射方向及出射方向;
基于PBR材质、所确定的所述法线方向、所述入射方向及所述出射方向计算所述相交点处的颜色值;
根据所述光线的当前状态判断是否继续追踪所述光线;以及
在继续追踪所述光线的情况下,重复确定所述光线是否与所述场景相交、在光线与所述场景相交的情况下计算所述颜色值及判断是否继续追踪所述光线的过程,直到不继续追踪所述光线。
6.根据权利要求5所述的光线追踪装置,其特征在于,所述基于PBR材质、所确定的所述法线方向、所述入射方向及所述出射方向计算所述相交点处的颜色值为根据以下公式计算所述颜色值:
Figure FDA0002777869750000021
其中,p表示所述观察点、ωo表示所述出射方向、ωi表示所述入射方向、Li表示光源颜色方程、fr表示双向反射分布函数,n表示所述法线方向。
7.根据权利要求5所述的光线追踪装置,其特征在于,所述判断是否继续追踪所述光线包括:根据当前的光线追踪次数和/或光线能量衰减系数判断是否继续追踪所述光线。
8.根据权利要求7所述的光线追踪装置,其特征在于,所述光线能量衰减系数根据以下公式确定:
A=f/pdf
其中,A为衰减系数,f为分布函数,pdf为概率密度函数。
9.一种机器可读存储介质,其特征在于,该机器可读存储介质上存储有指令,该指令用于使得机器执行权利要求1-4中任一项所述的光线追踪方法。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-4中任一项所述的方法。
CN202011271638.0A 2020-11-13 2020-11-13 光线追踪方法、装置及机器可读存储介质 Pending CN112396684A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011271638.0A CN112396684A (zh) 2020-11-13 2020-11-13 光线追踪方法、装置及机器可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011271638.0A CN112396684A (zh) 2020-11-13 2020-11-13 光线追踪方法、装置及机器可读存储介质

Publications (1)

Publication Number Publication Date
CN112396684A true CN112396684A (zh) 2021-02-23

Family

ID=74601014

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011271638.0A Pending CN112396684A (zh) 2020-11-13 2020-11-13 光线追踪方法、装置及机器可读存储介质

Country Status (1)

Country Link
CN (1) CN112396684A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113313806A (zh) * 2021-06-28 2021-08-27 完美世界(北京)软件科技发展有限公司 一种阴影效果的渲染方法、装置、存储介质和电子装置
CN113313807A (zh) * 2021-06-28 2021-08-27 完美世界(北京)软件科技发展有限公司 一种画面的渲染方法、装置、存储介质和电子装置
CN113593052A (zh) * 2021-08-06 2021-11-02 北京房江湖科技有限公司 场景朝向确定方法及标记方法
CN115375044A (zh) * 2022-10-24 2022-11-22 成都易速物流有限公司 一种冷链运输车辆实时行驶实时优化配送路线的方法
WO2023051662A1 (zh) * 2021-09-30 2023-04-06 华为技术有限公司 一种图像渲染方法及其相关设备
WO2024002130A1 (zh) * 2022-06-29 2024-01-04 华为技术有限公司 一种图像渲染方法及其相关设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5933146A (en) * 1994-12-01 1999-08-03 Advanced Rendering Technology Limited Method of and apparatus for constructing an image of a notional scene by a process of ray tracing
US20120212496A1 (en) * 2011-02-17 2012-08-23 Sony Pictures Technologies Inc. System and method for decoupled ray marching for production ray tracking in inhomogeneous participating media
CN103426199A (zh) * 2013-08-09 2013-12-04 中国科学院自动化研究所 一种三维几何场景的低噪声实时全局光照绘制方法
CN104090742A (zh) * 2014-07-17 2014-10-08 北京邮电大学 一种基于OpenCL的并行化渐进式光子映射方法和装置
CN104183007A (zh) * 2014-08-12 2014-12-03 中国科学院软件研究所 一种基于光线追踪器的薄膜干涉效果绘制方法
US20170294042A1 (en) * 2014-09-23 2017-10-12 Siemens Healthcare Gmbh Method, visualization device, and computer program product for visualizing a three-dimensional object
CN109118567A (zh) * 2018-08-16 2019-01-01 郑州云海信息技术有限公司 一种光线追踪方法、系统、设备及计算机可读存储介质
CN110634178A (zh) * 2019-06-10 2019-12-31 李翔 面向数字博物馆的三维场景精细化重建方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5933146A (en) * 1994-12-01 1999-08-03 Advanced Rendering Technology Limited Method of and apparatus for constructing an image of a notional scene by a process of ray tracing
US20120212496A1 (en) * 2011-02-17 2012-08-23 Sony Pictures Technologies Inc. System and method for decoupled ray marching for production ray tracking in inhomogeneous participating media
CN103426199A (zh) * 2013-08-09 2013-12-04 中国科学院自动化研究所 一种三维几何场景的低噪声实时全局光照绘制方法
CN104090742A (zh) * 2014-07-17 2014-10-08 北京邮电大学 一种基于OpenCL的并行化渐进式光子映射方法和装置
CN104183007A (zh) * 2014-08-12 2014-12-03 中国科学院软件研究所 一种基于光线追踪器的薄膜干涉效果绘制方法
US20170294042A1 (en) * 2014-09-23 2017-10-12 Siemens Healthcare Gmbh Method, visualization device, and computer program product for visualizing a three-dimensional object
CN109118567A (zh) * 2018-08-16 2019-01-01 郑州云海信息技术有限公司 一种光线追踪方法、系统、设备及计算机可读存储介质
CN110634178A (zh) * 2019-06-10 2019-12-31 李翔 面向数字博物馆的三维场景精细化重建方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘小刘: "Webgl中采用PBR的实时光线追踪", 《HTTPS://ZHUANLAN.ZHIHU.COM/P/58692781》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113313806A (zh) * 2021-06-28 2021-08-27 完美世界(北京)软件科技发展有限公司 一种阴影效果的渲染方法、装置、存储介质和电子装置
CN113313807A (zh) * 2021-06-28 2021-08-27 完美世界(北京)软件科技发展有限公司 一种画面的渲染方法、装置、存储介质和电子装置
CN113313807B (zh) * 2021-06-28 2022-05-06 完美世界(北京)软件科技发展有限公司 一种画面的渲染方法、装置、存储介质和电子装置
CN113593052A (zh) * 2021-08-06 2021-11-02 北京房江湖科技有限公司 场景朝向确定方法及标记方法
WO2023051662A1 (zh) * 2021-09-30 2023-04-06 华为技术有限公司 一种图像渲染方法及其相关设备
WO2024002130A1 (zh) * 2022-06-29 2024-01-04 华为技术有限公司 一种图像渲染方法及其相关设备
CN115375044A (zh) * 2022-10-24 2022-11-22 成都易速物流有限公司 一种冷链运输车辆实时行驶实时优化配送路线的方法

Similar Documents

Publication Publication Date Title
US20210027525A1 (en) Forward rendering pipeline with light culling
CN112396684A (zh) 光线追踪方法、装置及机器可读存储介质
KR101054702B1 (ko) 광선 추적 이미지 처리 시스템의 픽셀 컬러 결정
US11302058B2 (en) System for non-planar specular reflections in hybrid ray tracing
Ritschel et al. Micro-rendering for scalable, parallel final gathering
CN113781626B (zh) 遍历在射线追踪中使用的数据的技术
CN110827390A (zh) 处理无序不透明和α光线/图元交点的方法
CN110827387A (zh) 没有着色器干预下对交点进行连续层次包围盒遍历的方法
CN110827389A (zh) 严密的光线三角形相交
CN110827385A (zh) 树遍历的特定于查询的行为修改
CN113781625B (zh) 适用于光线追踪的基于硬件的技术
CN113808245B (zh) 用于遍历光线追踪加速结构的增强技术
Heidrich High Quality Shading and Lighting for Hardware Accelerated Rendering
CN113808241B (zh) 共享顶点的射线追踪图元的硬件加速
Akinci et al. Screen space foam rendering
CN113808244A (zh) 支持运动模糊和运动/变形几何形状的光线追踪硬件加速
CN111788608A (zh) 用于建模光反射的混合射线跟踪方法
Yao et al. Multi‐image based photon tracing for interactive global illumination of dynamic scenes
Komarov et al. Caustic illuminance calculation with directx raytracing
KR100951121B1 (ko) 간접 조명 효과를 위한 렌더링 방법
Kim et al. Surface Model and Scattering Analysis for Realistic Game Character
Chistyakov et al. Real-time formation of photorealistic images for architectural environment visualization in virtual reality systems
Yutong et al. Study of water surface scattering model based on Unity3D Shader
Demoullin Hybrid rendering: in pursuit of real-time raytracing
Hikmah et al. Visualization of Real-World 3D Reconstructed Objects with Real-Time Ray Tracing on Ampere Architecture Graphic Processing Unit

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210223