图形渲染方法、装置、电子设备及存储介质制造方法及图纸

技术编号:31166868 阅读:24 留言:0更新日期:2021-12-04 12:03
本申请提供一种图形渲染方法、装置、电子设备及存储介质,涉及数据处理技术领域。该方法包括:在中心渲染进程中启动多个处理线程,处理线程的数量与游戏客户端的数量对应;分别由各处理线程基于共享存储区域读取各游戏客户端的渲染指令,共享存储区域用于存储各游戏客户端的渲染指令;根据各游戏客户端的渲染指令从渲染指令对应的目标存储位置中获取各游戏客户端的渲染资源,并将各游戏客户端的渲染资源发送至中心渲染进程中的主线程;由主线程根据各游戏客户端的渲染资源生成各游戏客户端的渲染结果,并将各游戏客户端的渲染结果发送至各游戏客户端进行显示。本方法可避免资源重复创建带来的显存负担,从而增加显卡的利用率。率。率。

【技术实现步骤摘要】
图形渲染方法、装置、电子设备及存储介质


[0001]本申请涉及数据处理
,具体而言,涉及一种图形渲染方法、装置、电子设备及存储介质。

技术介绍

[0002]与大多数其他软件相比,MMO(Massively Multiplayer Online,大型多人在线游戏)游戏客户端都是GPU(graphics processing unit,图形处理器)开销大户,而玩家多开客户端是非常常见的行为,玩家多开客户端可以指玩家在一台计算机上通过使用多个游戏账号登录游戏客户端进行游戏的行为。伴随着多开,内存开销和GPU显存开销都会成倍增加,对于大多数配置不是太高的电脑(包括笔记本)来说,显存压力过大,显卡驱动就会频繁的将部分显存交换到内存中,进而带来游戏特别卡顿、风扇狂转、机箱发热,甚至游戏崩溃等情况,严重的影响了玩家的游戏体验。
[0003]现有方法有通过gpu渲染进程实现对客户端图形的渲染,在渲染多个网页时,每个网页的renderer(渲染器)进程会将一些明显能用gpu进行渲染的组件发送给gpu

process进程进行渲染,render进程和gpu进程建立了基于socket(套接字)的ipc管道进行通信,如果render有需要gpu渲染的内容会通过管道将数据发过去,渲染完毕后再通过管道发回来。
[0004]但是,上述方法的灵活性较低,并不能最大限度的利用和节约硬件资源。

技术实现思路

