CN116688494B - 生成游戏预测帧的方法和电子设备 - Google Patents
生成游戏预测帧的方法和电子设备 Download PDFInfo
- Publication number
- CN116688494B CN116688494B CN202310974602.6A CN202310974602A CN116688494B CN 116688494 B CN116688494 B CN 116688494B CN 202310974602 A CN202310974602 A CN 202310974602A CN 116688494 B CN116688494 B CN 116688494B
- Authority
- CN
- China
- Prior art keywords
- shadow
- frame image
- frame
- character
- shadow mask
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 125
- 230000008569 process Effects 0.000 claims abstract description 54
- 238000009877 rendering Methods 0.000 claims abstract description 46
- 230000000875 corresponding effect Effects 0.000 claims description 89
- 230000006870 function Effects 0.000 claims description 53
- 230000033001 locomotion Effects 0.000 claims description 45
- 230000015654 memory Effects 0.000 claims description 32
- 230000007613 environmental effect Effects 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 8
- 238000005286 illumination Methods 0.000 claims description 5
- 238000006073 displacement reaction Methods 0.000 claims description 3
- 230000002596 correlated effect Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 49
- 238000004891 communication Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 22
- 238000004364 calculation method Methods 0.000 description 15
- 230000000295 complement effect Effects 0.000 description 13
- 238000007726 management method Methods 0.000 description 8
- 238000010295 mobile communication Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
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
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/214—Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads
- A63F13/2145—Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads the surface being also a display device, e.g. touch screens
-
- 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/53—Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
- A63F13/537—Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/02—Non-photorealistic rendering
-
- 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/30—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 characterized by output arrangements for receiving control signals generated by the game device
- A63F2300/308—Details of the user interface
-
- 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
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Optics & Photonics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请实施例提供一种生成游戏预测帧的方法和电子设备,该方法由电子设备执行,包括:在游戏应用开启人物阴影功能的情况下,根据第一帧图像和第二帧图像,生成不包含人物阴影的预测帧,第一帧图像和第二帧图像为渲染游戏应用的真实帧的过程中生成的图像,第一帧图像对应的真实帧与第二帧图像对应的真实帧为相邻帧图像,第一帧图像和第二帧图像中均不包含人物阴影;根据第一帧图像对应的人物阴影mask和第二帧图像对应的人物阴影mask,计算预测帧对应的人物阴影mask,人物阴影mask表征图像中人物阴影区域的像素点的可见性;根据不包含人物阴影的预测帧和预测帧对应的人物阴影mask,生成游戏预测帧。该方法减少游戏界面中人物阴影的抖动现象。
Description
技术领域
本申请涉及电子技术领域,具体涉及一种生成游戏预测帧的方法和电子设备。
背景技术
随着电子技术的发展,电子设备(例如手机、平板电脑等)的性能越来越高,相应的便可以逐渐实现越来越多的功能。例如手机可以实现多种网络游戏的运行,用户可以使用手机随时随地的体验网络游戏。
然而,因电子设备在运行网络游戏时,通常需要渲染大量复杂的游戏界面,这就容易造成电子设备的负载较大,以致影响电子设备的电池续航能力以及处理其他事务的能力。
为了减少电子设备在运行网络游戏时的渲染开销,相关技术提出生成游戏预测帧(也可简称为预测帧)的方法,在电子设备减少实际渲染的游戏界面的帧数的情况下,通过生成预测帧来增加游戏界面的帧数,以保证游戏画质不受影响。但是,相关技术在生成预测帧时,无法较好的处理游戏界面中的人物阴影,容易产生阴影抖动的问题。
发明内容
本申请提供了一种生成游戏预测帧的方法和电子设备,可以减少游戏界面中人物阴影的抖动现象,提高游戏画质。
第一方面,本申请提供一种生成游戏预测帧的方法,该方法由电子设备执行,电子设备运行有游戏应用,该方法包括:
在游戏应用开启人物阴影功能的情况下,根据第一帧图像和第二帧图像,生成不包含人物阴影的预测帧,第一帧图像和第二帧图像为电子设备在渲染游戏应用显示的真实帧的过程中生成的图像,第一帧图像对应的真实帧与第二帧图像对应的真实帧为相邻帧图像,第一帧图像和第二帧图像中均不包含人物阴影;
根据第一帧图像对应的人物阴影mask和第二帧图像对应的人物阴影mask,计算预测帧对应的人物阴影mask,其中,人物阴影mask表征图像中人物阴影区域的像素点的可见性;
根据不包含人物阴影的预测帧和预测帧对应的人物阴影mask,生成游戏预测帧。
其中,游戏应用可以提供开启人物阴影功能的入口,如果用户没有开启人物阴影功能,则电子设备在后续渲染游戏界面时都不会渲染人物阴影。如果用户开启了人物阴影功能,则电子设备在后续渲染游戏界面时需要渲染人物阴影,同时,所生成的游戏预测帧中也需要增加人物阴影。
对于该实现方式,电子设备在渲染游戏界面的真实帧的过程中,可以生成真实帧(第三帧图像)对应的不包含人物阴影的第一帧图像,并根据第一帧图像和相邻的第二帧图像生成不包含人物阴影的预测帧,以及生成预测帧对应的人物阴影mask,进而根据不包含人物阴影的预测帧和预测帧对应的人物阴影mask,生成游戏预测帧。可以理解,这里的第一帧图像和第二帧图像并不会显示在游戏界面中,其仅用于后续生成预测帧,第三帧是用于显示在游戏界面中的包含人物阴影的图像。
上述实现方式,电子设备通过先生成不包含人物阴影的预测帧和预测帧对应的人物阴影mask,再将该不包含人物阴影的预测帧和预测帧对应的人物阴影mask进行计算,便可以得到包含人物阴影的游戏预测帧,因该实现方式中是根据人物阴影mask来生成游戏预测帧中的人物阴影的,将人物阴影与环境因素进行了分离,那么人物阴影便不会随着环境因素进行移动,从而减少了游戏界面中人物阴影的抖动现象。
结合第一方面,在第一方面的有些实现方式中,在根据第一帧图像和第二帧图像,生成不包含人物阴影的预测帧之前,上述方法还包括:在生成第三帧图像的过程中检测到第一指令时,生成第一阴影mask,第一阴影mask为不包含人物阴影的阴影mask图,第一指令表征电子设备开始进行阴影绘制,第三帧图像为第一帧图像对应的包含人物阴影的真实帧;基于第一阴影mask,生成第一帧图像。
其中,因第一帧图像是电子设备渲染真实帧(即第三帧图像)的过程中所生成的图像,那么电子设备在生成第三帧图像的过程中,如果检测到第一指令,则可以触发生成第一帧图像。可以理解,第二帧图像的生成过程原理类似。
在生成第一帧图像的过程中,因第一帧图像是不包含人物阴影的,因此需要生成一个不包含人物阴影的阴影mask图(阴影mask图P’)。通常,电子设备在进行阴影绘制时,是先绘制环境因素的阴影mask(Ambient Shadow),再绘制人物阴影mask(Human Shadow),以及创建两个缓冲区(FB)资源分别存储Ambient Shadow和Human Shadow。那么如果本实现方式中想要获得不包含人物阴影的阴影mask图,则可以将人物阴影mask剔除。
在一个实现方式中,上述生成第一阴影mask,包括:在电子设备进行阴影绘制时,若绘制完成环境因素的阴影mask和人物阴影mask,则将环境因素的阴影mask和人物阴影mask存储至不同的缓冲区,以及根据环境因素的阴影mask生成第一阴影mask。
即,电子设备先绘制环境因素的阴影mask(Ambient Shadow),再绘制人物阴影mask(Human Shadow),此时将Human Shadow存储至另外的FB中,当前的FB中只保留AmbientShadow,则根据该Ambient Shadow生成的第一阴影mask不包含人物阴影。
结合第一方面,在第一方面的有些实现方式中,上述基于第一阴影mask,生成第一帧图像,包括:基于第一阴影mask和第一帧图像对应的像素颜色值,生成第一帧图像,其中,像素颜色值为通过法线图、深度模板图、漫反射图和镜面反色图中的至少一种生成的像素值。
其中,电子设备在基于第一阴影mask生成第一帧图像时,可以结合第一阴影mask和第一帧图像对应的像素颜色值来生成,这里的像素颜色值可以为对G-buffer中的法线图、深度模板图、漫反射图和镜面反色图进行渲染计算得到的像素颜色值。
在一个实现方式中,电子设备可以采用预设的光照模型,调用glDrawArray接口对第一阴影mask的像素值和像素颜色值进行求乘计算,生成第一帧图像。例如可以通过:Color_Result1=Color×ScreenShadow’=Color×Ambient Shadow来生成。其中,Color可以为对G-buffer中的法线图、深度模板图、漫反射图和镜面反色图进行渲染计算得到的像素颜色值(不包含阴影),ScreenShadow’为第一阴影mask的像素值,其中的每个像素点的像素值取值范围为[0,1]。
上述实现方式中,电子设备通过获取不包含人物阴影的阴影mask图来生成上述第一帧图像,以得到不包含人物阴影的图像,为后续生成不包含人物阴影的预测帧做数据基础。
结合第一方面,在第一方面的有些实现方式中,上述方法还包括:基于第一帧图像和阴影分量,生成第三帧图像,阴影分量表征第一帧图像和第三帧图像之间的阴影差异。
因上述电子设备在生成第一帧图像时,将人物阴影mask(Human Shadow)存储至了另外了FB中,即影响了原有的阴影绘制流程,基于原有的阴影绘制流程可能无法再得到包含人物阴影的真实帧(第三帧图像),因此本申请中还需要再生成第三帧图像。
此实现方式中,电子设备可以根据不包含人物阴影的第一帧图像和阴影分量(Shadow_Color)来生成包含人物阴影的真实帧(即第三帧图像)。
在一个实现方式中,电子设备可以根据包含Color_Result1-Shadow_Color的关系式,生成第三帧图像,其中,Color_Result1为第一帧图像,Shadow_Color为阴影分量。
在一个实现方式中,阴影分量可以为根据环境因素的阴影mask、人物阴影mask和第一帧图像计算得到的。
可选地,电子设备可以根据包含的关系式计算得到阴影分量,其中,Ambient Shadow为环境因素的阴影mask,Human Shadow为人物阴影mask。
上述实现方式,因电子设备在生成第一帧图像时改变了原有的渲染真实帧的流程,因此,电子设备根据第一帧图像来生成真实帧图像,以还原原始帧图像。
结合第一方面,在第一方面的有些实现方式中,上述根据第一帧图像对应的人物阴影mask和第二帧图像对应的人物阴影mask,计算预测帧对应的人物阴影mask,包括:确定第一帧图像对应的人物阴影mask中第一阴影区域的第一形心位置、以及第二帧图像对应的人物阴影mask中第二阴影区域的第二形心位置;
若第一形心位置与第二形心位置之间的距离大于预设阈值,则将第二帧图像对应的人物阴影mask中的每个像素点向第一方向移动第一距离,得到预测帧对应的人物阴影mask,其中,第一方向为第一阴影区域相对于第二阴影区域的方向,第一距离与第一形心位置与第二形心位置之间的距离呈正相关;
若第一形心位置与第二形心位置之间的距离不大于预设阈值,则将第二帧图像对应的人物阴影mask作为预测帧对应的人物阴影mask。
其中,计算预测帧对应的人物阴影mask的过程中,电子设备可以先识别第一阴影区域的第一形心位置和第二阴影区域的第二形心位置,再根据第一形心位置与第二形心位置在同一平面上的距离o来预测人物阴影mask。可选地,距离o可以为第一形心位置与第二形心位置在水平方向上的距离,也可以为第一形心位置与第二形心位置在竖直方向上的距离,还可以是第一形心位置与第二形心位置之间的最短距离。如果距离o大于预设阈值,则电子设备可以将第二帧图像对应的人物阴影mask中的每个像素点向第一方向移动第一距离,例如移动i×o的距离,得到的即是预测帧对应的人物阴影mask,其中,0<i<1,例如i=0.5。如果距离o不大于预设阈值,则电子设备可以直接将第二帧图像对应的人物阴影mask作为预测帧对应的人物阴影mask,以减少电子设备的计算量。
结合第一方面,在第一方面的有些实现方式中,上述根据第一帧图像和第二帧图像,生成不包含人物阴影的预测帧,包括:基于第一帧图像和第二帧图像,计算运动矢量,运动矢量表征同一像素点在第一帧图像中的位置与在第二帧图像中的位置之间的位移;基于运动矢量对第一帧图像进行运动补偿,生成第一预测帧;对第一预测帧进行图像补全,生成不包含人物阴影的预测帧。
在该实现方式中,电子设备可以通过插帧管线的方式对第一帧图像和第二帧图像进行处理,以得到不包含人物阴影的预测帧,即先计算运动矢量,再基于运动矢量对第一帧图像进行运动补偿,生成第一预测帧,最后对该第一预测帧进行图像补偿,生成不包含人物阴影的预测帧。
可选地,电子设备可以采用全局运动补偿方法或者分块运动补偿来方法来进行运动补偿,以及采用基于Patch-based的图像补全、或者基于深度学习生成相似纹理区域的图像补全等方法来进行图像补全。
上述实现方式,电子设备通过第一帧图像和第二帧图像来生成不包含人物阴影的预测帧,为后续生成包含人物阴影的预测帧提供数据基础。
第二方面,本申请提供一种装置,该装置包含在电子设备中,该装置具有实现上述第一方面及上述第一方面的可能实现方式中电子设备行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,接收模块或单元、处理模块或单元等。
第三方面,本申请提供一种电子设备,电子设备包括:处理器、存储器和接口;处理器、存储器和接口相互配合,使得电子设备执行第一方面的技术方案中任意一种方法。
第四方面,本申请提供一种芯片,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行第一方面及其任意可能的实现方式中的方法。
可选地,芯片还包括存储器,存储器与处理器通过电路或电线连接。
进一步可选地,芯片还包括通信接口。
第五方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储了计算机程序,当计算机程序被处理器执行时,使得该处理器执行第一方面的技术方案中任意一种方法。
第六方面,本申请提供一种计算机程序产品,计算机程序产品包括:计算机程序代码,当计算机程序代码在电子设备上运行时,使得该电子设备执行第一方面的技术方案中任意一种方法。
附图说明
图1是本申请实施例提供的一例在游戏界面的真实帧中插入预测帧的场景图;
图2是本申请实施例提供的一例游戏界面中人物阴影的示意图;
图3是本申请实施例提供的一例电子设备的结构示意图;
图4是本申请实施例提供的一例电子设备的软件结构框图;
图5是本申请实施例提供的一例生成游戏预测帧的方法的流程示意图;
图6是本申请实施例提供的一例真实帧与第一帧图像的对比示意图;
图7是本申请实施例提供的一例生成预测帧对应的人物阴影mask的示意图;
图8是本申请实施例提供的一例生成游戏预测帧的示意图;
图9是相关技术提供的一例生成真实帧的示意图;
图10是相关技术提供的一例阴影绘制过程的示意图;
图11是本申请实施例提供的一例阴影绘制过程的示意图;
图12是本申请实施例提供的一例生成第一帧图像的示意图;
图13是本申请实施例提供的一例第三帧图像的示意图;
图14是本申请实施例提供的一例生成第一帧图像的流程示意图;
图15是本申请实施例提供的另一例生成游戏预测帧的方法的流程示意图;
图16是本申请实施例提供的又一例生成游戏预测帧的方法的流程示意图;
图17是本申请实施例提供的一例生成游戏预测帧的方法的模块交互流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括一个或者更多个该特征。
当前,移动电子设备(例如手机、平板电脑等)的性能越来越高,所实现的功能也越来越丰富,移动电子设备已可以实现传统电子设备(例如个人计算机(personal computer,PC))的多数功能。例如手机可以实现多种网络游戏的运行,用户可以使用手机随时随地的体验网络游戏。
然而,因网络游戏迭代更新的速度较快,电子设备在运行网络游戏时,游戏引擎通常需要渲染大量复杂的游戏界面,这就容易造成电子设备的负载较大,以致影响电子设备的电池续航能力以及处理其他事务的能力。因此,需要研究如何在保证游戏画质不受影响的情况下,减少运行网络游戏时的渲染开销。
基于此,相关技术提出生成游戏预测帧(也可简称为预测帧)的方法,在电子设备减少实际渲染的游戏界面的帧数的情况下,通过生成预测帧来增加游戏界面的帧数,以保证游戏画质不受影响。例如图1所示,假设电子设备实际渲染的游戏帧(可简称为真实帧)为A、B、C……Z,那么电子设备可以根据A帧和B帧生成预测帧AB,将预测帧AB插入A帧和B帧之间;根据B帧和C帧生成预测帧BC,将预测帧BC插入B帧和C帧之间,以此类推。由此,电子设备可以增加游戏界面的帧数,使得游戏界面的变化较为平滑,以保证游戏画质不受影响,并且减少了游戏引擎的渲染开销。
通常,游戏界面中的人物会具有阴影,示例性地,如图2所示,人物阴影相当于人物的影子,按照实际场景来看,人物阴影会随着人物的移动而移动,例如人物跑动的情况下,人物阴影也会呈现跑动的效果。但是,在相关技术中,电子设备所生成的预测帧中的人物阴影通常是和游戏场景中的环境因素(即包括地面、建筑物等物体的周围环境)相关联,在人物跑动的场景下,如果人物是向前跑动,则周围环境是向后移动,那么人物阴影也会随着周围环境向后移动;然而电子设备实际渲染的游戏帧中,人物阴影是随着人物向前移动的。因此,如果将预测帧插入真实帧之间的话,就可能导致人物阴影在预测帧中向后,在真实帧中向前的情况,在视觉角度即会产生阴影跳动或抖动的现象。
有鉴于此,本申请实施例提供一种生成游戏预测帧的方法,通过先生成不包含人物阴影的预测帧,再对预测帧中的人物阴影进行区域颜色计算,进而生成包含人物阴影的预测帧,使人物阴影不再与游戏场景中的环境因素相关联,减少了游戏界面中人物阴影的抖动现象,进一步提高了游戏画质。需要说明的是,本申请实施例提供的生成游戏预测帧的方法可以应用于手机、平板电脑、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等可以运行游戏应用或者具有图像渲染功能的电子设备上,本申请实施例对电子设备的具体类型不作任何限制。
示例性的,图3是本申请实施例提供的一例电子设备100的结构示意图。以电子设备100是手机为例,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现电子设备100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。图3中的天线1和天线2的结构仅为一种示例。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图4是本申请实施例的电子设备100的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。应用程序层可以包括一系列应用程序包。
如图4所示,应用程序包可以包括游戏、相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图4所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如可以包括:表面管理器(surface manager)、图像处理库、图像引擎、媒体库(media libraries)、图像资源处理模块、预测帧管线、阴影生成模块等模块。
其中,表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
图像处理库可以包括三维图形处理库(例如:OpenGL ES)等,三维图形处理库用于实现三维图形绘图,图像渲染,合成和图层处理等。例如可以在游戏应用运行时渲染真实帧以显示游戏界面,以及生成下述实施例中不包含人物阴影的第一帧图像和第二帧图像。
图像引擎可以包括2D图形引擎(例如:SGL)等,2D图形引擎是2D绘图的绘图引擎。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如: MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
图像资源处理模块用于在三维图形处理库渲染真实帧的过程中获取人物阴影的阴影mask图,以及生成真实帧。
预测帧管线用于生成游戏预测帧。可选地,预测帧管线可以包括运动估计模块、运动补偿模块、以及图像补全模块。在生成游戏预测帧的过程中,运动估计模块用于根据第一帧图像和第二帧图像计算运动矢量;运动补偿模块用于根据运动矢量和第一帧图像进行运动补偿,并生成第一预测帧;图像补全模块用于对第一预测帧进行图像补全,以生成不包含人物阴影的预测帧。
阴影生成模块用于根据相邻两帧图像对应的阴影mask图计算预测帧的阴影mask图,以及根据阴影mask图和不包含人物阴影的预测帧生成最终需要的包含人物阴影的游戏预测帧。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,Wi-Fi驱动、通信驱动、蓝牙驱动、音频驱动,传感器驱动等。
为了便于理解,本申请以下实施例将以具有图3和图4所示结构的电子设备为例,结合附图和应用场景,对本申请实施例提供的生成游戏预测帧的方法进行具体阐述。
图5是本申请实施例提供的一例生成游戏预测帧的方法的流程示意图,该方法可以由电子设备执行,包括:
S101,在游戏应用开启人物阴影功能的情况下,获取第一帧图像和第二帧图像。
其中,第一帧图像和第二帧图像是游戏应用运行时,电子设备渲染真实帧的过程中所生成的图像,但第一帧图像和第二帧图像并不会显示在游戏界面中,其仅用于后续生成预测帧。第一帧图像和第二帧图像是相邻的两帧图像,且第一帧图像和第二帧图像中都不包含人物阴影。因第一帧图像和第二帧图像都是在渲染真实帧的过程中生成的,因此第一帧图像和第二帧图像也可以理解为是真实帧。
示例性地,由上述图1可知,相关技术中电子设备是通过A帧和B帧生成预测帧AB,并将预测帧AB插入A帧和B帧之间的,这里A帧和B帧是显示在游戏界面中的真实帧,则本申请中的第一帧图像可以为渲染A帧的过程中所生成的图像,第二帧图像可以为渲染B帧的过程中所生成的图像。然而,如图6所示,第一帧图像与A帧之间的区别在于A帧中包含人物阴影,第一帧图像中不包含人物阴影;同理,第二帧图像与B帧之间的区别类似,不再进行图示。
S102,根据第一帧图像和第二帧图像,生成不包含人物阴影的预测帧。
因第一帧图像和第二帧图像中都不包含人物阴影,那么电子设备根据第一帧图像和第二帧图像所生成的预测帧也不包含人物阴影。
在一个可实现的方式中,电子设备可以通过插帧管线的方式对第一帧图像和第二帧图像进行处理,以得到不包含人物阴影的预测帧,可选地,插帧管线的过程可以包括:电子设备可以先根据第一帧图像和第二帧图像中像素点的像素值和/或位置,计算第一帧图像和第二帧图像之间的运动矢量;然后再根据该运动矢量和第一帧图像进行运动补偿,以生成第一预测帧;最后电子设备再对第一预测帧进行图像补全,即得到不包含人物阴影的预测帧。
S103,根据第一帧图像对应的人物阴影mask和第二帧图像对应的人物阴影mask,计算预测帧对应的人物阴影mask。
其中,虽然第一帧图像和第二帧图像是渲染真实帧的过程中所生成的不包含人物阴影的图像,但是电子设备在渲染真实帧的过程中仍是需要生成包含人物阴影的图像以进行显示的,例如上述电子设备需要渲染出A帧和B帧。而电子设备在渲染真实帧的过程中,通常需要绘制人物阴影mask,以根据人物阴影mask来渲染人物阴影。因此,第一帧图像会对应有一个人物阴影mask,第二帧图像也会对应一个人物阴影mask。需要说明的是,阴影mask图可以用来表征一帧图像中像素点的可见性(visibilty),其中,像素点的像素值取值范围为[0,1],1表示完全可见,0表示完全不可见,其他数值表示部分可见。
假设第一帧图像对应的人物阴影mask为Prev_shadow,第二帧图像对应的人物阴影mask为Cur_shadow,预测帧对应的人物阴影mask为Predict_shadow,即电子设备需要根据Prev_shadow和Cur_shadow计算Predict_shadow,以使电子设备再基于Predict_shadow和上述得到的不包含人物阴影的预测帧来生成包含人物阴影的预测帧。
在一个可实现的方式中,电子设备可以根据Prev_shadow中的阴影区域E和Cur_shadow中的阴影区域F来预测Predict_shadow。可选地,电子设备可以先识别阴影区域E的形心e以及阴影区域F的形心f,再根据形心e与形心f在同一平面上的距离o来预测Predict_shadow。可选地,距离o可以为形心e和形心f在水平方向上的距离,也可以为形心e和形心f在竖直方向上的距离,还可以是形心e和形心f之间的最短距离。在该实现方式中,如果距离o大于预设阈值,则电子设备可以将Cur_shadow中的每个像素点向第一方向移动i×o的距离,得到的即是Predict_shadow,其中,i为系数因子,例如可以为0.5,第一方向为阴影区域E相对于阴影区域F的方向;如果距离o不大于预设阈值,则电子设备可以直接将Cur_shadow作为Predict_shadow,以减少电子设备的计算量。
示例性地,如图7所示,Prev_shadow中阴影区域E的形心e和Cur_shadow中阴影区域F的形心f之间的水平距离为o,阴影区域E相对于阴影区域F位于偏左边,如果距离o大于预设阈值,则电子设备可以将Cur_shadow中的每个像素点向左方向移动0.5×o的距离,得到Predict_shadow。
可选地,电子设备可以调用DrawCall接口来识别阴影区域E的形心e以及阴影区域F的形心f。
可以理解,对于上述S102和S103的步骤,电子设备可以先执行S102再执行S103,也可以先执行S103再执行S102,或者还可以同时执行S102和S103,本申请实施例对此执行顺序不做限制。
S104,根据不包含人物阴影的预测帧和预测帧对应的人物阴影mask,生成游戏预测帧。
因上述电子设备已生成不包含人物阴影的预测帧,并且也已计算出预测帧对应的人物阴影mask,那么可以理解,如果将人物阴影叠加至不包含人物阴影的预测帧上,即可以生成包含人物阴影的游戏预测帧。因此,电子设备可以基于不包含人物阴影的预测帧和预测帧对应的人物阴影mask,生成游戏预测帧。
在一个可实现的方式中,因人物阴影mask仅表征的是预测帧中对应人物位置像素点的可见性,那么电子设备需要对人物位置的像素点进行颜色值RGBA计算,可以将不包含人物阴影的预测帧和预测帧对应的人物阴影mask进行求乘运算,以得到最终需要的游戏预测帧。
示例性地,电子设备对不包含人物阴影的预测帧和预测帧对应的人物阴影mask进行求乘运算后,得到的游戏预测帧可以如图8所示,由图中可以看出,图8中包含了人物阴影。
上述生成游戏预测帧的方法,电子设备通过先生成不包含人物阴影的预测帧和预测帧对应的人物阴影mask,再将该不包含人物阴影的预测帧和预测帧对应的人物阴影mask进行计算,便可以得到包含人物阴影的游戏预测帧,因该实施例中是根据人物阴影mask来生成游戏预测帧中的人物阴影的,将人物阴影与环境因素进行了分离,那么人物阴影便不会随着环境因素进行移动,从而减少了游戏界面中人物阴影的抖动现象。
由上述实施例的描述可知,电子设备需要生成一张不包含人物阴影的预测帧,其是通过第一帧图像和第二帧图像所生成的,并且第一帧图像和第二帧图像中不包含人物阴影,那么,电子设备就需要先获得不包含人物阴影的第一帧图像和第二帧图像,这里可以理解,生成第一帧图像和第二帧图像的原理相同,本申请实施例以生成第一帧图像为例进行说明。再由上述描述可知,第一帧图像是电子设备渲染真实帧(称为第三帧图像)的过程中所生成的图像,那么我们一起介绍下电子设备渲染第一帧图像和第三帧图像的过程。
相关技术中,电子设备在渲染包含阴影的图像时,可以通过计算LightingPass来实现。而计算LightingPass时需要利用游戏引擎中的缓存图(G-buffer)作为输入,可选地,G-buffer可以包括但不限于法线图、深度模板图、漫反射图、镜面反色图、阴影mask图P等。在电子设备获取到G-buffer后,可以对G-buffer进行渲染着色,生成一张RGBA的颜色图,即为真实帧图像。
示例性地,相关技术中电子设备基于G-buffer生成真实帧的示意图参见图9,如图9中所示,所生成的真实帧中包含人物阴影。
其中,这里的阴影mask图P是包括了环境因素的阴影mask(Ambient Shadow)和人物阴影mask(Human Shadow),电子设备通过对图像中每个像素点进行计算,得到每个像素点的可见性visbility,在获取到Ambient Shadow和Human Shadow后,生成阴影mask图P。可选地,阴影mask图P(或者称为ScreenShadow)=min{Human Shadow,Ambient Shadow}。
示例性地,如图10所示,相关技术中电子设备通常是先绘制环境因素的阴影mask(Ambient Shadow),再绘制人物阴影mask(Human Shadow),以及创建两个缓冲区(FB)资源分别存储Ambient Shadow和Human Shadow。然后将Ambient Shadow和Human Shadow进行叠加,即得到阴影mask图P。
然而,因本申请实施例需要生成不包含人物阴影的第一帧图像,因此需要将阴影mask图P中的人物阴影mask剔除,基于此,本申请实施例在LightingPass计算生成阴影mask图P’的过程中,在绘制人物阴影mask(Human Shadow)时,将其换绑存储至另外的FB中,使得最终不再将人物阴影mask叠加至环境因素的阴影mask上。因此,最终得到的阴影mask图P’(ScreenShadow’)=Ambient Shadow。
示例性地,如图11所示,电子设备先绘制环境因素的阴影mask(Ambient Shadow),再绘制人物阴影mask(Human Shadow),此时将Human Shadow存储至另外的FB中,当前的FB中只保留Ambient Shadow,即生成的阴影mask图P’不包含人物阴影。
接下来,电子设备便可以基于阴影mask图P’(ScreenShadow’)生成第一帧图像。在一个可实现的方式中,电子设备可以在LightingPass计算的过程中,利用预设的光照模型,调用glDrawArray接口对G-buffer和阴影mask图P’进行颜色值计算,生成一张RGBA的颜色图,即为第一帧图像。可选地,预设的光照模型为与运行的游戏应用强相关的模型,可以包括经验模型或者基于物理的渲染模型(physically based rendering,PBR)等。
可选地,第一帧图像的颜色值Color_Result1可以通过:Color_Result1=Color×ScreenShadow’=Color×Ambient Shadow来生成。其中,Color可以为对G-buffer中的法线图、深度模板图、漫反射图和镜面反色图进行渲染计算得到的像素颜色值(不包含阴影),Ambient Shadow中每个像素点的像素值取值范围为[0,1]。可选地,处理过程还可以包括ToneMaping色调映射处理等。
示例性地,电子设备对Color和Ambient Shadow(即阴影mask图P’)相乘得到第一帧图像的示意图如图12所示,由图中可以看出所得到的第一帧图像中不包含人物阴影。
在得到不包含人物阴影的第一帧图像之后,电子设备可以基于同样的原理也得到第二帧图像,那么电子设备便可以执行上述S102中生成不包含人物阴影的预测帧的过程。同时,因上述在绘制人物阴影mask(Human Shadow)时,将其换绑存储至了另外的FB中,因此,电子设备也可以从此FB中获取到第一帧图像对应的人物阴影mask,相应的也可以获取到第二帧图像对应的人物阴影mask,那么电子设备便可以执行上述S103中计算预测帧对应的人物阴影mask的过程。
另外,需要注意的是,因上述生成阴影mask图P’时剔除了人物阴影,电子设备便无法根据该阴影mask图P’生成包含人物阴影的真实帧(第三帧图像),这样在显示真实帧时会存在较大的显示影响,因此,电子设备还需要再生成包含人物阴影的真实帧。在一个可实现的方式中,电子设备可以根据不包含人物阴影的第一帧图像和阴影分量(Shadow_Color)来生成包含人物阴影的真实帧(即第三帧图像)。
在该实现方式中,可选地,第三帧图像(Real_color_Result)可以通过以下方式生成:
Real_color_Result=Color×Ambient Shadow-(Ambient Shadow - HumanShadow)×Color
=Color_Result1-Shadow_Color;
其中:
,这里的Color_Result1即为上述不包含人物阴影的第一帧图像。
也即是说,电子设备在生成不包含人物阴影的第一帧图像之后,若要再生成包含人物阴影的真实帧(第三帧图像),则需要先计算阴影分量(Shadow_Color),然后再基于第一帧图像和阴影分量(Shadow_Color)生成第三帧图像。
示例性地,电子设备所生成的第三帧图像可以如图13所示,由图中可以看出第三帧图像包含了人物阴影。
可以理解,上述实施例中S104步骤中根据不包含人物阴影的预测帧和预测帧对应的人物阴影mask,生成游戏预测帧的过程,也可以参见此实施例中的方式来实现。即可以先基于预测帧对应的人物阴影mask(相当于此实施例中的Human Shadow)、环境因素的阴影mask以及不包含人物阴影的预测帧(相当于此实施例中的Color_Result1),计算阴影分量,再基于不包含人物阴影的预测帧和阴影分量生成游戏预测帧。其中,这里所使用的环境因素的阴影mask可以为复用的第一帧图像对应的Ambient Shadow。
还可以理解,在计算阴影分量(Shadow_Color)时,并不是全部像素点对应的阴影分量都需要计算的,一般只需要代表处于人物阴影中的像素点需要计算阴影分量。因此,电子设备可以先判断像素点是否需要进行阴影分量的生成,可选地,可以基于上述所获取的环境因素的阴影mask(Ambient Shadow)和人物阴影mask(Human Shadow)来进行判断。
示例性地,Ambient Shadow=texture(AmbientMask,position);
Human Shadow=texture(HumanMask,position),如果Ambient Shadow中一个像素点的值大于相同位置上Human Shadow的值,则说明该像素点处于人物阴影中,需要进行阴影分量的计算,即需要根据:
来计算阴影分量,然后再根据Real_color_Result=Color_Result1-Shadow_Color生成包含人物阴影的图像。
由上述实施例可知,电子设备在生成第一帧图像的同时,也改变了原有的渲染真实帧的流程,即需要根据第一帧图像来生成真实帧图像,以尽可能的还原原始帧图像。
由上述实施例可知,电子设备在生成第一帧图像时,关键要将人物阴影mask(Human Shadow)换绑存储至另外的FB中,那么电子设备就需要准确定位到开始绘制人物阴影mask的时刻,因此,电子设备可以通过指令定位方式来触发生成第一帧图像的过程。
图14是本申请实施例提供的一例生成第一帧图像的过程示意图,具体可以包括:
S201,在检测到第一指令时,获取不包含人物阴影的阴影mask图P’。
其中,第一指令用于表征电子设备开始进行阴影绘制,在本申请实施例中,第一指令可以用于表征开始进行上述的LightingPass计算。也即是说,如果运行的游戏应用开启了人物阴影功能,那么在开始进行LightingPass计算时,会生成一条唯一的指令。那么,电子设备可以通过监听任务,在检测到该指令时,可以对阴影绘制过程中的人物阴影mask进行换绑,以仅根据环境因素的阴影mask生成不包含人物阴影的阴影mask图P’(AmbientShadow)。
示例性地,第一指令可以为glclearcolor(1.0,1.0,1.0,0.0),当且仅当(RGBA==1.0,1.0,1.0,0.0),电子设备通过该指令便可以确定要开始进行阴影绘制。
S202,根据不包含人物阴影的阴影mask图P’,生成第一帧图像。
由上述描述可知,第一帧图像的颜色值Color_Result1可以通过:Color_Result1=Color×Ambient Shadow来生成。
其中,Color可以电子设备基于光照模型为对G-buffer中的法线图、深度模板图、漫反射图和镜面反色图进行渲染计算得到的像素颜色值。
上述实现方式中,电子设备通过获取不包含人物阴影的阴影mask图P’来生成上述第一帧图像,以得到不包含人物阴影的图像,为后续生成不包含人物阴影的预测帧做数据基础。
对于上述图5所示的实施例,是在游戏应用开启人物阴影功能的情况下执行的,可以理解,如果游戏应用没有开启人物阴影功能,则电子设备可以不考虑人物阴影的因素,直接根据不包含人物阴影的真实帧进行预测即可,因此,电子设备在生成游戏预测帧前可以先判断游戏应用是否开启了人物阴影功能。
图15是本申请实施例提供的另一例生成游戏预测帧的方法的流程示意图,具体可以包括:
S301,判断游戏应用是否开启人物阴影功能,若开启人物阴影功能则执行S302,若未开启人物阴影功能则执行S306。
其中,电子设备可以从游戏应用中获取第一标识,该第一标识用于表征游戏应用是否开启人物阴影功能,例如,第一标识为1时表征游戏应用开启人物阴影功能,第一标识为0时表征游戏应用未开启人物阴影功能。
S302,获取第一帧图像和第二帧图像。
S303,根据第一帧图像和第二帧图像,生成不包含人物阴影的预测帧。
S304,根据第一帧图像对应的人物阴影mask和第二帧图像对应的人物阴影mask,计算预测帧对应的人物阴影mask。
S305,根据不包含人物阴影的预测帧和预测帧对应的人物阴影mask,生成游戏预测帧。
其中,S302至S305的实现过程可以参见上述S101至S104,在此不再赘述。
S306,获取第四帧图像和第五帧图像。
因该步骤是在游戏应用未开启人物阴影功能的情况下执行的,那么游戏界面上所显示的真实帧也是不包含人物阴影的,第四帧图像和第五帧图像即是不包含人物阴影的真实帧。
S307,根据第四帧图像和第五帧图像,生成游戏预测帧。
其中,电子设备根据第四帧图像和第五帧图像生成游戏预测帧的过程,与上述根据第一帧图像和第二帧图像,生成不包含人物阴影的预测帧的过程类似,可选地,电子设备也可以通过插帧管线的方式对第四帧图像和第五帧图像进行处理,以得到游戏预测帧。
上述生成游戏预测帧的方法,在游戏应用开启人物阴影功能的情况下,电子设备通过先生成不包含人物阴影的预测帧和预测帧对应的人物阴影mask,再将该不包含人物阴影的预测帧和预测帧对应的人物阴影mask进行计算,便可以得到包含人物阴影的游戏预测帧,因该实施例中是根据人物阴影mask来生成游戏预测帧中的人物阴影的,将人物阴影与环境因素进行了分离,那么人物阴影便不会随着环境因素进行移动,从而减少了游戏界面中人物阴影的抖动现象,提高了游戏画质;在游戏应用未开启人物阴影功能的情况下,电子设备可以直接通过真实帧生成游戏预测帧。该实现方式针对不同场景具有不同的处理方案,提高了应用灵活性。
由于上述S302中需要获取第一帧图像和第二帧图像,S306中需要获取第四帧图像和第五帧图像,这些图像是电子设备实际渲染真实帧的过程中所得到的,因此,下面实施例介绍一下电子设备实际渲染真实帧的过程,为方便理解,以生成第一帧图像和第四帧图像为例进行说明,生成第二帧图像和第五帧图像的原理类似,不再赘述。
图16是本申请实施例提供的一例渲染真实帧的过程示意图,具体可以包括:
S401,判断游戏应用是否开启人物阴影功能,若开启人物阴影功能则执行S402,若未开启人物阴影功能则执行S406。
这里,电子设备也可以从游戏应用中获取第一标识,该第一标识用于表征游戏应用是否开启人物阴影功能。
S402,绘制环境因素的阴影mask和人物阴影mask,并基于环境因素的阴影mask生成阴影mask图P’。
S403,基于阴影mask图P’生成第一帧图像。
其中,生成第一帧图像的过程可以如上述图12所示,所生成的第一帧图像中不包含人物阴影。
S404,获取人物阴影mask和环境因素的阴影mask,计算阴影分量。
S405,根据第一帧图像和阴影分量,生成第三帧图像。
其中,生成第三帧图像的过程可以如上述图13所示,所生成的第三帧图像中包含人物阴影。
S406,渲染生成第四帧图像。
其中,第四帧图像可以是基于法线图、深度模板图、漫反射图、镜面反色图来生成的,所生成的第四帧图像是在没有开启人物阴影功能的情况下生成的,其不包括人物阴影,这里同样可以通过LightingPass计算渲染得到第四帧图像。也即是说,在游戏应用没有开启人物阴影功能的情况下,电子设备可以直接渲染生成真实帧(即第四帧图像)以进行显示。
上述实现方式中,电子设备在渲染真实帧的过程中,在游戏应用开启人物阴影功能的情况下,可以生成不包含人物阴影的图像,为后续生成不包含人物阴影的预测帧做数据基础,并以此最终生成包含人物阴影的游戏预测帧;在游戏应用未开启人物阴影功能的情况下,电子设备可以直接生成真实帧。该实现方式也针对不同场景具有不同的处理方案,提高了应用灵活性。
结合上述实施例的过程以及图4中的软件架构,下面介绍一下本申请实施例提供的生成游戏预测帧的方法的模块交互过程。图17是本申请实施例提供的一例生成游戏预测帧的方法的模块交互流程示意图,具体可以包括:
S1,游戏应用获取图像资源数据。
其中,图像资源数据为用于生成游戏界面的数据,游戏应用可以从游戏应用中获取图像资源数据。
S2,游戏应用向三维图形处理库发送图像资源数据。
其中,游戏应用可以通过应用程序层与系统层之间的接口,向三维图形处理库发送图像资源数据。
S3,三维图形处理库调用GPU开始执行渲染。
也即,三维图形处理库开始进入游戏界面的渲染过程。
S4,三维图形处理库绘制环境因素的阴影mask和人物阴影mask。
S5,图像资源处理模块从三维图形处理库获取人物阴影mask。
其中,在绘制阴影mask图P’的过程中,通常是先绘制环境因素的阴影mask(Ambient Shadow),再绘制人物阴影mask(Human Shadow),那么,图像资源处理模块可以从三维图形处理库获取人物阴影mask以进行存储,用于后续生成真实帧图像。
S6,三维图形处理库基于环境因素的阴影mask,生成第一帧图像。
这里,第一帧图像即为不包含人物阴影的真实帧图像,用于后续生成游戏预测帧。这里三维图形处理库可以先基于环境因素的阴影mask生成阴影mask图P’,再基于阴影mask图P’生成第一帧图像。
S7,图像资源处理模块从三维图形处理库获取第一帧图像。
S8,图像资源处理模块基于第一帧图像和人物阴影mask,生成第三帧图像。
这里图像资源处理模块可以先基于人物阴影mask计算上述阴影分量,再根据第一帧图像和阴影分量生成第三帧图像。
S9,三维图形处理库从图像资源处理模块获取第三帧图像,进行渲染。
这里,第三帧图像即为包含人物阴影的真实帧图像,用于实际显示在游戏界面中。
S10,三维图形处理库完成渲染。
S11,运动估计模块从三维图形处理库获取第一帧图像。
S12,运动估计模块根据第一帧图像和第一帧图像的相邻图像,计算运动矢量。
其中,第一帧图像的相邻图像即上述实施例中的第二帧图像,第二帧图像也可以是由运动估计模块从三维图形处理库中所获取的。第一帧图像与第二帧图像之间的运动矢量可以理解为同一像素点在第一帧图像中的位置与在第二帧图像中的位置之间的位移。
S13,运动估计模块将第一帧图像和运动矢量发送至运动补偿模块。
S14,运动补偿模块基于第一帧图像和运动矢量进行运动补偿,生成第一预测帧。
其中,运动补偿模块可以基于运动矢量对第一帧图像进行预测,预测下一帧图像中各像素点会移动至哪个位置,这里的下一帧图像为需要插入第一帧图像和第二帧图像之间的图像,即最终要生成的游戏预测帧。可选地,运动补偿模块可以采用全局运动补偿方法或者分块运动补偿来方法来进行运动补偿。
S15,运动补偿模块将第一预测帧发送至图像补全模块。
S16,图像补全模块对第一预测帧进行图像补全,生成不包含人物阴影的预测帧。
由于在上述运动估计和运动补偿的过程中可能会产生误差,所得到的第一预测帧中有些像素点的像素值可能会缺失,因此,图像补全模块可以对第一预测帧进行图像补全,以提高得到的预测帧的精度。可选地,图像补全模块可以采用基于Patch-based的图像补全、或者基于深度学习生成相似纹理区域的图像补全等方法来进行图像补全。
S17,图像补全模块将不包含人物阴影的预测帧发送至阴影生成模块。
S18,阴影生成模块从图像资源处理模块获取第一帧图像对应的人物阴影mask。
S19,阴影生成模块根据第一帧图像对应的人物阴影mask和相邻图像对应的人物阴影mask,计算预测帧对应的人物阴影mask。
其中,阴影生成模块执行S19的过程参见上述S103的步骤,在此不再赘述。
S20,阴影生成模块根据不包含人物阴影的预测帧和预测帧对应的人物阴影mask,生成游戏预测帧。
其中,阴影生成模块执行S20的过程参见上述S104的步骤,在此不再赘述。
可以理解,因阴影生成模块需要得到不包含人物阴影的预测帧和预测帧对应的人物阴影mask两个数据,计算预测帧对应的人物阴影mask是由S18至S19步骤完成,生成不包含人物阴影的预测帧是由S12至S17步骤完成,这里需要说明的是,S18至S19可以在S12至S17之前执行,也可以在S12至S17之后执行,也可以与S12至S17同时执行,本申请实施例对此不做限制。
S21,阴影生成模块将游戏预测帧发送至显示驱动进行合成送显。
S22,三维图形处理库将第三帧图像发送至显示驱动进行合成送显。
上述生成游戏预测帧的方法,电子设备通过在渲染真实帧的过程中生成不包含人物阴影的预测帧,再计算出预测帧对应的人物阴影mask,将该不包含人物阴影的预测帧和预测帧对应的人物阴影mask进行计算,便可以得到包含人物阴影的游戏预测帧,因该实施例中是根据人物阴影mask来生成游戏预测帧中的人物阴影的,将人物阴影与环境因素进行了分离,那么人物阴影便不会随着环境因素进行移动,从而减少了游戏界面中人物阴影的抖动现象,提高了游戏画质。
上文详细介绍了本申请实施例提供的生成游戏预测帧的方法的示例。可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对电子设备进行功能模块的划分,例如,可以对应各个功能划分为各个功能模块,例如检测单元、处理单元、显示单元等,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例提供的电子设备,用于执行上述生成游戏预测帧的方法,因此可以达到与上述实现方法相同的效果。
在采用集成的单元的情况下,电子设备还可以包括处理模块、存储模块和通信模块。其中,处理模块可以用于对电子设备的动作进行控制管理。存储模块可以用于支持电子设备执行存储程序代码和数据等。通信模块,可以用于支持电子设备与其他设备的通信。
其中,处理模块可以是处理器或控制器。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理(digital signal processor,DSP)和微处理器的组合等等。存储模块可以是存储器。通信模块具体可以为射频电路、蓝牙芯片、Wi-Fi芯片等与其他电子设备交互的设备。
在一个实施例中,当处理模块为处理器,存储模块为存储器时,本实施例所涉及的电子设备可以为具有图3所示结构的设备。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储了计算机程序,当计算机程序被处理器执行时,使得处理器执行上述任一实施例的生成游戏预测帧的方法。
本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的生成游戏预测帧的方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的生成游戏预测帧的方法。
其中,本实施例提供的电子设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (14)
1.一种生成游戏预测帧的方法,所述方法由电子设备执行,其特征在于,所述电子设备运行有游戏应用,所述方法包括:
在所述游戏应用开启人物阴影功能的情况下,根据第一帧图像和第二帧图像,生成不包含人物阴影的预测帧,所述第一帧图像和所述第二帧图像为所述电子设备在渲染所述游戏应用显示的真实帧的过程中生成的图像,所述第一帧图像对应的真实帧与所述第二帧图像对应的真实帧为相邻帧图像,所述第一帧图像和所述第二帧图像中均不包含人物阴影;
根据所述第一帧图像对应的人物阴影mask和所述第二帧图像对应的人物阴影mask,计算预测帧对应的人物阴影mask,其中,人物阴影mask表征图像中人物阴影区域的像素点的可见性;
基于所述预测帧对应的人物阴影mask、所述第一帧图像对应的环境因素的阴影mask与所述不包含人物阴影的预测帧,计算阴影分量,以及根据所述不包含人物阴影的预测帧和所述阴影分量,生成包含人物阴影的游戏预测帧。
2.根据权利要求1所述的方法,其特征在于,在所述根据第一帧图像和第二帧图像,生成不包含人物阴影的预测帧之前,所述方法还包括:
在生成第三帧图像的过程中检测到第一指令时,生成第一阴影mask,所述第一阴影mask为不包含人物阴影的阴影mask图,所述第一指令表征所述电子设备开始进行阴影绘制,所述第三帧图像为所述第一帧图像对应的包含人物阴影的真实帧;
基于所述第一阴影mask,生成所述第一帧图像。
3.根据权利要求2所述的方法,其特征在于,所述生成第一阴影mask,包括:
在所述电子设备进行阴影绘制时,若绘制完成环境因素的阴影mask和人物阴影mask,则将所述环境因素的阴影mask和所述人物阴影mask存储至不同的缓冲区,以及根据所述环境因素的阴影mask生成所述第一阴影mask。
4.根据权利要求2所述的方法,其特征在于,所述基于所述第一阴影mask,生成所述第一帧图像,包括:
基于所述第一阴影mask和所述第一帧图像对应的像素颜色值,生成所述第一帧图像,其中,所述像素颜色值为通过法线图、深度模板图、漫反射图和镜面反色图中的至少一种生成的像素值。
5.根据权利要求4所述的方法,其特征在于,所述基于所述第一阴影mask和所述第一帧图像对应的像素颜色值,生成所述第一帧图像,包括:
采用预设的光照模型,对所述第一阴影mask的像素值和所述像素颜色值进行求乘计算,生成所述第一帧图像。
6.根据权利要求2至5中任一项所述的方法,其特征在于,所述方法还包括:
基于所述第一帧图像和阴影分量,生成所述第三帧图像,所述阴影分量表征所述第一帧图像和所述第三帧图像之间的阴影差异。
7.根据权利要求6所述的方法,其特征在于,所述基于所述第一帧图像和阴影分量,生成所述第三帧图像,包括:
根据包含Color_Result1-Shadow_Color的关系式,生成所述第三帧图像,其中,所述Color_Result1为所述第一帧图像,所述Shadow_Color为所述阴影分量。
8.根据权利要求7所述的方法,其特征在于,所述阴影分量为根据环境因素的阴影mask、人物阴影mask和所述第一帧图像计算得到的。
9.根据权利要求8所述的方法,其特征在于,所述阴影分量为根据包含的关系式计算得到的,其中,所述Ambient Shadow为所述环境因素的阴影mask,所述Human Shadow为所述人物阴影mask。
10.根据权利要求1所述的方法,其特征在于,所述根据所述第一帧图像对应的人物阴影mask和所述第二帧图像对应的人物阴影mask,计算预测帧对应的人物阴影mask,包括:
确定所述第一帧图像对应的人物阴影mask中第一阴影区域的第一形心位置、以及所述第二帧图像对应的人物阴影mask中第二阴影区域的第二形心位置;
若所述第一形心位置与所述第二形心位置之间的距离大于预设阈值,则将所述第二帧图像对应的人物阴影mask中的每个像素点向第一方向移动第一距离,得到所述预测帧对应的人物阴影mask,其中,所述第一方向为所述第一阴影区域相对于所述第二阴影区域的方向,所述第一距离与所述第一形心位置与所述第二形心位置之间的距离呈正相关;
若所述第一形心位置与所述第二形心位置之间的距离不大于预设阈值,则将所述第二帧图像对应的人物阴影mask作为所述预测帧对应的人物阴影mask。
11.根据权利要求10所述的方法,其特征在于,所述第一距离为根据关系式i×o所得到的,其中,0<i<1,所述o为所述第一形心位置与所述第二形心位置之间的距离。
12.根据权利要求1所述的方法,其特征在于,所述根据第一帧图像和第二帧图像,生成不包含人物阴影的预测帧,包括:
基于所述第一帧图像和所述第二帧图像,计算运动矢量,所述运动矢量表征同一像素点在所述第一帧图像中的位置与在所述第二帧图像中的位置之间的位移;
基于所述运动矢量对所述第一帧图像进行运动补偿,生成第一预测帧;
对所述第一预测帧进行图像补全,生成所述不包含人物阴影的预测帧。
13.一种电子设备,其特征在于,包括:
一个或多个处理器;
一个或多个存储器;
所述存储器存储有一个或多个程序,当所述一个或多个程序被所述处理器执行时,使得所述电子设备执行如权利要求1至12中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储了计算机程序,当所述计算机程序被处理器执行时,使得所述处理器执行权利要求1至12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310974602.6A CN116688494B (zh) | 2023-08-04 | 2023-08-04 | 生成游戏预测帧的方法和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310974602.6A CN116688494B (zh) | 2023-08-04 | 2023-08-04 | 生成游戏预测帧的方法和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116688494A CN116688494A (zh) | 2023-09-05 |
CN116688494B true CN116688494B (zh) | 2023-10-20 |
Family
ID=87829696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310974602.6A Active CN116688494B (zh) | 2023-08-04 | 2023-08-04 | 生成游戏预测帧的方法和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116688494B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040042501A (ko) * | 2002-11-14 | 2004-05-20 | 엘지전자 주식회사 | 형판 정합 기반 얼굴 검출방법 |
CN101075351A (zh) * | 2006-09-14 | 2007-11-21 | 浙江大学 | 基于侧影和末端节点的视频人体三维运动恢复方法 |
CN101447082A (zh) * | 2008-12-05 | 2009-06-03 | 华中科技大学 | 一种运动目标实时检测方法 |
CN104662560A (zh) * | 2012-11-26 | 2015-05-27 | 华为技术有限公司 | 一种视频图像处理方法及系统 |
CN111815748A (zh) * | 2020-07-08 | 2020-10-23 | 上海米哈游天命科技有限公司 | 一种动画处理方法、装置、存储介质及电子设备 |
CN115375815A (zh) * | 2022-09-02 | 2022-11-22 | 网易(杭州)网络有限公司 | 阴影渲染方法、装置、电子设备及存储介质 |
WO2023142035A1 (zh) * | 2022-01-29 | 2023-08-03 | 华为技术有限公司 | 虚拟形象处理方法及装置 |
CN116635885A (zh) * | 2020-11-20 | 2023-08-22 | 华为技术有限公司 | 用于优化帧渲染过程中的功耗的设备和方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070021199A1 (en) * | 2005-07-25 | 2007-01-25 | Ned Ahdoot | Interactive games with prediction method |
EP4053736B1 (en) * | 2021-03-03 | 2023-08-16 | Lindera GmbH | System and method for matching a test frame sequence with a reference frame sequence |
-
2023
- 2023-08-04 CN CN202310974602.6A patent/CN116688494B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040042501A (ko) * | 2002-11-14 | 2004-05-20 | 엘지전자 주식회사 | 형판 정합 기반 얼굴 검출방법 |
CN101075351A (zh) * | 2006-09-14 | 2007-11-21 | 浙江大学 | 基于侧影和末端节点的视频人体三维运动恢复方法 |
CN101447082A (zh) * | 2008-12-05 | 2009-06-03 | 华中科技大学 | 一种运动目标实时检测方法 |
CN104662560A (zh) * | 2012-11-26 | 2015-05-27 | 华为技术有限公司 | 一种视频图像处理方法及系统 |
CN111815748A (zh) * | 2020-07-08 | 2020-10-23 | 上海米哈游天命科技有限公司 | 一种动画处理方法、装置、存储介质及电子设备 |
CN116635885A (zh) * | 2020-11-20 | 2023-08-22 | 华为技术有限公司 | 用于优化帧渲染过程中的功耗的设备和方法 |
WO2023142035A1 (zh) * | 2022-01-29 | 2023-08-03 | 华为技术有限公司 | 虚拟形象处理方法及装置 |
CN115375815A (zh) * | 2022-09-02 | 2022-11-22 | 网易(杭州)网络有限公司 | 阴影渲染方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116688494A (zh) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109814766B (zh) | 一种应用显示方法及电子设备 | |
CN117063461A (zh) | 一种图像处理方法和电子设备 | |
CN112114912A (zh) | 一种用户界面布局方法及电子设备 | |
CN113553130B (zh) | 应用执行绘制操作的方法及电子设备 | |
CN111882642B (zh) | 三维模型的纹理填充方法及装置 | |
CN114625525A (zh) | 一种资源管控方法及设备 | |
WO2022161119A1 (zh) | 一种显示方法及电子设备 | |
WO2023005751A1 (zh) | 渲染方法及电子设备 | |
CN114461057A (zh) | Vr显示控制方法、电子设备及计算机可读存储介质 | |
CN117148959B (zh) | 眼动追踪的帧率调整方法及相关装置 | |
CN116688494B (zh) | 生成游戏预测帧的方法和电子设备 | |
CN117806745A (zh) | 界面生成方法及电子设备 | |
CN116672707B (zh) | 生成游戏预测帧的方法和电子设备 | |
CN115994006A (zh) | 动画效果显示方法及电子设备 | |
CN115994007A (zh) | 动画效果显示方法及电子设备 | |
CN113495733A (zh) | 主题包安装方法、装置、电子设备及计算机可读存储介质 | |
CN116700655B (zh) | 一种界面显示方法及电子设备 | |
CN117689796B (zh) | 一种渲染处理方法及电子设备 | |
CN114860354B (zh) | 一种加载列表的方法及电子设备 | |
CN117726507B (zh) | 图像处理方法及装置 | |
WO2024066976A1 (zh) | 控件显示方法及电子设备 | |
CN116700555B (zh) | 动效处理方法及电子设备 | |
WO2024046010A1 (zh) | 一种界面显示方法、设备及系统 | |
CN118349153A (zh) | 壁纸显示方法和电子设备 | |
CN116991532A (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 |