CN114042312A - 一种角色皮肤绘制方法、系统、电子设备 - Google Patents
一种角色皮肤绘制方法、系统、电子设备 Download PDFInfo
- Publication number
- CN114042312A CN114042312A CN202111261002.2A CN202111261002A CN114042312A CN 114042312 A CN114042312 A CN 114042312A CN 202111261002 A CN202111261002 A CN 202111261002A CN 114042312 A CN114042312 A CN 114042312A
- Authority
- CN
- China
- Prior art keywords
- role
- character
- skin
- priority
- command buffer
- 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
Links
Images
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本申请公开了一种角色皮肤绘制方法、系统、电子设备,涉及游戏渲染的技术领域。该方法包括:角色绘制完成后,使用Command Buffer再次绘制角色皮肤区域,再次绘制包括:对绘制完成的角色皮肤区域叠加次表面散射效果。本申请解决了在角色皮肤渲染时,游戏场景显示容易出现迟滞的技术问题。
Description
技术领域
本申请涉及游戏渲染的技术领域,尤其是涉及一种角色皮肤绘制方法、系统、电子设备。
背景技术
目前,在游戏角色的皮肤渲染上,核心的内容是皮肤次表面散射,而为了做到这一点,目前较为流行的手段大概分为两类:1、基于屏幕空间的次表面散射;2、基于微积分的PreIntegrate渲染技术。
屏幕空间的方法类似于图像空间的方法,只是计算irradiance时输出的位置不是UV坐标而是模型的投影坐标,此外还需要将屏幕空间中属于皮肤的材质的像素用stencilbuffer标记出来,然后对标记出的皮肤材质进行若干次卷积操作,卷积核的权重由diffusion profile确定,卷积核的大小则需要根据当前像素的深度(d(x,y))及其导数(dFdx(d(x,y))和dFdy(d(x,y))来确定。
在实现本申请过程中,发明人发现现有技术中至少存在如下问题:现有对每个游戏角色在屏幕空间的方法进行次表面散射计算,导致需要大量的运算,从而有可能超出目前普通显示卡GPU的运算能力的上限,使得显示卡的绘制速度降低,导致游戏在屏幕上所显示的画面出现迟滞的现象。
发明内容
为此,本申请的实施例提供了一种角色皮肤绘制方法、系统、电子设备,能够解决在角色皮肤渲染时,游戏场景显示容易出现迟滞的技术问题,具体技术方案内容如下:
第一方面,本申请的实施例提供一种角色皮肤绘制方法,所述方法包括:
角色绘制完成后,使用Command Buffer再次绘制角色皮肤区域,再次绘制包括:对绘制完成的角色皮肤区域叠加次表面散射效果。
通过采用上述技术方案,将角色皮肤的次表面散射计算使用Command Buffer进行绘制,将角色次表面皮肤信息由屏幕空间简化到Command Buffer中,一般场景中皮肤区域的像素占比很小,绘制计算量比整个屏幕空间计算量要小,优化了移动端的性能和游戏效果,减少游戏在屏幕上显示的画面出现迟滞的现象。
优选的,所述使用Command Buffer再次绘制角色皮肤区域包括:
设置角色优先级;
根据角色优先级采用Command Buffer再次绘制角色皮肤区域。
通过采用上述技术方案,根据角色优先级进行渲染,优先渲染重要角色,提高用户体验。
优选的,所述根据角色优先级采用Command Buffer再次绘制角色皮肤区域包括:根据角色皮肤的优先级在Command Buffer中依次对角色皮肤进行次表面散射计算。
通过采用上述技术方案,根据角色优先级来绘制角色皮肤区域,减少同一时刻一次绘制的计算量,进一步减少角色皮肤效果绘制对设备资源的占用量,从而优化了移动端的性能和游戏效果的表现,减少游戏在屏幕上显示的画面出现迟滞的现象。
优选的,所述使用Command Buffer再次绘制角色皮肤区域包括:
设置多个Command Buffer,将多个角色皮肤次表面散射计算采用多个CommandBuffer并行计算。通过采用上述技术方案,采用多个Command Buffer并行进行游戏角色渲染,减少游戏场景中同一帧出现的角色渲染的时延,实现较优的游戏场景渲染效果。
优选的,所述使用Command Buffer再次绘制角色皮肤区域包括:
获取当前的GPU可用内存;
若当前的GPU可用内存低于当前所有角色皮肤区域次表面散射所需的内存,依次采用Command Buffer计算角色皮肤次表面散射计算;
若当前的GPU可用内存充足,设置多个Command Buffer,设置多个CommandBuffer,将多个角色皮肤次表面散射计算采用多个Command Buffer并行计算。
通过采用上述技术方案,根据GPU内存选择Command Buffer处理方案,在当前的GPU可用内存较少的情况下,采用根据角色优先级向Command Buffer内依次计算角色皮肤次表面散射计算的串行处理角色皮肤渲染次序的方式,减少了GPU发生溢出的情况;在当前的GPU可用内存较多的时候,采用多个Command Buffer并行计算角色皮肤次表面散射的方式,实现较优的渲染场景,从而实现设备性能与渲染效果均衡的效果。
优选的,所述角色优先级的设置方法为:
获取角色属性,所述角色属性包括主角色、主角色的对手、主角色的队友以及NPC;
根据角色属性确定角色的角色优先级。
通过采用上述技术方案,根据角色属性的不同,来划分角色优先级,实现精细化控制的效果。
优选的,当角色与屏幕距离超过设定的角色皮肤效果最大显示距离时,不对该角色的皮肤区域进行再次绘制。
通过采用上述技术方案,可以有效减少角色皮肤次表面散射的计算量,进一步优化了移动端的性能和游戏效果的表现,减少游戏在屏幕上显示的画面出现迟滞的现象。
第二方面,本申请的实施例提供一种角色次表面分离系统,所述系统包括:
计算模块,用于角色绘制完成后,使用Command Buffer再次绘制角色皮肤区域,再次绘制包括:对绘制完成的角色皮肤区域叠加次表面散射效果。
第三方面,本申请的实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器中并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述任意一项所述的角色皮肤绘制方法的步骤。
第四方面,本申请的实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述任意一项所述的角色皮肤绘制方法的步骤。
综上所述,与现有技术相比,本申请实施例提供的技术方案带来的有益效果至少包括:
1、将角色皮肤的次表面散射计算使用Command Buffer进行绘制,将角色次表面皮肤信息由屏幕空间简化到Command Buffer中,一般场景中皮肤区域的像素占比很小,这样绘制计算量比整个屏幕空间计算量要小,优化了移动端的性能和游戏效果的表现,减少游戏在屏幕上显示的画面出现迟滞的现象;
2、根据角色优先级来依次绘制角色皮肤区域,减少同一时刻一次绘制的计算量,进一步减少角色皮肤效果绘制对设备资源的占用量,从而优化了移动端的性能和游戏效果的表现,减少游戏在屏幕上显示的画面出现迟滞的现象;
3、根据GPU内存选择Command Buffer处理方案,在当前的GPU可用内存较少的情况下,采用在command buffer根据角色优先级依次进行角色次表面散射计算的方式,减少了GPU发生溢出的情况;在当前的GPU可用内存较多的时候,采用多个Command Buffer并行计算角色皮肤次表面散射的方式,实现较优的渲染场景,实现设备性能与渲染效果均衡的效果。
附图说明
图1是本申请实施例一提供的角色皮肤绘制方法的流程示意图。
图2是本申请实施例一中另一实施方式提供的角色皮肤绘制方法的流程示意图之一。
图3是本申请实施例一中另一实施方式提供的角色皮肤绘制方法的流程示意图之二。
图4是本申请实施例一中另一实施方式提供的角色皮肤绘制方法的流程示意图之三。
图5是本申请实施例一提供的角色皮肤绘制系统的结构示意图。
图6是本申请实施例一提供的电子设备的结构示意图。
图7是本申请实施例二提供的角色皮肤绘制方法的流程示意图。
图8是本申请实施例三提供的角色皮肤绘制方法的流程示意图。
具体实施方式
本具体实施例仅仅是对本申请的解释,其并不是对本申请的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本申请的权利要求范围内都受到专利法的保护。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。
下面结合说明书附图对本申请实施例作进一步详细描述。
实施例一
参照图1,在本申请的一个实施例中,提供一种角色皮肤绘制方法,所述方法的主要步骤描述如下:
S0:角色绘制完成后,使用Command Buffer再次绘制角色皮肤区域,再次绘制包括:对绘制完成的角色皮肤区域叠加次表面散射效果。
次表面散射(Subsurface Scattering)简称3S,是光射入非金属材质后再内部发生次表面散射,最后射出物体并进入视野中产生的现象,是指光从表面进入物体经过内部散射,然后又通过物体表面的其他顶点出射的光线传递过程。具体的,Command Buffer为命令缓冲区,Command Buffer携带一系列的渲染命令,依赖相机,用来拓展渲染管线的渲染效果,Command Buffer可以用于在相机渲染的某个阶段,再另外执行自己的额外渲染,而且可以指定在相机渲染的某个点执行本身的拓展渲染。
可分离的皮肤次表面散射计算可独立设置于Command Buffer进行。
在角色皮肤渲染的时候,将角色次表面皮肤信息由屏幕空间简化到CommandBuffer中,一般场景中皮肤区域的像素占比很小,绘制计算量比整个屏幕空间计算量要小,优化了移动端的性能和游戏的表现效果,减少游戏在屏幕上显示的画面出现迟滞的现象。
其次,在Command Buffer进行皮肤次表面散射计算,使在进行皮肤渲染时减少其他部分,比如靠近皮肤头发、服饰等的模拟光线结果的影响,使角色的渲染效果较为统一,不易出现因其他光线计算的影响,而导致角色皮肤效果产生突变的情况。
参照图2,可选的,在另一实施方式中,使用Command Buffer再次绘制角色皮肤区域包括:
S1:设置角色优先级;
S2:根据角色优先级采用Command Buffer再次绘制角色皮肤区域。
具体的,在本实施方式中,角色皮肤设置角色优先级的方式可以为根据当前屏幕中角色距离主光源的距离划分角色优先级,越靠近主光源的角色优先级越高。比如,在当前场景中存在有A、B、C三个角色,A距离主光源的距离为a,B距离主光源的距离为b,C距离主光源的距离为c,a>b>c,则角色优先级A>B>C,在进行角色皮肤渲染时,优先进行A角色的皮肤次表面计算,再进行B角色、C角色的皮肤次表面散射计算。
可选的,在另一实施方式中,在各个角色皮肤数据中存储有对应的皮肤效果参数,如皮肤模糊范围参数,在采用Command Buffer进行渲染时,读取角色皮肤数据中存储皮肤效果参数,即可精确控制每个角色的皮肤效果强弱。
通过划分角色优先级,根据角色皮肤的重要程度对角色皮肤进行次表面散射计算,角色优先级按照角色的重要程度进行划分,用户观看游戏场景时,注意力常常会关注到重要的角色,比如靠近主光源处的角色,且靠近主光源处的角色接收到的光照按常理来说更多,所以皮肤次表面散射渲染效果会比距离主光源较远的角色的渲染效果更优,且也更容易被用户视线看见,在进行角色渲染的时候,先进行重要的角色渲染,在用户的视角下,画面渲染较为流畅,不易出现卡顿的情况。
参照图3,可选的,在另一实施方式中,步骤S2的具体实现方式为S21:
S21:根据角色优先级在Command Buffer中依次对角色皮肤进行次表面散射计算。
具体的,在本实施例中,将角色皮肤次表面散射计算数据采用Command Buffer计算的方式为按照角色优先级的高低,由高至低依次采用Command Buffer计算,从而在渲染的时候,对用户视角容易先注意到的角色皮肤先进行渲染,次注意到的角色皮肤后进行渲染,通过先后渲染的方式,达到在占用GPU资源较少的情况下,使用户对游戏场景的体验感较好,降低游戏设备处理器的处理压力,减少GPU溢出的情况发生。
可选的,在另一实施方式中,角色优先级的设置方法为:
1、获取角色属性,所述角色属性包括主角色、主角色的对手、主角色的队友以及NPC;
2、根据角色属性确定角色的角色优先级。
具体的,根据角色属性确定角色的角色优先级进一步包括以下情况:
对于拥有相同角色属性的角色,根据角色对应的状态信息划分角色优先级;
对于拥有不同角色属性的角色,根据当前角色与主角色的交互状态划分角色优先级。
以下是其中的一些示例:
若几个角色的角色属性均为主角色,则这几个角色拥有相同的角色属性,此时这几个角色对应的状态信息包括攻击状态以及非攻击状态,处于攻击状态下的主角色的优先级高于处于非攻击状态下的主角色。另外,主角色对应的状态信息不限于此,在此不在赘述。
若几个角色的角色属性均为主角色的对手,则这几个角色拥有相同的角色属性,此时这几个角色对应的状态信息包括攻击状态以及非攻击状态,处于攻击状态下的主角色的对手的优先级高于处于非攻击状态下的主角色的对手。另外,主角色的对手对应的状态信息不限于此,在此不在赘述。
若几个角色的角色属性均为主角色的队友,则这几个角色拥有相同的角色属性,此时这几个角色对应的状态信息包括主角色的队友与主角色的空间距离值以及主角色当前状态,主角色当前状态包括攻击状态以及非攻击状态;当主角色处于攻击状态,主角色的队友与主角色的空间距离值越小,主角色的队友的角色优先级越低;当主角色处于非攻击状态,主角色的队友与主角色的空间距离值越小,主角色的队友的角色优先级越高。另外,主角色的队友对应的状态信息不限于此,在此不在赘述。
若几个角色的角色属性均为NPC,则这几个角色拥有相同的角色属性,此时这几个角色对应的状态信息包括NPC距离屏幕的空间距离,NPC与屏幕距离越近,角色优先级越高。另外,NPC对应的状态信息不限于此,在此不在赘述。
具体的,在本实施方式中,主角色的角色优先级高于其他角色,其余游戏角色的角色优先级根据如上述方法设置;在其他实施方式中,角色属性也可以包括非主角色的队友及主角色的对手玩家等,本申请角色属性的范围并不限定于本实施方式举例的类型。
在角色的角色属性不同的情况下,主角色的优先级最高,其他角色根据当前角色与主角色的交互状态划分角色优先级,当前角色与主角色的交互状态包括互动状态以及非互动状态。
互动状态包括即时互动状态以及持续互动状态。即时互动状态为当前时刻正在进行信息交互的状态,比如攻击状态、对话状态;持续互动状态为长时间关联的状态,比如游戏场景中的跟随状态、组队状态等。在游戏场景中,在互动状态下,处于即时互动状态的角色的角色优先级高于处于持续互动状态的角色的角色优先级;而在即时互动状态下的角色的角色优先级则根据当前角色占据的屏幕面积判断,当前角色占用的屏幕面积越大,角色优先级越高。处于持续互动状态的角色的角色优先级也根据当前角色占据的屏幕面积判断,当前角色占用的屏幕面积越大,角色优先级越高。处于互动状态的角色的角色优先级高于处于非互动状态下的角色的角色优先级,多个处于非互动状态的角色的角色优先级根据当前角色占据的屏幕面积判断,当前角色占用的屏幕面积越大,角色优先级越高;当持续互动状态与即时互动状态并存时,根据即时互动状态设置角色优先级。
举例说明:当待渲染数据帧存在8个角色,分别包括2个主角色、2个主角色的对手、2个主角色的队友以及2个NPC;主角色包括A、B,主角色的对手包括C、D,主角色的队友包括E、F,NPC包括G、H。在当前待渲染的数据帧中,A处于攻击状态,B处于非攻击状态,则A的角色优先级高于B的角色优先级;C处于攻击状态,D处于非攻击状态,所以C的角色优先级高于D的角色优先级,C与A处于即时互动状态,D处于非互动状态;此时A处于攻击状态,对于E与A的空间距离值大于F与A的空间距离值,所以E的角色优先级大于F的角色优先级,F与B处于即时互动状态,E、F均与A、B处于持续互动状态;G与屏幕的距离小于H与屏幕的距离,所以G的角色优先级高于H的角色优先级,G与B处于即时互动状态,H为非互动状态。C占屏幕面积大于G,H占屏幕面积大于D,G占屏幕面积大于F,所以角色优先级排序为:A>B>C>G>E>F>H>D,具体逻辑为,A为主角色且处于攻击状态,所以A的角色优先级最高,B为主角色所以B的角色优先级低于A高于其他角色;C与A处于即时交互状态,F与B处于即时交互状态,G与B处于即时交互状态,基于占屏幕面积大小,C、F、G的优先级为C>G>F;而E处于持续互动状态,C处于即时交互状态,所以C的角色优先级高于E;G处于即时交互状态,所以G的角色优先级高于E;F处于即时交互状态,所以F的角色优先级高于H;E处于持续互动状态,所以E的角色优先级高于H;因为H占屏幕面积大于D,所以H的角色优先级高于D。
需要说明的是,本申请确定角色优先级的方法不限于此,比如还可以预先设置不同角色属性的角色之间的角色优先级次序,主角色>主角色的对手>主角色的队友>NPC,仅进行相同角色属性的角色之间的角色优先级判断,不同角色属性的角色之间的角色优先级次序也不限于本实施方式的举例。
参照图4,可选的,在另一实施方式中,角色皮肤绘制方法还包括S3:
S3:当角色与屏幕距离超过设定的角色皮肤效果最大显示距离时,不对该角色的皮肤区域进行再次绘制。
具体的,在本实施方式中,通过采用上述技术方案,减少设备渲染时的计算量,进而减少用户移动终端显示画面的卡顿,提高用户体验。在本实施方式中,由于角色皮肤次表面散射计算是在Command Buffer中进行,独立于其他场景渲染外,因而开启、关闭均比较容易,对其他场景渲染影响较低。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
参照图5,在本申请的一个实施例中,提供一种角色次表面分离系统,该角色次表面分离系统与上述实施例中的角色皮肤绘制方法一一对应。该角色次表面分离系统包括:
计算模块,用于角色绘制完成后,使用Command Buffer再次绘制角色皮肤区域,再次绘制包括:对绘制完成的角色皮肤区域叠加次表面散射效果。
进一步的,在另一实施方式中,计算模块还包括优先级设置子模块以及渲染子模块。
优先级设置子模块用于设置角色优先级;
渲染子模块用于采用Command Buffer再次绘制角色皮肤区域,采用CommandBuffer再次绘制角色皮肤区域根据角色优先级进行。
进一步的,在另一实施方式中,所述根据角色优先级采用Command Buffer再次绘制角色皮肤区域包括:根据角色皮肤的优先级在Command Buffer中依次对角色皮肤进行次表面散射计算。
进一步的,在另一实施方式中,角色优先级的设置方法为:
1、获取角色属性,所述角色属性包括主角色、主角色的对手、主角色的队友以及NPC;
2、根据角色属性确定角色的角色优先级。
具体的,根据角色属性确定角色的角色优先级包括以下情况:
对于拥有相同角色属性的角色,根据角色对应的状态信息划分角色优先级;
对于拥有不同角色属性的角色,根据当前角色与主角色的交互状态划分角色优先级。
进一步的,在另一实施方式中,系统还包括控制模块。
控制模块用于当角色与屏幕距离超过设定的角色皮肤效果最大显示距离时,不对该角色的皮肤区域进行再次绘制。
上述的皮肤次表面分离系统各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于电子设备中的处理器中,也可以以软件形式存储于电子设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
参照图6,在本申请实施例的一个实施例中,提供一种电子设备,该电子设备可以是服务器。该电子设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,易失性或非易失性存储设备包括但不限于:磁盘,光盘,EEPROM(Electrically-Erasable Programmable Read Only Memory,电可擦除可编程只读存储器),EPROM(Erasable Programmable Read Only Memory,可擦除可编程只读存储器),SRAM(Static Random Access Memory,静态随时存取存储器),ROM(Read-OnlyMemory,只读存储器),磁存储器,快闪存储器,PROM(Programmable Read-Only Memory,可编程只读存储器)。该电子设备的存储器为存储于其内部的操作系统和计算机程序的运行提供环境。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现上述实施例所述的数据处理方法步骤。
在本申请的一个实施例中,提供了一种计算机可读存储介质,需要说明的是,在本申请中,计算机可读存储介质也可称为可读存储介质,计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例所述的角色皮肤绘制方法步骤。所述计算机可读存储介质包括ROM(Read-Only Memory,只读存储器)、RAM(Random-AccessMemory,随机存取存储器)、CD-ROM(Compact Disc Read-Only Memory,只读光盘)、磁盘、软盘等。
实施例二
本实施与实施例一的区别在于,使用Command Buffer再次绘制角色皮肤区域的具体实现方式不同。
参照图7,在本实施例中,使用Command Buffer再次绘制角色皮肤区域具体为:
S1:设置多个Command Buffer,将多个角色皮肤次表面散射计算采用多个CommandBuffer并行计算。
在实际游戏场景渲染的过程中,当角色绘制完成后,采用并行Command Buffer实现多个游戏角色皮肤同时渲染,对于整体场景渲染的效果而言,渲染效果更优,场景中各角色的皮肤效果同时渲染,减少场景画面渲染不同步而导致画面渲染部分延迟的情况。
具体的,在另一实施方式中,多个角色皮肤次表面散射计算采用多个CommandBuffer时,可根据角色优先级设置不同的角色皮肤次表面散射计算与不同的CommandBuffer的对应关系:
多个所述Command Buffer根据其占用GPU内存的不同,由占用GPU内存多至少顺序排序,按照角色优先级将优先级高的角色皮肤次表面散射计算采用GPU内存占用高的Command Buffer进行计算,匹配角色优先级与Command Buffer的逻辑为按照角色优先级与Command Buffer的排序将角色皮肤次表面散射计算分配至对应的Command Buffer进行计算。
GPU(graphics processing unit,图形处理器),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。具体的,在本实施方式中,在设备比如服务器内预设多个Command Buffer,Command Buffer占用的内存大小可相同也可不同,在本实施方式中,多个Command Buffer占用的内存大小设置相同。
在本实施例中,Command Buffer的数量设置逻辑有以下方式:1、Command Buffer的数量根据当前渲染的数据帧中需要进行皮肤次表面散射计算的角色的数量设置。2、根据当前渲染的数据帧中的角色优先级的级数设置,具体可以为预先设置角色对应的角色优先级的数量,将不同角色之间的角色优先级预先设置好,然后关联角色优先级与对应的Command Buffer,将对应的角色导入其对应的Command Buffer中进行计算。3、固定设置若干个Command Buffer,按照角色优先级将角色皮肤次表面散射计算依次导入CommandBuffer;当某一Command Buffer处理完成,按照角色优先级将未渲染的角色皮肤次表面散射计算导入Command Buffer;当多个Command Buffer同时处理完成,按照角色优先级与Command Buffer的排序将角色皮肤次表面散射计算分配至对应的Command Buffer进行计算。在本申请的其他实施方式中,可以有其他的设置Command Buffer数量的逻辑,本实施例列举的示例并不看作对本申请其他实施方式的限制。
将多个Command Buffer预设在调用的时候占用的GPU内存大小不同,则CommandBuffer的处理能力不同。将角色优先级高的角色皮肤次表面散射计算采用占用GPU内存多的Command Buffer中进行计算,将角色皮肤次表面散射计算按照角色优先级与CommandBuffer的排序协调角色皮肤次表面散射计算调用的Command Buffer,实现资源合理分配的效果,在有限的GPU内容下,实现角色优先级高的角色采用较多的资源进行渲染,渲染速度快、且渲染效果好,同时,设置多个Command Buffer,并行处理角色皮肤次表面散射计算,使游戏场景的渲染效果更优,且游戏画面不易产生卡顿。
在本申请的一个实施例中,一种角色次表面分离系统中的渲染子模块包括调用单元以及匹配单元。
调用单元用于设置多个Command Buffer,将多个角色皮肤次表面散射计算采用多个Command Buffer并行计算;
匹配单元用于按照角色优先级将优先级高的角色皮肤次表面散射计算匹配GPU内存占用高的Command Buffer,匹配角色优先级与Command Buffer的逻辑为按照角色优先级与Command Buffer的排序将角色皮肤次表面散射计算分配至对应的Command Buffer进行计算。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例三
本实施与实施例一的区别在于,使用Command Buffer再次绘制角色皮肤区域的具体实现方式不同。
参照图8,在本实施例中,使用Command Buffer再次绘制角色皮肤区域的具体实现方式为:
S11:获取当前的GPU可用内存;
S12:若当前的GPU可用内存低于当前所有角色皮肤区域次表面散射所需的内存,依次采用Command Buffer计算角色皮肤次表面散射计算;
S13:若当前的GPU可用内存充足,设置多个Command Buffer,将多个角色皮肤次表面散射计算采用多个Command Buffer并行计算。
在当前的GPU可用内存低于当前所有角色皮肤区域次表面散射所需的内存,将当前需要渲染的角色依次采用Command Buffer计算,从而降低GPU发生溢出的可能性;进一步的,在其他实施方式中,可以根据角色优先级依次采用Command Buffer计算角色皮肤次表面散射;更进一步的,在其他实施方式中,可以根据当前的GPU可用内存设置角色的集合,角色的集合由计算所需内存小于当前的GPU可用内存的角色组合形成,在进行渲染时,优先采用角色的集合内的角色渲染。角色的集合内的角色皮肤按照实施例一中角色优先级设置方法设置,通过采用此技术方案,在GPU可用内存较少的情况下,尽可能实现重要角色皮肤的渲染,且也减少GPU溢出的情况。
举例说明:当待渲染的数据帧中存在有5个角色时,该5个角色的优先级分别为1级、2级、3级、4级、5级,1级的优先级高于2级,以此类推。当前的GPU可用内存为3%,可知1级、3级、5级对应的角色进行皮肤次表面散射计算所需的GPU内存小于3%,2级、4级对应的角色进行皮肤次表面散射计算所需的GPU内存大于3%,则角色的集合由1级、3级、5级对应的角色组成,在角色的集合内的角色优先级则是1级>3级>5级,在GPU可用的内存低于3%的时间段内,按照角色优先级优先渲染角色的集合内的角色,即先渲染1级对应的角色,然后渲染3级对应的角色,最后渲染5级对应的角色,暂停对角色的集合外的角色进行渲染。
在当前的GPU内存可用的情况下,采用多个Command Buffer并行渲染,使渲染结果更优,且游戏场景不易发生卡顿情况。
在实际游戏场景渲染的过程中,采用并行Command Buffer实现多个游戏角色皮肤同时渲染,对于整体场景渲染的效果而言,渲染效果更优,场景中各角色的皮肤效果同时渲染,减少场景画面渲染不同步而导致画面渲染部分延迟的情况。
在本申请的一个实施例中,一种角色次表面分离系统中的渲染子模块包括调用、排序单元,和信息获取单元、第一计算单元以及第二计算单元。
信息获取单元用于获取当前的GPU可用内存;
第一计算单元用于若当前的GPU可用内存低于当前所有角色皮肤区域次表面散射所需的内存,根据当前的GPU可用内存设置角色优先级,根据角色皮肤的优先级在CommandBuffer中依次对角色皮肤进行次表面散射计算;
调用、排序单元用于设置多个Command Buffer,多个所述Command Buffer根据其占用GPU内存的不同,由占用GPU内存多至少顺序排序;
第二计算单元用于若当前的GPU可用内存充足,将多个角色皮肤次表面散射计算采用多个Command Buffer并行计算。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将本申请所述系统的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
Claims (10)
1.一种角色皮肤绘制方法,其特征在于,所述方法包括:
角色绘制完成后,使用Command Buffer再次绘制角色皮肤区域,再次绘制包括:对绘制完成的角色皮肤区域叠加次表面散射效果。
2.根据权利要求1所述的角色皮肤绘制方法,其特征在于,所述使用Command Buffer再次绘制角色皮肤区域包括:
设置角色优先级;
根据角色优先级采用Command Buffer再次绘制角色皮肤区域。
3.根据权利要求2所述的角色皮肤绘制方法,其特征在于,所述根据角色优先级采用Command Buffer再次绘制角色皮肤区域包括:
根据角色优先级在Command Buffer中依次对角色皮肤进行次表面散射计算。
4.根据权利要求1或2所述的角色皮肤绘制方法,其特征在于,所述使用CommandBuffer再次绘制角色皮肤区域包括:
设置多个Command Buffer,将多个角色皮肤次表面散射计算采用多个Command Buffer并行计算。
5.根据权利要求1或2所述的角色皮肤绘制方法,其特征在于,所述使用CommandBuffer再次绘制角色皮肤区域包括:
获取当前的GPU可用内存;
若当前的GPU可用内存低于当前所有角色皮肤区域次表面散射所需的内存,依次采用Command Buffer计算角色皮肤次表面散射计算;
若当前的GPU可用内存充足,设置多个Command Buffer,将多个角色皮肤次表面散射计算采用多个Command Buffer并行计算。
6.根据权利要求2所述的角色皮肤绘制方法,其特征在于,所述角色优先级的设置方法为:
获取角色属性,所述角色属性包括主角色、主角色的对手、主角色的队友以及NPC;
根据角色属性确定角色的角色优先级。
7.根据权利要求1所述的角色皮肤绘制方法,其特征在于,所述方法还包括:当角色与屏幕距离超过设定的角色皮肤效果最大显示距离时,不对该角色的皮肤区域进行再次绘制。
8.一种角色次表面分离系统,其特征在于,所述系统包括:
计算模块,用于角色绘制完成后,使用Command Buffer再次绘制角色皮肤区域,再次绘制包括:对绘制完成的角色皮肤区域叠加次表面散射效果。
9.一种电子设备,其特征在于,包括存储器、处理器以及存储在所述存储器中并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1-7任意一项所述的角色皮肤绘制方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任意一项所述的角色皮肤绘制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111261002.2A CN114042312A (zh) | 2021-10-27 | 2021-10-27 | 一种角色皮肤绘制方法、系统、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111261002.2A CN114042312A (zh) | 2021-10-27 | 2021-10-27 | 一种角色皮肤绘制方法、系统、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114042312A true CN114042312A (zh) | 2022-02-15 |
Family
ID=80206309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111261002.2A Pending CN114042312A (zh) | 2021-10-27 | 2021-10-27 | 一种角色皮肤绘制方法、系统、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114042312A (zh) |
-
2021
- 2021-10-27 CN CN202111261002.2A patent/CN114042312A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3657327B1 (en) | Method for rendering game, and method, apparatus and device for generating game resource file | |
US9474972B2 (en) | Gaming machine transitions | |
KR100452089B1 (ko) | 게임 화면을 갱신하기 위한 오브젝트를 로딩하는 이미지리소스 로딩 시스템 및 이미지 리소스 로딩 방법 | |
CN111737019B (zh) | 一种显存资源的调度方法、装置及计算机存储介质 | |
CN104200506A (zh) | 三维gis海量矢量数据渲染方法及装置 | |
CN110286992A (zh) | 界面图形重绘的方法及装置 | |
US8434089B2 (en) | Method and system for loading of image resource | |
CN109985384B (zh) | 贴图动态调整方法及装置 | |
CN110090440A (zh) | 虚拟对象显示方法、装置、电子设备及存储介质 | |
US20090262139A1 (en) | Video image display device and video image display method | |
CN112044062B (zh) | 游戏画面渲染方法、装置、终端和存储介质 | |
CN111773704B (zh) | 游戏数据处理方法、装置、存储介质、处理器及电子装置 | |
CN106204713A (zh) | 静态合并处理方法和装置 | |
CN111739142A (zh) | 场景渲染方法、装置、电子设备及计算机可读存储介质 | |
CN114092310A (zh) | 图像渲染方法及电子设备、计算机可读存储介质 | |
US10839587B2 (en) | Image processing methods and devices for moving a target object by using a target ripple | |
JP3231029B2 (ja) | レンダリング方法及び装置、ゲーム装置、並びに立体モデルをレンダリングするためのプログラムを格納したコンピュータ読み取り可能な記録媒体 | |
CN114042312A (zh) | 一种角色皮肤绘制方法、系统、电子设备 | |
Nishimura et al. | VC-1: A scalable graphics computer with virtual local frame buffers | |
TW469414B (en) | Method and apparatus for providing depth blur effects within a 3D videographics system | |
KR100469820B1 (ko) | 화면 갱신 방법 및 그 시스템 | |
CN115228083A (zh) | 一种资源渲染方法及装置 | |
CN116173496A (zh) | 一种图像帧的渲染方法及相关装置 | |
CN116958390A (zh) | 一种图像渲染方法、装置、设备、存储介质及程序产品 | |
US6914603B2 (en) | Image generating system |
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 |