CN116672707B - 生成游戏预测帧的方法和电子设备 - Google Patents

生成游戏预测帧的方法和电子设备 Download PDF

Info

Publication number
CN116672707B
CN116672707B CN202310974437.4A CN202310974437A CN116672707B CN 116672707 B CN116672707 B CN 116672707B CN 202310974437 A CN202310974437 A CN 202310974437A CN 116672707 B CN116672707 B CN 116672707B
Authority
CN
China
Prior art keywords
frame image
frame
shadow
image
electronic device
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
CN202310974437.4A
Other languages
English (en)
Other versions
CN116672707A (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.)
Honor Device Co Ltd
Original Assignee
Honor Device 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 Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202310974437.4A priority Critical patent/CN116672707B/zh
Publication of CN116672707A publication Critical patent/CN116672707A/zh
Application granted granted Critical
Publication of CN116672707B publication Critical patent/CN116672707B/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
    • 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/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/214Input 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/2145Input 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
    • 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/53Controlling 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/537Controlling 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/02Non-photorealistic rendering
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features 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/30Features 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/308Details of the user interface
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features 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/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods 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

本申请实施例提供一种生成游戏预测帧的方法和电子设备,该方法由电子设备执行,包括:在电子设备运行的游戏应用开启人物阴影功能的情况下,根据第一帧图像和第二帧图像,生成不包含人物阴影的预测帧,第一帧图像和第二帧图像为渲染游戏应用显示的真实帧的过程中生成的图像,第一帧图像对应的真实帧与第二帧图像对应的真实帧为相邻帧图像,第一帧图像和第二帧图像中均不包含人物阴影;根据第一帧图像和第三帧图像,计算阴影差值,第三帧图像为第一帧图像对应的包含人物阴影的真实帧,阴影差值表征第一帧图像和第三帧图像之间的像素值差值;根据不包含人物阴影的预测帧和阴影差值,生成游戏预测帧。该方法可以减少游戏界面中人物阴影的抖动现象。

Description

