CN112712582B - 动态全局光照方法、电子设备及计算机可读存储介质 - Google Patents

动态全局光照方法、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN112712582B
CN112712582B CN202110071206.3A CN202110071206A CN112712582B CN 112712582 B CN112712582 B CN 112712582B CN 202110071206 A CN202110071206 A CN 202110071206A CN 112712582 B CN112712582 B CN 112712582B
Authority
CN
China
Prior art keywords
illumination
information
probe
virtual scene
target position
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
Application number
CN202110071206.3A
Other languages
English (en)
Other versions
CN112712582A (zh
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.)
Guangzhou Huya Information Technology Co Ltd
Original Assignee
Guangzhou Huya Information 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 Guangzhou Huya Information Technology Co Ltd filed Critical Guangzhou Huya Information Technology Co Ltd
Priority to CN202110071206.3A priority Critical patent/CN112712582B/zh
Publication of CN112712582A publication Critical patent/CN112712582A/zh
Application granted granted Critical
Publication of CN112712582B publication Critical patent/CN112712582B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/506Illumination models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本说明书提供一种动态全局光照方法,其特征在于,在虚拟场景中放置指定数量的光照探针,所述方法包括:对当前帧中每个光照探针所发射的光线进行光线追踪,获取所发射的光线被虚拟场景中的物体漫反射时,光照探针位置处的光照信息;基于目标位置指定距离内的光照探针的光照信息,对所述目标位置进行漫反射光照计算,获得所述目标位置的光照信息。

Description

动态全局光照方法、电子设备及计算机可读存储介质
技术领域
本说明书涉及图像处理技术领域,尤其涉及一种动态全局光照方法、电子设备及计算机可读存储介质。
背景技术
全局光照是被广泛应用于动画、虚拟现实、游戏等领域中的一种渲染技术。应用全局光照所渲染的画面,不仅需要考虑场景光源发出的光直接照射在物体表面的效果,而且还需要考虑从光源发出的光线经过其他表面反射后再作用到物体表面的效果,以尽可能模拟真实世界中的光照效果。
目前,相关技术一般是通过离线计算全局光照相关信息并存储在光照贴图中,运行时采样光照贴图并计算最终光照结果,来实现全局光照。然而,动画、虚拟现实或者游戏等的场景中除了静态对象之外,还会包含大量的动态对象,采用离线计算并存储的方法,往往不支持动态对象,不能够实现实时渲染出动态对象在场景中的光照效果。
发明内容
为克服相关技术中存在的问题,本说明书提供了一种动态全局光照方法、电子设备及计算机可读存储介质。
根据本说明书实施例的第一方面,提供一种动态全局光照方法,其特征在于,在虚拟场景中放置指定数量的光照探针,所述方法包括:对当前帧中每个光照探针所发射的光线进行光线追踪,获取所发射的光线被虚拟场景中的物体漫反射时,光照探针位置处的光照信息;基于目标位置指定距离内的光照探针的光照信息,对所述目标位置进行漫反射光照计算,获得所述目标位置的光照信息。
根据本说明书实施例的第二方面,提供一种电子设备,其特征在于,所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请第一方面所述的方法。
根据本说明书实施例的第三方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本申请第一方面所述的方法。
本说明书的实施例提供的技术方案可以包括以下有益效果:
本说明书实施例中,应用本申请所述的方法,通过对当前帧中的光照探针进行光线追迹,能够实时获取当前帧中的光照探针位置处的光照信息。所述光照探针位置处的光照信息,由于是通过实时光线追迹的方法获得的,故包含虚拟场景中的动态对象对所述光照探针位置处的光照效果的影响。基于所述光照探针位置处的光照信息,进而对虚拟场景的目标位置进行漫反射光照计算,所获得的目标位置处的光照信息也相应地包含动态对象对所述目标位置处的光照效果的影响。可见,通过本申请所述的方法,能够实时展现包含动态对象的虚拟场景的光照效果,克服了相关技术采用离线计算方法,不能实时渲染出动态对象在场景中的光照效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1是本说明书根据一示例性实施例示出的一种动态全局光照方法的流程图。
图2是本说明书根据一示例性实施例示出的一种在虚拟场景的某个区域放置指定数量的光照探针的示意图。
图3是本说明书根据一示例性实施例示出的一种获取光照探针位置处的光照信息的原理示意图。
图4是本说明书根据一示例性实施例示出的一种确定二维空间中一个光照探针位置处的光照信息的原理示意图。
图5是本说明书根据一示例性实施例示出的一种以二维贴图存储光照探针位置处的光照信息的示意图。
图6是本说明书根据一示例性实施例示出的一种上一帧中的光线再次反射影响当前帧光照探针的光照信息的原理示意图。
图7是本说明书根据一示例性实施例示出的一种基于虚拟场景中的物体对目标位置遮挡程度计算目标位置的光照信息的原理示意图。
图8是本说明书根据一示例性实施例示出的一种电子设备的结构示意图。
图9是本说明书根据一示例性实施例示出的一种计算机设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
随着互联网技术的发展,人们对于娱乐,尤其是游戏、动画、直播等的体验要求也日益增高。为了满足用户对画质以及体验感等的极致追求,影视级别的渲染技术在游戏、动画、直播中不断被尝试。其中,全局光照技术是一种常用的实现方式。
所谓全局光照技术,是指通过对大自然中光照情况的模拟,捕捉真实环境中光的多次传播(例如,折射、反射以及散射等等)所产生的软影、间接折射等光照效果,这些效果能够大大加强渲染结果的真实感。
在动画、虚拟现实、实时直播或者游戏等领域中,场景中除了静态对象(在场景中固定不动的物体或人物等)之外,还会包含有大量的动态对象(在场景中可以移动的物体或人物等)。对于静态对象而言,可以通过预计算生成光照贴图的方式,来实现全局光照;然而,对于动态对象而言,由于其在场景中位置会不断发生变化,使得不同时刻动态对象受到的光照情况也会不断发生变化,特别是,在游戏、实时直播或者虚拟现实等对实时性要求较高的领域中,动态对象会由于用户需求的不同,而使得移动位置产生不确定性,这样,就无法通过预先生成光照贴图的方式来确定动态对象在不同位置点的光照情况。
为了能够确定出动态对象的光照效果,相关技术一般会采用离线计算的方式,预先分析出场景中离散的空间位置点处的环境光颜色并存储在光照贴图中。在需要渲染出场景中动态对象的光照效果时,可以调用预先存储的环境光信息对该动态对象进行光照渲染。然而,预先存储场景中不同空间位置点的环境光信息必然需要占用大量的存储空间,导致存储资源的浪费;而且,场景中除了静态光源之外,还存在一些动态光源,如一些动态对象可能会成为发光体或者动态对象本身就是移动光源,这样,动态对象除了受到静态光源的光照作用外,还可能会受到其他动态对象的光照作用,而由于动态光源自身位置的不确定性,预先计算出的场景中离散的空间位置点的环境光颜色信息的过程中,根本无法考虑到动态光源的环境光颜色对空间位置点的光照影响,从而无法渲染出的动态对象的真实光照效果。
为了解决相关技术所存在的上述问题,本申请实施例提供了一种动态全局光照的方法、电子设备及机器可读存储介质,该方法、电子设备及机器可读存储介质可以应用于游戏、实时直播、虚拟现实、动画等领域,以实时对场景中的对象渲染出接近真实场景下的光照效果。
参见图1,图1是本申请根据一示例性实施例示出的一种动态全局光照方法的流程图,所述方法可以由计算机执行,也可以由服务器执行,还可以由具有对应运算能力的终端设备执行,本申请对此不做限制。所述方法包括以下步骤:
步骤101,对当前帧中每个光照探针所发射的光线进行光线追踪,获取所发射的光线被虚拟场景中的物体漫反射时,光照探针位置处的光照信息;
步骤102,基于目标位置指定距离内的光照探针的光照信息,对所述目标位置进行漫反射光照计算,获得所述目标位置的光照信息。
其中,所述光照探针是多种开发引擎,例如Unity、Unreal Engine(UE,虚幻引擎)等中的一种工具,通过光照探针可以捕获并使用穿过场景空白空间的光线的相关信息。光照探针与目前渲染技术中常使用的光照贴图类似,都储存了有关场景中的光照的“烘焙”信息。不同之处在于,光照贴图存储的是有关光线照射到场景中的表面的光照信息;而光照探针存储的是有关光线穿过场景中的空白空间的信息。
在一些实施例中,在应用本申请实施例所提供的一种动态全局光照方法时,可以预先在待展示的图像帧所对应的虚拟场景中放置一个立方体来标记需要放置光照探针的区域,并在所述区域摆放光照探针。如图2所示,给出了一个在虚拟场景中放置指定数量光照探针的示意图。所述虚拟场景包括一个虚拟对象——房子201,在该虚拟场景放置一个立方体(所有小圆球202所构成的区域)标记出光照探针所在的区域后,可以按照预设的密度在所述区域放置光照探针202。所述光照探针的密度越大,后续进行漫反射计算所获得的光照效果越接近真实情况,但是运算量会随着放置密度的增加而增大,用户可以根据其所处理器的处理能力,权衡所述光照探针和其处理器的计算能力,合理设置所述光照探针的密度。
其中,所述光照探针可以被均匀放置在所述立方体所标记的区域,也可以非均匀地放置在所述立方体所标记的区域,本申请对此不做限制。当然,本领域技术人员可以理解,除了用立方体来标记所述光照探针放置的区域,还可以使用其他多面体来标记所述光照探针放置的区域,本申请对此也不做限制。
此外,本领域技术人员应当理解,当使用立方体标记所述光照探针的方式区域、所述光照探针均匀放置在所标记的区域时,对所述光照探针所发射的光线进行漫反射计算时,能够大大降低漫反射计算的复杂度、降低对处理器运算能力的要求。
下面,结合图3,对步骤101进行详细介绍。如图3所示,其中,黑色圆球为放置在虚拟场景中的光照探针,矩形301和三角形302为虚拟场景中的虚拟对象,所述虚拟对象可以为静态对象,也可以为动态对象。以图3所示的一个光照探针303为例,借助开发引擎自带的光线追踪功能,可以使所述光照探针在360°的空间范围内随机发射指定数量的光线,例如,发射128条射线,并对所有发射的光线进行光线追踪,进而获得光照探针303位置处的光照信息。其基本原理如下:当所述光照探针303所发射的光线打到虚拟场景中的虚拟对象301和302上,基于光学原理可知,所发射的光线会被虚拟对象301和302的表面漫反射,漫反射的部分光束会打到光照探针303的位置,因此,能够基于对当前帧中每个光照探针所发射的光线进行光线追踪,获取每个光照探针所发射的所有光线被虚拟场景中的物体漫反射时,每个光照探针位置处的光照信息。其中,所述光照信息,包括所述光照探针位置处的光的辐照度的信息,还可以包括所述光照探针位置处的光束的方向信息。
基于步骤101,对当前帧中每个光照探针所发射的光线进行光线追踪,并基于虚拟场景中的物体的漫反射计算,所获取的光照探针位置处的光照信息,本质上获得了该光照探针位置处的光照情况。基于物理光学原理可知,空间中每个位置处的光照效果,可以看作是周围每个发光点在该点的光照效果的叠加。因此,在获得了空间中每个光照探针位置处的光照情况后,要想获得空间中目标对象上(即目标位置)的光照情况,可以先获取该目标位置附近几个光照探针的光照信息,然后,将这几个光照探针作为光源,计算这几个光照探针所发射的光束在所述目标位置的漫反射,进而获得所述目标位置的光照信息(即步骤102)。下面,仍结合图3进行详细说明:
在步骤101中,对当前帧中每个光照探针303~310所发射的光线进行光线追踪,获取所发射的光线被虚拟场景中的物体301和302漫反射时,光照探针位置处的光照信息后。要计算空间中目标对象上的(即目标位置,例如302)的光照信息,可以基于该目标位置指定距离内的光照探针303~310的光照信息,将每个光照探针303~310作为光源,计算每个光照探针所发射的光线被所述目标位置漫反射的情况,基于所述漫反射计算的结果,就可以获得该目标位置处的光照信息。
通过上述实施例可以看到,不同于相关技术对所有待展示的图像帧采用离线计算的方式,即不考虑场景中的动态对象和动态光源等,预先分析出场景中离散的空间位置点处的环境光颜色并存储在光照贴图中,在需要渲染出场景中动态对象的光照效果时,调用预先存储的环境光信息对该动态对象进行光照渲染。本申请实施例所提供的动态全局光照方法,是对待展示的当前帧进行漫反射计算处理,故所述漫反射计算包含了当前场景中的动态对象、动态光源等对当前场景中的目标位置的光照影响,既能够做到实时对场景中的对象进行光照渲染,又能够保证渲染结果更接近于真实场景下的光照效果。
在一些实施例中,步骤101中的光照探针位置处的光照信息,可以通过以下方式确定:确定每个光照探针所发射的光线与虚拟场景中的物体的交点;基于漫反射光照计算,确定所述光照探针所发射的所有光线被各自交点处的物体漫反射后,所述光照探针在指定方向上的辐照度。
下面,结合图4进行举例说明。为了便于理解,在图4中,仅给出了立体空间中的一个截面,以二维空间中一个光照探针位置处的光照信息的确定进行详细说明:对于当前帧中的任意一个光照探针401,对其向多个不同的方向所发射的光线(带箭头的黑线)进行光线追踪。其中,在每一图像帧中,光照探针可以随机向多个不同的方向发射光线,也可以按照指定的角度间隔向多个不同的方向发射光线,当然,还可以向固定的角度方向发射光线,本申请对此不做限制。当前帧中的光照探针401所发射的多条光线中的部分光线,会打到光照探针所在的虚拟场景中的物体402~404上,所述物体可以是动态物体,也可以是静态物体,打到物体402~404上的光线会与物体402~404产生交点。所述打到物体402~404上的光线又会被所述交点漫反射,漫反射的光线又会打到所述光照探针401位置处。例如,光照探针401在其二维平面的左上方上所发射的光线,会被物体404漫反射,漫反射的光线又会打到光照探针401处,那么,基于开发引擎(包括Unity、虚幻引擎等等)的漫反射计算或者开发者自己由于应用需要所建立的漫反射计算模型,能够获得光照探针所发射的光线在与物体404的交点处所产生的漫反射光线在其对应方向上对光照探针401位置处的辐照度信息。
可见,基于上述方法,能够获得所述光照探针位置处,由于受到虚拟场景中对象的漫反射而确定的指定方向辐照度信息,即能够将所述光照探针位置处的辐照度信息与所述光线的方向绑定。那么,在步骤102中,基于目标位置指定距离内的光照探针的光照信息,对所述目标位置进行漫反射计算,获得所述目标位置的光照信息,可以进一步地通过以下方式确定:
仍结合图3进行说明,例如,要计算虚拟场景中,目标位置302处的光照信息,可以先获取该目标位置附近的8个光照探针303~310的光照信息,所述光照信息包括多个方向和在对应方向上的辐照度信息。在利用所述多个光照探针的光照信息,计算所述目标位置处的光照信息时,由于已经预先获得了所述目标位置附近的光照探针在多个方向上的辐照度信息,对于某些方向,即使将所述光照探针作为光源,所述方向上的辐照度信息也不会对所述目标位置产生光照效果。例如,对于目标位置302而言,光照探针303~310背对着所述目标位置的方向上的辐照度信息对应的光线,根本不会打到所述目标位置上,对所述目标位置处的光照效果产生影响。因此,在这种情况下,基于目标位置指定距离内的光照探针的光照信息,对所述目标位置进行漫反射光照计算,可以基于所述光照探针所包含的辐照度信息对应的光线的方向,判断所述方向对所述目标位置302的光照效果产生的影响程度,然后基于所述影响程度确定权重,根据所述权重确定所述光照探针该指定方向的辐照度信息所对应的光线在所述目标位置漫反射计算所获得的光照信息。
例如,对于目标位置302,光照探针303正对着目标位置302方向上的辐照度信息所对应的光线对于所述目标位置的光照信息的影响程度较大,因此,基于漫反射计算所获得的光照信息的权重可以较大,例如,设置为5;光照探针303背对着目标位置302方向上的辐照度信息所对应的光线对于所述目标位置的光照信息几乎没有影响,因此,在基于漫反射计算确定所述光照探针在所述目标位置处的光照信息时,可以不考虑此辐照度信息所对应的光线对所述目标位置处的光照信息的影响。光照探针303辐照度信息所对应的其他光线,介于背对和正对所述目标位置之间的情况,可以基于所述光线与所述目标位置的夹角,判断所述光线对所述目标位置的影响程度,进而可以设定权重值以调节所述辐照度信息所对应的光线对所述目标位置的光照信息的影响。
通过上述实施例可以看到,采用上述确定光照探针位置处的光照信息,不仅能够确定所述光照探针位置处的辐照度信息,还能够将所述辐照度信息与所述光线的方向信息关联起来。那么,基于目标位置指定距离内的光照探针的光照信息,对所述目标位置进行漫反射光照计算,能够充分考虑光照探针指定方上的辐照度信息所对应的光线对所述目标位置的光照效果的影响,进而可以调节光照探针指定方向上的辐照度信息所对应的光线对所述目标位置的漫反射光照计算,能够更加准确地模拟真实世界中的光照情况,进而所获得的目标位置的光照信息能够更加准确。
基于上述实施例,能够获得被放置在虚拟场景中的每个光照探针在指定方向上的辐照度信息。在一些实施例中,所述光照探针在指定方向上的辐照度信息可以通过二维贴图的方式存储;其中,所述二维贴图的每个像素,用于存储所述光照探针一个指定方向上的辐照度信息。
结合图5进行说明,图5中501为光照探针,基于漫反射光照计算,能够获得所述光照探针在多个指定方向上的辐照度信息。但是,由于获取所述光照探针在多个指定方向上的辐照度信息是基于对所述光照探针向360°空间内随机发射的多个光线进行光线追踪,基于漫反射计算获得的,因此,所获取的光照探针在多个指定方向上的辐照度信息,如图5的501所示,为球面形式。为了便于存储器和处理器进行存储和处理,在对所述光照探针多个指定方向上的辐照度信息进行存储时,可以先将每个光照探针进行多面体化,图5中将光照探针501进行八面体化后,获得八面体化的光照探针502,再将多面体化的光照探针进行展开,就能够获得二维贴图503,其中,二维贴图中的每个像素代表着一个指定方向,该像素位置处的像素值,则代表着光照探针在该指定方向上的辐照度信息。基于此种方法,能够将以球面表示的指定方向上的辐照度信息,转换为二维贴图表示的辐照度信息,便于存储器的存储。
本领域技术人员应当理解,在进行多面体化的过程中,多面体的面数越多,能够保存的指定方向就越多,进而能够更加真实地获得虚拟场景中的目标位置的光照效果。然而,使用的多面体的面数越多,进行多面体化所涉及的计算量就越大,因此,在多面体化的面数和计算量之间,可以基于所使用的处理器的计算能力权衡确定。
此外,本领域技术人员应当理解,除了将所述光照探针在多个指定方向上的辐照度信息通过多面体化的方式,最终转换为二维贴图。还可以直接将球面形式表示的指定方向的辐照度信息,与二维贴图进行指定函数关系的压缩映射,进而获得像素代表空间的指定方向、像素值代表指定方向的辐照度信息的二维贴图。
在将光照探针在指定方向的辐照度强度转换为二维贴图进行存储的过程中,理想情况是,对光照探针在360°空间内的每个方向上的辐照度信息都存储起来。然而,由于存储器的存储空间有限,且如果将基于漫反射计算所获得的所有方向上辐照度信息进行存储,可能会存在信息的冗余。因此,所述二维贴图所存储的指定方向的辐照度信息,指定方向可以视具体情况而定。例如,所述二维贴图可以只存储所述光照探针在360°空间中的64个指定方向的辐照度信息。当然,本领域技术人员应当理解,二维贴图可以存储更多或者更少指定方向的辐照度信息,本申请对此不做限制。
通过上述实施例可以看到,将虚拟场景中所放置的光照探针在指定方向上基于漫反射计算所确定的辐照度信息通过二维贴图的方式进行存储,适用于电子设备存储器的存储,且能够节省存储空间,在实时直播、游戏等具有高实时性的应用领域中,能够节省处理时间,保证全局光照的实时性。
在一些实施例中,所述步骤101中的光照探针位置处的光照信息,还包括:基于上一帧中所有光照探针的光照信息,确定上一帧的每个光照探针所发射的光线在当前帧中被虚拟场景中的物体再次反射后的光照信息。
真实场景中,当光束打在一个物体上后,被物体漫反射的光线会在空间中多次反射。因此,为了使得虚拟场景中所渲染的光照效果能够更加真实地接近真实场景中的效果,也应当考虑被物体漫反射的光线在空间中多次反射,对光照探针位置处的光照信息的影响。
如图6所示,仍取立体空间的一个截面,以二维场景只包括光照探针601和光照探针602为例,对本实施例进行详细说明。图6中,601和602为放置在该虚拟场景中的光照探针,603和604为虚拟场景中的物体,所述物体可以为动态物体,也可以为静态物体,605为虚拟场景中遮挡了光照探针601照射在物体603上的光线的障碍物。在第一帧时,光照探针602向四周发射光线,并进行光线追踪和漫反射计算,确定所述光照探针602位置处的光照信息,此时,由于光照探针601所发出的光线被障碍物605所遮挡,因此,在第一帧中,光照探针602所获取的光照信息,不包含光照探针601对物体603的光照信息。在第二帧时,基于物体光学原理,第一帧下的光照探针601打在物体604上的光照,会被物体604反射,打到物体603上。因此,第二帧光照探针所获取的光照信息,除了包括对当前帧中的光照探针602所发射的光线进行光线追踪并进行漫反射计算之外,还应当包括上一帧中光照探针601所发射的光线经过虚拟场景中的物体一次反射后的光照信息。以此类推,在进行光线追踪以及漫反射光照计算时,利用上一帧已计算的光照探针的光照信息,借此纳入上一帧光线进行反射后的效果,能够更加真实地模拟出真实世界中,光照的产生,进而能够获得更加真实的光照效果。
因此,在步骤101中,对当前帧中每个光照探针所发射的光线进行光线追踪,除了对所发射的光线被虚拟场景中的物体漫反射计算获取当前帧中所述光照探针位置处由于此帧当前场景中的漫反射光照信息之外,还可以利用上一帧已经计算出的光照探针的光照信息,计算上一帧的光线再次反射后的光照信息,所述漫反射光照信息和再次反射后的光照信息的总结果,作为所述光照探针位置处的光照信息。
从上述实施例可以看到,基于上述确定光照探针位置处的光照信息,不仅考虑了由于当前帧中的物体的漫反射在光照探针位置处所产生的光照信息,还将上一帧中的物体对上一帧光线的再次反射的光照信息也纳入到了当前帧中光照探针位置处的光照信息,更加准确地模拟了真实世界中的光照效果的产生,因此,基于此种光照探针位置处的光照信息所计算的虚拟场景中的目标位置的光照信息,能够更加准确,获得更加真实的光照效果。
在一些实施例中,在步骤101,对当前帧中每个光照探针所发射的光线进行光线追踪,获取所发射的光线被虚拟场景中的物体漫反射时,光照探针位置处的光照信息之后,还将所述光照探针位置处的光照信息与上一帧对应的光照探针的光照信息进行插值融合,重新确定所述光照探针位置处的光照信息。
当当前帧与上一帧所对应的虚拟场景中的物体发生的变化较大时,如果仅仅基于对当前帧中每个光照探针所发射的光线进行光线追踪,并基于所发射的光线被虚拟场景中的物体漫反射计算,获取所述光照探针位置处的光照信息,则很有可能出现当前帧所呈现的光照效果与上一帧所呈现的光照效果具有较大的差异,造成的后果就是所展现的图像帧相互之间具有突变,使得用户的观感较差。为了克服上述技术缺陷,因此,在步骤101之后,还可以将所获取的光照探针位置处的光照信息与上一帧对应的光照探针的光照信息进行插值融合,所述插值融合可以是简单地取当前帧和上一帧的同一光照探针对应的光照信息的均值,也可以对当前帧和上一帧的同一光照探针所对应的光照信息乘以不同的权重值后求均值,本申请对此不做限制。
通过上述实施例可以看到,采用将当前帧所获取的光照探针的光照信息和对应的上一帧光照探针的光照信息进行插值融合的处理,能够降低使帧与帧之间的光照效果的突变,使得用户能够获得更好的感官体验。
本领域技术人员应当理解,上述将当前帧所获取的光照探针的光照信息和对应的上一帧光照探针的光照信息进行插值融合的处理,既可以是对当前帧中每个光照探针所发射的光线进行光线追踪,并对所发射的光线被虚拟场景中的物体漫反射计算后所直接获得的光照信息与上一帧对应的光照探针的光照信息进行插值融合处理,之后再将上一帧的每个光照探针所发射的光线在当前帧中被虚拟场景中的物体再次反射后的光照信息叠加至对应的光照探针的光照信息;还可以是对包含了上一帧的每个光照探针所发射的光线在当前帧中被虚拟场景中的物体再次反射后的光照信息,与上一帧对应的光照探针的光照信息进行插值融合处理。即,对于每个光照探针,将上一帧由于光照反射所确定的光照信息叠加至基于漫反射计算所确定的光照信息,与将当前帧与上一帧的光照信息进行插值融合处理,两种处理可以不分先后顺序,本申请对此不做限制。
在一些实施例中,步骤102,基于目标位置指定距离内的光照探针的光照信息,对所述目标位置进行漫反射光照计算,获得所述目标位置的光照信息,还包括:对当前帧中每个光照探针所发射的光线进行光线追踪时,还获取所发射的光线被虚拟场景中的物体漫反射时,所述光线与所述物体的交点的深度信息;基于所述交点的深度信息,确定所述目标位置被虚拟场景中的物体的遮挡程度;基于所述遮挡程度,对所述目标位置进行漫反射光照计算。
在步骤101,对当前帧中每个光照探针所发射的光线进行光线追踪时,除了可以获取所发射的光线被虚拟场景中的物体漫反射时,光照探针位置处的光照信息,还能够获得所述光线与所述物体的交点的深度信息。如图7所示,仍以一个包含8个光照探针的立方体空间为例进行示意性说明:图7中的立方体的顶点的上的8个圆球为光照探针,在对光照探针所发射的光线进行光线追踪,当所发射的光线被虚拟场景中的物体,例如701遮挡时,所述光线与物体701的交点的深度信息(如图7所示的r)也能够得到。
在基于虚拟场景的目标位置702附近的光照探针的光照信息,结合所得到的交点的深度信息,对所述目标位置702处的光照信息进行计算时,可以首先基于所述交点的深度信息,判断光照探针指定方向上的辐照度信息所对应的光线是否被所述交点所对应的物体部位遮挡,如果确定所述指定方向上的辐照信息对应的光线被遮挡,则在对所述目标位置进行漫反射光照计算时,不需要考虑此辐照度信息对应的光线对所述目标位置进行的漫反射光照计算(因为所述光线已经被遮挡了,不会打到所述目标位置上)。仍结合图7进行说明,假设目标位置702基于其周围的8个光照探针进行光照信息的获取,则由于光照探针P所发射的某些方向上的光线被物体701所遮挡,因此,在基于这8个光照探针的光照信息,进行漫反射光照计算,获取目标位置702处的光照信息时,不必对光照探针P所发射的那些被物体701所遮挡的方向上的光线对所述目标位置进行漫反射光照计算。
通过上述实施例可以看到,在对光照探针所发射的光线进行光线追踪的过程中,不仅获取所发射的光线被虚拟场景中的物体漫反射时,光照探针位置处的光照信息,还获取所述光线与虚拟场景中的物体的交点的深度信息;在利用光照探针对虚拟场景中的目标位置进行光照信息计算时,首先基于所述交点的深度信息确定所述光照探针指定方向上所发射的光线是否由于场景中物体的遮挡而不能达到所述目标位置,进而确定是否利用所对应的光照探针的指定方向的光线对所述目标位置进行光照信息的计算。当所述目标位置的光照被虚拟场景中的物体遮挡时,就不再进行其对应方向的光照探针对所述目标位置的漫反射光照计算,能够真实地模拟出,当虚拟场景中的目标位置被动态对象遮挡的情况下,由于遮挡所造成的光照效果,避免存在遮挡而所述目标位置还存在光照这种“漏光”现象。
在本申请上述各个实施例中所涉及的漫反射光照计算,可以借助各种开发引擎,例如出自Epic Game公司的通用型游戏开发引擎Unreal Engine(UE)、出自UnityTechnologies公司的游戏开发引擎Unity等等,所自带的漫反射光照计算工具,也可以是本领域技术人员基于实际的应用需求,自己开发的模拟真实世界中光照情况的物理计算模型,本申请对此不做限制。
与前述方法的实施例相对应,本申请还提供了电子设备的实施例。所述电子设备,可以是服务器或者终端设备等等。
参见图8,为本申请电子设备实施例的一种硬件结构图,所述电子设备可以包括存储器801以及处理器802。所述存储器801可以是所述电子设备的内部存储单元,例如是设备的硬盘或者内存。所述存储器801也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器801还可以既包括所述设备的内部存储单元也包括外部存储设备。所述存储器用于存储所述计算机程序以及所述设备所需的其他程序和数据。所述存储器还可以用于暂时地存储已经输出或者将要输出的数据。当存储器存储的程序被执行时,所述处理器802调用存储器801中存储的程序,用于执行前述各实施例的方法,所述方法已在前文详细介绍,这里不再赘述。
参见图9,给出了一种适用于本申请所提供的动态全局光照方法的另一种电子设备,具体而言,一种计算计算机设备的一种组成结构示意图,该计算机设备可以包括:处理器901、存储器904、通信接口905、显示单元906、输入单元907和通信总线908。其中,处理器901、存储器904、通信接口905、显示单元906、输入单元907均通过通信总线908完成相互间的通信。
在本申请实施例中,该处理器901至少包括:图形处理器(GPU,GraphicsProcessing Unit)902,GPU可以用于实现本申请实施例中图像渲染、计算环境光信息等相关的图形数据处理。可选的,该处理器901中可以包括中央处理器(CPU,CentralProcessing Unit)903,以辅助图形处理器完成一些相关的数据处理,可以实现该计算机设备主要的数据处理操作,当然,该中央处理器还可以被替换为特定应用集成电路(application-specific integrated circuit,ASIC),数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件等。
存储器904中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令。所述程序代码用以实现本申请上述各个实施例所述的方法。该存储器可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
通信接口905可以为通信模块的接口,如GSM模块的接口。
显示单元906可用于显示场景中所涉及到的对象以及其他图像信息;还可以显示由用户输入的信息,或者提供给用户的信息,以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图片等任意组合来构成。该显示单元可以包括显示面板,如,可以为采用液晶显示器、有机发光二极管等形式来配置的显示面板。进一步的,所述显示单元还可以包括具备采集触摸事件的触摸显示面板。
输入单元907可用于接收输入的用户输入的字符、数字等信息,以及产生与用户设置以及功能控制有关的信号输入。该输入单元可以包括但不限于物理键盘、鼠标、操作杆等中的一种或多种。
当然,本领域技术人员应当理解,图9所示的计算机设备结构并不构成对计算机设备的限定,在实际应用中计算机设备可以包括比图1所示的更多或更少的部件,或者组合某些部件。
此外,本领域技术人员应当理解,在一种应用场景中,本申请各个实施例所述的方法可以在运行有游戏、虚拟现实、直播等应用的计算机设备输出场景之前,实时对场景中的对象(优选为动态对象)进行渲染。在该种场景中,计算机设备确定待输出场景以及对场景中的动态对象进行渲染均可以由该计算机设备独立完成。如,游戏玩家在利用手机、平台电脑等计算机设备玩单机游戏的过程中,在计算机设备可以在输出每帧游戏画面之前,根据该游戏画面中所涉及到的对象进行实时渲染,并输出包含渲染后的对象的游戏画面。在另一种应用场景中,本申请实施例的方案也可以适用于终端与服务器进行交互,以在终端侧输出场景对应的画面。在该种场景中,终端侧待输出的场景可以从服务器侧获取,而终端在输出该场景之前可以对该场景内的对象进行光照渲染。本申请对具体的应用场景不做限制。
在本申请的实施例中还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本申请上述方法中的所有实施例,在此不再赘述。
所述计算机可读存储介质可以是前述任一项实施例所述的设备的内部存储单元,例如设备的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述设备所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑申请及实践这里申请的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未申请的本技术领域中的公知常识或惯用技术手段。申请和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (9)

1.一种动态全局光照方法,其特征在于,在虚拟场景中放置指定数量的光照探针,所述方法包括:
对当前帧中每个光照探针所发射的光线进行光线追踪,获取所发射的光线被虚拟场景中的物体漫反射时,光照探针位置处的光照信息;
基于目标位置指定距离内的光照探针的光照信息,对所述目标位置进行漫反射光照计算,获得所述目标位置的光照信息;
在获取所发射的光线被虚拟场景中的物体漫反射时,光照探针位置处的光照信息之后,所述方法还包括:
将所述光照探针位置处的光照信息与上一帧对应的光照探针位置处的光照信息进行插值融合,重新确定所述光照探针位置处的光照信息。
2.根据权利要求1所述的方法,其特征在于,所述光照探针位置处的光照信息,通过以下方式确定:
确定每个光照探针所发射的光线与虚拟场景中的物体的交点;
基于漫反射光照计算,确定所述光照探针所发射的所有光线被各自交点处的物体漫反射后,所述光照探针在指定方向上的辐照度信息。
3.根据权利要求2所述的方法,其特征在于,所述光照探针在指定方向上的辐照度信息通过二维贴图的方式存储;
其中,所述二维贴图的每个像素,用于存储所述光照探针一个指定方向上的辐照度信息。
4.根据权利要求1所述的方法,其特征在于,所述光照探针位置处的光照信息,还包括:
基于上一帧中所有光照探针的光照信息,确定上一帧的每个光照探针所发射的光线在当前帧中被虚拟场景中的物体再次反射后的光照信息。
5.根据权利要求2所述的方法,其特征在于,对所述目标位置进行漫反射光照计算,获得所述目标位置的光照信息,还包括:
对当前帧中每个光照探针所发射的光线进行光线追踪时,还获取所发射的光线被虚拟场景中的物体漫反射时,所述光线与所述物体的交点的深度信息;
基于所述交点的深度信息,确定所述目标位置被虚拟场景中的物体的遮挡程度;
基于所述遮挡程度,对所述目标位置进行漫反射光照计算。
6.根据权利要求1所述的方法,其特征在于,所述光照探针在虚拟场景中均匀分布。
7.根据权利要求1所述的方法,其特征在于,所述漫反射光照计算为基于虚幻引擎的漫反射光照计算。
8.一种电子设备,其特征在于,所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项的方法。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1至7任一项所述的方法。
CN202110071206.3A 2021-01-19 2021-01-19 动态全局光照方法、电子设备及计算机可读存储介质 Active CN112712582B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110071206.3A CN112712582B (zh) 2021-01-19 2021-01-19 动态全局光照方法、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110071206.3A CN112712582B (zh) 2021-01-19 2021-01-19 动态全局光照方法、电子设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112712582A CN112712582A (zh) 2021-04-27
CN112712582B true CN112712582B (zh) 2024-03-05

