CN117205549A - 画面渲染方法、装置、设备、存储介质及程序产品 - Google Patents

画面渲染方法、装置、设备、存储介质及程序产品 Download PDF

Info

Publication number
CN117205549A
CN117205549A CN202211522911.1A CN202211522911A CN117205549A CN 117205549 A CN117205549 A CN 117205549A CN 202211522911 A CN202211522911 A CN 202211522911A CN 117205549 A CN117205549 A CN 117205549A
Authority
CN
China
Prior art keywords
layer
rendering
picture
change
frame
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.)
Pending
Application number
CN202211522911.1A
Other languages
English (en)
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202211522911.1A priority Critical patent/CN117205549A/zh
Publication of CN117205549A publication Critical patent/CN117205549A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

本申请公开了一种画面渲染方法、装置、设备、存储介质及程序产品,涉及计算机技术领域。方法包括:基于游戏进程中的游戏事件,确定第i+1帧画面相较于第i帧画面发生变化的变化渲染对象以及对象变化内容;基于对象变化内容,对变化渲染对象对应的对象图层进行渲染,得到变化对象图层,其中,不同对象图层基于游戏进程中不同渲染对象划分得到;对变化对象图层与未变化对象图层进行叠加处理,得到第i+1帧图像画面,未变化对象图层是第i+1帧画面与第i帧画面之间未发生变化的渲染对象对应的对象图层。采用本申请实施例提供的方法,可降低单帧渲染单帧图像的性能消耗,缩短渲染时长,从而可支持游戏在高帧率模式下的长时间运行。

Description