生成游戏预测帧的方法和电子设备
技术领域
本申请涉及电子技术领域,具体涉及一种生成游戏预测帧的方法和电子设备。
背景技术
随着电子技术的发展,电子设备(例如手机、平板电脑等)的性能越来越高,相应的便可以逐渐实现越来越多的功能。例如手机可以实现多种网络游戏的运行,用户可以使用手机随时随地的体验网络游戏。
然而,因电子设备在运行网络游戏时,通常需要渲染大量复杂的游戏界面,这就容易造成电子设备的负载较大,以致影响电子设备的电池续航能力以及处理其他事务的能力。
为了减少电子设备在运行网络游戏时的渲染开销,相关技术提出生成游戏预测帧(也可简称为预测帧)的方法,在电子设备减少实际渲染的游戏界面的帧数的情况下,通过生成预测帧来增加游戏界面的帧数,以保证游戏画质不受影响。但是,相关技术在生成预测帧时,无法较好的处理游戏界面中的人物阴影,容易产生阴影抖动的问题。
发明内容
本申请提供了一种生成游戏预测帧的方法和电子设备,可以减少游戏界面中人物阴影的抖动现象,提高游戏画质。
第一方面,本申请提供一种生成游戏预测帧的方法,该方法由电子设备执行,电子设备运行有游戏应用,该方法包括:
在游戏应用开启人物阴影功能的情况下,根据第一帧图像和第二帧图像,生成不包含人物阴影的预测帧,第一帧图像和第二帧图像为电子设备在渲染游戏应用显示的真实帧的过程中生成的图像,第一帧图像对应的真实帧与第二帧图像对应的真实帧为相邻帧图像,第一帧图像和第二帧图像中均不包含人物阴影;
根据第一帧图像和第三帧图像,计算阴影差值,第三帧图像为第一帧图像对应的包含人物阴影的真实帧,阴影差值表征第一帧图像和第三帧图像之间的像素值差值;
根据不包含人物阴影的预测帧和阴影差值,生成游戏预测帧。
其中,游戏应用可以提供开启人物阴影功能的入口,如果用户没有开启人物阴影功能,则电子设备在后续渲染游戏界面时都不会渲染人物阴影。如果用户开启了人物阴影功能,则电子设备在后续渲染游戏界面时需要渲染人物阴影,同时,所生成的游戏预测帧中也需要增加人物阴影。
对于该实现方式,电子设备在渲染游戏界面的真实帧的过程中,可以生成真实帧(第三帧图像)对应的不包含人物阴影的第一帧图像,并计算第一帧图像与真实帧之间的阴影差值,进而根据第一帧图像和第一帧图像的相邻帧图像(即第二帧图像)生成不包含人物阴影的预测帧,以及根据该不包含人物阴影的预测帧和阴影差值确定最终的游戏预测帧。可以理解,这里的第一帧图像和第二帧图像并不会显示在游戏界面中,其仅用于后续生成预测帧,第三帧是用于显示在游戏界面中的包含人物阴影的图像。
上述实现方式,电子设备通过先生成不包含人物阴影的预测帧和阴影差值,再将该不包含人物阴影的预测帧和阴影差值进行计算,便可以得到包含人物阴影的游戏预测帧,因该实现方式中是根据阴影差值来生成游戏预测帧中的人物阴影的,将人物阴影与环境因素进行了分离,那么人物阴影便不会随着环境因素进行移动,从而减少了游戏界面中人物阴影的抖动现象。
结合第一方面,在第一方面的有些实现方式中,在根据第一帧图像和第二帧图像,生成不包含人物阴影的预测帧之前,上述方法还包括:在生成第三帧图像的过程中检测到第一指令时,获取第一阴影mask,第一阴影mask为不包含人物阴影的阴影mask图,第一指令表征电子设备开始进行阴影绘制;基于第一阴影mask,生成第一帧图像。
其中,因第一帧图像是电子设备渲染真实帧(即第三帧图像)的过程中所生成的图像,那么电子设备在生成第三帧图像的过程中,如果检测到第一指令,则可以触发生成第一帧图像。可以理解,第二帧图像的生成过程原理类似。
通常,第三帧图像可以是由电子设备在计算LightingPass时利用游戏引擎中的缓存图像(G-buffer)来生成的,这里的缓存图像可以包括但不限于法线图、深度模板图、漫反射图、镜面反色图、阴影mask图P等,阴影mask图P是包括人物阴影的阴影mask图。由于本申请需要获取不包含人物阴影的阴影mask图Q(也即第一阴影mask),那么,电子设备可以在绘制阴影mask图P的过程中获取第一阴影mask。
在一个实现方式中,电子设备绘制阴影mask图P的过程可以包括:先绘制环境因素的阴影mask(Ambient Shadow),再绘制人物的阴影mask(Human Shadow),然后将AmbientShadow和Human Shadow进行叠加,即得到阴影mask图P。而本申请所要获取的第一阴影mask即为环境因素的阴影mask,因此,电子设备可以在绘制完成环境因素的阴影mask之后,对该环境因素的阴影mask进行复制,得到不包含人物阴影的第一阴影mask。
在一个实现方式中,电子设备为了存储所复制的Ambient Shadow,可以先创建一个缓冲区(FB)资源,用来存储Ambient Shadow,也即不包含人物阴影的第一阴影mask。
在一个实现方式中,电子设备获取到第一阴影mask后,可以基于该第一阴影mask和第一帧图像对应的缓存图像,生成第一帧图像,其中,缓存图像包括法线图、深度模板图、漫反射图和镜面反色图中的至少一种。
可选地,电子设备可以采用预设的光照模型,调用glDrawArray接口对第一阴影mask和法线图、深度模板图、漫反射图、镜面反色图进行渲染着色,生成一张RGBA的颜色图,即为第一帧图像。
上述实现方式中,电子设备通过获取不包含人物阴影的阴影mask图来生成上述第一帧图像,以得到不包含人物阴影的图像,为后续生成不包含人物阴影的预测帧做数据基础。
结合第一方面,在第一方面的有些实现方式中,上述根据第一帧图像和第三帧图像,计算阴影差值,包括:对第一帧图像中各像素点的像素值与第三帧图像中相同位置像素点的像素值进行求差计算,得到阴影差值。
其中,电子设备可以调用DrawCall接口,并通过glDrawArray指令对第一帧图像中像素点的像素值和第三帧图像中像素点的像素值进行逐像素求差计算,并将像素差值进行存储,以得到阴影差值,例如存储在一张RGBA8的颜色纹理(Shadow)中。
该实现方式中,电子设备通过计算得到阴影差值,以供后续生成游戏预测帧,并且该阴影差值与环境因素分离,可以使人物阴影便不会随着环境因素进行移动,从而减少了游戏界面中人物阴影的抖动现象。
结合第一方面,在第一方面的有些实现方式中,上述根据不包含人物阴影的预测帧和阴影差值,生成游戏预测帧,包括:对不包含人物阴影的预测帧中像素点的像素值和阴影差值进行像素值求差计算,生成游戏预测帧。
其中,电子设备可以调用DrawCall接口,并通过glDrawArray指令对不包含人物阴影的预测帧中像素点的像素值和阴影差值进行逐像素求差计算,所得到的即为包含人物阴影的游戏预测帧。
结合第一方面,在第一方面的有些实现方式中,上述根据第一帧图像和第二帧图像,生成不包含人物阴影的预测帧,包括:基于第一帧图像和第二帧图像,计算运动矢量,运动矢量表征同一像素点在第一帧图像中的位置与在第二帧图像中的位置之间的位移;基于运动矢量对第一帧图像进行运动补偿,生成第一预测帧;对第一预测帧进行图像补全,生成不包含人物阴影的预测帧。
在该实现方式中,电子设备可以通过插帧管线的方式对第一帧图像和第二帧图像进行处理,以得到不包含人物阴影的预测帧,即先计算运动矢量,再基于运动矢量对第一帧图像进行运动补偿,生成第一预测帧,最后对该第一预测帧进行图像补偿,生成不包含人物阴影的预测帧。
可选地,电子设备可以采用全局运动补偿方法或者分块运动补偿来方法来进行运动补偿,以及采用基于Patch-based的图像补全、或者基于深度学习生成相似纹理区域的图像补全等方法来进行图像补全。
上述实现方式,电子设备通过第一帧图像和第二帧图像来生成不包含人物阴影的预测帧,为后续生成包含人物阴影的预测帧提供数据基础。
第二方面,本申请提供一种装置,该装置包含在电子设备中,该装置具有实现上述第一方面及上述第一方面的可能实现方式中电子设备行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,接收模块或单元、处理模块或单元等。
第三方面,本申请提供一种电子设备,电子设备包括:处理器、存储器和接口;处理器、存储器和接口相互配合,使得电子设备执行第一方面的技术方案中任意一种方法。
第四方面,本申请提供一种芯片,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行第一方面及其任意可能的实现方式中的方法。
可选地,芯片还包括存储器,存储器与处理器通过电路或电线连接。
进一步可选地,芯片还包括通信接口。
第五方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储了计算机程序,当计算机程序被处理器执行时,使得该处理器执行第一方面的技术方案中任意一种方法。
第六方面,本申请提供一种计算机程序产品,计算机程序产品包括:计算机程序代码,当计算机程序代码在电子设备上运行时,使得该电子设备执行第一方面的技术方案中任意一种方法。
附图说明
图1是本申请实施例提供的一例在游戏界面的真实帧中***预测帧的场景图;
图2是本申请实施例提供的一例游戏界面中人物阴影的示意图;
图3是本申请实施例提供的一例电子设备的结构示意图;
图4是本申请实施例提供的一例电子设备的软件结构框图;
图5是本申请实施例提供的一例生成游戏预测帧的方法的流程示意图;
图6是本申请实施例提供的一例真实帧与第一帧图像的对比示意图;
图7是本申请实施例提供的一例生成阴影差值的示意图;
图8是本申请实施例提供的一例游戏预测帧的示意图;
图9是本申请实施例提供的一例生成第三帧图像的示意图;
图10是本申请实施例提供的一例生成第一帧图像的流程示意图;
图11是本申请实施例提供的一例生成阴影msak图Q的示意图;
图12是本申请实施例提供的一例生成第一帧图像的示意图;
图13是本申请实施例提供的另一例生成游戏预测帧的方法的流程示意图;
图14是本申请实施例提供的又一例生成游戏预测帧的方法的流程示意图;
图15是本申请实施例提供的一例生成游戏预测帧的方法的模块交互流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,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 personal computer,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图。
预测帧管线用于生成游戏预测帧。可选地,预测帧管线可以包括运动估计模块、运动补偿模块、图像补全模块以及阴影差值复用模块。在生成游戏预测帧的过程中,运动估计模块用于根据第一帧图像和第二帧图像计算运动矢量;运动补偿模块用于根据运动矢量和第一帧图像进行运动补偿,并生成第一预测帧;图像补全模块用于对第一预测帧进行图像补全,以生成不包含人物阴影的预测帧;阴影差值复用模块用于根据第一帧图像和第一帧图像对应的包含人物阴影的图像计算阴影差值,以及根据阴影差值和不包含人物阴影的预测帧生成最终需要的包含人物阴影的游戏预测帧。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,Wi-Fi驱动、通信驱动、蓝牙驱动、音频驱动,传感器驱动等。
为了便于理解,本申请以下实施例将以具有图3和图4所示结构的电子设备为例,结合附图和应用场景,对本申请实施例提供的生成游戏预测帧的方法进行具体阐述。需要说明的是,本申请实施例提供的生成游戏预测帧的方法也可以应用于上述图1所示的场景,所生成的游戏预测帧也是可以***真实帧之间以增加游戏界面的帧数。
图5是本申请实施例提供的一例生成游戏预测帧的方法的流程示意图,该方法可以由电子设备执行,包括:
S101,在游戏应用开启人物阴影功能的情况下,获取第一帧图像和第二帧图像。
其中,第一帧图像和第二帧图像是游戏应用运行时,电子设备渲染真实帧的过程中所生成的图像,但第一帧图像和第二帧图像并不会显示在游戏界面中,其仅用于后续生成预测帧。第一帧图像和第二帧图像是相邻的两帧图像,且第一帧图像和第二帧图像中都不包含人物阴影。因第一帧图像和第二帧图像都是在渲染真实帧的过程中生成的,因此第一帧图像和第二帧图像也可以理解为是真实帧。
示例性地,由上述图1可知,相关技术中电子设备是通过A帧和B帧生成预测帧AB,并将预测帧AB***A帧和B帧之间的,这里A帧和B帧是显示在游戏界面中的真实帧,则本申请中的第一帧图像可以为渲染A帧的过程中所生成的图像,第二帧图像可以为渲染B帧的过程中所生成的图像。然而,如图6所示,第一帧图像与A帧之间的区别在于A帧中包含人物阴影,第一帧图像中不包含人物阴影;同理,第二帧图像与B帧之间的区别类似,不再进行图示。
S102,根据第一帧图像和第二帧图像,生成不包含人物阴影的预测帧。
因第一帧图像和第二帧图像中都不包含人物阴影,那么电子设备根据第一帧图像和第二帧图像所生成的预测帧也不包含人物阴影。
在一个可实现的方式中,电子设备可以通过插帧管线的方式对第一帧图像和第二帧图像进行处理,以得到不包含人物阴影的预测帧,可选地,插帧管线的过程可以包括:电子设备可以先根据第一帧图像和第二帧图像中像素点的像素值和/或位置,计算第一帧图像和第二帧图像之间的运动矢量;然后再根据该运动矢量和第一帧图像进行运动补偿,以生成第一预测帧;最后电子设备再对第一预测帧进行图像补全,即得到不包含人物阴影的预测帧。
S103,根据第一帧图像和第三帧图像,计算阴影差值。
其中,第三帧图像为第一帧图像对应的包含人物阴影的真实帧,以上述图6为例的话,第三帧图像即为A帧图像,也即电子设备在实际渲染过程中的真实帧。因第一帧图像不包含人物阴影,而A帧(第三帧图像)中包含人物阴影,因此,电子设备便可以根据第一帧图像和第三帧图像,计算得到阴影差值,这里的阴影差值可以理解为第一帧图像中像素点的像素值与第三帧图像中像素点的像素值之间的差值,差值部分即表征人物阴影所在的位置。
在一个可实现的方式中,电子设备可以调用DrawCall接口,并通过glDrawArray指令对第一帧图像中像素点的像素值和第三帧图像中像素点的像素值进行逐像素求差计算,并将像素差值进行存储,例如存储在一张RGBA8的颜色纹理(Shadow)中。可以理解,一帧图像中像素点的像素值通常取值在[0,255]之间,数字越小表示颜色越暗,例如0为黑色,255为白色。
示例性地,电子设备对上述图6中的第一帧图像和A帧进行像素值求差后,得到的阴影差值Shadow可以如图7所示。因第一帧图像和A帧中除了人物阴影部分不同之外,其余部分都相同,也即像素值相同,那么此部分进行像素值求差后得到的差值为0,即为黑色;而人物阴影部分的像素值求差后会介于(0,255)之间,即相对于黑色来说具有一些亮度(图中以白色为例进行示例,实际场景中也可以是其他亮度),此部分即为阴影差值。
可以理解,对于上述S102和S103的步骤,电子设备可以先执行S102再执行S103,也可以先执行S103再执行S102,或者还可以同时执行S102和S103,本申请实施例对此执行顺序不做限制。
S104,根据不包含人物阴影的预测帧和阴影差值,生成游戏预测帧。
因上述电子设备已生成不包含人物阴影的预测帧,并且也已计算出阴影差值,那么可以理解,如果将人物阴影叠加至不包含人物阴影的预测帧上,即可以生成包含人物阴影的游戏预测帧。因此,电子设备可以基于不包含人物阴影的预测帧和阴影差值,生成游戏预测帧。
在一个可实现的方式中,电子设备可以调用DrawCall接口,并通过glDrawArray指令对不包含人物阴影的预测帧中像素点的像素值和阴影差值进行逐像素求差计算,所得到的即为包含人物阴影的游戏预测帧。
示例性地,电子设备对不包含人物阴影的预测帧和阴影差值进行像素值求差后,得到的游戏预测帧可以如图8所示,由图中可以看出,图8中包含了人物阴影。
上述生成游戏预测帧的方法,电子设备通过先生成不包含人物阴影的预测帧和阴影差值,再将该不包含人物阴影的预测帧和阴影差值进行求差计算,便可以得到包含人物阴影的游戏预测帧,因该实施例中是根据阴影差值来生成游戏预测帧中的人物阴影的,将人物阴影与环境因素进行了分离,那么人物阴影便不会随着环境因素进行移动,从而减少了游戏界面中人物阴影的抖动现象。
由上述实施例的描述可知,电子设备需要生成一张不包含人物阴影的预测帧,其是通过第一帧图像和第二帧图像所生成的,并且第一帧图像和第二帧图像中不包含人物阴影,那么,电子设备就需要先获得不包含人物阴影的第一帧图像和第二帧图像,这里可以理解,生成第一帧图像和第二帧图像的原理相同,本申请实施例以生成第一帧图像为例进行说明。再由上述描述可知,第一帧图像是电子设备渲染真实帧(即第三帧图像)的过程中所生成的图像,那么我们先介绍一下电子设备渲染第三帧图像的过程。
在一个可实现的方式中,电子设备在渲染包含阴影的图像时,可以通过计算LightingPass来实现。而计算LightingPass时需要利用游戏引擎中的缓存图像(G-buffer)作为输入,可选地,G-buffer可以包括但不限于法线图、深度模板图、漫反射图、镜面反色图、阴影mask图P等。在电子设备获取到G-buffer后,可以利用预设的光照模型,调用glDrawArray接口对G-buffer进行渲染着色,生成一张RGBA的颜色图,即为第三帧图像。可选地,预设的光照模型为与运行的游戏应用强相关的模型,可以包括经验模型或者基于物理的渲染模型(physically based rendering,PBR)等。需要说明的是,阴影mask图可以用来表征一帧图像中像素点的可见性(visibilty),其中像素点的像素值取值范围为[0,1],1表示完全可见,0表示完全不可见,其他数值表示部分可见。
示例性地,电子设备基于G-buffer生成第三帧图像的示意图参见图9,如图9中所示,所生成的第三帧图像(真实帧)中包含人物阴影。
基于上述电子设备渲染生成第三帧图像的过程可知,需要依据一张阴影mask图P,因第三帧图像所依据的阴影mask图P中包含有人物阴影,因此所生成的第三帧图像中包含阴影。基于此渲染原理,电子设备便可以依据不包含人物阴影的阴影mask图,来生成第一帧图像。
图10是本申请实施例提供的一例生成第一帧图像的过程示意图,具体可以包括:
S201,在检测到第一指令时,获取不包含人物阴影的阴影mask图。
其中,第一指令用于表征电子设备开始进行阴影绘制,在本申请实施例中,第一指令可以用于表征开始进行上述的LightingPass计算。也即是说,如果运行的游戏应用开启了人物阴影功能,那么在开始进行LightingPass计算时,会生成一条唯一的指令。那么,电子设备可以通过监听任务,在检测到该指令时,可以对阴影绘制过程进行拦截复制,以获取不包含人物阴影的阴影mask图Q。
示例性地,第一指令可以为glclearcolor(1.0,1.0,1.0,0.0),当且仅当(RGBA==1.0,1.0,1.0,0.0),电子设备通过该指令便可以确定要开始进行阴影绘制。
在进行LightingPass计算的过程中,电子设备上述所利用的阴影mask图P也是需要进行绘制的。在一个可实现的方式中,如图11所示,电子设备通常是先绘制环境因素的阴影mask(Ambient Shadow),再绘制人物的阴影mask(Human Shadow),然后将AmbientShadow和Human Shadow进行叠加,即得到阴影mask图P。因本申请实施例中要获取的是不包含人物阴影的阴影mask图Q,那么,电子设备仅获取Ambient Shadow即是不包含人物阴影的,则电子设备可以在绘制了Ambient Shadow之后,对该Ambient Shadow进行复制,得到不包含人物阴影的阴影mask图Q;可以理解,阴影mask图Q中可以包括阴影范围和阴影强度。此处需要说明的是,复制Ambient Shadow的操作不影响原本绘制阴影mask图P的过程。
在一个可实现的方式中,电子设备为了存储所复制的Ambient Shadow,可以先创建一个缓冲区(FB)资源,用来存储Ambient Shadow,也即不包含人物阴影的阴影mask图Q。可选地,电子设备可以调用glBlitFramebuffer函数,将Ambient Shadow复制到FB中。
S202,根据不包含人物阴影的阴影mask图,生成第一帧图像。
其中,电子设备生成第一帧图像的过程与上述生成第三帧图像的过程原理类似,不同的是,第三帧图像是根据法线图、深度模板图、漫反射图、镜面反色图、阴影mask图P来生成的,但第一帧图像是根据法线图、深度模板图、漫反射图、镜面反色图、阴影mask图Q来生成的,以保证所生成的第一帧图像不包含人物阴影。
在一个实现方式中,电子设备也可以利用预设的光照模型,调用glDrawArray接口对法线图、深度模板图、漫反射图、镜面反色图、阴影mask图Q进行渲染着色,生成一张RGBA的颜色图,即为第一帧图像。可选地,电子设备在将阴影mask图P替换为阴影mask图Q以生成第一帧图像时,可以通过调用glbindTexture接口来实现。
示例性地,电子设备基于阴影mask图Q生成第一帧图像的示意图参见图12,如图12中所示,所生成的第一帧图像中不包含人物阴影。
上述实现方式中,电子设备通过获取不包含人物阴影的阴影mask图来生成上述第一帧图像,以得到不包含人物阴影的图像,为后续生成不包含人物阴影的预测帧做数据基础。
对于上述图5所示的实施例,是在游戏应用开启人物阴影功能的情况下执行的,可以理解,如果游戏应用没有开启人物阴影功能,则电子设备可以不考虑人物阴影的因素,直接根据不包含人物阴影的真实帧进行预测即可,因此,电子设备在生成游戏预测帧前可以先判断游戏应用是否开启了人物阴影功能。
图13是本申请实施例提供的另一例生成游戏预测帧的方法的流程示意图,具体可以包括:
S301,判断游戏应用是否开启人物阴影功能,若开启人物阴影功能则执行S302,若未开启人物阴影功能则执行S306。
其中,电子设备可以从游戏应用中获取第一标识,该第一标识用于表征游戏应用是否开启人物阴影功能,例如,第一标识为1时表征游戏应用开启人物阴影功能,第一标识为0时表征游戏应用未开启人物阴影功能。
S302,获取第一帧图像和第二帧图像。
S303,根据第一帧图像和第二帧图像,生成不包含人物阴影的预测帧。
S304,根据第一帧图像和第三帧图像,计算阴影差值。
S305,根据不包含人物阴影的预测帧和阴影差值,生成游戏预测帧。
其中,S302至S305的实现过程可以参见上述S101至S104,在此不再赘述。
S306,获取第四帧图像和第五帧图像。
因该步骤是在游戏应用未开启人物阴影功能的情况下执行的,那么游戏界面上所显示的真实帧也是不包含人物阴影的,第四帧图像和第五帧图像即是不包含人物阴影的真实帧。
S307,根据第四帧图像和第五帧图像,生成游戏预测帧。
其中,电子设备根据第四帧图像和第五帧图像生成游戏预测帧的过程,与上述根据第一帧图像和第二帧图像,生成不包含人物阴影的预测帧的过程类似,可选地,电子设备也可以通过插帧管线的方式对第四帧图像和第五帧图像进行处理,以得到游戏预测帧。
上述生成游戏预测帧的方法,在游戏应用开启人物阴影功能的情况下,电子设备通过先生成不包含人物阴影的预测帧和阴影差值,再将该不包含人物阴影的预测帧和阴影差值进行求差计算,便可以得到包含人物阴影的游戏预测帧,因该实施例中是根据阴影差值来生成游戏预测帧中的人物阴影的,将人物阴影与环境因素进行了分离,那么人物阴影便不会随着环境因素进行移动,从而减少了游戏界面中人物阴影的抖动现象,提高了游戏画质;在游戏应用未开启人物阴影功能的情况下,电子设备可以直接通过真实帧生成游戏预测帧。该实现方式针对不同场景具有不同的处理方案,提高了应用灵活性。
由于上述S302中需要获取第一帧图像和第二帧图像,S306中需要获取第四帧图像和第五帧图像,这些图像是电子设备实际渲染真实帧的过程中所得到的,因此,下面实施例介绍一下电子设备实际渲染真实帧的过程,为方便理解,以生成第一帧图像和第四帧图像为例进行说明,生成第二帧图像和第五帧图像的原理类似,不再赘述。
图14是本申请实施例提供的一例渲染真实帧的过程示意图,具体可以包括:
S401,判断游戏应用是否开启人物阴影功能,若开启人物阴影功能则执行S402,若未开启人物阴影功能则执行S406。
这里,电子设备也可以从游戏应用中获取第一标识,该第一标识用于表征游戏应用是否开启人物阴影功能。
S402,绘制环境因素的阴影mask和人物的阴影mask,并生成阴影mask图P。
S403,基于阴影mask图P生成第三帧图像。
其中,生成阴影mask图P的过程可以如上述图11所示,基于阴影mask图P生成第三帧图像即计算LightingPass的过程,所生成的第三帧图像中包含人物阴影。
S404,获取不包含人物阴影的阴影mask图Q。
这里不包含人物阴影的阴影mask图Q即上述环境因素的阴影mask,电子设备可以复制并存储环境因素的阴影mask作为不包含人物阴影的阴影mask图Q。
S405,根据不包含人物阴影的阴影mask图Q,生成第一帧图像。
其中,S405的实现过程可以参见上述S202,在此不再赘述。
S406,渲染生成第四帧图像。
其中,第四帧图像可以是基于法线图、深度模板图、漫反射图、镜面反色图来生成的,所生成的第四帧图像不包括人物阴影,这里同样可以通过LightingPass计算渲染得到第四帧图像。也即是说,在游戏应用没有开启人物阴影功能的情况下,电子设备可以直接渲染生成真实帧(即第四帧图像)以进行显示。
上述实现方式中,电子设备在渲染真实帧的过程中,在游戏应用开启人物阴影功能的情况下,可以生成不包含人物阴影的图像,为后续生成不包含人物阴影的预测帧做数据基础,并以此最终生成包含人物阴影的游戏预测帧;在游戏应用未开启人物阴影功能的情况下,电子设备可以直接生成真实帧。该实现方式也针对不同场景具有不同的处理方案,提高了应用灵活性。
结合上述实施例的过程以及图4中的软件架构,下面介绍一下本申请实施例提供的生成游戏预测帧的方法的模块交互过程。图15是本申请实施例提供的一例生成游戏预测帧的方法的模块交互流程示意图,具体可以包括:
S1,游戏应用获取图像资源数据。
其中,图像资源数据为用于生成游戏界面的数据,游戏应用可以从游戏应用中获取图像资源数据。
S2,游戏应用向三维图形处理库发送图像资源数据。
其中,游戏应用可以通过应用程序层与***层之间的接口,向三维图形处理库发送图像资源数据。
S3,三维图形处理库调用GPU开始执行渲染。
也即,三维图形处理库开始进入游戏界面的渲染过程。
S4,三维图形处理库绘制阴影mask图P。
S5,图像资源处理模块从三维图形处理库复制不包含人物阴影的阴影mask图Q。
其中,因三维图形处理库在渲染真实帧的过程中需要依据阴影mask图P,因此,三维图形处理库可以先绘制阴影mask图P。并且由上述实施例的描述可知,在绘制阴影mask图P的过程中,通常是先绘制环境因素的阴影mask(Ambient Shadow),那么,图像资源处理模块可以从三维图形处理库复制该环境因素的阴影mask,即为不包含人物阴影的阴影mask图Q。
S6,图像资源处理模块向三维图形处理库发送不包含人物阴影的阴影mask图Q。
S7,三维图形处理库基于不包含人物阴影的阴影mask图Q,生成第一帧图像。
这里,第一帧图像即为不包含人物阴影的真实帧图像,用于后续生成游戏预测帧。
S8,三维图形处理库基于阴影mask图P,生成第三帧图像。
这里,第三帧图像即为包含人物阴影的真实帧图像,用于实际显示在游戏界面中。
可以理解,S7的步骤可以在S8之前执行,也可以在S8之后执行,还可以与S8同时执行,本申请实施例对此执行顺序不做限制。
S9,三维图形处理库完成渲染。
S10,三维图形处理库将第一帧图像和第三帧图像发送至阴影差值复用模块。
S11,阴影差值复用模块根据第一帧图像和第三帧图像,计算阴影差值。
其中,阴影差值复用模块执行S11的过程可以参见上述S103的步骤,在此不再赘述。
S12,运动估计模块从三维图形处理库获取第一帧图像。
S13,运动估计模块根据第一帧图像和第一帧图像的相邻图像,计算运动矢量。
其中,第一帧图像的相邻图像即上述实施例中的第二帧图像,第二帧图像也可以是由运动估计模块从三维图形处理库中所获取的。第一帧图像与第二帧图像之间的运动矢量可以理解为同一像素点在第一帧图像中的位置与在第二帧图像中的位置之间的位移。
S14,运动估计模块将第一帧图像和运动矢量发送至运动补偿模块。
S15,运动补偿模块基于第一帧图像和运动矢量进行运动补偿,生成第一预测帧。
其中,运动补偿模块可以基于运动矢量对第一帧图像进行预测,预测下一帧图像中各像素点会移动至哪个位置,这里的下一帧图像为需要***第一帧图像和第二帧图像之间的图像,即最终要生成的游戏预测帧。可选地,运动补偿模块可以采用全局运动补偿方法或者分块运动补偿来方法来进行运动补偿。
S16,运动补偿模块将第一预测帧发送至图像补全模块。
S17,图像补全模块对第一预测帧进行图像补全,生成不包含人物阴影的预测帧。
由于在上述运动估计和运动补偿的过程中可能会产生误差,所得到的第一预测帧中有些像素点的像素值可能会缺失,因此,图像补全模块可以对第一预测帧进行图像补全,以提高得到的预测帧的精度。可选地,图像补全模块可以采用基于Patch-based的图像补全、或者基于深度学习生成相似纹理区域的图像补全等方法来进行图像补全。
S18,图像补全模块将不包含人物阴影的预测帧发送至阴影差值复用模块。
S19,阴影差值复用模块根据不包含人物阴影的预测帧和阴影差值,生成游戏预测帧。
其中,阴影差值复用模块执行S19的过程参见上述S104的步骤,在此不再赘述。
可以理解,因阴影差值复用模块需要得到不包含人物阴影的预测帧和阴影差值两个数据,计算阴影差值是由S10至S11步骤完成,生成不包含人物阴影的预测帧是由S12至S18步骤完成,这里需要说明的是,S10至S11可以在S12至S18之前执行,也可以在S12至S18之后执行,也可以与S12至S18同时执行,本申请实施例对此不做限制。
S20,阴影差值复用模块将游戏预测帧发送至显示驱动进行合成送显。
S21,三维图形处理库将第三帧图像发送至显示驱动进行合成送显。
上述生成游戏预测帧的方法,电子设备通过在渲染真实帧的过程中生成不包含人物阴影的预测帧,再计算出真实帧图像中的阴影差值,将该不包含人物阴影的预测帧和阴影差值进行求差计算,便可以得到包含人物阴影的游戏预测帧,因该实施例中是根据阴影差值来生成游戏预测帧中的人物阴影的,将人物阴影与环境因素进行了分离,那么人物阴影便不会随着环境因素进行移动,从而减少了游戏界面中人物阴影的抖动现象,提高了游戏画质。
上文详细介绍了本申请实施例提供的生成游戏预测帧的方法的示例。可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对电子设备进行功能模块的划分,例如,可以对应各个功能划分为各个功能模块,例如检测单元、处理单元、显示单元等,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例提供的电子设备,用于执行上述生成游戏预测帧的方法,因此可以达到与上述实现方法相同的效果。
在采用集成的单元的情况下,电子设备还可以包括处理模块、存储模块和通信模块。其中,处理模块可以用于对电子设备的动作进行控制管理。存储模块可以用于支持电子设备执行存储程序代码和数据等。通信模块,可以用于支持电子设备与其他设备的通信。
其中,处理模块可以是处理器或控制器。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理(digital signal processor,DSP)和微处理器的组合等等。存储模块可以是存储器。通信模块具体可以为射频电路、蓝牙芯片、Wi-Fi芯片等与其他电子设备交互的设备。
在一个实施例中,当处理模块为处理器,存储模块为存储器时,本实施例所涉及的电子设备可以为具有图3所示结构的设备。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储了计算机程序,当计算机程序被处理器执行时,使得处理器执行上述任一实施例的生成游戏预测帧的方法。
本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的生成游戏预测帧的方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的生成游戏预测帧的方法。
其中,本实施例提供的电子设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (8)

1.一种生成游戏预测帧的方法,所述方法由电子设备执行,其特征在于,所述电子设备运行有游戏应用,所述方法包括:
在所述游戏应用开启人物阴影功能的情况下,根据第一帧图像和第二帧图像,生成不包含人物阴影的预测帧,所述第一帧图像和所述第二帧图像为所述电子设备在渲染所述游戏应用显示的真实帧的过程中生成的图像,所述第一帧图像对应的真实帧与所述第二帧图像对应的真实帧为相邻帧图像,所述第一帧图像和所述第二帧图像中均不包含人物阴影;
对所述第一帧图像中各像素点的像素值与第三帧图像中相同位置像素点的像素值进行求差计算,得到阴影差值,所述第三帧图像为所述第一帧图像对应的包含人物阴影的真实帧;
对所述不包含人物阴影的预测帧中像素点的像素值和所述阴影差值进行像素值求差计算,生成游戏预测帧。
2.根据权利要求1所述的方法,其特征在于,在所述根据第一帧图像和第二帧图像,生成不包含人物阴影的预测帧之前,所述方法还包括:
在生成所述第三帧图像的过程中检测到第一指令时,获取第一阴影mask,所述第一阴影mask为不包含人物阴影的阴影mask图,所述第一指令表征所述电子设备开始进行阴影绘制;
基于所述第一阴影mask,生成所述第一帧图像。
3.根据权利要求2所述的方法,其特征在于,所述获取第一阴影mask,包括:
在所述电子设备进行阴影绘制时,若绘制完成环境因素的阴影mask,则复制所述环境因素的阴影mask,得到所述第一阴影mask。
4.根据权利要求2所述的方法,其特征在于,所述基于所述第一阴影mask,生成所述第一帧图像,包括:
基于所述第一阴影mask和所述第一帧图像对应的缓存图像,生成所述第一帧图像,其中,所述缓存图像包括法线图、深度模板图、漫反射图和镜面反色图中的至少一种。
5.根据权利要求4所述的方法,其特征在于,所述基于所述第一阴影mask和所述第一帧图像对应的缓存图像,生成所述第一帧图像,包括:
采用预设的光照模型,调用glDrawArray接口对所述第一阴影mask和所述缓存图像进行渲染,生成所述第一帧图像。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述根据第一帧图像和第二帧图像,生成不包含人物阴影的预测帧,包括:
基于所述第一帧图像和所述第二帧图像,计算运动矢量,所述运动矢量表征同一像素点在所述第一帧图像中的位置与在所述第二帧图像中的位置之间的位移;
基于所述运动矢量对所述第一帧图像进行运动补偿,生成第一预测帧;
对所述第一预测帧进行图像补全,生成所述不包含人物阴影的预测帧。
7.一种电子设备,其特征在于,包括:
一个或多个处理器;
一个或多个存储器;
所述存储器存储有一个或多个程序,当所述一个或多个程序被所述处理器执行时,使得所述电子设备执行如权利要求1至6中任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储了计算机程序,当所述计算机程序被处理器执行时,使得所述处理器执行权利要求1至6中任一项所述的方法。
CN202310974437.4A 2023-08-04 2023-08-04 生成游戏预测帧的方法和电子设备 Active CN116672707B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310974437.4A CN116672707B (zh) 2023-08-04 2023-08-04 生成游戏预测帧的方法和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310974437.4A CN116672707B (zh) 2023-08-04 2023-08-04 生成游戏预测帧的方法和电子设备

Publications (2)

Publication Number Publication Date
CN116672707A CN116672707A (zh) 2023-09-01
CN116672707B true CN116672707B (zh) 2023-10-20

Family

ID=87781388

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310974437.4A Active CN116672707B (zh) 2023-08-04 2023-08-04 生成游戏预测帧的方法和电子设备

Country Status (1)

Country Link
CN (1) CN116672707B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101324927A (zh) * 2008-07-18 2008-12-17 北京中星微电子有限公司 一种阴影检测方法及装置
CN101547308A (zh) * 2008-03-25 2009-09-30 索尼株式会社 图像处理装置、图像处理方法和程序
CN103139524A (zh) * 2011-12-05 2013-06-05 联想(北京)有限公司 视频优化方法以及信息处理设备
CN105354833A (zh) * 2015-10-12 2016-02-24 浙江宇视科技有限公司 一种阴影检测的方法和装置
CN108605104A (zh) * 2016-02-03 2018-09-28 德克萨斯仪器股份有限公司 用于宽动态范围(wdr)传感器数据的图像处理
CN112184575A (zh) * 2020-09-16 2021-01-05 华为技术有限公司 图像渲染的方法和装置
CN112199140A (zh) * 2020-09-09 2021-01-08 Oppo广东移动通信有限公司 应用插帧方法及相关装置
CN114630053A (zh) * 2020-12-11 2022-06-14 青岛海信移动通信技术股份有限公司 一种hdr图像显示方法及显示设备
CN115496907A (zh) * 2022-09-30 2022-12-20 维沃移动通信有限公司 图像处理方法及其装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI606418B (zh) * 2012-09-28 2017-11-21 輝達公司 圖形處理單元驅動程式產生內插的圖框之電腦系統及方法
US11638025B2 (en) * 2021-03-19 2023-04-25 Qualcomm Incorporated Multi-scale optical flow for learned video compression

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101547308A (zh) * 2008-03-25 2009-09-30 索尼株式会社 图像处理装置、图像处理方法和程序
CN101324927A (zh) * 2008-07-18 2008-12-17 北京中星微电子有限公司 一种阴影检测方法及装置
CN103139524A (zh) * 2011-12-05 2013-06-05 联想(北京)有限公司 视频优化方法以及信息处理设备
CN105354833A (zh) * 2015-10-12 2016-02-24 浙江宇视科技有限公司 一种阴影检测的方法和装置
CN108605104A (zh) * 2016-02-03 2018-09-28 德克萨斯仪器股份有限公司 用于宽动态范围(wdr)传感器数据的图像处理
CN112199140A (zh) * 2020-09-09 2021-01-08 Oppo广东移动通信有限公司 应用插帧方法及相关装置
CN112184575A (zh) * 2020-09-16 2021-01-05 华为技术有限公司 图像渲染的方法和装置
CN114630053A (zh) * 2020-12-11 2022-06-14 青岛海信移动通信技术股份有限公司 一种hdr图像显示方法及显示设备
CN115496907A (zh) * 2022-09-30 2022-12-20 维沃移动通信有限公司 图像处理方法及其装置