Family

ID=75549458

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110071206.3A Active CN112712582B (zh) 2021-01-19 2021-01-19 动态全局光照方法、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112712582B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112973121B (zh) * 2021-04-30 2021-07-20 成都完美时空网络技术有限公司 反射效果生成方法及装置、存储介质、计算机设备
CN116800984A (zh) * 2022-03-15 2023-09-22 华为技术有限公司 编解码方法和装置
CN115393499B (zh) * 2022-08-11 2023-07-25 广州极点三维信息科技有限公司 一种3d实时渲染方法、系统及介质
CN116503520A (zh) * 2022-10-20 2023-07-28 腾讯科技(深圳)有限公司 光照控制方法、装置、计算机设备和存储介质
CN116030180B (zh) * 2023-03-30 2023-06-09 北京渲光科技有限公司 辐照度缓存光照计算方法及装置、存储介质、计算机设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101606181A (zh) * 2006-07-24 2009-12-16 迈克尔·邦内尔 用于实时渲染带有全局光照的可变形几何形状的系统和方法
CN106204701A (zh) * 2016-06-22 2016-12-07 浙江大学 一种基于光探针插值动态计算间接反射高光的渲染方法
CN107633549A (zh) * 2017-10-13 2018-01-26 苏州蜗牛数字科技股份有限公司 一种基于环境光照探针的实时渲染方法及装置
CN110689626A (zh) * 2019-09-25 2020-01-14 网易(杭州)网络有限公司 游戏模型渲染方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10008032B2 (en) * 2015-03-03 2018-06-26 Imagination Technologies Limited Graphics processing using directional representations of lighting at probe positions within a scene
US10842589B2 (en) * 2017-03-21 2020-11-24 Canon U.S.A., Inc. Method for displaying an anatomical image of a coronary artery on a graphical user interface
WO2020006505A1 (en) * 2018-06-29 2020-01-02 Baobab Studios Inc. Systems and methods for generating dynamic real-time high-quality lighting for digital animation
US20210012562A1 (en) * 2019-07-11 2021-01-14 Nvidia Corporation Probe-based dynamic global illumination

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101606181A (zh) * 2006-07-24 2009-12-16 迈克尔·邦内尔 用于实时渲染带有全局光照的可变形几何形状的系统和方法
CN106204701A (zh) * 2016-06-22 2016-12-07 浙江大学 一种基于光探针插值动态计算间接反射高光的渲染方法
CN107633549A (zh) * 2017-10-13 2018-01-26 苏州蜗牛数字科技股份有限公司 一种基于环境光照探针的实时渲染方法及装置
CN110689626A (zh) * 2019-09-25 2020-01-14 网易(杭州)网络有限公司 游戏模型渲染方法和装置

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
基于BRDF和GPU并行计算的全局光照实时渲染;王芳;秦磊华;;图学学报(第05期);3-11 *
基于光照探针的全局光照技术的研究与实现;张宏伟;;现代计算机(第07期);65-68+74 *
基于光照探针的全局光照技术的研究与实现;张宏伟;《现代计算机》(第07期);64-67+73 *
多级存储优化的大规模全局光照快速计算;戚爽;喻光继;;测绘通报(第03期);67-71 *
张宏伟.基于光照探针的全局光照技术的研究与实现.《现代计算机》.2020,(第07期),64-67+73. *
混合实时渲染关键技术研究;蔡至诚;《中国优秀硕士学位论文全文数据库信息科技辑》(第07期);I138-1074 *

