CN111803942B - 一种软阴影生成方法、装置、电子设备和存储介质 - Google Patents

一种软阴影生成方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN111803942B
CN111803942B CN202010700443.7A CN202010700443A CN111803942B CN 111803942 B CN111803942 B CN 111803942B CN 202010700443 A CN202010700443 A CN 202010700443A CN 111803942 B CN111803942 B CN 111803942B
Authority
CN
China
Prior art keywords
light source
array
shadow
virtual model
real
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
CN202010700443.7A
Other languages
English (en)
Other versions
CN111803942A (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.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network 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 Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202010700443.7A priority Critical patent/CN111803942B/zh
Publication of CN111803942A publication Critical patent/CN111803942A/zh
Application granted granted Critical
Publication of CN111803942B publication Critical patent/CN111803942B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/60Shadow generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

本申请提供了一种软阴影生成方法、装置、电子设备和存储介质,其中,该方法包括:获取光源阵列中每个光源的实时光照信息;对于每个光源,根据光源的实时光照信息,得到光源照射虚拟模型后形成的光影信息;对各光源照射虚拟模型后形成的光影信息进行叠加,生成虚拟模型对应的软阴影,通过上述方法能够使得生成的虚拟模型的阴影具有真实阴影的效果,从而提供更加真实的游戏画面。

Description

一种软阴影生成方法、装置、电子设备和存储介质
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种软阴影生成方法、装置、电子设备和存储介质。
背景技术
在游戏中,为了使虚拟模型产生的阴影具有真实阴影的效果,可以通过软阴影的形式展示虚拟模型产生的阴影,软阴影的作用就是要模拟真实阴影渐变且在阴影周边制造虚化。
而软阴影生成过程中本身就要需要大量的计算,如果通过实时渲染的方式生成软阴影则计算量会更大,并且,由于目前游戏引擎硬件和软件的限制,游戏引擎无法承受实时渲染生成软阴影时的计算负荷,从而导致在游戏过程中无法形成物理真实的软阴影。
发明内容
有鉴于此,本申请实施例提供了一种软阴影生成方法、装置、电子设备和存储介质,以形成物理真实的软阴影。
第一方面,本申请实施例提供了一种软阴影生成方法,通过终端设备提供图形用户界面,所述图形用户界面中包括虚拟场景,所述虚拟场景中包括光源阵列和虚拟模型,所述方法包括:
获取所述光源阵列中每个光源的实时光照信息;
对于每个所述光源,根据所述光源的实时光照信息,得到所述光源照射所述虚拟模型后形成的光影信息;
对各所述光源照射所述虚拟模型后形成的光影信息进行叠加,生成所述虚拟模型对应的软阴影。
可选地,所述虚拟模型的中间区域受到所述光源阵列照射的光照量多于所述虚拟模型的边缘区域受到所述光源阵列照射的光照量。
可选地,所述光源阵列包括点光源阵列,且所述点光源阵列中的点光源以立体形态分布。
可选地,所述立体形态包括立方体形态、球体形态。
可选地,所述球体形态包括经纬分布的球体形态、斐波那契分布的球体形态。
可选地,所述光源阵列包括平行光源阵列,且所述平行光源阵列中的平行光源集中分布于预设区域内。
可选地,所述获取所述光源阵列中每个光源的实时光照信息之前,所述方法还包括:
计算在所述虚拟场景中待分布的每个光源的位置;
根据所述待分布的每个光源的位置在所述虚拟场景中分别设置每个光源。
可选地,所述计算在所述虚拟场景中待分布的每个光源的位置,包括:
通过游戏引擎的蓝图计算在所述虚拟场景中待分布的每个光源的位置。
可选地,所述获取所述光源阵列中每个光源的实时光照信息之前,所述方法还包括:
调整所述光源阵列中光源之间的间距或者所述光源阵列中光源的数量。
第二方面,本申请实施例提供了一种软阴影生成装置,通过终端设备提供图形用户界面,所述图形用户界面中包括虚拟场景,所述虚拟场景中包括光源阵列和虚拟模型,所述装置包括:
获取单元,用于获取所述光源阵列中每个光源的实时光照信息;
计算单元,用于对于每个所述光源,根据所述光源的实时光照信息,得到所述光源照射所述虚拟模型后形成的光影信息;
叠加单元,用于对各所述光源照射所述虚拟模型后形成的光影信息进行叠加,生成所述虚拟模型对应的软阴影。
可选地,所述虚拟模型的中间区域受到所述光源阵列照射的光照量多于所述虚拟模型的边缘区域受到所述光源阵列照射的光照量。
可选地,所述光源阵列包括点光源阵列,且所述点光源阵列中的点光源以立体形态分布。
可选地,所述立体形态包括立方体形态、球体形态。
可选地,所述球体形态包括经纬分布的球体形态、斐波那契分布的球体形态。
可选地,所述光源阵列包括平行光源阵列,且所述平行光源阵列中的平行光源集中分布于预设区域内。
可选地,所述装置还包括:
设置单元,用于在获取所述光源阵列中每个光源的实时光照信息之前,计算在所述虚拟场景中待分布的每个光源的位置;以及,用于根据所述待分布的每个光源的位置在所述虚拟场景中分别设置每个光源。
可选地,所述设置单元用于计算在所述虚拟场景中待分布的每个光源的位置时,包括:
通过游戏引擎的蓝图计算在所述虚拟场景中待分布的每个光源的位置。
可选地,所述装置还包括:
调整单元,用于在获取所述光源阵列中每个光源的实时光照信息之前,调整所述光源阵列中光源之间的间距或者所述光源阵列中光源的数量。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如第一方面中任一项所述的软阴影生成方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如第一方面中任一项所述的软阴影生成方法的步骤。
本申请的实施例提供的技术方案可以包括以下有益效果:
在本申请中,在虚拟场景中设置有光源阵列和虚拟模型,每个光源发出的光线在照射到虚拟模型上后会被遮挡,从而得到该光源在虚拟模型上形成的阴影,为了模拟物理真实光照形成的物理真实阴影,需要获取光源阵列中每个光源的实时光照信息,然后根据各光源的实时光照信息,得到各光源照射虚拟模型后形成的光影信息,然后对各光源照射虚拟模型后形成的光影信息进行叠加,生成虚拟模型对应的软阴影,在上述方法中,光源阵列能够模拟出区域光源形成的光照,即:通过光源阵列可以模拟出物理真实光照,因此在将各光源照射虚拟模型后形成的光影信息进行叠加后生成的虚拟模型对应的软阴影能够模拟出物理真实阴影,使得生成的虚拟模型的阴影具有真实阴影的效果,并且,在上述方法中,软阴影是通过叠加各光源照射虚拟模型后形成的光影信息生成的,相对于通过实时渲染的方式生成的软阴影计算量相对较小,从而可以使游戏引擎在实时渲染游戏画面的同时形成物理真实的软阴影,进而可以提供更加真实的游戏画面。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请一实施例提供的一种软阴影生成方法的流程示意图;
图2为本申请一实施例提供的一种光源阵列的光照示意图;
图3为本申请一实施例提供的一种阴影效果的示意图;
图4为本申请一实施例提供的一种经纬分布的球体形态的示意图;
图5为本申请一实施例提供的一种斐波那契分布的球体形态的示意图;
图6为本申请一实施例提供的一种平行光源的光线射出示意图;
图7为本申请一实施例提供的另一种软阴影生成方法的流程示意图;
图8为本申请一实施例提供的一种软阴影生成装置的结构示意图;
图9为本申请一实施例提供的另一种软阴影生成装置的结构示意图;
图10为本申请一实施例提供的另一种软阴影生成装置的结构示意图;
图11为本申请一实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在现实生活中,阴影的过渡是渐变的,例如:某一物体在太阳光照下会形成影子(本申请中的影子和阴影为等同概念),并且从该影子的边缘区域到中心区域的方向上,影子的颜色是逐渐加深的,即:真实光源下形成的物品的阴影,越靠近阴影中心的位置上的颜色越深,越靠近阴影边缘的位置上的颜色越浅。在游戏中,为了提高游戏画面的真实性,需要使虚拟模型产生的阴影具有真实阴影的效果,游戏动画中的软阴影可以模拟真实阴影渐变且在阴影周边制造虚化,因此通过软阴影的形式展示的虚拟模型的阴影具有真实阴影的效果。
在游戏过程中,软阴影生成过程中本身就要需要大量的计算,如果通过实时渲染的方式生成软阴影则计算量会更大,并且,由于目前游戏引擎硬件和软件的限制,游戏引擎无法承受实时渲染生成软阴影时的计算负荷,从而无法实现通过实时渲染的方式生成软阴影。在现有技术中,可以实现软阴影的技术有Shadow map和距离场软阴影,但是上述技术形成的软阴影都不是物理真实的软阴影,因此导致游戏过程中对于的游戏画面的真实性较差。
考虑到现实生活中的光源都是区域光源,而区域光源在照射到物体上时有些光线会被物体阻挡,有些光线不会被物体阻挡,并且,未被物体阻挡的光线中有一部分光线会照射到物体形成的影子上,同时,越靠近影子中心区域的地方光线的照射量越少,越靠近影子边缘的区域的地方光线的照射量越多,从而使物体的影子是渐变的,基于上述思想,本申请提供了一种软阴影生成方法、装置、电子设备和存储介质,以便在游戏过程中可以提供物理真实的软阴影,从而可以提供比较真实的游戏画面。
为了实现上述目的,在本申请中,在虚拟场景中设置有光源阵列,通过光源阵列可以模拟出物理真实光照,在得到物理真实光照后,还需要根据各光源的实时光照信息,得到各光源照射虚拟模型后形成的光影信息,然后对各光源照射虚拟模型后形成的光影信息进行叠加,生成虚拟模型对应的软阴影,通过上述方法可以得到模拟物理真实光照对虚拟模型进行照射时产生的阴影,因此使得生成的虚拟模型的阴影具有真实阴影的效果,并且,在上述方法中,软阴影是通过叠加各光源照射虚拟模型后形成的光影信息生成的,相对于通过实时渲染的方式生成的软阴影计算量相对较小,从而可以使游戏引擎在实时渲染游戏画面的同时形成物理真实的软阴影,进而可以提供更加真实的游戏画面。
需要提前说明的是,本申请中涉及到的虚拟模型包括角色模型和场景模型等,其中,角色模型包括玩家控制的虚拟角色和游戏场景中非玩家控制的虚拟角色(如:游戏场景的怪),场景模型包括:虚拟建筑、虚拟道具和虚拟物体(如:游戏场景中的石头和大树等),关于具体的虚拟模型可以根据实际需要进行设置,在此不做具体限定,本申请中涉及到的虚拟场景包括游戏场景和动画场景。
以下是对本申请实施例进行的详细说明。
图1为本申请一实施例提供的一种软阴影生成方法的流程示意图,其中,通过终端设备提供图形用户界面,所述图形用户界面中包括虚拟场景,所述虚拟场景中包括光源阵列和虚拟模型,如图1所示,该软阴影生成方法包括以下步骤:
步骤101、获取所述光源阵列中每个光源的实时光照信息。
步骤102、对于每个所述光源,根据所述光源的实时光照信息,得到所述光源照射所述虚拟模型后形成的光影信息。
步骤103、对各所述光源照射所述虚拟模型后形成的光影信息进行叠加,生成所述虚拟模型对应的软阴影。
具体的,预先在虚拟场景中设置光源阵列,其中,光源阵列中包括多个光源,每个光源都可以发出光线形成实时的光照,每个光源形成的实时光照都可以作用到虚拟场景中,并且,多个光源形成的光源阵列能够模拟出物理真实光照,从而使虚拟场景受到模拟出的物理真实光照的照射。
在模拟出物理真实光照后,为了得到虚拟模型的软阴影,还需要得到各光源照射虚拟模型后形成的光影信息,然后对各光源照射虚拟模型后形成的光影信息进行叠加,生成虚拟模型对应的软阴影,通过上述方法可以得到模拟物理真实光照对虚拟模型进行照射时产生的阴影,因此使得生成的虚拟模型的阴影具有真实阴影的效果,并且,在上述方法中,软阴影是通过叠加各光源照射虚拟模型后形成的光影信息生成的,相对于通过实时渲染的方式生成的软阴影计算量相对较小,从而可以使游戏引擎在实时渲染游戏画面的同时形成物理真实的软阴影,进而可以提供更加真实的游戏画面,同时,对于CG(ComputerGraphics,计算机动画)动画而言,可以在CG动作制作过程中,通过动画引擎实时渲染动画画面,并且通过上述方法实时生成虚拟模型的软阴影,使得最后得到的动画画面更佳真实。
举例说明,图2为本申请一实施例提供的一种光源阵列的光照示意图,图2中仅示意了三个光源(光源1、光源2和光源3)在虚拟模型处的光照,其中,不同光源发出的光照使用不同的填充图案进行表示,如图2所示,在根据上述三个光源的实时光照信息得到各光源照射虚拟模型后形成的光影信息后,可以得到如图2中所示的光源1的阴影、光源2的阴影和光源3的阴影,由于真实光源形成的最后的阴影是所有光照共同的结果,因此需要对上述三个光源产生的光影信息进行光照叠加,从而使上述三个光源形成的总阴影如图2所示,其中,光源1、光源2和光源3形成的总阴影中包括三部分阴影,第一部分阴影只有光源1形成的阴影和光源3形成的阴影,第二部分阴影包括光源2和光源3共同形成的阴影,以及光源2和光源1共同形成的阴影,第三部分阴影包括光源1、光源2和光源3共同形成的阴影,上述三部分阴影中,第三部分阴影叠加的阴影数量最多,因此颜色最暗,第二部分阴影叠加的阴影数量居中,因此颜色也居中,第一部分阴影叠加的阴影数量最少,因此颜色最浅,同时,图2中位于右侧的第一部分阴影中还会受到光源2和光源3的影响,位于左侧的第一部分阴影中还会受到光源1和光源2的影响,图2中位于右侧的第二部分阴影中还会受到光源3的影响,位于左侧的第二部分阴影中还会受到光源1的影响,图2中第三部分阴影不会受到光源1、光源2和光源3的影响,从而使得总阴影沿第三部分阴影朝第一部分阴影的方向上颜色逐渐变浅,从而形成渐变式的阴影,进而可以模拟出物理真实的软阴影。
图2所示的阴影是由三个光源形成的,当光源阵列中包括的光源数量较多时,可以得到颜色渐变更加丰富的软阴影,并且靠近软阴影边缘的区域受到更多光照的影响从而可以形成明显的虚化,从而可以模拟出物理真实的软阴影。
并且,对于可动的虚拟模型(如:运动中的角色模型),在按照上述方式生成软阴影时,会随着虚拟模型的运动产生对应的软阴影,即:形成的软阴影的形状会随着虚拟模型的运动产生相应的变化,因此对于可动的虚拟模型按照上述方式形成的软阴影具有更佳的表现效果。
同时,在显示游戏画面或制作动画画面时,虚拟场景中的其他内容可以通过实施渲染的方式进行显示,虚拟模型的软阴影可以按照上述方式生成,从而有利于降低引擎的数据处理量,提高画面生成的效率。
需要说明的是,光源阵列中多个光源的分布情况,以及光源阵列的整体形状可以根据实际需要进行设定,例如:当虚拟场景为阴天时,光源阵列中包括的光源数量较少,且光源分布较稀疏,同时光源阵列的整体形状可以为立方体的形状,当虚拟场景为晴天时,光源阵列中包括的光源数量较多,且光源分布较密集,同时光源阵列的整体形状可以为球体的形状,当虚拟场景为室内时,光源阵列中包括的光源数量较少,且光源分布较密集,同时光源阵列的整体形状可以为球体的形状等,即:光源阵列中多个光源的分布情况,以及光源阵列的整体形状可以模拟对应的真实场景中的真实光照情况生成,对于具体的光源阵列在此不做具体限定。
需要再次说明的是,虚拟场景中的照明和投影的细节是可以通过调整光源阵列中的光源的位置和数量进行控制的,例如:对于同一虚拟场景,在早上的时候可以使用光源数量较少,光源分布较稀疏,且形状为立方体的光源阵列生成软阴影,当检测到该虚拟场景的时间为中午时,对光源阵列中的光源进行自动调整,使得光源阵列变为光源数量较多,光源分布较密集,且形状为球形的光源阵列,当检测到该虚拟场景的时间为傍晚时,恢复至早上的光源阵列,当检测到该虚拟场景的时间为晚上时,对光源阵列中的光源进行自动调整,使得光源阵列变为光源数量较少,光源分布较密集,且形状为球形的光源阵列,光源阵列的具体调整方式可以根据实际场景的需求进行设定,在此不做具体限定。
在一个可行的实施方案中,所述虚拟模型的中间区域受到所述光源阵列照射的光照量多于所述虚拟模型的边缘区域受到所述光源阵列照射的光照量。
具体的,为了使生成的软阴影能够模拟出更加真实的阴影效果,在对光源阵列中的光源进行排布时需要使排布出来的光源射出的光线更多的照射在虚拟模型的中间区域,而虚拟模型的边缘区域受到较少的光线照射,当虚拟模型的中间区域受到的光照量多于虚拟模型的边缘区域受到的光照量时,可以使虚拟模型形成的阴影中,位于阴影中间部分的颜色较深,位于阴影中间部分之外的部分的颜色较浅且沿朝向阴影边缘的方向上颜色逐渐变淡,同时,阴影的边缘处形成虚化效果,图3为本申请一实施例提供的一种阴影效果的示意图,光源阵列产生的光线按照上述方式进行照射产生的阴影如图3所示(未示意出渐变效果和虚化效果),按照上述照射方式产生的软阴影不仅能够模拟出颜色深度渐变的效果,还可以模拟出更加真实的阴影,从而提高画面的显示效果。
需要说明的是,为了实现上述目的,可以根据需要调整光源阵列中各光源的照射角度,以及光源阵列中各光源的分布情况,关于具体的调整方式可以根据实际需要进行设定,在此不做具体限定。
在一个可行的实施方案中,所述光源阵列包括点光源阵列,且所述点光源阵列中的点光源以立体形态分布。
具体的,当光源阵列是由点光源构成时,可以对任一一个点光源在光源阵列中的位置,以及所有点光源的分布方式进行任意调整,从而使由点光源构成的光源阵列发出的光线满足图3所示的要求,即:虚拟模型的中间区域受到光源阵列照射的光照量多于虚拟模型的边缘区域受到光源阵列照射的光照量,从而形成物理真实的软阴影,并且当光源阵列中的点光源以立体形态分布时,可以是光源阵列形成立体形态的光源区域,从而可以模拟出更加真实的光源,从而使光源阵列射出的光线更加符合真实光源射出的光线,进而可以更进一步的模拟出物理真实的软阴影。
在一个可行的实施方案中,所述立体形态包括立方体形态、球体形态。
具体的,真是环境中的光源区域构成的形态一般为立方体形态或者是球体形态,其中,人工光源形成的光源区域包括立方体形态和球体形态,例如:体育场中的一个灯光阵列形成的光源区域为立方体形态,室内的点灯形成的光源区域为球体形态,自然光源形成的光源区域一般为球体形态,例如:太阳形成的光源区域为球体形态,当光源阵列构成的立体形态包括立方体形态和球体形态时,可以使光源阵列模拟出更加真实的光源,从而模拟出更加真实的光照,例如:当虚拟模型位于室内且受虚拟灯光照射时,或者当虚拟模型位于室外处于虚拟太阳照射下时,可以使用球体形态的光源阵列来模拟真实的球体光源,当虚拟模型位于体育场受虚拟灯光照射时,可以使用立方体形态的光源阵列来模拟真实体育场中的立方体光源。
需要说明的是,对于立方体形态的光源阵列,可以通过调节立方体的长、宽、高上的光源数量,以及调整立方体内光源的分布情况来对光源的照明和形成的投影细节进行调整,对于球体形态的光源阵列,可以通过调整位于球体内的光源数量,以及光源在球体内的分布情况来对光源的照明和形成的投影细节进行调整,具体的调整方式可以根据实际需要进行,在此不做具体限定。
在一个可行的实施方案中,所述球体形态包括经纬分布的球体形态、斐波那契分布的球体形态。
具体的,图4为本申请一实施例提供的一种经纬分布的球体形态的示意图,图5为本申请一实施例提供的一种斐波那契分布的球体形态的示意图,如图4所示的经纬分布的球体形态中的光源能够按照经纬度的形式均匀分布,制作相对简单,如图5所示的斐波那契分布的球体形态中的光源能够按照斐波那契分布方式进行排布,可以使光源阵列模拟出更加真实的光源,使得光源阵列射出的光线模拟出更加符合真实光源射出的光线。
需要说明的是,球体形态中的光源采用的具体分布方式可以根据实际需要进行设定,在此不做具体限定。
在一个可行的实施方案中,所述光源阵列包括平行光源阵列,且所述平行光源阵列中的平行光源集中分布于预设区域内。
具体的,图6为本申请一实施例提供的一种平行光源的光线射出示意图,如图6所示,平行光源是集中于一点,形成圆锥形式的射出光线,当多个圆锥形式的光线在照射的虚拟模型上时,不同圆锥形式的光线会形成交叉重叠,从而可以使虚拟模型的中间区域受到光源阵列照射的光照量多于虚拟模型的边缘区域受到光源阵列照射的光照量,这样就会形成中间区域更深,边缘渐浅的阴影效果。并且,当平行光源阵列中的平行光源集中分布于预设区域内时,可以使平行光源阵列射出的光线整体上成圆锥形式,且越靠近圆锥中心区域的光线越密集,越靠近圆锥边缘区域的光线越稀疏,从而在保证虚拟场景处于一定光照强度的前提下,还可以使虚拟模型的中间区域受到光源阵列照射的光照量多于虚拟模型的边缘区域受到光源阵列照射的光照量,从而模拟出更加真实的光源。
在一个可行的实施方案中,图7为本申请一实施例提供的另一种软阴影生成方法的流程示意图,如图7所示,在执行步骤101之前,该方法还包括以下步骤:
步骤701、计算在所述虚拟场景中待分布的每个光源的位置。
步骤702、根据所述待分布的每个光源的位置在所述虚拟场景中分别设置每个光源。
具体的,不同分布情况的光源构成的光源阵列生成的软阴影是不同的,并且,为了模拟真实光源产生的物理阴影,需要使光源阵列构成的区域光源能够模拟出真实光源,同时,因为不同虚拟场景对应的真实光源是不同的,因此,需要计算虚拟场景中待分布的每个光源的位置,并将对应的光源设置在对应的位置,以使由光源构成的光源阵列能够模拟出该虚拟场景对应的真实光源,从而生成更加真实的阴影。
在一个可行的实施方案中,在执行步骤701时,通过游戏引擎的蓝图计算在所述虚拟场景中待分布的每个光源的位置。
在一个可行的实施方案中,在执行步骤101之前,还需要调整所述光源阵列中光源之间的间距或者所述光源阵列中光源的数量。
具体的,由于光源阵列中相邻光源之间的间距和数量会响应到光源阵列中光源密度,而光源密度会影响到虚拟场景中的光照量的多少,而虚拟场景中的光照量会直接影响到生成的阴影的效果,例如:光照量较多时,生成的阴影的颜色整体上相对较深,光照量较少时,生成的阴影的颜色整体相对较浅,因此通过调整光源阵列中光源之间的间距和数量可以实现对阴影的生成效果的调整,从而实现对阴影的生成效果的微调,进而有利于提高模拟出来的阴影的真实程度。
图8为本申请一实施例提供的一种软阴影生成装置的结构示意图,通过终端设备提供图形用户界面,所述图形用户界面中包括虚拟场景,所述虚拟场景中包括光源阵列和虚拟模型,如图8所示,该装置包括:
获取单元81,用于获取所述光源阵列中每个光源的实时光照信息;
计算单元82,用于对于每个所述光源,根据所述光源的实时光照信息,得到所述光源照射所述虚拟模型后形成的光影信息;
叠加单元83,用于对各所述光源照射所述虚拟模型后形成的光影信息进行叠加,生成所述虚拟模型对应的软阴影。
在一个可行的实施方案中,所述虚拟模型的中间区域受到所述光源阵列照射的光照量多于所述虚拟模型的边缘区域受到所述光源阵列照射的光照量。
在一个可行的实施方案中,所述光源阵列包括点光源阵列,且所述点光源阵列中的点光源以立体形态分布。
在一个可行的实施方案中,所述立体形态包括立方体形态、球体形态。
在一个可行的实施方案中,所述球体形态包括经纬分布的球体形态、斐波那契分布的球体形态。
在一个可行的实施方案中,所述光源阵列包括平行光源阵列,且所述平行光源阵列中的平行光源集中分布于预设区域内。
在一个可行的实施方案中,图9为本申请一实施例提供的另一种软阴影生成装置的结构示意图,如图9所示,该装置还包括:
设置单元84,设置单元,用于在获取所述光源阵列中每个光源的实时光照信息之前,计算在所述虚拟场景中待分布的每个光源的位置;以及,用于根据所述待分布的每个光源的位置在所述虚拟场景中分别设置每个光源。
在一个可行的实施方案中,所述设置单元84用于计算在所述虚拟场景中待分布的每个光源的位置时,包括:
通过游戏引擎的蓝图计算在所述虚拟场景中待分布的每个光源的位置。
在一个可行的实施方案中,图10为本申请一实施例提供的另一种软阴影生成装置的结构示意图,如图10所示,所述装置还包括:
调整单元85,用于在获取所述光源阵列中每个光源的实时光照信息之前,调整所述光源阵列中光源之间的间距或者所述光源阵列中光源的数量。
关于装置实施例的相关原理可参考方法实施例的相关说明,在此不再详细说明。
在本申请中,在虚拟场景中设置有光源阵列和虚拟模型,每个光源发出的光线在照射到虚拟模型上后会被遮挡,从而得到虚拟模型在该光源上形成的阴影,为了模拟物理真实光照形成的物理真实阴影,需要获取光源阵列中每个光源的实时光照信息,然后根据各光源的实时光照信息,得到各光源照射虚拟模型后形成的光影信息,然后对各光源照射虚拟模型后形成的光影信息进行叠加,生成虚拟模型对应的软阴影,在上述方法中,光源阵列能够模拟出区域光源形成的光照,即:通过光源阵列可以模拟出物理真实光照,因此在将各光源照射虚拟模型后形成的光影信息进行叠加后生成的虚拟模型对应的软阴影能够模拟出物理真实阴影,使得生成的虚拟模型的阴影具有真实阴影的效果,并且,在上述方法中,软阴影是通过叠加各光源照射虚拟模型后形成的光影信息生成的,相对于通过实时渲染的方式生成的软阴影计算量相对较小,从而可以使游戏引擎在实时渲染游戏画面的同时形成物理真实的软阴影,进而可以提供更加真实的游戏画面。
图11为本申请一实施例提供的一种电子设备的结构示意图,包括:处理器1101、存储介质1102和总线1103,所述存储介质1102存储有所述处理器1101可执行的机器可读指令,当电子设备运行上述的软阴影生成方法时,所述处理器1101与所述存储介质1102之间通过总线1103通信,所述处理器1101执行所述机器可读指令,以执行以下步骤:
获取所述光源阵列中每个光源的实时光照信息;
对于每个所述光源,根据所述光源的实时光照信息,得到所述光源照射所述虚拟模型后形成的光影信息;
对各所述光源照射所述虚拟模型后形成的光影信息进行叠加,生成所述虚拟模型对应的软阴影。
在本申请实施例中,所述存储介质1102还可以执行其它机器可读指令,以执行本申请中其它所述的方法,关于具体执行的方法步骤和原理参见上述的说明,在此不再详细赘述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行以下步骤:
获取所述光源阵列中每个光源的实时光照信息;
对于每个所述光源,根据所述光源的实时光照信息,得到所述光源照射所述虚拟模型后形成的光影信息;
对各所述光源照射所述虚拟模型后形成的光影信息进行叠加,生成所述虚拟模型对应的软阴影。
在本申请实施例中,该计算机程序被处理器运行时还可以执行其它机器可读指令,以执行本申请中其它所述的方法,关于具体执行的方法步骤和原理参见上述的说明,在此不再详细赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种软阴影生成方法,其特征在于,通过终端设备提供图形用户界面,所述图形用户界面中包括虚拟场景,所述虚拟场景中包括光源阵列和虚拟模型,所述方法包括:
获取所述光源阵列中每个光源的实时光照信息;
对于每个所述光源,根据所述光源的实时光照信息,得到所述光源照射所述虚拟模型后形成的光影信息;
对各所述光源照射所述虚拟模型后形成的光影信息进行叠加,生成所述虚拟模型对应的软阴影;
其中,所述光源阵列包括点光源阵列,且所述点光源阵列中的点光源以立体形态分布,所述光源阵列中的点光源数量和分布形态为可调的,所述虚拟模型的中间区域受到所述光源阵列照射的光照量多于所述虚拟模型的边缘区域受到所述光源阵列照射的光照量。
2.根据权利要求1所述的软阴影生成方法,其特征在于,所述立体形态包括立方体形态、球体形态。
3.根据权利要求2所述的软阴影生成方法,其特征在于,所述球体形态包括经纬分布的球体形态、斐波那契分布的球体形态。
4.根据权利要求1所述的软阴影生成方法,其特征在于,所述光源阵列包括平行光源阵列,且所述平行光源阵列中的平行光源集中分布于预设区域内。
5.根据权利要求1所述的软阴影生成方法,其特征在于,所述获取所述光源阵列中每个光源的实时光照信息之前,所述方法还包括:
计算在所述虚拟场景中待分布的每个光源的位置;
根据所述待分布的每个光源的位置在所述虚拟场景中分别设置每个光源。
6.根据权利要求5所述的软阴影生成方法,其特征在于,所述计算在所述虚拟场景中待分布的每个光源的位置,包括:
通过游戏引擎的蓝图计算在所述虚拟场景中待分布的每个光源的位置。
7.根据权利要求1所述的软阴影生成方法,其特征在于,所述获取所述光源阵列中每个光源的实时光照信息之前,所述方法还包括:
调整所述光源阵列中光源之间的间距或者所述光源阵列中光源的数量。
8.一种软阴影生成装置,其特征在于,通过终端设备提供图形用户界面,所述图形用户界面中包括虚拟场景,所述虚拟场景中包括光源阵列和虚拟模型,所述装置包括:
获取单元,用于获取所述光源阵列中每个光源的实时光照信息;
计算单元,用于对于每个所述光源,根据所述光源的实时光照信息,得到所述光源照射所述虚拟模型后形成的光影信息;
叠加单元,用于对各所述光源照射所述虚拟模型后形成的光影信息进行叠加,生成所述虚拟模型对应的软阴影;
其中,所述光源阵列包括点光源阵列,且所述点光源阵列中的点光源以立体形态分布,所述光源阵列中的点光源数量和分布形态为可调的,所述虚拟模型的中间区域受到所述光源阵列照射的光照量多于所述虚拟模型的边缘区域受到所述光源阵列照射的光照量。
9.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1至7中任一项所述的软阴影生成方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至7中任一项所述的软阴影生成方法的步骤。
CN202010700443.7A 2020-07-20 2020-07-20 一种软阴影生成方法、装置、电子设备和存储介质 Active CN111803942B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010700443.7A CN111803942B (zh) 2020-07-20 2020-07-20 一种软阴影生成方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010700443.7A CN111803942B (zh) 2020-07-20 2020-07-20 一种软阴影生成方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN111803942A CN111803942A (zh) 2020-10-23
CN111803942B true CN111803942B (zh) 2024-07-30

Family

ID=72865075

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010700443.7A Active CN111803942B (zh) 2020-07-20 2020-07-20 一种软阴影生成方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN111803942B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114820874A (zh) * 2021-01-28 2022-07-29 北京字跳网络技术有限公司 一种文字的阴影效果处理方法、装置、设备及存储介质
CN113487662B (zh) * 2021-07-02 2024-06-11 广州博冠信息科技有限公司 画面显示方法、装置、电子设备和存储介质
CN113827960B (zh) * 2021-09-01 2023-06-02 广州趣丸网络科技有限公司 一种游戏视野生成方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001084400A (ja) * 1999-09-10 2001-03-30 Namco Ltd 3次元コンピュータグラフィックを処理する画像処理装置、画像処理方法および記録媒体

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2973413B2 (ja) * 1993-06-23 1999-11-08 株式会社日立製作所 コンピュータグラフィックスの照度計算方法及び表示装置
JP2007066064A (ja) * 2005-08-31 2007-03-15 Sega Corp 画像生成装置及びプログラム
CN102568027B (zh) * 2011-12-28 2014-07-02 浙江工业大学 一种像素化的虚拟树木光照影响区域获取方法
CN103971398A (zh) * 2014-05-09 2014-08-06 常州赞云软件科技有限公司 一种基于超椭圆的计算区域光照的方法
US9786095B2 (en) * 2015-02-25 2017-10-10 Samsung Electronics Co., Ltd. Shadow rendering apparatus and control method thereof
KR102174264B1 (ko) * 2015-02-25 2020-11-04 삼성전자주식회사 그림자 렌더링 방법 및 그림자 렌더링 장치
DE102016103874A1 (de) * 2015-03-03 2016-09-08 Imagination Technologies Limited Systeme und Verfahren zur weichen Schattierung in 3D-Rendering

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001084400A (ja) * 1999-09-10 2001-03-30 Namco Ltd 3次元コンピュータグラフィックを処理する画像処理装置、画像処理方法および記録媒体

Also Published As

Publication number Publication date
CN111803942A (zh) 2020-10-23

Similar Documents

Publication Publication Date Title
CN111803942B (zh) 一种软阴影生成方法、装置、电子设备和存储介质
US10395415B2 (en) Method of fast intersections in ray tracing utilizing hardware graphics pipeline
CN113034656B (zh) 游戏场景中光照信息的渲染方法、装置及设备
US11386613B2 (en) Methods and systems for using dynamic lightmaps to present 3D graphics
CN111968216A (zh) 一种体积云阴影渲染方法、装置、电子设备及存储介质
US20200380764A1 (en) Method for Fast Generation of Path Traced Reflections on a Semi-Reflective Surface
Prutkin et al. Reflective Shadow Map Clustering for Real-Time Global Illumination.
US10304234B2 (en) Virtual environment rendering
CN104091363A (zh) 一种基于屏幕空间实时的体积云计算方法
CN112712582A (zh) 动态全局光照方法、电子设备及计算机可读存储介质
CN112734892A (zh) 一种虚拟电缆隧道场景模型实时全局光照渲染方法
CN115984449A (zh) 一种光照渲染方法、装置、电子设备及存储介质
CN103679818A (zh) 一种基于虚拟面光源的实时场景绘制方法
CN112473135B (zh) 移动游戏的实时光照模拟方法、装置、设备及存储介质
CN114392551A (zh) 虚拟对象的显示控制方法、装置和电子设备
Onrust et al. Procedural generation and interactive web visualization of natural environments
CN112396683A (zh) 虚拟场景的阴影渲染方法、装置、设备及存储介质
JP7123041B2 (ja) 現実世界環境における仮想オブジェクトの光線追跡反射の高速生成
Liu et al. scheme of dynamic clouds generation for 3d real time flight simulation
Yang et al. Visual effects in computer games
Sui et al. A visualization framework for cloud rendering in global 3D GIS
CN116310049A (zh) 体积雾生成方法、装置、电子设备及计算机可读存储介质
CN117671104A (zh) 一种渲染方法、装置、电子设备及计算机可读存储介质
Raudsepp Volumetric Fog Rendering
Bernik et al. TEHNIKE RENDERIRANJA I RAČUNALNOG OSVJETLJENJA.

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