[0005]本申请的目的在于,针对上述现有技术中的不足,提供一种图形渲染方法、装置、电子设备及存储介质,以便于解决现有技术中存在的游戏客户端多开导致显存开销过大,游戏卡顿,玩家游戏体验较差的问题。
[0006]为实现上述目的,本申请实施例采用的技术方案如下:
[0007]第一方面,本申请实施例提供了一种图形渲染方法,应用于电子设备,所述电子设备上运行有:多个游戏客户端、中心渲染进程,所述方法包括:
[0008]在所述中心渲染进程中启动多个处理线程,所述处理线程的数量与所述游戏客户端的数量对应;
[0009]分别由各所述处理线程基于共享存储区域读取各所述游戏客户端的渲染指令,所述共享存储区域用于存储各游戏客户端的渲染指令;
[0010]根据各所述游戏客户端的渲染指令从所述渲染指令对应的目标存储位置中获取各所述游戏客户端的渲染资源,并将各所述游戏客户端的渲染资源发送至所述中心渲染进程中的主线程;
[0011]由所述主线程根据各所述游戏客户端的渲染资源生成各所述游戏客户端的渲染结果,并将各所述游戏客户端的渲染结果发送至各所述游戏客户端进行显示。
[0012]可选地,所述渲染指令包括:待渲染图形的渲染数据、渲染方式;所述根据各所述游戏客户端的渲染指令从所述渲染指令对应的目标存储位置中获取各所述游戏客户端的
渲染资源,包括:
[0013]根据所述渲染数据以及所述渲染方式确定所述目标存储位置的标识;
[0014]基于所述目标存储位置的标识,从预设的全局表中查找所述目标存储位置中是否存储有所述渲染资源;
[0015]若所述目标存储位置中存储有所述渲染资源,则从所述目标存储位置中读取所述渲染资源。
[0016]可选地,所述根据各所述游戏客户端的渲染指令从所述渲染指令对应的目标存储位置中获取各所述游戏客户端的渲染资源,还包括:
[0017]若所述目标存储位置中未存储有所述渲染资源,则创建得到所述渲染资源,并将所述渲染资源存储至所述目标存储位置中;
[0018]从所述目标存储位置中读取所述渲染资源。
[0019]可选地,所述分别由各所述处理线程基于共享存储区域读取各所述游戏客户端的渲染指令,包括:
[0020]由第一处理线程从所述共享存储区域中第一游戏客户端对应的存储地址中读取所述第一游戏客户端的渲染指令,所述第一处理线程为各所述处理线程中的任一处理线程,所述第一游戏客户端为各所述游戏客户端中的任一游戏客户端。
[0021]可选地,所述第一游戏客户端对应的存储地址包括:第一存储地址、第二存储地址和第三存储地址,所述第一存储地址用于存储所述第一游戏客户端的应用程序接口命令,所述第二存储地址用于存储所述第一游戏客户端的临时数据,所述第三存储地址用于存储所述第一游戏客户端的持久数据;所述渲染指令包括的待渲染图形的渲染数据、渲染方式存储于所述第二存储地址和/或第三存储地址中。
[0022]可选地,所述共享存储区域中还包括:文件资源共享区域,所述分别由各所述处理线程基于共享存储区域读取各所述游戏客户端的渲染指令,包括:
[0023]判断所述文件资源共享区域中是否包含各所述游戏客户端的渲染指令;
[0024]若包含,则从所述文件资源共享区域中读取各所述游戏客户端的渲染指令。
[0025]可选地,所述由所述主线程根据各所述游戏客户端的渲染资源生成各所述游戏客户端的渲染结果,包括:
[0026]由所述主线程依次根据各所述游戏客户端的渲染资源进行渲染处理,得到各所述游戏客户端的渲染结果。
[0027]可选地,所述将各所述游戏客户端的渲染结果发送至各所述游戏客户端进行显示,包括:
[0028]由所述主线程分别将各所述游戏客户端的渲染结果进行拷贝;
[0029]由所述主线程分别通过各所述游戏客户端提供的数据接口将各所述游戏客户端的拷贝结果发送至各所述游戏客户端。
[0030]可选地,所述分别由各所述处理线程基于共享存储区域读取各所述游戏客户端的渲染指令之前,所述方法还包括:
[0031]分别由各所述游戏客户端将渲染指令存储至所述共享存储区域中各所述游戏客户端对应的存储地址下。
[0032]第二方面,本申请实施例还提供了一种图形渲染装置,应用于电子设备,所述电子
设备上运行有:多个游戏客户端、中心渲染进程,所述装置包括:启动模块、获取模块、生成模块;
[0033]所述启动模块,用于在所述中心渲染进程中启动多个处理线程,所述处理线程的数量与所述游戏客户端的数量对应;
[0034]所述获取模块,用于分别由各所述处理线程基于共享存储区域读取各所述游戏客户端的渲染指令,所述共享存储区域用于存储各游戏客户端的渲染指令;
[0035]所述获取模块,用于根据各所述游戏客户端的渲染指令从所述渲染指令对应的目标存储位置中获取各所述游戏客户端的渲染资源,并将各所述游戏客户端的渲染资源发送至所述中心渲染进程中的主线程;
[0036]所述生成模块,用于由所述主线程根据各所述游戏客户端的渲染资源生成各所述游戏客户端的渲染结果,并将各所述游戏客户端的渲染结果发送至各所述游戏客户端进行显示。
[0037]可选地,所述渲染指令包括:待渲染图形的渲染数据、渲染方式;所述获取模块,具体用于
[0038]根据所述渲染数据以及所述渲染方式确定所述目标存储位置的标识;
[0039]基于所述目标存储位置的标识,从预设的全局表中查本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种图形渲染方法,其特征在于,应用于电子设备,所述电子设备上运行有:多个游戏客户端、中心渲染进程,所述方法包括:在所述中心渲染进程中启动多个处理线程,所述处理线程的数量与所述游戏客户端的数量对应;分别由各所述处理线程基于共享存储区域读取各所述游戏客户端的渲染指令,所述共享存储区域用于存储各游戏客户端的渲染指令;根据各所述游戏客户端的渲染指令从所述渲染指令对应的目标存储位置中获取各所述游戏客户端的渲染资源,并将各所述游戏客户端的渲染资源发送至所述中心渲染进程中的主线程;由所述主线程根据各所述游戏客户端的渲染资源生成各所述游戏客户端的渲染结果,并将各所述游戏客户端的渲染结果发送至各所述游戏客户端进行显示。2.根据权利要求1所述的方法,其特征在于,所述渲染指令包括:待渲染图形的渲染数据、渲染方式;所述根据各所述游戏客户端的渲染指令从所述渲染指令对应的目标存储位置中获取各所述游戏客户端的渲染资源,包括:根据所述渲染数据以及所述渲染方式确定所述目标存储位置的标识;基于所述目标存储位置的标识,从预设的全局表中查找所述目标存储位置中是否存储有所述渲染资源;若所述目标存储位置中存储有所述渲染资源,则从所述目标存储位置中读取所述渲染资源。3.根据权利要求2所述的方法,其特征在于,所述根据各所述游戏客户端的渲染指令从所述渲染指令对应的目标存储位置中获取各所述游戏客户端的渲染资源,还包括:若所述目标存储位置中未存储有所述渲染资源,则创建得到所述渲染资源,并将所述渲染资源存储至所述目标存储位置中;从所述目标存储位置中读取所述渲染资源。4.根据权利要求1所述的方法,其特征在于,所述分别由各所述处理线程基于共享存储区域读取各所述游戏客户端的渲染指令,包括:由第一处理线程从所述共享存储区域中第一游戏客户端对应的存储地址中读取所述第一游戏客户端的渲染指令,所述第一处理线程为各所述处理线程中的任一处理线程,所述第一游戏客户端为各所述游戏客户端中的任一游戏客户端。5.根据权利要求4所述的方法,其特征在于,所述第一游戏客户端对应的存储地址包括:第一存储地址、第二存储地址和第三存储地址,所述第一存储地址用于存储所述第一游戏客户端的应用程序接口命令,所述第二存储地址用于存储所述第一游戏客户端的临时数据,所述第三存储地址用于存储所述第一游戏客户端的持久数据;所述渲染指令包括的待渲染图形的渲染数据、渲染方式存储于所述第二存储地址和/或第三存储地址中。6.根据权利要求1所述的方法,其特征在于,所述共享存储区域中还包括:文件资源共享区...

【专利技术属性】
技术研发人员:秦斌斌张启平
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1