Also Published As

Publication number Publication date
CN112712582A (zh) 2021-04-27

Similar Documents

Publication Publication Date Title
CN112712582B (zh) 动态全局光照方法、电子设备及计算机可读存储介质
Hodaň et al. Photorealistic image synthesis for object instance detection
CN107077756B (zh) 三维对象可视化方法、可视化装置、计算机可读存储介质
US10403027B2 (en) System for ray tracing sub-scenes in augmented reality
CN106780709B (zh) 一种确定全局光照信息的方法及装置
US20040181382A1 (en) Visualizing the surface of a liquid
KR101947650B1 (ko) 게임 엔진 기반의 머신 러닝 학습이미지 생성 장치 및 방법
RU2427918C2 (ru) Метафора двумерного редактирования для трехмерной графики
Montero et al. Designing and implementing interactive and realistic augmented reality experiences
CN111968215A (zh) 一种体积光渲染方法、装置、电子设备及存储介质
CN114419240B (zh) 光照渲染方法、装置、计算机设备和存储介质
CN109584321A (zh) 用于基于深度学习的图像重建的系统和方法
RU2422902C2 (ru) Двумерная/трехмерная комбинированная визуализация
CN112819940A (zh) 渲染方法、装置和电子设备
KR101661166B1 (ko) 3차원 영상 시스템에서 광선 추적 방법 및 장치
CN106846450B (zh) 实时渲染次表面散射的方法及相关装置
JP5848071B2 (ja) 均質な媒質中の光の散乱を推定する方法
JP2021530005A (ja) 現実世界環境における仮想オブジェクトの光線追跡反射の高速生成
WO2023089777A1 (ja) 画像処理装置、オブジェクトデータ生成装置、画像処理方法、オブジェクトデータ生成方法、およびオブジェクトモデルのデータ構造
Balz Real-time SAR simulation of complex scenes using programmable graphics processing units
Garcia et al. Modifying a game interface to take advantage of advanced I/O devices
Shen THE PURDUE UNIVERSITY GRADUATE SCHOOL STATEMENT OF DISSERTATION APPROVAL
Tuceryan et al. Extraction and Integration of Physical Illumination in Dynamic Augmented Reality Environments
Montero Montes et al. Designing and implementing interactive and realistic augmented reality experiences
CN113658318A (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