Also Published As

Publication number Publication date
CN116672707A (zh) 2023-09-01

Similar Documents

Publication Publication Date Title
CN109814766B (zh) 一种应用显示方法及电子设备
CN113553130B (zh) 应用执行绘制操作的方法及电子设备
CN112767231B (zh) 图层合成方法和设备
CN112214294B (zh) 调用硬件接口的方法及电子设备
CN113643186A (zh) 一种图像增强方法及电子设备
CN114625525A (zh) 一种资源管控方法及设备
WO2022095744A1 (zh) Vr显示控制方法、电子设备及计算机可读存储介质
CN116048833B (zh) 一种线程处理方法、终端设备及芯片***
CN114513574A (zh) 界面显示方法、电子设备及存储介质
WO2023005751A1 (zh) 渲染方法及电子设备
CN116672707B (zh) 生成游戏预测帧的方法和电子设备
CN116688494B (zh) 生成游戏预测帧的方法和电子设备
CN114691248B (zh) 显示虚拟现实界面的方法、装置、设备和可读存储介质
CN115994006A (zh) 动画效果显示方法及电子设备
CN113495733A (zh) 主题包安装方法、装置、电子设备及计算机可读存储介质
CN116700655B (zh) 一种界面显示方法及电子设备
CN116755748B (zh) 卡片更新方法、电子设备以及计算机可读存储介质
CN117148959B (zh) 眼动追踪的帧率调整方法及相关装置
CN114866641B (zh) 一种图标处理方法、终端设备及存储介质
CN116700555B (zh) 动效处理方法及电子设备
CN118276716A (zh) 窗口管理的方法和电子设备
CN116991532A (zh) 一种虚拟机窗口的显示方法、电子设备及***
CN117806744A (zh) 控件显示方法及电子设备
CN117689796A (zh) 一种渲染处理方法及电子设备
CN117742849A (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