画面渲染方法、装置、设备、存储介质及程序产品
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种画面渲染方法、装置、设备、存储介质及程序产品。
背景技术
游戏进程中,更高的显示帧率带来更好的游戏体验,因此,用户通常在高帧率下进行游戏。
为保持游戏在高帧率下的运行,相关技术中,通常通过提高硬件性能以提高帧率,或通过降低画质以提高渲染速度,支持更高帧率。
然而,通过提高硬件性能提高帧率的方式容易造成发热严重,长时间运行将导致性能下降,而通过降低画质的方式影响游戏画面的展示,可能无法满足用户的画质需求。
发明内容
本申请实施例提供了一种画面渲染方法、装置、设备、存储介质及程序产品,可以降低渲染压力,提高画面渲染效率,从而支持高帧率模式的运行。所述技术方案如下:
一方面,本申请实施例提供了一种画面渲染方法,所述方法包括:
基于游戏进程中的游戏事件,确定第i+1帧画面相较于第i帧画面发生变化的变化渲染对象以及对象变化内容;
基于所述对象变化内容,对所述变化渲染对象对应的对象图层进行渲染,得到变化对象图层,其中,不同对象图层基于所述游戏进程中不同渲染对象划分得到;
对所述变化对象图层与未变化对象图层进行叠加处理,得到所述第i+1帧图像画面,所述未变化对象图层是所述第i+1帧画面与所述第i帧画面之间未发生变化的渲染对象对应的对象图层。
另一方面,本申请实施例提供了一种画面渲染装置,所述装置包括:
变化确定模块,用于基于游戏进程中的游戏事件,确定第i+1帧画面相较于第i帧画面发生变化的变化渲染对象以及对象变化内容;
图层渲染模块,用于基于所述对象变化内容,对所述变化渲染对象对应的对象图层进行渲染,得到变化对象图层,其中,不同对象图层基于所述游戏进程中不同渲染对象划分得到;
图层叠加模块,用于对所述变化对象图层与未变化对象图层进行叠加处理,得到所述第i+1帧图像画面,所述未变化对象图层是所述第i+1帧画面与所述第i帧画面之间未发生变化的渲染对象对应的对象图层。
另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方面所述的画面渲染方法。
另一方面,提供了一种计算机可读存储介质,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述方面所述的画面渲染方法。
另一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面提供的画面渲染方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
本申请实施例中,基于游戏进程中各个渲染对象进行图层划分,得到不同的对象图层。在游戏进程中,计算机设备可根据捕获的游戏事件判断下一帧发生变化的渲染对象,从而对变化渲染对象对应的对象图层进行渲染,而未变化的对象图层则可沿用历史已渲染完成的图层,最终通过图层叠加的方式得到下一帧图像。该种方式下,可降低单帧渲染单帧图像的性能消耗,缩短渲染时长,从而可支持游戏在高帧率模式下的长时间运行,有助于提高游戏画面流畅度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一个示例性实施例提供的实施环境的示意图;
图2示出了本申请一个示例性实施例提供的画面渲染方法的流程图;
图3示出了本申请一个示例性实施例提供的画面渲染过程的图层示意图;
图4示出了本申请另一个示例性实施例提供的画面渲染方法的流程图;
图5示出了本申请一个示例性实施例提供的确定图层渲染方式的流程图;
图6示出了本申请另一个示例性实施例提供的画面渲染方法的流程图;
图7是本申请另一个示例性实施例提供的调整图层显示顺序的图层示意图;
图8示出了本申请另一个示例性实施例提供的画面渲染方法的流程图;
图9示出了本申请一个示例性实施例提供的画面渲染装置的结构框图;
图10示出了本申请一个示例性实施例提供的计算机设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
高帧率模式下运行游戏时,游戏流畅度更高且对用户操作响应效率较高,游戏体验较好。目前,相关技术中可通过硬件侧或软件侧的优化方式以提供更高帧率。
硬件上,可提高硬件性能以使游戏运行在高帧率模式下。然而,长时间高帧率的运行将导致长时间的发热问题,造成性能下降,且可能造成丢帧问题的出现。而软件上,目前多通过降低画质的方式以降低渲染工作量,从而支持更高帧率。而降低画质的方式可能无法满足用户对游戏画面的需求,无法兼顾画面质量以及帧率。
因此,本申请实施例中,提出一种画面渲染方法,可在不降低游戏画面质量的前提下降低单帧图像渲染消耗,降低渲染压力,且也无需增加性能消耗,可支持游戏长时间在高帧率模式下运行。
请参考图1,其示出了本申请一个实施例提供的实施环境的示意图。该实施环境可以包括:终端110与服务器120。
终端110运行有支持虚拟环境的应用程序111,该应用程序111可以是多人在线对战程序。当第一终端运行应用程序111时,第一终端110的屏幕上显示应用程序111的用户界面。该应用程序111可以是多人在线战术竞技(Multiplayer Online Battle Arena,MOBA)游戏、大逃杀射击游戏、模拟战略游戏(Simulation Game,SLG)的任意一种。在本实施例中,以该应用程序111是第一人称射击(First-Person Shooting,FPS)游戏来举例说明。可选的,终端110可为智能手机、平板电脑、电子书阅读器、膝上型便携计算机和台式计算机中的至少一种。
图1中仅示出了一个终端,但在不同实施例中存在多个其它终端可以接入服务器120。其中,不同终端可为不同用户使用的终端,用户使用终端控制位于虚拟环境中的虚拟角色进行活动,虚拟角色的活动包括但不限于:调整身体姿态、爬行、步行、奔跑、骑行、飞行、跳跃、驾驶、拾取、射击、攻击、投掷、释放技能中的至少一种。示意性的,虚拟角色是第一虚拟人物,比如仿真人物或动漫人物。
终端110以及其它终端通过无线网络或有线网络与服务器120相连。
服务器120包括一台服务器、多台服务器组成的服务器集群、云计算平台和虚拟化中心中的至少一种。服务器120用于为支持虚拟环境的应用程序提供后台服务。可选地,服务器120承担主要计算工作,终端承担次要计算工作;或者,服务器120承担次要计算工作,终端承担主要计算工作;或者,服务器120和终端之间采用分布式计算架构进行协同计算。
在一种可能的实施方式中,服务器120可捕获游戏进程中各个终端以及系统下发的游戏事件,并根据游戏事件确定下一帧画面中发生变化的变化渲染对象以及对象变化内容,根据对象变化内容对变化渲染对象对应的对象图层进行渲染,从而得到变化对象图层,最终可将变化对象图层与未变化对象图层进行叠加处理,得到下一帧画面,并发送至终端110,由终端110进行显示。
或者,在另一种可能的实施方式中,由服务器120捕获游戏进程中的游戏事件,将游戏事件发送至终端110,由终端110根据游戏进程中的游戏事件,确定下一帧画面中发生变化的变化渲染对象以及对象变化内容,并根据对象变化内容对变化渲染对象对应的对象图层进行渲染,得到变化对象图层,且将变化对象图层与未变化对象图层进行叠加处理,得到下一帧画面以进行显示。
本实施例提供的方法可用于图1所示实施环境中的终端110或服务器120中,为便于表述,下面将以方法用于计算机设备为例进行示意性说明。
请参考图2,其示出了本申请一个示例性实施例提供的画面渲染方法的流程图。本实施例以该方法用于计算机设备为例进行说明,该方法包括如下步骤:
步骤201,基于游戏进程中的游戏事件,确定第i+1帧画面相较于第i帧画面发生变化的变化渲染对象以及对象变化内容。
本申请实施例中,基于游戏进程中渲染对象对虚拟环境画面进行图层划分,得到不同渲染对象对应的对象图层。即不同图层对应虚拟环境画面中的不同显示对象,划分得到的每一层图层中所对应的显示对象保持相互独立,在虚拟环境画面的渲染过程中,可根据下一帧的画面变化情况进行渲染,仅对发生变化的显示对象对应的图层进行渲染,即通过分立不同显示对象的渲染过程,减少重复计算与渲染的可能性,降低单帧渲染工作量。
在一种可能的实施方式中,在游戏进程中,计算机设备可根据捕获的游戏事件判断下一帧画面变化情况。其中,游戏事件是指游戏进程中引起画面变化的事件。可选的,游戏事件包含系统事件与用户事件。系统事件是指游戏系统所控制的事件,比如,在虚拟环境中投放道具、控制虚拟环境中的非玩家角色、在虚拟环境中模拟不同的自然或物理现象等等。用户事件是指用户操作所触发的事件,比如,用户通过对攻击控件的触发操作,触发虚拟角色攻击;通过对跳跃控件的触发操作,触发虚拟角色跳跃等。
在获取游戏事件的过程中,需捕获系统事件以及各个不同用户所触发的用户事件,以根据捕获的游戏事件进行判断。在一种可能的实施方式中,可通过hook技术在游戏进程中捕获得到系统事件以及用户事件。需要说明的是,当由终端执行画面渲染过程时,系统事件由服务器转发至各个终端,而对于各个终端所触发的用户事件,在一种可能的实施方式中,服务器可捕获各个终端所触发的用户事件,将用户事件转发至各个终端,由终端根据用户事件确定变化渲染对象。或者,在另一种可能的实施方式中,服务器在捕获各个终端所触发的用户事件后,根据用户事件确定被影响的渲染对象,从而将用户事件转发至被影响渲染对象对应的终端中,以便终端进行处理,本实施例对此不做限定。
计算机设备根据游戏进程中的游戏事件,判断第i+1帧画面相较于第i帧画面发生变化的变化渲染对象以及对应的变化内容。比如,当接收到用户对跳跃控件的触发操作时,确定下一帧用户控制的虚拟角色为变化渲染对象。
且由于游戏事件可能对连续多帧画面产生持续影响,因此,在渲染每一帧画面过程中,计算机设备均需遍历捕获的游戏事件,确定第i+1帧画面相较于第i帧画面的变化情况。
步骤202,基于对象变化内容,对变化渲染对象对应的对象图层进行渲染,得到变化对象图层,其中,不同对象图层基于游戏进程中不同渲染对象划分得到。
在一种可能的实施方式中,计算机设备根据确定的对象变化内容对变化渲染对象对应的对象图层进行渲染。且当对象变化内容不同时,可通过不同渲染方式对对象图层进行渲染。
在存在多个变化渲染对象的情况下,计算机设备根据各个变化渲染对象所对应的对象变化内容,分别对对应的对象图层进行渲染,得到各个变化渲染对象对应的变化对象图层。
示意性的,如图3所示,当接收到用户对下蹲控件303的触发操作时,将捕获到下蹲事件,在捕获到下蹲事件后,确定第i+1帧画面相较于第i帧画面301发生变化的变化渲染对象为虚拟角色302以及下蹲控件303,需对虚拟角色302与下蹲控件303对应的对象图层进行渲染,得到变化对象图层304。
步骤203,对变化对象图层与未变化对象图层进行叠加处理,得到第i+1帧图像画面,未变化对象图层是第i+1帧画面与第i帧画面之间未发生变化的渲染对象对应的对象图层。
本申请实施例中,根据第i+1帧画面的变化情况,对变化渲染对象对应的对象图层进行渲染,而对未变化渲染对象的对象图层可沿用第i帧画面的对象图层,无需进行处理,即在每一帧画面渲染过程中,计算机设备仅需对变化的对象图层进行渲染,通过分层渲染的方式,无需对下一帧的整个显示画面进行重新渲染,可降低单帧画面渲染工作量。
且对于未变化渲染对象的对象图层除了可沿用第i帧画面的对象图层,也可沿用第i+1帧画面之前N帧画面对应的对象图层,即已渲染完成的图层,若对应的渲染对象未发生变化,均可在后续沿用,本实施例对此不做限定。
在得到变化对象图层之后,计算机设备可将变化对象图层与未变化对象图层进行叠加处理,得到第i+1帧画面。其中,叠加处理过程中可根据图层显示顺序以及图层透明度对图层进行叠加。
示意性的,如图3所示,未变化渲染对象包含背景对象以及控件对象等。计算机设备可沿用第i帧画面301中的未变化对象图层305,将其与变化对象图层304进行叠加处理,得到第i+1帧画面306。
综上所述,本申请实施例中,基于游戏进程中各个渲染对象进行图层划分,得到不同的对象图层。在游戏进程中,计算机设备可根据捕获的游戏事件判断下一帧发生变化的渲染对象,从而对变化渲染对象对应的对象图层进行渲染,而未变化的对象图层则可沿用历史已渲染完成的图层,最终通过图层叠加的方式得到下一帧图像。该种方式下,可降低单帧渲染单帧图像的性能消耗,缩短渲染时长,从而可支持游戏在高帧率模式下的长时间运行,有助于提高游戏画面流畅度。
本申请实施例,通过划分图层以及分层渲染的方式,在渲染单帧图像的过程中,仅需对变化图层进行渲染。其中,图层为预先划分的图层。在一种可能的实施方式中,首先对游戏中显示对象进行拆解,得到不同渲染对象,再基于不同渲染对象进行图层划分,下面对图层划分方式进行示例性说明。
在一种可能的实施方式中,图层划分过程可包含如下步骤:
步骤一、根据游戏事件影响的显示对象,对游戏进程中需显示的显示对象进行拆解,得到不同渲染对象。
在游戏画面中存在各种显示对象,在不同游戏事件下会发生改变。在一种可能的实施方式中,可根据各个游戏事件影响的显示对象,对不同的显示对象进行拆解。
游戏进程中需显示的显示对象一般包含虚拟角色、背景信息、提示信息、控件等。不同游戏事件可能对不同虚拟角色产生影响。比如,对于非玩家角色,当游戏系统下发相关游戏事件时,可能会使非玩家角色产生变化;而对于玩家角色,用户的不同操作事件可能对不同角色产生影响,因此,可根据游戏事件对不同虚拟角色的影响,拆解得到玩家角色与非玩家角色,其中,玩家角色由用户进行控制,而非玩家角色则由游戏系统进行控制。且对于不同玩家角色,由于跟随不同用户的操作发生改变,因此还可根据不同用户事件进行拆解,得到不同用户对应的玩家角色,对于非玩家角色,不同系统事件针对不同的非玩家角色,因此还可根据不同系统事件进行拆解,得到不同系统事件对应的非玩家角色。
且游戏进程中背景画面也会发生改变。示意性的,在虚拟角色移动过程中、画面视角切换过程中,以及系统模拟自然环境等,背景画面将发生相应改变。因此,可根据不同事件所影响的背景对象,对背景画面中的显示对象进行拆解,比如,可拆解得到静态背景对象与动态背景对象。其中,动态背景对象会随时间等因素发生周期性或非周期性的改变,比如,树木、雨、雾等。而静态背景对象的显示状态则不会发生改变,比如,建筑物。
且游戏中通常显示有不同的提示信息对用户进行提示。比如,当用户的方位发生改变时,方位提示信息发生改变;当用户位置发生改变时,地图信息中位置发生改变;可根据不同事件对提示信息的影响,将显示的不同提示信息拆解为不同渲染对象。
且对于不同控件,不同操作可影响不同的控件,比如,对于方向控制控件与技能释放控件会随用户操作发生形态改变,且不同道具状态也可能影响不同控件,比如,虚拟弹药填充控件随虚拟弹药量改变。因此,可根据不同操作以及不同道具所影响的控件,将不同控件对象拆解为不同的渲染对象。
步骤二、基于不同渲染对象,对游戏的虚拟环境画面进行图层划分,得到不同对象图层。
在得到不同渲染对象之后,计算机设备可根据渲染对象进行图层划分。
在一种可能的实施方式中,基于拆解得到的各个渲染对象,对虚拟环境画面进行图层划分,得到各个渲染对象对应的对象图层。即对于任一渲染对象可拆分得到其对应的对象图层。比如,对于拆解得到的各个虚拟角色、背景对象、提示信息以及控件等,均对应有对象图层。而该种方式下,后续图层叠加处理过程中,由于图层数较多,使叠加过程较为复杂,会对画面渲染效率产生影响。因此,在另一种可能的实施方式中,可首先对渲染对象进行分类,并基于不同类型的渲染对象进行图层划分。该过程可包含如下步骤:
步骤一、对不同渲染对象进行分类,得到属于不同对象类型的渲染对象。
计算机设备可根据各个渲染对象对应的元素类型进行分类,从而得到不同对象类型的渲染对象。
可选的,可对各个渲染对象进行分类,得到背景对象类型、角色对象类型以及控件对象类型。
步骤二、基于不同对象类型,对虚拟环境画面进行图层划分,得到不同对象类型对应的对象图层。
根据上述对象类型,再进行图层划分,得到不同对象类型对应的对象图层。可选的,计算机设备可基于不同对象类型,对虚拟环境画面进行图层划分,得到背景对象图层、角色对象图层以及控件对象图层。
对于背景对象图层,可将背景画面类的对象划分至该层。且对于背景对象图层,还可进一步划分,得到不同背景子层。可选的,计算机设备对背景对象图层进行划分,得到静态背景子图层以及动态背景子图层。
对于角色对象图层,可将虚拟角色划分至该层。且对于角色对应图层,还可进一步划分,得到不同角色子层。可选的,计算机设备对角色对象图层进行划分,得到玩家角色子图层与非玩家角色子图层。且对于玩家角色子图层还可进一步划分,得到不同玩家对应虚拟角色对应的子图层。对于非玩家角色子图层,还可进一步划分,得到不同非玩家角色对应的子图层。
对于控件对象图层,可将画面中显示的不同控件均划分至该层。且同样的,可对控件对象图层进一步划分,得到不同控件子层。可选的,计算机设备对控件对象图层进行划分,得到动作控件子图层与提示控件子图层。即将控制虚拟角色执行动作的控件划分为一层。而用于提示的控件可划分为一层。当然,对于每个独立显示控件,也可均单独划分为一层,本实施例对此不做限定。
需要说明的是,对于游戏显示对象拆解以及图层划分过程可由计算机设备根据拆解规则与划分规则进行自动拆解与自动划分,也可由开发人员预先进行人工拆解与划分,本实施例对此不做限定。
本实施例中,进行游戏显示对象拆解以及图层划分,从而使划分得到的各个对象图层中所包含的渲染对象尽可能保持相对独立,从而减少重复计算与渲染的可能性,有助于提高单帧渲染效率。
计算机设备会根据游戏事件确定第i+1帧的对象变化内容,其中,对于不同的对象变化内容,对应有不同的图层渲染方式。下面将以示例性实施例进行说明。
请参考图4,其示出了本申请一个示例性实施例提供的画面渲染方法的流程图。本实施例以该方法用于计算机设备为例进行说明,该方法包括如下步骤:
步骤401,基于游戏进程中的游戏事件,确定第i+1帧画面相较于第i帧画面发生变化的变化渲染对象以及对象变化内容。
步骤401的实施方式可参考上述步骤201,本实施例不再赘述。
步骤402,基于对象变化内容,确定图层渲染方式,其中,图层渲染方式包含图层重新渲染与图层参数调整中的至少一种。
其中,不同的游戏事件会导致对象产生不同的变化。比如,提示信息的显示位置固定,内容随游戏过程发生改变;对于虚拟角色可能的变化,包含在移动过程中,显示形态不变,仅位置发生变化,或,在执行动作过程中,大小形态等发生变化,且其他虚拟角色的动作还可能影响本地虚拟角色的变化。而对于显示控件,一般位置固定,显示内容也保持一致,但对于一些特殊情况会随虚拟角色所属场景不同发生对应的改变,比如,在对局中的控件与未进入对局前的控件显示状态不同。再比如,当控件用于提示用户处于冷却时间,不可操作时,控件状态将发生改变。综上,各种对象变化内容可能包含以下几类:对象内容改变而对象位置与对象大小不变,比如,提示信息的显示,控件内容的显示等;对象位置改变而对象内容与对象大小不变,比如,虚拟角色移动过程中,画面背景发生位移改变;对象形态改变,比如,对象大小发生变化或对象姿态发生变化,包含停止显示等;画面视角改变而对象内容不变,比如,当用户进行视角切换时,游戏画面视角发生改变,虚拟环境画面随画面视角变化而改变。
根据不同对象变化内容,可确定不同图层渲染方式,在对象变化内容指示图层变化较大的情况下,可对图层进行重新渲染;而在对象变化内容指示图层变化较小的情况下,无需重新渲染图层,仅需对图层内信息进行调整,且不同情况下,调整信息不同。在一种可能的实施方式中,可能包含如下情况:
一、在变化渲染对象的显示状态发生变化的情况下,确定图层渲染方式为图层重新渲染,其中,显示状态包含显示内容与显示形态中的至少一种。
当计算机设备确定变化渲染对象的显示内容或显示形态发生变化时,渲染对象的变化较大,需对对应的对象图层进行重新渲染,即确定图层渲染方式为图层重新渲染。
示意性的,当用户触发虚拟角色换装后,虚拟角色的显示内容需发生变化,此时,需对虚拟角色对应的对象图层进行重新渲染。
二、在变化渲染对象的显示位置发生变化的情况下,确定图层渲染方式为图层坐标调整。
在一种可能的实施方式中,计算机设备可首先确定变化渲染对象的显示内容或显示形态,在显示内容或显示形态未发生变化的情况下,无需对图层进行重新渲染。计算机设备可继续确定变化渲染对象的显示位置是否发生变化,在显示位置发生变化时,确定图层渲染方式为图层参数调整。具体的,针对显示位置发生变化的情况,图层参数调整方式可为图层坐标调整,计算机设备可根据变化后的位置调整图层坐标。即变化渲染对象仅发生位移的情况下,图层渲染方式为图层坐标调整。
示意性的,当虚拟角色的位置发生变化时,计算机设备仅对虚拟角色对应的对象图层进行图层坐标调整即可。
三、在画面视角发生变化的情况下,确定图层渲染方式为图层坐标调整与图层大小调整中的至少一种。
在计算机设备确定变化渲染对象的显示状态与显示位置未变化,而画面视角发生变化的情况下,可确定图层渲染方式为图层参数调整。
其中,画面视角变化可能包含视角的放大与缩小、视角的上下或左右平移等,因此,针对画面视角变化的情况,图层参数调整方式包含图层坐标调整与图层大小调整中的至少一种。即仅在画面视角发生变化的情况下,图层渲染方式包含图层坐标调整与图层大小调整中的至少一种。
示意性的,当画面视角从远处切换为近处时,变化渲染对象的显示比例变大,需对图层大小进行调整;当画面视角左右平移时,变化渲染对象也发生平移,需对图层坐标进行调整。
步骤403,通过图层渲染方式,对变化渲染对象对应的对象图层进行渲染,得到变化对象图层。
在一种可能的实施方式中,在图层渲染方式为图层重新渲染的情况下,计算机设备对变化渲染对象对应的对象图层进行重新渲染,得到变化对象图层;在图层渲染方式为图层坐标调整的情况下,计算机设备重新调整对象图层的坐标信息,得到变化对象图层;在图层渲染方式为图层大小调整的情况下,计算机设备调整对象图层的图层大小,得到变化对象图层。
且在实际游戏进程中,可能存在多个渲染对象同时发生改变,因此,计算机设备在确定变化渲染对象后,再确定各个变化渲染对象对应的对象图层的图层渲染方式。结合上述说明,确定图层渲染方式的过程可如图5所示:
步骤501,确定变化渲染对象的显示状态是否发生变化,若是,则执行步骤502,若否,则执行步骤503。
步骤502,重新渲染变化渲染对象的对象图层。
步骤503,确定变化渲染对象的显示位置是否发生变化,若是,则执行步骤504,若否,则执行步骤505。
步骤504,调整变化渲染对象的对象图层的图层坐标。
步骤505,确定画面视角是否发生变化,若是,则执行步骤506。
步骤506,根据变化视角调整变化渲染对象的对象图层的图层坐标与图层大小中的至少一种。
步骤404,对变化对象图层与未变化对象图层进行叠加处理,得到第i+1帧图像画面。
当渲染得到各个变化对象图层后,计算机设备再将其与第i帧画面中未变化对象图层进行叠加处理,得到第i+1帧画面。
上述方式中,可根据游戏事件确定第i+1帧画面相较于第i帧画面发生变化的变化渲染对象。然而,在一种可能的情况下,当发生特定游戏事件时,游戏中虚拟环境画面的变化较大,此时,若再进行分层渲染,需渲染图层较多,且图层叠加的过程也较为复杂,效率较低。
因此,在一种可能的实施方式中,在游戏事件为特定游戏事件的情况下,对第i+1帧画面进行整体画面渲染,其中,特定游戏事件下的画面改变幅度大于其他游戏事件下的画面改变幅度。
开发人员可预先设置特定游戏事件,比如,可将画面改变幅度超过画面比例50%的游戏事件确定为特定游戏事件。示意性的,特定游戏事件可为触发特效类事件。当计算机设备捕获到游戏事件后,首先确定游戏事件是否为特定游戏事件,若为特定游戏事件,则可直接渲染第i+1帧画面。若为除特定游戏事件之外的其他游戏事件,则根据游戏事件确定第i+1帧画面相较于第i帧画面发生变化的变化渲染对象以及对象变化内容,从而通过分层渲染的方式提高单帧渲染效率。
比如,当特定游戏事件包含烟雾弹投掷时,用户控制虚拟角色投掷烟雾弹后,计算机设备对画面进行整体重新渲染,不再进行分层渲染,以提高渲染效率。
即当捕获到游戏事件时,计算机设备首先判断游戏事件是否为特定游戏事件,在为特定游戏事件的情况下,由于对整体画面幅度改变较大,分层渲染的效率相较于整体画面渲染的效率较低,因此,在游戏事件为特定游戏事件时,可直接重新渲染整体画面,不再对各个分层进行渲染。
而当游戏事件为非特定游戏事件时,采用分层渲染的方式进行渲染。在此过程中,计算机设备可进一步根据非特定游戏事件确定变化渲染对象的变化内容。在变化渲染对象的显示状态发生变化时,对对象图层进行重新渲染。而在变化渲染对象的显示状态未发生变化,显示位置发生变化时,根据变化后的位置调整图层坐标,无需进行重新渲染,降低渲染工作量。再进一步的,当显示状态以及显示位置均未发生变化,而画面视角发生变化的情况下,可根据改变后的视角与改变前视角的变化情况,对图层的图层坐标与图层大小进行调整,无需重新渲染图层,降低渲染工作量。
即本实施例中,当游戏事件为对画面改变幅度较大的特定游戏事件时,直接通过画面整体渲染的方式渲染第i+1帧画面,而当游戏事件为其他游戏事件时,再通过分层渲染的方式渲染得到第i+1帧画面,不同游戏事件下选择效率最快的渲染方式进行渲染,以提高渲染效率。
且本实施例中,首先根据游戏事件在整体画面渲染方式与分层渲染方式中进行选择,在确定采用分层渲染方式之后,计算机设备可进一步根据游戏事件确定变化渲染对象,并根据变化渲染对象对应的对象变化内容确定各个图层的图层渲染方式,可根据对象变化内容动态调整图层渲染方式,在图层变化较大的情况下(比如对象的显示状态发生变化),可重新渲染图层,而在图层变化较小的情况下(比如仅存在显示位置发生变化或者画面视角发生变化时),可仅对图层参数进行调整,而并非均需对图层进行重新渲染,可进一步提高分层渲染的效率,从而可提高单帧渲染效率。
游戏事件发生时,不同情况下画面中各个对象的遮挡情况不同,且显示透明度也可能不同。因此,在图层叠加处理过程中,计算机设备还需动态调整图层显示顺序以及图层透明度。下面将以示例性实施例进行说明。
请参考图6,其示出了本申请另一个示例性实施例提供的画面渲染方法的流程图。本实施例以该方法用于计算机设备为例进行说明,该方法包括如下步骤:
步骤601,基于游戏进程中的游戏事件,确定第i+1帧画面相较于第i帧画面发生变化的变化渲染对象以及对象变化内容。
其中,步骤601的实施方式可参考上述步骤201,本实施例不再赘述。
步骤602,基于对象变化内容,对变化渲染对象对应的对象图层进行渲染,得到变化对象图层。
其中,步骤602的实施方式可参考上述步骤402-403,本实施例不再赘述。
步骤603,确定变化对象图层与未变化对象图层的图层透明度以及图层显示顺序。
游戏事件所带来的不只渲染对象的改变,还可能包含渲染对象遮挡顺序以及显示透明度的改变。由于已进行分层,因此,在渲染对象遮挡情况发生改变的情况下,可通过调整图层显示顺序实现不同的遮挡效果,比如在图层A位于图层B之上时,将展现出图层A对应的渲染对象遮挡图层B对应的渲染对象的效果。且可通过调整图层透明度的方式调整渲染对象的显示透明度。该种方式下,无需在遮挡效果变化或透明度发生变化的情况下,重新对画面进行渲染,可降低渲染工作量,提高渲染效率。在一种可能的实施方式中,在渲染得到变化对象图层后,计算机设备还需确定各个图层的图层显示顺序以及图层透明度,各个图层包含变化对象图层与未变化对象图层,以对各个图层的显示顺序以及透明度进行动态调整。
在一种可能的实施方式中,计算机设备根据游戏事件确定变化对象图层与未变化对象图层的图层透明度。
其中,存在一些游戏事件将对图层的透明度产生影响,且可能对连续多帧的图层透明度产生影响,即不仅变化对象图层的图层透明度可能会发生改变,未变化对象图层的透明度也可能发生改变。因此,计算机设备可根据捕获的游戏事件,确定第i+1帧画面中各个图层的图层透明度。
示意性,当用户控制虚拟角色在虚拟环境中投放虚拟烟雾弹后,随着时间的增加,烟雾效果逐渐消散,相应的,烟雾内的虚拟角色在第i+1帧画面的透明度高于第i帧画面的透明度,即需调高烟雾内虚拟角色的图层透明度。
且在一种可能的实施方式中,计算机设备可根据游戏事件确定各个图层的图层显示顺序,再根据图层显示顺序进行叠加处理。
而实际上,图层显示顺序通常在存在变化渲染对象的情况下发生改变,若每一帧均根据游戏事件确定各个图层的图层显示顺序,影响图层叠加过程的效率。因此,在另一种可能的实施方式中,计算机设备根据游戏事件确定变化对象图层的图层显示顺序,以及根据第i帧画面确定未变化对象图层的图层显示顺序。
即当存在变化渲染对象且渲染得到变化对象图层之后,确定变化对象图层的图层显示顺序,而对于未变化对象图层,其图层显示顺序可沿用第i帧画面所对应的图层显示顺序,以减少处理量。
示意性的,如图7所示,当位于障碍物702上的虚拟角色701执行跳跃动作,移动至障碍物702之后时,相当的,虚拟角色701对应的角色对象图层由在障碍物702对应的障碍物对象图层之上,调整为在障碍物对象图层之下,从而在第i+1帧画面中体现障碍物702对虚拟角色701的遮挡效果。
且需要说明的是,第i+1帧画面相较于第i帧画面可能并不存在变化渲染对象,仅存在图层透明度的改变,因此,计算机设备在处理每一帧画面的过程中,均需判断是否存在图层透明度的改变。
而对于图层显示顺序,在存在变化渲染对象的情况下,可能存在图层显示顺序的变动,而在第i+1帧画面相较于第i帧画面不存在变化渲染对象的情况下,则无需再进行图层显示顺序的判断。
且进一步的,对于一些渲染对象对应的对象图层,其图层显示顺序可能始终保持不变,比如,对于各个操作控件,其始终显示在画面最上层,因此,可预先设置顺序不变图层,在叠加处理过程中,无需再确定顺序不变图层的图层显示顺序,减少处理量。
且同样存在一些渲染对象对应的对象图层,图层透明度保持不变,比如,画面中虚拟角色的方位提示信息,因此,对于透明度不变图层,在叠加处理过程中,也无需再判断该类图层的图层透明度,可减少处理量。
步骤604,基于各个图层的图层透明度对图层进行透明度调整。
在确定各个图层的图层透明度之后,计算机设备即可确定需改变透明度的对象图层,并根据调整需求,对变化对象图层与未变化对象图层中需调整的对象图层进行透明度调整。
步骤605,基于图层显示顺序,对透明度调整后的图层进行叠加处理,得到第i+1帧图像画面。
在透明度调整完成后,计算机设备可根据确定的图层显示顺序对透明度调整后的变化对象图层与未变化对象图层进行叠加处理,得到第i+1帧画面。
本实施例中,在图层叠加处理过程中,计算机设备根据游戏事件动态调整图层透明度与图层显示顺序,确保图层叠加处理准确性。且在确定图层显示顺序过程中,可仅判断变化对象图层的图层显示顺序,而其他未变化对象图层的图层显示顺序则可沿用上一帧画面对应的图层显示顺序,可提高处理效率,有助于提高单帧渲染效率。
在一种可能的情况下,第i+1帧画面相较于第i帧画面中可能存在不再继续显示的渲染对象,需对该渲染对象对应的对象图层进行删除。而对于第i+1帧画面不再显示的渲染对象,在后续画面中可能需继续显示,若直接将图层进行删除,后续需显示过程中,还需再重新进行渲染,为进一步提高单帧渲染效率,对于当前停止显示的渲染对象,计算机设备可先将其对应的对象图层存储在缓存后,以便后续使用。
在确定第i+1帧画面相较于第i帧画面存在需停止显示的渲染对象时,计算机设备将第i帧画面相较于第i+1帧画面中的冗余渲染对象对应的冗余对象图层进行删除,以及将冗余对象图层存储在缓存中。其中,冗余渲染对象即指第i+1帧画面中不再显示的渲染对象。
示意性的,当用户切换画面视角后,第i帧画面中的虚拟角色A将位于画面之外,即第i+1帧画面不再显示虚拟角色A,而若后续视角重新切换回来之后,虚拟角色A可能需继续显示。因此,在处理第i+1帧画面过程中,即将虚拟角色A对应的对象图层A删除,且将对象图层A存储在缓存中,以便后续直接从缓存中获取对应的对象图层,无需再进行重新渲染。
可选的,计算机设备在第i+1帧画面相较于第i帧画面存在新增渲染对象的情况下,在缓存中查找新增渲染对象对应的新增对象图层。
由于缓存中存储有对象图层,当第i+1帧画面相较于第i帧画面存在新增渲染对象时,即可在缓存中查找是否存在新增渲染对象对应的新增对象图层,若存在,即可获取新增对象图层,若不存在,则重新渲染新增渲染对象对应的对象图层。
且在一种可能的实施方式中,计算机设备从缓存中获取的新增对象图层若与对象变化内容指示的新增渲染对象的显示状态以及显示位置等均相同,则可直接将新增对象图层确定为变化对象图层;而若显示状态不同,则仍需重新渲染,得到变化对象图层;而若显示状态相同而显示位置不同,则可对获取的新增对象图层进行图层坐标调整,得到变化对象图层。
对于缓存中存储的对象图层,若一直存储可能将持续占用缓存,因此,在一种可能的实施方式中,计算机设备在冗余对象图层的缓存时长达到缓存时限的情况下,从缓存中移除冗余对象图层。通过该种方式避免对缓存的持续占用。
进一步的,由于可能存在渲染对象仅需在虚拟环境画面中临时展示一次即可,对于该类渲染对象,在停止展示后,则无需存储在缓存中,避免对存储空间的占用。在一种可能的实施方式中,计算机设备在存储各个冗余渲染对象时,可首先判断冗余渲染对象是否为游戏进程中的重复渲染对象,当为重复渲染对象时,再将其对应的对象图层存储在缓存中。其中,重复渲染对象可由开发人员预先设置。在游戏进程中,当检测到冗余渲染对象后,确定是否属于预先设置的重复渲染对象,若是,则将其存储在缓存中。
本实施例中,对于临时不再显示的渲染对象,计算机设备可将其对应的对象图层存储在缓存中,若后续需继续显示时,可在缓存中获取对应的对象图层,避免重新渲染,有助于提高渲染效率。
在一种可能的实施方式中,画面渲染过程如图8所示,包含如下步骤:
步骤801,拆解游戏显示对象。
计算机设备可根据不同游戏事件对显示对象的影响,对游戏中显示对象进行拆解,将其拆解为多个相对独立的渲染对象。
步骤802,图层划分。
计算机设备可对上述拆解得到的各个渲染对象进行分类,并根据类型进行图层划分,得到不同对象图层。
步骤803,捕获游戏进程中的游戏事件。
在游戏启动后,计算机设备可实时获取游戏进程中的游戏事件,从而根据游戏事件判断每帧画面的变化情况。
步骤804,游戏逻辑处理。
在捕获游戏事件后,计算机设备可根据游戏事件进行游戏逻辑处理,即确定游戏事件所影响的渲染对象以及对显示画面的影响。
步骤805,分层渲染。
根据游戏事件确定对显示画面的影响之后,计算机设备对各个变化渲染对象对应的对象图层分别进行渲染,得到变化对象图层。
步骤806,叠加图层得到完整图像帧。
计算机设备根据图层显示顺序以及图层透明度,对变化对象图层与未变化对象图层进行叠加处理,得到完整图像帧。
图9是本申请一个示例性实施例提供的画面渲染装置的结构框图,如图9所示,该装置包括:
变化确定模块901,用于基于游戏进程中的游戏事件,确定第i+1帧画面相较于第i帧画面发生变化的变化渲染对象以及对象变化内容;
图层渲染模块902,用于基于所述对象变化内容,对所述变化渲染对象对应的对象图层进行渲染,得到变化对象图层,其中,不同对象图层基于所述游戏进程中不同渲染对象划分得到;
图层叠加模块903,用于对所述变化对象图层与未变化对象图层进行叠加处理,得到所述第i+1帧图像画面,所述未变化对象图层是所述第i+1帧画面与所述第i帧画面之间未发生变化的渲染对象对应的对象图层。
可选的,所述图层渲染模块902,还用于:
基于所述对象变化内容,确定图层渲染方式,其中,图层渲染方式包含图层重新渲染与图层参数调整中的至少一种;
通过所述图层渲染方式,对所述变化渲染对象对应的对象图层进行渲染,得到所述变化对象图层。
可选的,所述图层渲染模块902,还用于:
在所述变化渲染对象的显示状态发生变化的情况下,确定所述图层渲染方式为所述图层重新渲染,其中,显示状态包含显示内容与显示形态中的至少一种;
在所述变化渲染对象的显示位置发生变化的情况下,确定所述图层渲染方式为图层坐标调整;
在画面视角发生变化的情况下,确定所述图层渲染方式为图层坐标调整与图层大小调整中的至少一种。
可选的,所述图层叠加模块903,还用于:
确定所述变化对象图层与所述未变化对象图层的图层透明度以及图层显示顺序;
基于各个图层的所述图层透明度对所述图层进行透明度调整;
基于所述图层显示顺序,对透明度调整后的所述图层进行叠加处理,得到所述第i+1帧图像画面。
可选的,所述图层叠加模块903,还用于:
根据所述游戏事件确定所述变化对象图层与所述未变化对象图层的图层透明度;
根据所述游戏事件确定所述变化对象图层的所述图层显示顺序,以及根据所述第i帧画面确定所述未变化对象图层的所述图层显示顺序。
可选的,所述装置还包括:
对象拆解模块,用于根据所述游戏事件影响的显示对象,对所述游戏进程中需显示的显示对象进行拆解,得到不同渲染对象;
图层划分模块,用于基于不同渲染对象,对游戏的虚拟环境画面进行图层划分,得到不同对象图层。
可选的,所述图层划分模块,还用于:
基于各个所述渲染对象,对所述虚拟环境画面进行图层划分,得到各个所述渲染对象对应的对象图层;
或,
对不同渲染对象进行分类,得到属于不同对象类型的所述渲染对象;
基于不同对象类型,对所述虚拟环境画面进行图层划分,得到不同对象类型对应的对象图层。
可选的,不同对象类型包含背景对象类型、角色对象类型以及控件对象类型;
所述图层划分模块,还用于:
基于不同对象类型,对所述虚拟环境画面进行图层划分,得到背景对象图层、角色对象图层以及控件对象图层。
可选的,所述图层划分模块,还用于:
对所述背景对象图层进行划分,得到静态背景子图层以及动态背景子图层;
对所述角色对象图层进行划分,得到玩家角色子图层与非玩家角色子图层;
对所述控件对象图层进行划分,得到动作控件子图层与提示控件子图层。
可选的,所述装置还包括:
画面渲染模块,用于在所述游戏事件为特定游戏事件的情况下,对所述第i+1帧画面进行整体画面渲染,其中,所述特定游戏事件下的画面改变幅度大于其他游戏事件下的画面改变幅度。
可选的,所述装置还包括:
图层存储模块,用于将所述第i帧画面相较于所述第i+1帧画面中的冗余渲染对象对应的冗余对象图层进行删除,以及将所述冗余对象图层存储在缓存中;
图层查找模块,用于在所述第i+1帧画面相较于所述第i帧画面存在新增渲染对象的情况下,在所述缓存中查找所述新增渲染对象对应的新增对象图层。
可选的,所述装置还包括:
图层移除模块,用于在所述冗余对象图层的缓存时长达到缓存时限的情况下,从所述缓存中移除所述冗余对象图层。
本申请实施例中,基于游戏进程中各个渲染对象进行图层划分,得到不同的对象图层。在游戏进程中,计算机设备可根据捕获的游戏事件判断下一帧发生变化的渲染对象,从而对变化渲染对象对应的对象图层进行渲染,而未变化的对象图层则可沿用历史已渲染完成的图层,最终通过图层叠加的方式得到下一帧图像。该种方式下,可降低单帧渲染单帧图像的性能消耗,缩短渲染时长,从而可支持游戏在高帧率模式下的长时间运行,有助于提高游戏画面流畅度。
需要说明的是:上述实施例提供的装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其实现过程详见方法实施例,这里不再赘述。
请参考图10,其示出了本申请一个示例性实施例提供的计算机设备的结构示意图。具体来讲:所述计算机设备1000包括中央处理单元(Central Processing Unit,CPU)1001、包括随机存取存储器1002和只读存储器1003的系统存储器1004,以及连接系统存储器1004和中央处理单元1001的系统总线1005。所述计算机设备1000还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(Input/Output,I/O系统)1006,和用于存储操作系统1013、应用程序1014和其他程序模块1015的大容量存储设备1007。
在一些实施例中,所述基本输入/输出系统1006包括有用于显示信息的显示器1008和用于用户输入信息的诸如鼠标、键盘之类的输入设备1009。其中所述显示器1008和输入设备1009都通过连接到系统总线1005的输入输出控制器1010连接到中央处理单元1001。所述基本输入/输出系统1006还可以包括输入输出控制器1010以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1010还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1007通过连接到系统总线1005的大容量存储控制器(未示出)连接到中央处理单元1001。所述大容量存储设备1007及其相关联的计算机可读介质为计算机设备1000提供非易失性存储。也就是说,所述大容量存储设备1007可以包括诸如硬盘或者驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括随机存取记忆体(Random Access Memory,RAM)、只读存储器(Read Only Memory,ROM)、闪存或其他固态存储其技术,只读光盘(Compact Disc Read-Only Memory,CD-ROM)、数字通用光盘(Digital Versatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1004和大容量存储设备1007可以统称为存储器。
存储器存储有一个或多个程序,一个或多个程序被配置成由一个或多个中央处理单元1001执行,一个或多个程序包含用于实现上述方法的指令,中央处理单元1001执行该一个或多个程序实现上述各个方法实施例提供的方法。
根据本申请的各种实施例,所述计算机设备1000还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1000可以通过连接在所述系统总线1005上的网络接口单元1011接到网络1012,或者说,也可以使用网络接口单元1011来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本申请实施例提供的方法中由计算机设备所执行的步骤。
本申请实施例还提供一种计算机可读存储介质,该可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述任一实施例所述的画面渲染方法。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面提供的画面渲染方法。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述任一方法实施例所述的画面渲染方法。
可选地,该计算机可读存储介质可以包括:ROM、RAM、固态硬盘(Solid StateDrives,SSD)或光盘等。其中,RAM可以包括电阻式随机存取记忆体(Resistance RandomAccess Memory,ReRAM)和动态随机存取存储器(Dynamic Random Access Memory,DRAM)。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (16)

1.一种画面渲染方法,其特征在于,所述方法包括:
基于游戏进程中的游戏事件,确定第i+1帧画面相较于第i帧画面发生变化的变化渲染对象以及对象变化内容;
基于所述对象变化内容,对所述变化渲染对象对应的对象图层进行渲染,得到变化对象图层,其中,不同对象图层基于所述游戏进程中不同渲染对象划分得到;
对所述变化对象图层与未变化对象图层进行叠加处理,得到所述第i+1帧图像画面,所述未变化对象图层是所述第i+1帧画面与所述第i帧画面之间未发生变化的渲染对象对应的对象图层。
2.根据权利要求1所述的方法,其特征在于,所述基于所述对象变化内容,对所述变化渲染对象对应的对象图层进行渲染,得到变化对象图层,包括:
基于所述对象变化内容,确定图层渲染方式,其中,图层渲染方式包含图层重新渲染与图层参数调整中的至少一种;
通过所述图层渲染方式,对所述变化渲染对象对应的对象图层进行渲染,得到所述变化对象图层。
3.根据权利要求2所述的方法,其特征在于,所述基于所述对象变化内容,确定图层渲染方式,包括:
在所述变化渲染对象的显示状态发生变化的情况下,确定所述图层渲染方式为所述图层重新渲染,其中,显示状态包含显示内容与显示形态中的至少一种;
在所述变化渲染对象的显示位置发生变化的情况下,确定所述图层渲染方式为图层坐标调整;
在画面视角发生变化的情况下,确定所述图层渲染方式为图层坐标调整与图层大小调整中的至少一种。
4.根据权利要求1至3任一所述的方法,其特征在于,所述对所述变化对象图层与未变化对象图层进行叠加处理,得到所述第i+1帧图像画面,包括:
确定所述变化对象图层与所述未变化对象图层的图层透明度以及图层显示顺序;
基于各个图层的所述图层透明度对所述图层进行透明度调整;
基于所述图层显示顺序,对透明度调整后的所述图层进行叠加处理,得到所述第i+1帧图像画面。
5.根据权利要求4所述的方法,其特征在于,所述确定所述变化对象图层与所述未变化对象图层的图层透明度以及图层显示顺序,包括:
根据所述游戏事件确定所述变化对象图层与所述未变化对象图层的图层透明度;
根据所述游戏事件确定所述变化对象图层的所述图层显示顺序,以及根据所述第i帧画面确定所述未变化对象图层的所述图层显示顺序。
6.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
根据所述游戏事件影响的显示对象,对所述游戏进程中需显示的显示对象进行拆解,得到不同渲染对象;
基于不同渲染对象,对游戏的虚拟环境画面进行图层划分,得到不同对象图层。
7.根据权利要求6所述的方法,其特征在于,所述基于不同渲染对象,对游戏的虚拟环境画面进行图层划分,得到不同对象图层,包括:
基于各个所述渲染对象,对所述虚拟环境画面进行图层划分,得到各个所述渲染对象对应的对象图层;
或,
对不同渲染对象进行分类,得到属于不同对象类型的所述渲染对象;
基于不同对象类型,对所述虚拟环境画面进行图层划分,得到不同对象类型对应的对象图层。
8.根据权利要求7所述的方法,其特征在于,不同对象类型包含背景对象类型、角色对象类型以及控件对象类型;
所述基于不同对象类型,对所述虚拟环境画面进行图层划分,得到不同对象类型对应的对象图层,包括:
基于不同对象类型,对所述虚拟环境画面进行图层划分,得到背景对象图层、角色对象图层以及控件对象图层。
9.根据权利要求8所述的方法,其特征在于,所述对所述虚拟环境画面进行图层划分,得到背景对象图层、角色对象图层以及控件对象图层之后,所述方法还包括:
对所述背景对象图层进行划分,得到静态背景子图层以及动态背景子图层;
对所述角色对象图层进行划分,得到玩家角色子图层与非玩家角色子图层;
对所述控件对象图层进行划分,得到动作控件子图层与提示控件子图层。
10.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
在所述游戏事件为特定游戏事件的情况下,对所述第i+1帧画面进行整体画面渲染,其中,所述特定游戏事件下的画面改变幅度大于其他游戏事件下的画面改变幅度。
11.根据权利要求1至3任一所述的方法,其特征在于,所述根据所述触发事件确定第i+1帧画面相较于第i帧画面发生变化的变化渲染对象以及对象变化内容之后,所述方法还包括:
将所述第i帧画面相较于所述第i+1帧画面中的冗余渲染对象对应的冗余对象图层进行删除,以及将所述冗余对象图层存储在缓存中;
在所述第i+1帧画面相较于所述第i帧画面存在新增渲染对象的情况下,在所述缓存中查找所述新增渲染对象对应的新增对象图层。
12.根据权利要求11所述的方法,其特征在于,所述将所述冗余对象图层存储在缓存中之后,所述方法还包括:
在所述冗余对象图层的缓存时长达到缓存时限的情况下,从所述缓存中移除所述冗余对象图层。
13.一种画面渲染装置,其特征在于,所述装置包括:
变化确定模块,用于基于游戏进程中的游戏事件,确定第i+1帧画面相较于第i帧画面发生变化的变化渲染对象以及对象变化内容;
图层渲染模块,用于基于所述对象变化内容,对所述变化渲染对象对应的对象图层进行渲染,得到变化对象图层,其中,不同对象图层基于所述游戏进程中不同渲染对象划分得到;
图层叠加模块,用于对所述变化对象图层与未变化对象图层进行叠加处理,得到所述第i+1帧图像画面,所述未变化对象图层是所述第i+1帧画面与所述第i帧画面之间未发生变化的渲染对象对应的对象图层。
14.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一段程序,所述至少一段程序由所述处理器加载并执行以实现如权利要求1至12任一所述的画面渲染方法。
15.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有至少一段程序,所述至少一段程序由处理器加载并执行以实现如权利要求1至12任一所述的画面渲染方法。
16.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中,计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令以实现如权利要求1至12任一所述的画面渲染方法。
CN202211522911.1A 2022-11-30 2022-11-30 画面渲染方法、装置、设备、存储介质及程序产品 Pending CN117205549A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211522911.1A CN117205549A (zh) 2022-11-30 2022-11-30 画面渲染方法、装置、设备、存储介质及程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211522911.1A CN117205549A (zh) 2022-11-30 2022-11-30 画面渲染方法、装置、设备、存储介质及程序产品

Publications (1)

Publication Number Publication Date
CN117205549A true CN117205549A (zh) 2023-12-12

Family

ID=89046743

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211522911.1A Pending CN117205549A (zh) 2022-11-30 2022-11-30 画面渲染方法、装置、设备、存储介质及程序产品

Country Status (1)

Country Link
CN (1) CN117205549A (zh)

Similar Documents

Publication Publication Date Title
CN111701238B (zh) 虚拟画卷的显示方法、装置、设备及存储介质
US20190275429A1 (en) Information processing method and apparatus and server
US8957858B2 (en) Multi-platform motion-based computer interactions
JP7451563B2 (ja) 仮想キャラクタの制御方法並びにそのコンピュータ機器、コンピュータプログラム、及び仮想キャラクタの制御装置
US20230050933A1 (en) Two-dimensional figure display method and apparatus for virtual object, device, and storage medium
WO2023093465A1 (zh) 赛事直播的显示方法、装置、设备及存储介质
CN112402960B (zh) 虚拟场景中状态切换方法、装置、设备及存储介质
JP7447296B2 (ja) 仮想道具のインタラクティブ処理方法、装置、電子機器及びコンピュータプログラム
WO2022184128A1 (zh) 虚拟对象的技能释放方法、装置、设备及存储介质
US20230078440A1 (en) Virtual object control method and apparatus, device, storage medium, and program product
TW202224739A (zh) 虛擬場景中的資料處理方法、裝置、設備、儲存媒體及程式產品
CN113856200A (zh) 一种画面显示方法、装置、电子设备及可读存储介质
KR20230053719A (ko) 멀티플레이어 게임에서 장거리 객체의 타겟팅 개선
US20230048826A1 (en) Virtual scene display method and apparatus, device, storage medium, and program product
CN117205549A (zh) 画面渲染方法、装置、设备、存储介质及程序产品
WO2023071808A1 (zh) 基于虚拟场景的图形显示方法、装置、设备以及介质
WO2023066003A1 (zh) 虚拟对象的控制方法、装置、终端、存储介质及程序产品
CN114307150B (zh) 虚拟对象之间的互动方法、装置、设备、介质及程序产品
CN113018862B (zh) 虚拟对象的控制方法、装置、电子设备及存储介质
CN114130022A (zh) 虚拟场景的画面显示方法、装置、设备、介质及程序产品
WO2024060924A1 (zh) 虚拟场景的互动处理方法、装置、电子设备及存储介质
WO2024032176A1 (zh) 虚拟道具的处理方法、装置、电子设备、存储介质及程序产品
JP7492611B2 (ja) バーチャルシーンにおけるデータ処理方法、装置、コンピュータデバイス、及びコンピュータプログラム
CN113599829B (zh) 虚拟对象的选择方法、装置、终端及存储介质
WO2023231557A9 (zh) 虚拟对象的互动方法、装置、设备、存储介质及程序产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication