CN109364481A - 游戏内的实时全局光照方法、装置、介质及电子设备 - Google Patents
游戏内的实时全局光照方法、装置、介质及电子设备 Download PDFInfo
- Publication number
- CN109364481A CN109364481A CN201811279002.3A CN201811279002A CN109364481A CN 109364481 A CN109364481 A CN 109364481A CN 201811279002 A CN201811279002 A CN 201811279002A CN 109364481 A CN109364481 A CN 109364481A
- Authority
- CN
- China
- Prior art keywords
- voxel
- scene
- game
- real
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
Abstract
本发明实施例提供了一种游戏内的实时全局光照方法、装置、介质及电子设备,该方法包括:获取游戏场景中待处理的目标对象;根据所述目标对象在游戏场景中的位置确定目标场景体素,并获取所述目标场景体素的实时辐射率;根据所述目标场景体素的实时辐射率确定所述目标对象的实时辐射率,并根据所述目标对象的实时辐射率对所述目标对象进行实时全局光照处理。本发明实施例的技术方案能够减小实时全局光照对内存或运行效率方面的需求,有利于本技术方案提供的游戏中实时全局光照在移动平台上推广。同时,适用于游戏场景中虚拟对象多为动态的情况,能够到达避免游戏画质失真的目的,进而为游戏玩家提供较强的代入感,提高游戏玩家游戏体验。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种游戏内的实时全局光照方法、游戏内的实时全局光照装置、计算机可读介质及电子设备。
背景技术
随着互联网技术的发展,人们对于娱乐,尤其是游戏体验,的要求也日益增高。为了满足游戏玩家对游戏画质的极致追求,影视级别的渲染技术在游戏中不断被尝试。例如,全局光照技术,是指建立在几何光学的基础上,求解从光源出发的光线,经过和物体反射、折射、散射等交互后到达观测设备时携带的能量,从而计算得到逼真极致的画面效果。在电影、计算机动画(CG)、动画、游戏领域被广泛使用。
相关技术中,一种处理方式是实时计算全局光照,然而此处处理方式涉及到巨量的计算。对于目前常见的游戏场景,通常需要若干台计算机连续计算十几个小时才能出结果。而移动平台往往不能提供足够的计算资源而造成游戏画面卡顿不流畅,不能为游戏玩家提供较强的代入感,使得游戏玩家游戏体验较差。另一种处理方式是通过近似的方式确定全局光照。具体的,通过算法预烘焙静态场景,然后,针对动态物体提供全局间接光照结果。然而,当此种全局光照方法运用至游戏场景中虚拟对象多为动态的情况下,会造成游戏画质失真,同样不能为游戏玩家提供较强的代入感,使得游戏玩家游戏体验较差。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明实施例的目的在于提供一种游戏内的实时全局光照方法、游戏内的实时全局光照装置、计算机可读介质及电子设备,进而至少在一定程度上克服相关技术提供的实时全局光照技术不能为游戏玩家提供较强的代入感,使得游戏玩家游戏体验较差的问题。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明实施例的第一方面,提供了一种游戏内的实时全局光照方法,包括:
获取游戏场景中待处理的目标对象;
根据所述目标对象在游戏场景中的位置确定目标场景体素,并获取所述目标场景体素的实时辐射率;
根据所述目标场景体素的实时辐射率确定所述目标对象的实时辐射率,并根据所述目标对象的实时辐射率对所述目标对象进行实时全局光照处理。
在本发明的一些实施例中,根据所述目标对象在游戏场景中的位置确定目标场景体,包括:
离线体素化所述游戏场景中的虚拟对象得到模型体素,并体素化初始游戏场景得到第一场景体素;
利用所述模型体素填充所述第一场景体素,得到填充后的第二场景体素;
根据所述目标对象在游戏场景中的位置和所述第二场景体素获得目标场景体素。
在本发明的一些实施例中,所述模型包括发光体模型和反光体模型,利用所述模型体素填充所述第一场景体素,得到填充后的第二场景体素,包括:
基于游戏场景,利用所述发光体模型的第一发光特征值确定所述游戏场景中虚拟发光体对应的第二场景体素的第二发光特征值;
基于游戏场景,利用所述反光体模型的第一反光特征值确定所述游戏场景中虚拟反光体对应的第二场景体素的第二反光特征值。
在本发明的一些实施例中,获取所述目标场景体素的实时辐射率,包括:
基于所述第二发光特征值或第二反光特征值对每个所述第二场景体素的辐射率进行初始化得到初始辐射率;
根据所述第二场景体素的初始辐射率确定所述目标场景体素的实时辐射率。
在本发明的一些实施例中,基于所述第二发光特征值或第二反光特征值对每个所述第二场景体素的辐射率进行初始化得到初始辐射率,包括:
对于所述游戏场景中的虚拟发光体对应的第二场景体素的任一个体素面:
根据所述虚拟发光体之间对应的第二场景体素的第二发光特征值,确定所述体素面的初始辐射率。
在本发明的一些实施例中,基于所述第二发光特征值或第二反光特征值对每个所述第二场景体素的辐射率进行初始化得到初始辐射率,包括:
对于所述游戏场景中的虚拟反光体对应的第二场景体素的任一个体素面:
根据所述体素面与虚拟光源之间的相对位置关系确定第一辐射照度值;
根据所述体素面与所述游戏场景中的虚拟发光体之间的相对位置关系,以及所述虚拟发光体对应的第二场景体素的第二发光特征值,确定第二辐射照度值;
根据所述体素面与所述游戏场景中的其他的虚拟反光体之间的相对位置关系,以及所述虚拟反光体对应的第二场景体素的第二反光特征值,确定第三辐射照度值;
根据所述第一辐射照度值、所述第二辐射照度值和所述第三辐射照度值确定所述体素面的初始辐射率。
在本发明的一些实施例中,根据所述第二场景体素的初始辐射率确定所述目标场景体素的实时辐射率,包括:
根据目标场景体素的第二特征值判断所述目标场景体素是否是虚拟反光体;
若所述目标场景体素是虚拟反光体,则基于所述游戏场景,对于所述目标场景体素的任一个体素面:
根据所述体素面与虚拟光源之间的相对位置关系确定第四辐射照度值;
根据所述体素面与所述游戏场景中的虚拟发光体之间的相对位置关系,以及所述虚拟发光体对应的第二场景体素的第二发光特征值,确定第五辐射照度值;
根据所述体素面与所述游戏场景中的虚拟反光体之间的相对位置关系,所述虚拟反光体对应的第二场景体素的各个体素面的初始辐射率,以及所述虚拟反光体对应的第二场景体素的第二反光特征值,确定第六辐射照度值;
根据所述第四辐射照度值、所述第五辐射照度值和所述第六辐射照度值确定所述体素面的实时辐射率。
在本发明的一些实施例中,根据目标场景体素的第二特征值判断所述目标场景体素是否是虚拟反光体;
若所述目标场景体素是虚拟发光体,则基于所述游戏场景,对于所述目标场景体素的任一个体素面:
根据所述虚拟发光体对应的第二场景体素的第二发光特征值,确定所述体素面的实时辐射率。
在本发明的一些实施例中,根据所述目标场景体素的实时辐射率确定所述目标对象的实时辐射率,并根据所述目标对象的实时辐射率对所述目标对象进行实时全局光照处理,包括:
根据目标对象的顶点位置,采用插值的方法获取所述目标场景体素相关面的辐射率,以确定所述目标对象的顶点的实时辐射率;
根据所述目标对象的顶点的实时辐射率对所述目标对象进行渲染,以对所述目标对象的进行实时全局光照。
在本发明的一些实施例中,获取游戏场景中待处理的目标对象,包括:
监控所述游戏场景中移动距离大于第一阈值的虚拟对象以及距离所述虚拟对象预设距离内的虚拟对象,为待处理的目标对象。
根据本发明实施例的第二方面,提供了一种游戏内的实时全局光照装置,包括:
目标对象获取模块,用于获取游戏场景中待处理的目标对象;
目标场景体素的辐射率获取模块,用于根据所述目标对象在游戏场景中的位置确定目标场景体素,并获取所述目标场景体素的实时辐射率;
目标对象的辐射率确定模块,用于根据所述目标场景体素的实时辐射率确定所述目标对象的实时辐射率,并根据所述目标对象的实时辐射率对所述目标对象进行实时全局光照处理。
根据本发明实施例的第三方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中第一方面所述的游戏内的实时全局光照方法。
根据本发明实施例的第四方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中第一方面所述的游戏内的实时全局光照方法。
本发明实施例提供的技术方案可以包括以下有益效果:
在本发明的一些实施例所提供的技术方案中,根据目标对象在游戏场景中的位置确定目标场景体素,并进一步确定目标场景体素的实时辐射率,进而根据目标场景体素的实时辐射率确定目标对象的实时辐射率,并根据所述目标对象的实时辐射率对所述目标对象进行实时全局光照处理。相对于相关技术中通过对游戏场景中块(patch)之间的迭代进行实时全局光照的方式,本技术方案通过对目标对象对应的体素进行实时辐射率的计算来对目标对象进行实时全局光照处理,起到简化计算过程的作用,从而,减小实时全局光照对内存或运行效率方面的需求,有利于本技术方案提供的游戏中实时全局光照在移动平台上推广。同时,本技术方案无需进行基于静态场景的预烘焙,适用于游戏场景中虚拟对象多为动态的情况,能够到达避免游戏画质失真的目的,进而为游戏玩家提供较强的代入感,提高游戏玩家游戏体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性示出了根据本发明的实施例的游戏内的实时全局光照方法的流程图;
图2示意性示出了根据本发明的实施例的确定目标场景体方法的流程图;
图3示意性示出了根据本发明的实施例的确定第二场景体素方法的流程图;
图4示意性示出了根据本发明的实施例的获取目标场景体素的实时辐射率方法的流程图;
图5示意性示出了根据本发明的实施例的确定每个第二场景体素的初始辐射率方法的流程图;
图6示意性示出了根据本发明的实施例的确定目标场景体素的实时辐射率方法的流程图;
图7示意性示出了根据本发明的实施例的确定目标对象的实时辐射率方法的流程图;
图8示意性示出了根据本发明的实施例的游戏内的实时全局光照装置的结构图;
图9示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
在游戏场景中虚拟对象多为动态的游戏中,各个虚拟对象是不断移动的,而非处于静态。例如,在“家园”游戏中,游戏场景中除了虚拟地面和虚拟远景处于静态,其他大部分的虚拟对象(如一棵树、一盏路灯等)是由游戏玩家摆放至游戏场景中的,即这些虚拟对象是被移动至游戏场景中的。因而,相关技术提供的通过算法预烘焙静态场景,然后针对动态物体提供全局间接光照结果的技术方案无法应用于例如“家园”等游戏场景中虚拟对象多为动态的游戏中。而其他实时全局光照技术,由于计算量巨大,不适合在计算资源有限的移动平台上使用。因此,相关技术提供的实时全局光照技术会造成游戏画面卡顿不流畅,存在不能为游戏玩家提供较强的代入感,使得游戏玩家游戏体验较差的问题。
图1示意性示出了根据本发明的实施例的游戏内的实时全局光照方法的流程图,至少在一定程度上克服相关技术提供的实时全局光照技术存在的上述问题。参考图1,该方法包括:
步骤S101,获取游戏场景中待处理的目标对象;
步骤S102,根据所述目标对象在游戏场景中的位置确定目标场景体素,并获取所述目标场景体素的实时辐射率;以及,
步骤S103,根据所述目标场景体素的实时辐射率确定所述目标对象的实时辐射率,并根据所述目标对象的实时辐射率对所述目标对象进行实时全局光照处理。
在图1所示实施例所提供的技术方案中,根据目标对象在游戏场景中的位置确定目标场景体素,并进一步确定目标场景体素的实时辐射率,进而根据目标场景体素的实时辐射率确定目标对象的实时辐射率,并根据所述目标对象的实时辐射率对所述目标对象进行实时全局光照处理。相对于相关技术中通过对游戏场景中块(patch)之间的迭代进行实时全局光照的方式,本技术方案通过对目标对象对应的体素进行实时辐射率的计算来对目标对象进行实时全局光照处理,起到简化计算过程的作用,从而,减小实时全局光照对内存或运行效率方面的需求,有利于本技术方案提供的游戏中实时全局光照在移动平台上推广。同时,本技术方案无需进行基于静态场景的预烘焙,适用于游戏场景中虚拟对象多为动态的情况,能够到达避免游戏画质失真的目的,进而为游戏玩家提供较强的代入感,提高游戏玩家游戏体验。
以下对图1所示实施例各个步骤的具体实现方式进行详细阐述:
在示例性的实施例中,步骤S101中获取游戏场景中待处理的目标对象时,可以通过监控所述游戏场景中移动距离大于第一阈值的虚拟对象以及距离所述虚拟对象预设距离内的虚拟对象,为待处理的目标对象。例如,当游戏场景中的某个虚拟对象移动了超过s厘米,则确定此虚拟对象发生了移动,可以作为目标对象进行局部的实时全局光照处理。例如,对于上述“家园”游戏中,可以在游戏玩家摆放一个家具或植物等时,实时对由于家具或植物等的放入引起的周围光照信息的改变进行全局光照处理,从而给游戏玩家带来逼近现实的光影效果,增强游戏的代入感。
在示例性的实施例中,图1所示实施例提供一种对于目标对象进行实时全局光照处理的方法。在此过程中,需首先进行总体的实时全局光照处理,即根据离线体素化后的模型体素对游戏场景对应的场景体素进行填充,并根据对填充后的场景体素进行实时全局光照处理(其中,步骤S401以及图5示出了具体实施过程)。然后,进行对于处于移动的虚拟对象进行局部的实时全局光照处理(其中,步骤S402以及图6示出了具体实施过程),即图1所示实施例提供的对目标对象进行实时全局光照处理。然而,在进行上述总体的实时全局光照处理之前,还需离线体素化各个游戏场景中所涉及的模型等预处理步骤(其中,图2以及图3示出了具体实施过程)。
以下结合图2对所述预处理步骤进行解释说明。
图2示意性示出了根据本发明的实施例的在步骤S102中确定目标场景体方法的流程图,其中包含上述预处理步骤。参考图2,该方法包括步骤S201-步骤S203。
首先介绍,在步骤S201中,离线体素化所述游戏场景中的虚拟对象得到模型体素,并体素化初始游戏场景得到第一场景体素;以及,在步骤S202中,利用所述模型体素填充所述第一场景体素,得到填充后的第二场景体素。
其中,初始游戏场景可以为每次切换到一个新的游戏场景,新的游戏场景的第一帧图像。
在示例性的实施例中,为了在游戏运行期快速地实时计算光照信息,需在游戏运行期前(即离线)对各个游戏场景中所涉及的模型进行预处理:根据实际对模型显示精度的要求,将模型划分为简化版的体素化模型。其中,体素的大小可以根据实际需要进行划分。每个体素包含当前体素的材质信息,包含但不限于以下:漫反射系数(Albedo)、粗糙度(Roughness)、金属度(Metallic)、透明度(Alpha)、法线(Normal)等。示例性的,体素的每个面包含的材质信息等数据可以不同,但是在可以接受误差的情况下,设置体素每个面包含的材质信息等数据一致,以减少内存占用率。
在示例性的实施例中,存储每个模型被离线体素化后的数据,以备后续步骤S202中填充第一场景体素时被调用,以减少游戏运行期计算资源的开销。
在示例性的实施例中,预处理部分还包括对初始游戏场景的体素化。例如,将整个初始游戏场景看作立方体,将其划分为多个尺寸较小的立方体,得到第一场景体素。其中第一场景体素的尺寸可以根据实际需求进行设置。并且,第一场景体素是透明立方体,不包含任何光照信息。而是通过后续步骤S202利用所述模型体素对第一场景体素进行填充,获得包含光照信息(第二发光特征值或第二反光特征值)的第二场景体素。其中,将模型填充到第一场景体素而确定第二场景体素的过程,可以是一个采样的过程。
在示例性的实施例中,场景的体素化尺寸大小可以和模型体素化尺寸大小可以不同。其中,对模型的体素化可以非常精细(例如:0.1m一个体素),而场景体素的尺寸大小可以根据当前设备的性能自动调整(例如:较高端设备可以做到0.1m一个体素,而较低端设备可以调整为2m一个体素)。
在示例性的实施例中,游戏场景所涉及的模型包括:发光体模型(例如:灯笼、路灯等)和反光体模型(例如:家具、数目等),其中,所述发光体模型的体素信息包含第一发光特征值,所述反光体模型的体素信息包含第一反光特征值。以下结合图3对所述确定第二场景体素进行解释说明。
图3示意性示出了根据本发明的实施例的在步骤S202中确定第二场景体素方法的流程图。参考图3,该方法包括步骤S301和步骤S302。
在步骤S301中,基于游戏场景,利用所述发光体模型的第一发光特征值确定所述游戏场景中虚拟发光体对应的第二场景体素的第二发光特征值;以及,
在步骤S302中,基于游戏场景,利用所述反光体模型的第一反光特征值确定所述游戏场景中虚拟反光体对应的第二场景体素的第二反光特征值。
在示例性的实施例中,游戏场景中的某一坐标x处的虚拟反光体为一棵虚拟树,则需利用树对应的反光体模型体素信息对坐标x对应的第一场景体素进行填充,示例性的,以采样模型体素的方式确定第二场景体素:例如,树对应的反光体模型由100个模型体素组成,游戏场景中的坐标x处的虚拟反光体对应的相对位置为上、下的2个第一场景体素,可以通过采样的方法确定此2个与第二场景体素。再例如,在上的第一场景体素通过采样树对应的反光体模型相对位置靠上的a个模型体素,并且将a个模型体素设置采样系数,通过采样系数与对应模型体素的第一反光特征值相乘的方式完成对此a个模型体素的采样,其中,不同模型系数的采样系数不同。可以通过模型系数相对位置来确定采样系数,如:越靠近此a个模型体素中心位置的采样系数越大。同理,在下的第一场景体素通过采样树对应的反光体模型相对位置靠下的100-a个模型体素,并且将100-a个模型体素设置采样系数,通过采样系数与对应模型体素的第一反光特征值相乘的方式完成对此100-a个模型体素的采样,其中,不同模型系数的采样系数不同。可以通过模型系数相对位置来确定采样系数,如:越靠近此100-a个模型体素中心位置的采样系数越大。在填充过程中需要根据游戏场景中虚拟对象的移动状态,对模型体素进行旋转、缩放填充入第二场景体素。
在示例性的实施例中,游戏场景中的某一坐标y处的虚拟发光体为一棵虚拟路灯,则需利用路灯对应的反光体模型体素信息对坐标y对应的第一场景体素进行填充,示例性的,仍以采样模型体素的方式确定第二场景体素。由于采样过程与上述的对反光体模型采样过程类似,因此,对于上述的对发光体模型采样过程在此不再赘述。
需要说明的是步骤S301和步骤S302的执行顺序部分先后,可以先执行步骤S301在执行步骤S302,可以先执行步骤S302在执行步骤S301,还可以先执行步骤S301和步骤S302同时执行。
在步骤S203中,根据所述目标对象在游戏场景中的位置和所述第二场景体素获得目标场景体素。
在示例性的实施例中,经过步骤S202确定第二场景体素后,根据游戏场景确定步骤S101中目标对象在游戏场景中的坐标位置,进而根据上述坐标位置获得目标场景体素对应的第二场景体素,即获得进一步进行实时全局光照处理的目标场景体素。
在示例性的实施例中,获取目标场景体素之后,在步骤S102中还需获取所述目标场景体素的实时辐射率。图4示意性示出了根据本发明的实施例的获取目标场景体素的实时辐射率方法的流程图。以下结合图4对步骤S102中获取所述目标场景体素的实时辐射率的具体实现过程进行详细介绍。
参考图4,获取目标场景体素的实时辐射率方法,包括:
步骤S401,基于所述第二发光特征值或第二反光特征值对每个所述第二场景体素的辐射率进行初始化得到初始辐射率;以及,
步骤S402,根据所述第二场景体素的初始辐射率确定所述目标场景体素的实时辐射率。
在示例性的实施例中,在对于处于移动的虚拟对象进行局部的实时全局光照处理(即图1所示实施例提供的对目标对象进行实时全局光照处理)之前,需首先进行总体的实时全局光照处理,即根据离线体素化后的模型体素对游戏场景对应的场景体素进行填充,并根据对填充后的场景体素进行实时全局光照处理。因此,依次执行步骤S401和步骤S402。
在示例性的实施例中,每次切换到一个新的游戏场景,就会对新的游戏场景进行步骤S401对应的总体的实时全局光照(例如:游戏场景由室内切换到室外,则需对室外游戏场景进行步骤S401对应的总体的实时全局光照)。
在示例性的实施例中,图5和图6分别示出了步骤S401和步骤S402的具体实现过程。以下结合图5和图6分别解释步骤S401和步骤S402。
图5示意性示出了根据本发明的实施例的确定每个第二场景体素的初始辐射率方法的流程图,参考图5,该方法包括步骤S501-步骤S506。
在步骤S501中,根据所述第二特征值判断所述第二场景体素是否是虚拟反光体;若所述第二场景体素是虚拟反光体,则执行步骤S503-步骤S506;若所述第二场景体素不是虚拟反光体(即为虚拟发光体),则执行步骤S502。
在步骤S502中,对于所述游戏场景中的虚拟发光体对应的第二场景体素的任一个体素面:根据所述虚拟发光体之间对应的第二场景体素的第二发光特征值,确定所述体素面的初始辐射率;
示例性的,所述虚拟发光体之间对应的第二场景体素的第二发光特征值即为初始辐射率。
在步骤S503中,对于所述游戏场景中的虚拟反光体对应的第二场景体素的任一个体素面:根据所述体素面与虚拟光源之间的相对位置关系确定第一辐射照度值(irradiance I);
示例性的,为了增加游戏的代入感,达到充分模拟现实的效果,游戏场景中是晴朗的白天的时候,有可能会存在一个特殊的虚拟发光体,即虚拟光源(例如:虚拟太阳),虚拟太阳照射到上述体素面时,可以影响上述体素面实时全局光照的处理。步骤S503提供虚拟光源对上述体素面产生的辐照度的计算方法:
1)在体素面上随机选点,朝向虚拟光源(例如:场景中的平行光,即太阳光)方向发射射线,根据所述射线是否被阻挡统计所述体素面看到太阳的百分比(P),即某个体素面上接收虚拟光源辐照的百分比;
2)根据百分比(P)计算当前体素面接收到的来自虚拟光源的第一辐射照度值(irradiance I),如公式一:
Irradiance I=NoL*P*I_sun 公式一
其中,NoL是虚拟光源的方向和体素面法线的点积,P是当前体素面上可以直接看到太阳的体素与当前体素面上所有体素中百分比,I_sun是虚拟光源的辐照强度。
在步骤S504中,根据所述体素面与所述游戏场景中的虚拟发光体之间的相对位置关系,以及所述虚拟发光体对应的第二场景体素的第二发光特征值,确定第二辐射照度值(irradiance II);以及,在步骤S505中,根据所述体素面与所述游戏场景中的其他的虚拟反光体之间的相对位置关系,以及所述虚拟反光体对应的第二场景体素的第二反光特征值,确定第三辐射照度值(irradiance III);
示例性的,游戏场景中的虚拟发光体(例如:点亮的路灯或蜡烛等),虚拟发光体照射到上述体素面时,也可以影响上述体素面实时全局光照的处理。步骤S504提供虚拟发光体对上述体素面产生的辐照度的计算方法,步骤S505提供虚拟反光体对上述体素面产生的辐照度的计算方法:
1)在体素面上随机选取若干个点;
2)从体素的中心向上述每个点发射一条射线,任一射线方向为ω;
3)射线会穿过若干其他体素,每穿过一个体素立方体,会将这个体素的光照信息按照公式二收集第二辐射照度值(irradiance II)和第三辐射照度值(irradiance III);
irradiance II/III(x)=albedo*L(y,-ω)*dy*cos(y)*cos(x)/r2 公式二
其中,albedo表示反光率,指光线照射到某个表面时,表面对光线中RGB三色光的反射比率。例如:反射率albedo是(1.0,0,0)指对红光的反射率为100%,绿光和蓝光的反射率为0%。
x为步骤1)中在体素面上随机选取若干个点中的任一点;y为x按照ω方向发射光线命中的虚拟反光体的体素或虚拟发光体的体素的位置;dy为y位置的体素面积;cos(y)为y位置法线与-ω的内积;r为x和y的距离;cos(x)为x位置法线和ω的内积;
对于上述射线方向ω的射线穿过的虚拟发光体体素,L(y,-ω)为虚拟发光体对应的第二场景体素的第二发光特征值;对于上述射线方向ω的射线穿过的虚拟反光体体素,albedo为虚拟发光体对应的第二场景体素的第二反光特征值。
在示例性的实施例中,上述射线每穿过一个体素,会根据当前体素的透明度减弱,当减弱到某一预设阈值是射线停止(即射线不再继续向前穿设其他体素);或者,当射线的距离超出某一预设阈值时也停止。
在步骤S506中,根据所述第一辐射照度值、所述第二辐射照度值和所述第三辐射照度值确定所述体素面的初始辐射率。
示例性的,将步骤S503至步骤S505获得辐射照度值后,根据公式三确定所述体素面的初始辐射率(radiance)。
radiance=(irradiance I+irradiance II+irradiance III)/п 公式三
图6示意性示出了根据本发明的实施例的确定目标场景体素的实时辐射率方法的流程图,参考图6,该方法包括步骤S601-步骤S606。
在步骤S601中,根据目标场景体素的第二特征值判断所述目标场景体素是否是虚拟反光体;根据所述第二特征值判断所述目标场景体素是否是虚拟反光体;若所述目标场景体素是虚拟反光体,则执行步骤S603-步骤S606;若所述目标场景体素不是虚拟反光体(即为虚拟发光体),则执行步骤S602。
在步骤S602中,基于所述游戏场景,对于所述目标场景体素的任一个体素面:根据所述虚拟发光体对应的第二场景体素的第二发光特征值,确定所述体素面的实时辐射率。
示例性的,所述虚拟发光体之间对应的第二场景体素的第二发光特征值即为实时辐射率。
在步骤S603中,基于所述游戏场景,对于所述目标场景体素的任一个体素面:根据所述体素面与虚拟光源之间的相对位置关系确定第四辐射照度值(irradiance IV);
示例性的,第四辐射照度值(irradiance IV)的计算过程与步骤S503的具体实现方式相同,在此不再赘述。
在步骤S604中,根据所述体素面与所述游戏场景中的虚拟发光体之间的相对位置关系,以及所述虚拟发光体对应的第二场景体素的第二发光特征值,确定第五辐射照度值(irradiance V);以及,在步骤S605中,根据所述体素面与所述游戏场景中的虚拟反光体之间的相对位置关系,所述虚拟反光体对应的第二场景体素的各个体素面的初始辐射率,以及所述虚拟反光体对应的第二场景体素的第二反光特征值,确定第六辐射照度值(irradiance VI);
示例性的,游戏场景中的虚拟发光体(例如:点亮的路灯或蜡烛等),虚拟发光体照射到上述体素面时,也可以影响上述体素面实时全局光照的处理。步骤S604提供虚拟发光体对上述体素面产生的辐照度的计算方法,步骤S605提供虚拟反光体对上述体素面产生的辐照度的计算方法:
1)在体素面上随机选取若干个点;
2)从体素的中心向上述每个点发射一条射线,任一射线方向为ω;
3)射线会穿过若干其他体素,每穿过一个体素立方体,会将这个体素的光照信息按照公式四收集第二辐射照度值(irradiance V)和第三辐射照度值(irradiance VI);
irradiance V/VI(x)=albedo*L(y,-ω)*dy*cos(y)*cos(x)/r2 公式四
其中,albedo表示反光率,指光线照射到某个表面时,表面对光线中RGB三色光的反射比率。例如:反射率albedo是(1.0,0,0)指对红光的反射率是100%,绿光和蓝光的反射率是0%。
x为步骤1)中在体素面上随机选取若干个点中的任一点;y为x按照ω方向发射光线命中的虚拟反光体的体素或虚拟发光体的体素的位置;dy为y位置的体素面积;cos(y)为y位置法线与-ω的内积;r为x和y的距离;cos(x)为x位置法线和ω的内积;
对于上述射线方向ω的射线穿过的虚拟发光体体素,L(y,-ω)为虚拟发光体对应的第二场景体素的第二发光特征值;对于上述射线方向ω的射线穿过的虚拟反光体体素,albedo为虚拟发光体对应的第二场景体素的第二反光特征值,L(y,-ω)为虚拟发光体体素面的初始辐射率。
在示例性的实施例中,通过上述射线(光线)对体素进行跟踪,每穿过一个体素即为对此体素进行了跟踪。光线强度会根据跟踪到体素的透明度减弱,当减弱到某一预设阈值时射线停止(即射线不再继续向前跟踪其他体素);或者,当射线的距离超出某一预设阈值时也停止对其他体素的跟踪。
在示例性的实施例中,本技术方案提供增量式迭代光照计算实时全局光照。具体的,光线每次追踪一个体素标记步数为1,通过保存中间计算结果,可以将光线追踪分散到连续多个帧中进行跟踪,从而进一步保证游戏的流畅运行。
在步骤S606中,根据所述第四辐射照度值、所述第五辐射照度值和所述第六辐射照度值确定所述体素面的实时辐射率。
示例性的,将步骤S603至步骤S605获得辐射照度值后,根据公式五确定所述体素面的初始辐射率(radiance)。
radiance=(irradiance IV+irradiance V+irradiance VI)/п 公式五
在示例性的实施例中,由于漫反射全局光照数据在绝大多数情况下受近处物体的影响远远大于远处物体的影响,所以当步骤S401以及图5所示实施例中对游戏场景总体上进行计算初始辐射率后,与实时全局光照处理相关的数据都存储在各个第二场景体素的体素面上。对于后续游戏场景中出现的移动的目标对象,可以通过只进行局部范围的实时全局光照处理,从而保证游戏画面在移动设备上流畅显示,从而保证游戏的流畅运行的效率。
具体的,对于后续游戏场景中出现的移动的目标对象,预设置最大追踪距离MaxTraceT。其中,MaxTraceT为根据实际需要设定的正数值。当场景中某个第二体素发生改变时/虚拟对象被移动时,例如:某个虚拟对象被移出游戏场景,或第二场景体素被新的虚拟对象等,则将当前发生改变的第二场景体素周围位于MaxTraceT范围内的体素标记为“修改”。在步骤S402和图6所示的实施例中,只对标记为“修改”的体素进行实时全局光照处理。
在示例性的实施例中,上述图2至图6所示实施例提供的各个步骤均可以在CPU中进行。相比于相关技术中需在GPU中进行全局光照处理的算法(例如:Light PropagationVolumes算法)、或需要Compute Shader等高级特性支持的算法,本技术方案可以减少对显存的依赖,实现在移动设备进行游戏的目的,并且具有较高的兼容性。
在示例性的实施例中,根据图4至图6计算了实时全局光照处理后,获得目标场景体素各个面的实时辐射率。进一步地,执行步骤S103,根据所述目标场景体素的实时辐射率确定所述目标对象的实时辐射率,并根据所述目标对象的实时辐射率对所述目标对象进行实时全局光照处理。
图7示意性示出了根据本发明的实施例的确定目标对象的实时辐射率方法的流程图,以下结合图7对步骤S103进行解释说明。参考图7,该方法包括:
步骤S701,根据目标对象的顶点位置,采用插值的方法获取所述目标场景体素相关面的辐射率,以确定所述目标对象的顶点的实时辐射率;以及,步骤S702,根据所述目标对象的顶点的实时辐射率对所述目标对象进行渲染,以对所述目标对象的进行实时全局光照。
在示例性的实施例中,图4所示实施例得到的是目标场景体素每个体素面的实时辐射率后,需获得目标对象顶点的实时辐射率,进一步对目标对象进行渲染,以完成对所述目标对象进行实时全局光照处理。
在示例性的实施例中,根据不同移动设备性能的差异,获取目标对象包围盒占用的第二场景体素格子获取N*M个体素,示例性的,对于较高端设备,会将N*M个体素数据较大,而对于较低端设备,会将N*M个体素数据可能压缩成1个体素数据。然后传给GPU的渲染管线中Vertex Shader进行渲染相关计算。根据顶点位置,采样顶点周围的目标场景体素的体素面的实时辐射率,然后采用Trilinear Interpolation的方式插值,计算每个顶点的实时辐射率Radiance,最后在PS中计算最终颜色进行渲染。
图7所示实施例提供的技术方案中,动态的决定传入Vertex Shader的体素数量的多少,进而控制Vertex Shader中实时全局光照处理的计算量大小,从而有利于兼容多种性能的移动设备。同时,Vertex Shader为当前市面上几乎所有移动设备的GPU均支持,因而有利于进一步提高兼容性。
以下介绍本发明的装置实施例,可以用于执行本发明上述的游戏内的实时全局光照方法。
图8示意性示出了根据本发明的实施例的游戏内的实时全局光照装置的结构图,参考图8,游戏内的实时全局光照装置800,包括:
目标对象获取模块801,用于获取游戏场景中待处理的目标对象;
目标场景体素的辐射率获取模块802,用于根据所述目标对象在游戏场景中的位置确定目标场景体素,并获取所述目标场景体素的实时辐射率;以及,
目标对象的辐射率确定模块803,用于根据所述目标场景体素的实时辐射率确定所述目标对象的实时辐射率,并根据所述目标对象的实时辐射率对所述目标对象进行实时全局光照处理。
在示例性的实施例中,目标场景体素的辐射率获取模块802,包括:
模型体素获取单元,用于离线体素化所述游戏场景中的虚拟对象得到模型体素,并体素化初始游戏场景得到第一场景体素;
第二场景体素体素获取单元,用于利用所述模型体素填充所述第一场景体素,得到填充后的第二场景体素;以及,
目标场景体素获取单元,用于根据所述目标对象在游戏场景中的位置和所述第二场景体素获得目标场景体素。
在示例性的实施例中,所述模型包括发光体模型和反光体模型,第二场景体素体素获取单元具体用于:
基于游戏场景,利用所述发光体模型的第一发光特征值确定所述游戏场景中虚拟发光体对应的第二场景体素的第二发光特征值;以及
基于游戏场景,利用所述反光体模型的第一反光特征值确定所述游戏场景中虚拟反光体对应的第二场景体素的第二反光特征值。
在示例性的实施例中,目标场景体素的辐射率获取模块802,还包括:
初始辐射率获得单元,用于基于所述第二发光特征值或第二反光特征值对每个所述第二场景体素的辐射率进行初始化得到初始辐射率;以及,
实时辐射率获得单元,用于根据所述第二场景体素的初始辐射率确定所述目标场景体素的实时辐射率。
在示例性的实施例中,初始辐射率获得单元具体用于:
对于所述游戏场景中的虚拟发光体对应的第二场景体素的任一个体素面:
根据所述虚拟发光体之间对应的第二场景体素的第二发光特征值,确定所述体素面的初始辐射率。
在示例性的实施例中,初始辐射率获得单元具体用于:
对于所述游戏场景中的虚拟反光体对应的第二场景体素的任一个体素面:
根据所述体素面与虚拟光源之间的相对位置关系确定第一辐射照度值;
根据所述体素面与所述游戏场景中的虚拟发光体之间的相对位置关系,以及所述虚拟发光体对应的第二场景体素的第二发光特征值,确定第二辐射照度值;
根据所述体素面与所述游戏场景中的其他的虚拟反光体之间的相对位置关系,以及所述虚拟反光体对应的第二场景体素的第二反光特征值,确定第三辐射照度值;以及,
根据所述第一辐射照度值、所述第二辐射照度值和所述第三辐射照度值确定所述体素面的初始辐射率。
在示例性的实施例中,实时辐射率获得单元具体用于:
根据目标场景体素的第二特征值判断所述目标场景体素是否是虚拟反光体;
若所述目标场景体素是虚拟反光体,则基于所述游戏场景,对于所述目标场景体素的任一个体素面:
根据所述体素面与虚拟光源之间的相对位置关系确定第四辐射照度值;
根据所述体素面与所述游戏场景中的虚拟发光体之间的相对位置关系,以及所述虚拟发光体对应的第二场景体素的第二发光特征值,确定第五辐射照度值;
根据所述体素面与所述游戏场景中的虚拟反光体之间的相对位置关系,所述虚拟反光体对应的第二场景体素的各个体素面的初始辐射率,以及所述虚拟反光体对应的第二场景体素的第二反光特征值,确定第六辐射照度值;以及,
根据所述第四辐射照度值、所述第五辐射照度值和所述第六辐射照度值确定所述体素面的实时辐射率。
在示例性的实施例中,实时辐射率获得单元具体用于:
若所述目标场景体素是虚拟发光体,则基于所述游戏场景,对于所述目标场景体素的任一个体素面:
根据所述虚拟发光体对应的第二场景体素的第二发光特征值,确定所述体素面的实时辐射率。
在示例性的实施例中,目标对象的辐射率确定模块803,具体用于:
根据目标对象的顶点位置,采用插值的方法获取所述目标场景体素相关面的辐射率,以确定所述目标对象的顶点的实时辐射率;以及,
根据所述目标对象的顶点的实时辐射率对所述目标对象进行渲染,以对所述目标对象的进行实时全局光照。
在示例性的实施例中,目标对象获取模块801,具体用于:
监控所述游戏场景中移动距离大于第一阈值的虚拟对象以及距离所述虚拟对象预设距离内的虚拟对象,为待处理的目标对象。
由于本发明的示例实施例的游戏内的实时全局光照装置的各个功能模块与上述游戏内的实时全局光照方法的示例实施例的步骤对应,因此对于本发明装置实施例中未披露的细节,请参照本发明上述的游戏内的实时全局光照方法的实施例。
下面参考图9,其示出了适于用来实现本发明实施例的电子设备的计算机系统900的结构示意图。图9示出的电子设备的计算机系统900仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,计算机系统900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统操作所需的各种程序和数据。CPU901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的游戏内的实时全局光照方法。
例如,所述的电子设备可以实现如图1中所示的:步骤S101,获取游戏场景中待处理的目标对象;步骤S102,根据所述目标对象在游戏场景中的位置确定目标场景体素,并获取所述目标场景体素的实时辐射率;步骤S103,根据所述目标场景体素的实时辐射率确定所述目标对象的实时辐射率,并根据所述目标对象的实时辐射率对所述目标对象进行实时全局光照处理。
又如,所述的电子设备可以实现如图2至图7任一图所示的各个步骤。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (13)
1.一种游戏内的实时全局光照方法,其特征在于,包括:
获取游戏场景中待处理的目标对象;
根据所述目标对象在游戏场景中的位置确定目标场景体素,并获取所述目标场景体素的实时辐射率;
根据所述目标场景体素的实时辐射率确定所述目标对象的实时辐射率,并根据所述目标对象的实时辐射率对所述目标对象进行实时全局光照处理。
2.根据权利要求1所述的方法,其特征在于,根据所述目标对象在游戏场景中的位置确定目标场景体素,包括:
离线体素化所述游戏场景中的虚拟对象得到模型体素,并体素化初始游戏场景得到第一场景体素;
利用所述模型体素填充所述第一场景体素,得到填充后的第二场景体素;
根据所述目标对象在游戏场景中的位置和所述第二场景体素获得目标场景体素。
3.根据权利要求2所述的方法,其特征在于,所述模型包括发光体模型和反光体模型,利用所述模型体素填充所述第一场景体素,得到填充后的第二场景体素,包括:
基于游戏场景,利用所述发光体模型的第一发光特征值确定所述游戏场景中虚拟发光体对应的第二场景体素的第二发光特征值;
基于游戏场景,利用所述反光体模型的第一反光特征值确定所述游戏场景中虚拟反光体对应的第二场景体素的第二反光特征值。
4.根据权利要求3所述的方法,其特征在于,获取所述目标场景体素的实时辐射率,包括:
基于所述第二发光特征值或第二反光特征值对每个所述第二场景体素的辐射率进行初始化得到初始辐射率;
根据所述第二场景体素的初始辐射率确定所述目标场景体素的实时辐射率。
5.根据权利要求4所述的方法,其特征在于,基于所述第二发光特征值或第二反光特征值对每个所述第二场景体素的辐射率进行初始化得到初始辐射率,包括:
对于所述游戏场景中的虚拟发光体对应的第二场景体素的任一个体素面:
根据所述虚拟发光体之间对应的第二场景体素的第二发光特征值,确定所述体素面的初始辐射率。
6.根据权利要求4所述的方法,其特征在于,基于所述第二发光特征值或第二反光特征值对每个所述第二场景体素的辐射率进行初始化得到初始辐射率,包括:
对于所述游戏场景中的虚拟反光体对应的第二场景体素的任一个体素面:
根据所述体素面与虚拟光源之间的相对位置关系确定第一辐射照度值;
根据所述体素面与所述游戏场景中的虚拟发光体之间的相对位置关系,以及所述虚拟发光体对应的第二场景体素的第二发光特征值,确定第二辐射照度值;
根据所述体素面与所述游戏场景中的其他的虚拟反光体之间的相对位置关系,以及所述虚拟反光体对应的第二场景体素的第二反光特征值,确定第三辐射照度值;
根据所述第一辐射照度值、所述第二辐射照度值和所述第三辐射照度值确定所述体素面的初始辐射率。
7.根据权利要求6所述的方法,其特征在于,根据所述第二场景体素的初始辐射率确定所述目标场景体素的实时辐射率,包括:
根据目标场景体素的第二特征值判断所述目标场景体素是否是虚拟反光体;
若所述目标场景体素是虚拟反光体,则基于所述游戏场景,对于所述目标场景体素的任一个体素面:
根据所述体素面与虚拟光源之间的相对位置关系确定第四辐射照度值;
根据所述体素面与所述游戏场景中的虚拟发光体之间的相对位置关系,以及所述虚拟发光体对应的第二场景体素的第二发光特征值,确定第五辐射照度值;
根据所述体素面与所述游戏场景中的虚拟反光体之间的相对位置关系,所述虚拟反光体对应的第二场景体素的各个体素面的初始辐射率,以及所述虚拟反光体对应的第二场景体素的第二反光特征值,确定第六辐射照度值;
根据所述第四辐射照度值、所述第五辐射照度值和所述第六辐射照度值确定所述体素面的实时辐射率。
8.根据权利要求7所述的方法,其特征在于,还包括:
若所述目标场景体素是虚拟发光体,则基于所述游戏场景,对于所述目标场景体素的任一个体素面:
根据所述虚拟发光体对应的第二场景体素的第二发光特征值,确定所述体素面的实时辐射率。
9.根据权利要求7或8所述的方法,其特征在于,根据所述目标场景体素的实时辐射率确定所述目标对象的实时辐射率,并根据所述目标对象的实时辐射率对所述目标对象进行实时全局光照处理,包括:
根据目标对象的顶点位置,采用插值的方法获取所述目标场景体素相关面的辐射率,以确定所述目标对象的顶点的实时辐射率;
根据所述目标对象的顶点的实时辐射率对所述目标对象进行渲染,以对所述目标对象的进行实时全局光照。
10.根据权利要求1至8任一项所述的方法,其特征在于,获取游戏场景中待处理的目标对象,包括:
监控所述游戏场景中移动距离大于第一阈值的虚拟对象以及距离所述虚拟对象预设距离内的虚拟对象,为待处理的目标对象。
11.一种游戏内的实时全局光照装置,其特征在于,包括:
目标对象获取模块,用于获取游戏场景中待处理的目标对象;
目标场景体素的辐射率获取模块,用于根据所述目标对象在游戏场景中的位置确定目标场景体素,并获取所述目标场景体素的实时辐射率;
目标对象的辐射率确定模块,用于根据所述目标场景体素的实时辐射率确定所述目标对象的实时辐射率,并根据所述目标对象的实时辐射率对所述目标对象进行实时全局光照处理。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至10中任一项所述的游戏内的实时全局光照方法。
13.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至10中任一项所述的游戏内的实时全局光照方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811279002.3A CN109364481B (zh) | 2018-10-30 | 2018-10-30 | 游戏内的实时全局光照方法、装置、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811279002.3A CN109364481B (zh) | 2018-10-30 | 2018-10-30 | 游戏内的实时全局光照方法、装置、介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109364481A true CN109364481A (zh) | 2019-02-22 |
CN109364481B CN109364481B (zh) | 2022-09-13 |
Family
ID=65390496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811279002.3A Active CN109364481B (zh) | 2018-10-30 | 2018-10-30 | 游戏内的实时全局光照方法、装置、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109364481B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110047152A (zh) * | 2019-04-12 | 2019-07-23 | 腾讯科技(深圳)有限公司 | 基于虚拟环境的物体构建方法、装置及可读存储介质 |
CN110288692A (zh) * | 2019-05-17 | 2019-09-27 | 腾讯科技(深圳)有限公司 | 光照渲染方法和装置、存储介质及电子装置 |
CN110992466A (zh) * | 2019-12-05 | 2020-04-10 | 腾讯科技(深圳)有限公司 | 光照探针生成方法、装置、存储介质和计算机设备 |
CN111068312A (zh) * | 2019-12-02 | 2020-04-28 | 网易(杭州)网络有限公司 | 游戏画面渲染的方法与装置、存储介质、电子设备 |
CN112604278A (zh) * | 2020-12-29 | 2021-04-06 | 广州银汉科技有限公司 | 一种基于游戏在智能设备模拟全局光照的方法 |
CN113648652A (zh) * | 2021-08-20 | 2021-11-16 | 腾讯科技(深圳)有限公司 | 对象渲染方法和装置、存储介质及电子设备 |
CN113694516A (zh) * | 2020-05-20 | 2021-11-26 | 福建天晴在线互动科技有限公司 | 一种基于光照环境实时切换烘焙数据的方法及其系统 |
CN114870407A (zh) * | 2022-04-29 | 2022-08-09 | 深圳市中视典数字科技有限公司 | 一种基于虚拟现实的数字人体数据采集系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090102843A1 (en) * | 2007-10-17 | 2009-04-23 | Microsoft Corporation | Image-based proxy accumulation for realtime soft global illumination |
CN107452048A (zh) * | 2016-05-30 | 2017-12-08 | 网易(杭州)网络有限公司 | 全局光照的计算方法及装置 |
CN108537869A (zh) * | 2018-03-08 | 2018-09-14 | 哈尔滨工程大学 | 一种基于级联纹理的圆锥追踪动态全局光照方法 |
-
2018
- 2018-10-30 CN CN201811279002.3A patent/CN109364481B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090102843A1 (en) * | 2007-10-17 | 2009-04-23 | Microsoft Corporation | Image-based proxy accumulation for realtime soft global illumination |
CN107452048A (zh) * | 2016-05-30 | 2017-12-08 | 网易(杭州)网络有限公司 | 全局光照的计算方法及装置 |
CN108537869A (zh) * | 2018-03-08 | 2018-09-14 | 哈尔滨工程大学 | 一种基于级联纹理的圆锥追踪动态全局光照方法 |
Non-Patent Citations (2)
Title |
---|
PIZI0475: "《NVIDIA的黑科技3:VXGI体素全局光照》", 《HTTPS://BLOG.CSDN.NET/PIZI0475/ARTICLE/DETAILS/49422123》 * |
马存锁: "《基于全局光照算法的实时渲染组件研究与应用》", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11911697B2 (en) | 2019-04-12 | 2024-02-27 | Tencent Technology (Shenzhen) Company Limited | Virtual-environment-based object construction method and apparatus, computer device, and computer-readable storage medium |
CN110047152A (zh) * | 2019-04-12 | 2019-07-23 | 腾讯科技(深圳)有限公司 | 基于虚拟环境的物体构建方法、装置及可读存储介质 |
CN110047152B (zh) * | 2019-04-12 | 2022-05-17 | 腾讯科技(深圳)有限公司 | 基于虚拟环境的物体构建方法、装置及可读存储介质 |
US11600040B2 (en) | 2019-05-17 | 2023-03-07 | Tencent Technology (Shenzhen) Company Limited | Illumination rendering method and apparatus, storage medium, and electronic device |
CN110288692A (zh) * | 2019-05-17 | 2019-09-27 | 腾讯科技(深圳)有限公司 | 光照渲染方法和装置、存储介质及电子装置 |
US11915364B2 (en) | 2019-05-17 | 2024-02-27 | Tencent Technology (Shenzhen) Company Limited | Illumination rendering method and apparatus, storage medium, and electronic device |
CN111068312A (zh) * | 2019-12-02 | 2020-04-28 | 网易(杭州)网络有限公司 | 游戏画面渲染的方法与装置、存储介质、电子设备 |
CN111068312B (zh) * | 2019-12-02 | 2023-09-08 | 网易(杭州)网络有限公司 | 游戏画面渲染的方法与装置、存储介质、电子设备 |
CN110992466A (zh) * | 2019-12-05 | 2020-04-10 | 腾讯科技(深圳)有限公司 | 光照探针生成方法、装置、存储介质和计算机设备 |
US11854143B2 (en) | 2019-12-05 | 2023-12-26 | Tencent Technology (Shenzhen) Company Limited | Light probe generation method and apparatus, storage medium, and computer device |
CN113694516B (zh) * | 2020-05-20 | 2023-09-15 | 福建天晴在线互动科技有限公司 | 一种基于光照环境实时切换烘焙数据的方法及其系统 |
CN113694516A (zh) * | 2020-05-20 | 2021-11-26 | 福建天晴在线互动科技有限公司 | 一种基于光照环境实时切换烘焙数据的方法及其系统 |
CN112604278B (zh) * | 2020-12-29 | 2021-09-17 | 广州银汉科技有限公司 | 一种基于游戏在智能设备模拟全局光照的方法 |
CN112604278A (zh) * | 2020-12-29 | 2021-04-06 | 广州银汉科技有限公司 | 一种基于游戏在智能设备模拟全局光照的方法 |
CN113648652B (zh) * | 2021-08-20 | 2023-11-14 | 腾讯科技(深圳)有限公司 | 对象渲染方法和装置、存储介质及电子设备 |
CN113648652A (zh) * | 2021-08-20 | 2021-11-16 | 腾讯科技(深圳)有限公司 | 对象渲染方法和装置、存储介质及电子设备 |
CN114870407A (zh) * | 2022-04-29 | 2022-08-09 | 深圳市中视典数字科技有限公司 | 一种基于虚拟现实的数字人体数据采集系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109364481B (zh) | 2022-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109364481A (zh) | 游戏内的实时全局光照方法、装置、介质及电子设备 | |
JP7381738B2 (ja) | 画素点認識及びライトレンダリング方法、装置、電子機器及びコンピュータプログラム | |
US9684996B2 (en) | Rendering global light transport in real-time using machine learning | |
US7212207B2 (en) | Method and apparatus for real-time global illumination incorporating stream processor based hybrid ray tracing | |
Bruneton et al. | Real‐time realistic ocean lighting using seamless transitions from geometry to BRDF | |
US20080143720A1 (en) | Method for rendering global illumination on a graphics processing unit | |
PT1376472E (pt) | Sistemas e métodos para efectuar uma amostragem controlável de textura | |
Jensen et al. | High quality rendering using ray tracing and photon mapping | |
Dong et al. | Interactive global illumination using implicit visibility | |
Hu et al. | Realistic, real‐time rendering of ocean waves | |
Iwasaki et al. | Real‐time rendering of dynamic scenes under all‐frequency lighting using integral spherical gaussian | |
Kurachi | The magic of computer graphics | |
Jendersie et al. | Precomputed illuminance composition for real-time global illumination | |
Papaioannou | Real-time diffuse global illumination using radiance hints | |
KR20120047778A (ko) | 가상 환경에서 차폐의 추정 방법 | |
Zaninetti et al. | A vector approach for global illumination in ray tracing | |
Chiu et al. | GPU-based ocean rendering | |
US11830125B2 (en) | Ray-guided water caustics | |
Damez et al. | Global Illumination for Interactive Applications and High-Quality Animations. | |
Boulanger et al. | Rendering trees with indirect lighting in real time | |
Ki et al. | A GPU-based light hierarchy for real-time approximate illumination | |
SKOROBOGATOVA | Real-Time Global Illumination in Unreal Engine 5 | |
Sloan et al. | Ambient obscurance baking on the GPU | |
Yu et al. | Interactive glossy reflections using gpu‐based ray tracing with adaptive lod | |
Schmitz et al. | Interactive global illumination for deformable geometry in cuda |
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 |