基于云计算的实时离屏渲染方法、装置及系统的制作方法
【技术领域】
[0001]本发明涉及云渲染领域,特别涉及一种基于云计算的实时离屏渲染方法、装置及系统。
【背景技术】
[0002]随着客户终端操作系统的发展,现在手机和平板电脑已达到较为全面的智能化,基于10S、安卓和Windows操作系统的手机和平板电脑在人们的生活中越来越普及,这些智能手机和平板电脑强大的功能也给人们带来了众多方便。但受限于智能手机和平板电脑的体积、功耗以及其轻便的要求,智能手机和平板的处理器(如计算和渲染处理器)能力都不够强大,人们无法在手机或平板电脑等移动便携终端设备上进行大型的3D高动态场景的渲染显示。
[0003]同时伴随云计算的蓬勃发展以及人们对IT运维低成本的要求,出现了各种云计算相关的服务,如Iaas(基础架构即服务)、Paas(平台即服务)、Saas(软件即服务),其通用的原理都是利用云计算的强大的虚拟化技术,将计算、存储和网络资源进行池化管理,达到资源的任意切分,实现计算、存储和网络资源的高可用,也整体提高了资源的利用率。而在传统的IT行业,3D大型高动态场景渲染业务一直是众多行业的需求,云计算服务的普及与大型3D场景渲染的需求也自然而然地诞生了云渲染的服务。
[0004]现有的云渲染的大致分为两大类:一是在线渲染,二是离线渲染。这两类都是采用了云端渲染的方式,现有技术的实现方式只能提供延时性的渲染结果,主要适用于电影特效和动画制作渲染方面,不能满足移动设备端对3D大型高动态场景渲染画面的实时互操作要求,显示的3D特效画质较差,无法在客户终端给用户提供高动态3D实时场景服务的良好用户体验。
[0005]中国发明专利(申请公布号:CN103313120A)公开了一种显示画面的方法,该方法包括如下步骤:获取渲染实体的画面信息;将所述画面信息发送给云端,通过云端根据所述画面信息对所述渲染实体进行渲染以获得渲染结果;获取云端返回的渲染结果,根据所述渲染结果显示画面。
[0006]该发明通过在云端进行渲染操作,降低了对于便携客户终端自身处理能力的需求,能够适用于各种类型的终端,即使低端型的客户终端也同样适用,且借助云端较强的处理能力,能够在客户终端设备上进行3D场景的云渲染显示。
[0007]但对于大型3D场景而言,将获取渲染实体的画面信息发送至云端以及接收云端返回的渲染结果的两个过程中,由于传输的数据量增大,在相同的网络带宽的条件下,耗费的时间将增大,即延时性增加。而且,相应地支持同时在线的客户端达的数量也会减少,一旦云端的通信负载达到临界值时,超出的客户端的渲染任务将被挂起,延时性更为严重。
【发明内容】
[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]根据一种具体的实施方式,所述渲染资源包括:
[0040]资源数据下载子单元,用于根据所述云渲染服务请求中描述的渲染实体,请求下载所述渲染实体的资源数据,并执行所述资源数据的下载;
[0041]渲染执行子单元,用于根据所述云渲染请求中描述的渲染内容,对所述资源数据进行实时渲染;
[0042]帧缓存子单元,用于缓存所述渲染执行子单元实时产生的渲染结果;
[0043]压缩编码子单元,用于实时获取所述帧缓冲子单元中的渲染结果,并对所述渲染结果压缩编码;
[00
44]渲染结果发送子单元,用于实时将经过所述压缩编码子单元处理后的渲染结果,通过所述直连链路发送至所述客户端,并根据所述直连链路的通信状况和所述客户端的操作,实时调整所述渲染结果的发送频率。
[0045]根据一种具体的实施方式,所述装置还包括:
[0046]存储单元,用于预先存储用户的渲染实体资源数据;
[0047]数据库管理单元,用于管理用户的渲染实体资源数据,并在所述渲染资源请求下载资源数据时,发送所述资源数据在所述存储单元中的存放地址至所述渲染资源,以供所述渲染资源下载所述资源数据。
[0048]根据一种具体的实施方式,所述装置包括用户管理单元,并且,
[0049]所述通信中转单元,还用于接收所述客户端发送的用户验证请求和离线请求;
[0050]所述数据库管理单元,还用于管理用户的身份信息,以及存储用户预先绑定的用户身份信息;
[0051]所述业务调度单元,还用于将所述用户验证请求和所述离线请求转发至所述用户管理单元。
[0052]根据一种具体的实施方式,所述用户管理单元包括:
[0053]身份信息验证子单元,用于解析所述用户验证请求中包含的用户身份信息,并将所述用户身份信息发送至所述数据库管理单元进行比对,验证所述用户身份信息是否与预先绑定的用户身份信息一致;
[0054]心跳连接子单元,用于根据所述用户身份信息是否与预先绑定的用户身份信息一致,返回识别信息至所述客户端,并建立与所述客户端的心跳连接;并在返回所述识别信息至所述客户端后,接收所述客户端发送的心跳包,若接收到所述心跳包,则判定所述心跳连接建立成功,若未接收到所述心跳包,则判定所述心跳连接失败,用户离线;以及在所述心跳连接建立成功后,接收到所述客户端发送的所述离线请求时,断开所述心跳连接;
[0055]用户在线列表管理子单元,用于建立用户在线列表,并在所述心跳连接建立成功时,将用户加入至所述用户在线列表;并在接收到所述客户端发送的所述离线请求时,将用户从所述用户在线列表中移除,释放已创建的所述直连链路和已启用的渲染资源。
[0056]根据一种具体的实施方式,所述心跳连接子单元,还用于在接收一个所述心跳包后,从零开始计时,并在所述计时时间大于所述掉线阈值时间时,将用户掉线信息发送至所述用户在线列表管理子单元,使所述用户在线列表管理子单元将所述用户从所述用户在线列表中移除,释放已创建的所述直连链路和已启用的渲染资源。
[0057]根据一种具体的实施方式,所述装置还包括:
[0058]智能管理单元,用于在用户在线高峰期,提前开启一定数量的渲染资源,而在用户在线低谷期,关闭一定数量的渲染资源。
[0059]根据本发明的一个方面,还提供一种基于云计算的实时离屏渲染系统,其特征在于,包括客户端、公网和若干用户资源池,所述用户资源池分别绑定有唯一的公网IP,所述客户端通过链接至所述公网IP,接入所述用户资源池;
[0060]所述用户资源池包括路由器、渲染资源服务器、资源管理服务器和业务调度服务器;其中,
[0061]所述路由器,用于接收所述客户端发送云渲染服务请求,并将所述云渲染服务请求转发至所述业务调度服务器;
[0062]所述业务调度服务器,用于创建所述渲染资源与所述客户端的直连链路,并将所述云渲染服务请求转发至所述渲染资源服务器和所述资源管理服务器;
[0063]所述渲染资源服务器,用于提供渲染资源进行渲染服务;
[0064]所述资源管理服务器,用于管理和启用所述渲染资源。
[0065]根据一种具体的实施方式,所述资源管理服务器保存所述渲染资源服务器中各个渲染资源的地址,并按一定频率对各个渲染资源的工作状态进行统计,而且根据统计结果,建立清染资源列表;
[0066]所述资源管理服务器接收所述业务调度服务器转发的所述云渲染服务请求,查询所述渲染资源列表中是否有可用的渲染资源,若有,则启用其中最优的渲染资源,否则返回无可用资源信息至所述客户端;
[0067]所述资源管理服务器启用渲染资源,并且将所述渲染资源的地址发送至所述业务调度服务器,以供所述业务调度服务器创建所述直连链路时使用。
[0068]根据一种具体的实施方式,所述业务调度服务器接收所述资源管理服务器发送的地址,并分配给所述客户端一个通信端口,将所述渲染资源的地址与所述客户端的通信端口绑定,以创建所述渲染资源与所述客户端的所述直连链路。
[0069]根据一种具体的实施方式,所述渲染资源根据所述云渲染服务请求中描述的渲染实体,下载所述渲染实体的资源数据;并根据所述云渲染请求中描述的渲染内容,对下载的所述资源数据进行实时渲染,在帧缓冲中实时产生的渲染结果;
[0070]所述渲染资源对所述帧缓冲中的渲染结果进行压缩编码;将压缩编码后的渲染结果,通过所述直连链路发送至所述客户端,并根据所述直连链路的通信状况和所述客户端的操作,实时调整所述渲染结果的发送频率。
[0071]根据一种具体的实施方式,所述系统包括数据库服务器和存储服务器;所述用户资源池共用所述数据库服务器和所述存储服务器;其中,
[0072]所述存储服务器,用于预先存储用户的渲染实体资源数据;
[0073]所述数据库管理服务器,用于管理用户的渲染实体资源数据,并在所述渲染资源请求下载资源数据时,将所述资源数据在所述存储服务器中的存放地址发送至所述渲染资源,以供所述渲染资源下载所述资源数据。
[0074]根据一种具体的实施方式,所述系统包括:用户管理服务器,并且,
[0075]所述路由器,还用于接收所述客户端发送的用户验证请求;
[0076]所述数据库管理服务器,还用于管理用户的身份信息,以及存储用户预先绑定的用户身份信息;
[0077]所述业务调度服务器,还用于将所述用户验证请求转发至所述用户管理服务器。
[0078]根据一种具体的实施方式,所述用户管理服务器接收所述业务调度服务器转发的用户验证请求,并解析所述用户验证请求中包含的用户身份信息,将所述用户身份信息发送至所述数据库管理单元进行比对,验证所述用户身份信息是否与预先绑定的用户身份信息一致;
[0079]所述用户管理服务器根据所述用户身份信息是否与预先绑定的用户身份信息一致,返回识别信息至所述客户端,使所述客户端建立与所述用户管理服务器的心跳连接;
[0080]在返回所述识别信息至所述客户端后,所述用户管理服务器接收到所述客户端发送的心跳包,则判定所述心跳连接建立成功,并将用户加入至用户在线列表中;所述用户管理服务器未接收到所述心跳连接,则判定所述心跳连接失败,用户离线;
[0081]在所述心跳连接建立成功后,所述用户管理服务器接收到所述客户端发送的所述离线请求,则断开所述心跳连接,将用户从所述用户在线列表中移除,并释放已创建的所述直连链路和停用已启用的渲染资源。
[0082]根据一种具体的实施方式,所述用户管理服务器接收一个所述心跳包后,从零开始计时;
[0083]若所述计时时间大于所述掉线阈值时间,所述用户管理服务器将所述用户从所述用户在线列表中移除,并释放已创建的所述直连链路和停用已启用的渲染资源。
[0084]根据一种具体的实施方式,所述系统包括:
[0085]所述智能管理服务器,用于在用户在线高峰期,提前开启一定数量的渲染资源,而在用户在线低谷期,关闭一定数量的渲染资源。
[0086]与现有技术相比,本发明的有益效果:
[0087]本发明在接受客户端发送的云渲染服务请求后,启用渲染资源并创建客户终端和渲染资源的直连链路,使渲染资源直接处理云渲染服务请求,渲染资源进行实时渲染并将实时产生的渲染结果直接发送至客户端,使客户终端实时接收渲染结果并根据渲染结果显示画面,不仅能够支持同时在线的客户端设备多,可承载海量的客户端设备的渲染服务请求,而且,所有在线的渲染任务相互独立,减轻了云端的通信负载,降低了云渲染服务的延时性。
[0088]同时,本发明中还根据直连链路上的通信状况和客户端的操作,实时动态调整渲染结果的发送频率以及对渲染结果进行不同程度的压缩,进一步地,降低渲染服务的延时性,可实现用户与大型3D场景的实时互操作,在客户终端设备为用户提供了高动态
3D实时场景服务的良好用户体验。
[0089]而且,本发明还能够记录用户请求云渲染服务的时间规律,并根据该时间规律,合理地控制渲染资源的待机数量,在保障用户资源充足的情况下减少能源消耗,节能环保。
【附图说明】
[0090]图1是本发明方法云渲染服务的基本流程示意图;
[0091 ]图2是本发明方法启用渲染资源的流程示意图;
[0092]图3是本发明方法渲染资源实时渲染的流程示意图;
[0093]图4是本发明方法验证用户身份信息的基本流程示意图;
[0094]图5是本发明方法管理心跳连接的流程示意图;
[0095]图6是本发明方法用户登录状态判定的流程示意图;
[0096]图7是本发明装置的第一实施例的结构示意图;
[0097]图8是本发明装置的第二实施例的结构示意图;
[0098]图9是本发明装置的第三实施例的结构示意图;
[0099]图10是本发明装置的第四实施例的结构示意图;
[0100]图11是本发明装置的第五实施例的结构示意图;
[0101 ]图12是本发明装置的第六实施例的结构示意图;
[0102]图13是本发明系统的第一实施例的结构示意图;
[0103]图14是本发明系统的第二实施例的结构示意图;
[0104]图15是本发明系统的第三实施例的结构示意图。
【具体实施方式】
[0105]下面结合【具体实施方式】对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,凡基于本
【发明内容】
所实现的技术均属于本发明的范围。
[0106]结合图1所示的本发明方法云渲染服务的基本流程示意图;在具有3D场景的应用的客户端上,用户对该3D场景的应用进行一定相关操作,如对渲染实体的旋转、移动和缩放操作等,当这些相关操作被该3D场景应用识别后,会生成包含相关的渲染内容和渲染实体信息的云渲染服务请求。因此,用户在客户端上完成相关操作后,由客户端发送相关的云渲染服务请求,以请求云渲染服务。
[0107]本发明基于云计算的实时离屏渲染方法包括:
[0108]接收客户端发送的云渲染服务请求后,启用渲染资源并创建渲染资源与客户端的直连链路。
[0109]直连链路创建成功后,根据云渲染服务请求,渲染资源进行实时渲染,并且将实时产生的渲染结果通过直连链路发送至客户端。
[0110]实时接收的渲染结果后,根据渲染结果,客户端实时显示画面。
[0111]本发明通过创建渲染资源与客户端的直连链路,使所有在线的渲染任务相互独立,减轻了云端的通信负载,降低了云渲染服务的延时性。
[0112]结合图2所示的本发明方法启用渲染资源的流程示意图;其中,接收客户端发送的云渲染服务请求后,首先访问渲染资源列表,查询是否有可用的渲染资源。
[0113]若有,则启用其中最优的渲染资源;否则返回无可用渲染资源信息至客户端。
[0114]具体的,渲染资源列表有可用的渲染资源时,由于渲染资源分布在不同的物理机上,而且某些渲染资源相对使用频率略高,启用其中最优的渲染资源,即是确定运行负荷较低的物理机,并且在该物理机上启用使用频率相对较低的渲染资源,这样有利于平衡渲染资源的使用,合理规划渲染资源的启用,避免渲染资源的闲置。
[0115]而且,在启用渲染资源时,还获取渲染资源的地址,并分配给客户端一个通信端口,将渲染资源的地址与客户端的通信端口绑定,以创建渲染资源与客户端的直连链路。
[0116]渲染资源列表中无可用的渲染资源时,则将云渲染服务请求挂起,等待有可用资源时,再提供渲染服务。
[0117]结合图3所示的本发明方法渲染资源实时渲染的流程示意图;直连链路创建成功后,根据云渲染服务请求中描述的渲染实体,渲染资源首先下载渲染实体的资源数据。
[0118]当渲染实体的资源数据下载完成后,根据云渲染请求中描述的渲染内容,渲染资源对渲染实体的资源数据进行实时渲染,并在渲染资源的帧缓存中实时产生渲染结果。
[0119]实时获取帧缓存中的渲染结果,并对其进行压缩编码后,通过直连链路发送至客户端。
[0120]具体的,渲染资源是具备GPU硬件的资源,数据的渲染主要通过GPU来完成。数据渲染的流程可以是传统的渲染管线处理过程,也可以是可编程渲染管线处理流程,最终渲染结果都会放在帧缓存中。
[0121]而且,在将渲染结果发送至客户端时,还根据直连链路上的通信状况以及客户端的操作,实时调整渲染结果的发送频率。当直连链路上的通信状况不好时,则减小渲染结果的发送频率,以免造成客户端在接收时数据拥挤和通信过载,影响用户体验,而且当用户在客户端进行相关操作时,根据该相关操作,实时调整发送频率,并在客户端完成相关操作后,以调整后的发送频率发送渲染结果至客户端,使用户明显地感受到渲染效果。通过这样的上述的处理方式,本发明降低渲染服务的延时性,可实现用户与大型3D场景的实时互操作,在客户终端设备为用户提供了高动态3D实时场景服务的良好用户体验。
[0122]结合图4所示的本发明方法验证用户身份信息的基本流程示意图;接收客户端发送的云渲染服务请求前,先接收客户端发送用户验证请求。
[0123]通过解析用户验证请求中包含的用户身份信息,并将该用户身份信息与预先绑定的用户身份信息进行比对,以验证该用户身份信息是否与预先绑定的用户身份信息一致。
[0124]若一致,则返回识别信息至客户端,并建立与客户端的心跳连接,否则,不返回识别信息至客户端。
[0125]结合图5所示的本发明方法管理心跳连接的流程示意图;返回识别信息至客户端后,若接收到客户端发送的心跳包,则判定心跳连接建立成功,将用户加入至用户在线列表中;若未接收到客户端发送的心跳包,则判定心跳连接建立失败,用户离线;
[0126]并且,在心跳连接建立成功后,若接收到客户端发送的离线请求,则断开心跳连接,将用户从用户在线列表中移除,并释放已创建的直连链路和已启用的渲染资源。
[0127]结合图6所示的本发明方法用户登录状态判定的流程示意图;建立与客户端的心跳连接后,接收客户端按一定频率发送的心跳包,以监测用户的登录状态,并且每接收一个心跳包后,立即从零开始计时。
[0128]若计时时间大于或等于掉线阈值时间,则认为用户掉线,将用户从用户在线列表中移除,释放已创建的直连链路和已启用的渲染资源。
[0129]本发明基于云计算的实时离屏渲染方法还根据客户端加入用户在线列表的规律,在客户端在线高峰期,提前开启一定数量的渲染资源,而在客户端在线低谷期,关闭一定数量的渲染资源。
[0130]基于同一发明构思,本发明还提供一种基于云计算的实时离屏渲染装置。结合图7所示的本发明装置的第一实施例的结构示意图;本发明基于云计算的实时离屏渲染装置包括:通信中转单元、渲染资源单元、资源管理单元和业务调度单元。
[0131]其中,通信中转单元用于接收客户端发送的云渲染服务请求,并将接收的云渲染服务请求转发至业务调度单元。业务调度单元将云渲染服务请求转发至资源管理单元,资源管理单元管理和启用渲染资源,渲染资源由渲染资源单元提供,业务调度单元创建渲染资源与客户端的直连链路,通过渲染资源进行渲染服务。
[0132]结合图8所示的本发明装置的第二实施例的结构示意图;其中,资源管理单元包括:渲染资源列表子单元、渲染资源启用子单元和渲染资源地址发送子单元。
[0133]其中,渲染资源列表子单元保存着渲染资源单元中各个渲染资源的地址,并按一定频率对各个渲染资源的工作状态进行统计,而且根据统计结果,建立渲染资源列表。
[0134]渲染资源启用子单元,用于查询渲染资源列表中是否有可用的渲染资源,并在有可用的渲染资源时,启用其中最优的渲染资源,否则,返回无可用资源信息至客户端。
[0135]渲染资源地址发送子单元,用于将渲染资源启用子单元启用的渲染资源的地址发送至业务调度单元,以供业务调度单元创建直连链路时使用。
[0136]而且,业务调度单元包括通信链路管理子单元,在创建直连链路时,通信链路管理子单元给客户端分配通信端口,并在接收渲染资源地址发送子单元发送的渲染资源的地址后,
将渲染资源的地址与客户端的通信端口绑定,以创建渲染资源与客户端的直连链路。
[0137]如图9所示的本发明装置的第三实施例的结构示意图;本发明基于云计算的实时离屏渲染装置还包括存储单元和数据库管理单元。其中,存储单元,用于预先存储用户的渲染实体资源数据;数据库管理单元,用于管理用户的渲染实体资源数据,并在渲染资源请求下载资源数据时,发送资源数据在存储单元中的存放地址至渲染资源,以供渲染资源下载资源数据。
[0138]并且本实施例中,渲染资源包括资源数据下载子单元、渲染执行子单元、帧缓存子单元、压缩编码子单元和渲染结果发送子单元。
[0139]其中,资源数据下载子单元,用于根据云渲染服务请求中描述的渲染实体,请求下载渲染实体的资源数据,并执行资源数据的下载。
[0140]渲染执行子单元,用于根据云渲染请求中描述的渲染内容,对资源数据进行实时渲染。
[0141]帧缓存子单元,用于缓存渲染执行子单元实时产生的渲染结果。
[0142]压缩编码子单元,用于实时获取帧缓冲子单元中的渲染结果,并对渲染结果压缩编码。
[0143]渲染结果发送子单元,用于实时将经过压缩编码子单元处理后的渲染结果,通过直连链路发送至客户端,并根据直连链路的通信状况和客户端的操作,实时调整渲染结果的发送频率。
[0144]如图10所示的本发明装置的第四实施例的结构示意图;本发明基于云计算的实时离屏渲染装置还包括用户管理单元,并且,通信中转单元还用于接收客户端发送的用户验证请求和离线请求;数据库管理单元还用于管理用户的身份信息,以及存储用户预先绑定的用户身份信息;业务调度单元,还用于将用户验证请求和离线请求转发至用户管理单元。
[0145]结合图11所示的本发明装置的第五实施例的结构示意图;用户管理单元包括:
[0146]身份信息验证子单元,用于解析用户验证请求中包含的用户身份信息,并将用户身份信息发送至数据库管理单元进行比对,验证用户身份信息是否与预先绑定的用户身份信息一致。
[0147]心跳连接子单元,根据用户身份信息是否与预先绑定的用户身份信息一致,返回识别信息至客户端,并建立与客户端的心跳连接;并在返回识别信息至客户端后,接收客户端发送的心跳包,若接收到心跳包,则判定心跳连接建立成功,若未接收到心跳包,则判定心跳连接失败,用户离线;以及在心跳连接建立成功后,接收到客户端发送的离线请求时,断开心跳连接。
[0148]用户在线列表管理子单元,用于建立用户在线列表,并在心跳连接建立成功时,将用户加入至用户在线列表;并在接收到客户端发送的离线请求时,将用户从用户在线列表中移除,释放已创建的直连链路和已启用的渲染资源。
[0149]在本实施例中,心跳连接子单元,还用于在接收一个心跳包后,从零开始计时,并在计时时间大于掉线阈值时间时,将用户掉线信息发送至用户在线列表管理子单元,使其将用户从用户在线列表中移除,释放已创建的直连链路和已启用的渲染资源。
[0150]结合图12所示的本发明装置的第六实施例的结构示意图;本发明基于云计算的实时离屏渲染装置还包括智能管理单元。
[0151]其中,智能管理单元用于根据用户加入用户在线列表的规律,在用户在线高峰期,提前开启一定数量的渲染资源,而在用户在线低谷期,关闭一定数量的渲染资源。
[0152]基于同一发明构思,本发明还提供一种基于云计算的实时离屏渲染系统,结合图13所示的本发明系统的第一实施例的结构示意图;本发明基于云计算的实时离屏渲染系统包括客户端、公网和若干用户资源池,用户资源池分别绑定有唯一的公网IP,客户端通过链接至公网IP,接入用户资源池。
[0153]并且,用户资源池包括路由器、渲染资源服务器、资源管理服务器和业务调度服务器。
[0154]其中,路由器,用于接收客户端发送云渲染服务请求,并将云渲染服务请求转发至业务调度服务器。
[0155]业务调度服务器,用于创建渲染资源与客户端的直连链路,并将云渲染服务请求转发至渲染资源服务器和资源管理服务器。
[0156]渲染资源服务器,用于提供渲染资源进行渲染服务。
[0157]资源管理服务器,用于管理和启用渲染资源。
[0158]具体的,资源管理服务器保存渲染资源服务器中各个渲染资源的地址,并按一定频率对各个渲染资源的工作状态进行统计,而且根据统计结果,建立渲染资源列表。
[0159]资源管理服务器接收业务调度服务器转发的云渲染服务请求,查询渲染资源列表中是否有可用的渲染资源,若有,则启用其中最优的渲染资源,否则返回无可用资源信息至客户端。
[0160]资源管理服务器启用渲染资源,并且将渲染资源的地址发送至业务调度服务器,以供业务调度服务器创建直连链路时使用。
[0161]业务调度服务器接收资源管理服务器发送的地址,并分配给客户端一个通信端口,将渲染资源的地址与客户端的通信端口绑定,以创建渲染资源与客户端的直连链路。
[0162]结合图14所示的本发明系统的第二实施例的结构示意图;本发明基于云计算的实时离屏渲染系统还包括数据库服务器、存储服务器。
[0163]其中,用户资源池共用数据库服务器和存储服务器,并且,存储服务器,用于预先存储用户的渲染实体资源数据。
[0164]数据库管理服务器,用于管理用户的渲染实体资源数据,并在渲染资源请求下载资源数据时,将资源数据在存储服务器中的存放地址发送至渲染资源,以供渲染资源下载资源数据。
[0165]结合图15所示的本发明系统的第三实施例的结构示意图,本发明基于云计算的实时离屏渲染系统包括:用户管理服务器和智能管理服务器。
[0166]具体的,路由器,用于接收客户端发送的用户验证请求。
[0167]数据库管理服务器,用于管理用户的身份信息,以及存储用户预先绑定的用户身份信息。
[0168]业务调度服务器,用于将用户验证请求转发至用户管理服务器。
[0169]用户管理服务器接收业务调度服务器转发的用户验证请求,并解析用户验证请求中包含的用户身份信息,将用户身份信息发送至数据库管理单元进行比对,验证用户身份信息是否与预先绑定的用户身份信息一致;
[0170]用户管理服务器根据用户身份信息是否与预先绑定的用户身份信息一致,返回识别信息至客户端,使客户端建立与用户管理服务器的心跳连接;
[0171]在返回识别信息至客户端后,用户管理服务器接收到客户端发送的心跳包,则判定心跳连接建立成功,并将用户加入至用户在线列表中;用户管理服务器未接收到心跳连接,则判定心跳连接失败,用户离线;
[0172]在心跳连接建立成功后,用户管理服务器接收到客户端发送的离线请求,则断开心跳连接,将用户从用户在线列表中移除,并释放已创建的直连链路和停用已启用的渲染资源。
[0173]而且,用户管理服务器与客户端的心跳连接建立成功后,客户端按一定频率发送心跳包至用户管理服务器,用户管理服务器接收一个心跳包后,从零开始计时。
[0174]若计时时间大于掉线阈值时间,用户管理服务器将用户从用户在线列表中移除,并释放已创建的直连链路和停用已启用的渲染资源。
[0175]智能管理服务器,用于根据用户加入用户在线列表的规律,在用户在线高峰期,提前开启一定数量的渲染资源,而在用户在线低谷期,关闭一定数量的渲染资源。
[0176]为进一步地阐释本发明基于云计算的实时离屏渲染方法、装置及系统,下面以一个对渲染实体茶壶进行实时渲染的例子,对本发明进行更详细的说明。
[0177]用户使用客户端,通过TCP/IP协议发送用户验证请求至用户对应的用户资源池中。在用户资源池中,路由器接收到用户验证请求后,立即将用户验证请求转发至业务调度服务器,再由业务调度服务器转发至用户管理服务器。
[0178]用户管理服务器接收用户验证请求后,解析用户验证请求中的用户身份信息,并将该用户身份信息与预先绑定在数据库管理服务器中的用户信息进行比,验证该用户身份信息是否与预先绑定的用户身份信息一致。
[0179]如果一致,用户管理服务器通过业务调度服务器和路由器,返回唯一的识别信息至客户端。客户端根据该识别信息,建立与用户管理服务器的心跳连接,用户管理服务器接收到客户端发送的心跳包,
则说明心跳连接建立成功,则将该用户加入至用户在线列表中。
[0180]然后,用户加入用户在线列表后,可以通过实时的操作,使客户端发送相应的云渲染服务请求至用户资源池中,路由器接收云渲染服务请求后,立即将用户验证请求转发至业务调度服务器,再由业务调度服务器转发至资源管理服务器。
[0181]资源管理服务器接收云渲染服务请求后,查询其资源列表中是否有可用的渲染资源,并且选择运行负荷较低的物理机上启用和使用频率相对较低的渲染资源来启用,用于响应本次云渲染服务请求。
[0182]并且,在启用渲染资源时,资源管理服务器将启用的渲染资源的地址转发至业务调度服务器,同时,业务调度服务器分配给客户端一个通信端口,并且将渲染资源的地址与该通信端口绑定,从而建立成渲染资源与客户端的直连链路。
[0183]直连链路创建成功后,渲染资源根据云渲染服务请求中描述的渲染实体茶壶,向数据库管理服务器请求下载渲染实体茶壶的资源数据,数据库管理服务器将渲染实体茶壶的资源数据在存储服务器中的存放地址发送给渲染资源,渲染资源根据渲染实体茶壶的资源数据在存储服务器中的存放地址,下载渲染实体茶壶的资源数据。
[0184]渲染实体茶壶的资源数据下载完城后,开始根据云渲染服务请求的渲染内容如对渲染实体茶壶的旋转、移动和缩放等,对渲染实体茶壶进行实时地渲染,并在渲染资源的帧缓存中产生渲染结果。实时地提取出帧缓存中的渲染结果,对渲染结果进行压缩编码,经过压缩编码后通过直连链路,直接发送至客户端。
[0185]具体的,在对渲染实体茶壶进行渲染的过程中,若用户管理服务器对每接收一个心跳包后的计时时间大于或等于掉线阈值时间,则将用户从用户在线列表中移除,释放已创建的直连链路和已启用的渲染资源。若客户端发送离线请求,用户管理服务器断开心跳连接,并将用户从用户在线列表中移除,释放已创建的直连链路和已启用的渲染资源。
[0186]在将压缩编码后的渲染结果发送至客户端的步骤中,渲染资源还根据直连链路上的通信状况以及客户端的操作,实时调整渲染结果的发送频率。其中,客户端的实时操作,均被相应地描述在云清染服务请求的清染内容中。
[0187]本发明通过对渲染资源的合理的管理和启用,不仅能够支持同时在线的客户端设备多,可承载海量的客户端设备的渲染服务请求,而且,所有在线的渲染任务相互独立,减轻了云端的通信负载,降低了云渲染服务的延时性。
[0188]同时,本发明还根据直连链路上的通信状况和用户在客户端的操作,实时动态调整渲染结果的发送频率以及对渲染结果进行不同程度的压缩,进一步地,降低渲染服务的延时性,可实现用户与大型3D场景的实时互操作,在客户终端设备为用户提供了高动态3D实时场景服务的良好用户体验。
[0189]上面结合附图对本发明的【具体实施方式】进行了详细说明,但本发明并不限制于上述实施方式,在不脱离本申请的权利要求的精神和范围情况下,本领域的技术人员可以作出各种修改或改型。
【主权项】
1.一种基于云计算的实时离屏渲染方法,其特征在于,包括: 接收客户端发送的云渲染服务请求后,启用渲染资源并创建所述渲染资源与所述客户端的直连链路; 所述直连链路创建成功后,根据所述云渲染服务请求,所述渲染资源进行实时渲染,并且将实时产生的渲染结果通过所述直连链路发送至所述客户端; 实时接收的所述渲染结果后,根据所述渲染结果,所述客户端实时显示画面。2.如权利要求1所述的基于云计算的实时离屏渲染方法,其特征在于,接收客户端发送的云渲染服务请求后,首先访问渲染资源列表,查询是否有可用的渲染资源; 若有,则启用其中最优的渲染资源;否则返回无可用渲染资源信息至所述客户端。3.如权利要求2所述的基于云计算的实时离屏渲染方法,其特征在于,启用所述渲染资源时,获取所述渲染资源的地址,并分配给所述客户端一个通信端口,将所述渲染资源的地址与所述客户端的通信端口绑定,以创建所述渲染资源与所述客户端的所述直连链路。4.如权利要求1所述的基于云计算的实时离屏渲染方法,其特征在于,所述直连链路创建成功后,根据所述云渲染服务请求中描述的渲染实体,所述渲染资源首先下载所述渲染实体的资源数据; 当所述渲染实体的资源数据下载完成后,根据所述云渲染请求中描述的渲染内容,所述渲染资源对所述渲染实体的资源数据进行实时渲染,并在所述渲染资源的帧缓存中实时产生渲染结果; 实时获取所述帧缓存中的所述渲染结果,并对其进行压缩编码后,通过所述直连链路发送至所述客户端。5.一种基于云计算的实时离屏渲染装置,其特征在于,包括: 通信中转单元,用于接收客户端发送的云渲染服务请求; 渲染资源单元,用于提供渲染资源进行渲染服务; 资源管理单元,用于管理和启用所述渲染资源; 业务调度单元,用于创建所述渲染资源与所述客户端的直连链路。6.如权利要求5所述的基于云计算的实时离屏渲染装置,其特征在于,所述资源管理单元包括: 渲染资源列表子单元,用于保存所述渲染资源单元中各个渲染资源的地址,并按一定频率对各个渲染资源的工作状态进行统计,而且根据统计结果,建立渲染资源列表; 渲染资源启用子单元,用于查询所述渲染资源列表中是否有可用的渲染资源,并在有可用的渲染资源时,启用其中最优的渲染资源,否则,返回无可用资源信息至所述客户端; 渲染资源地址发送子单元,用于将所述渲染资源启用子单元启用的渲染资源的地址发送至所述业务调度单元,以供所述业务调度单元创建所述直连链路时使用。7.如权利要求6所述的基于云计算的实时离屏渲染装置,其特征在于,所述业务调度单元包括: 通信链路管理子单元,用于给所述客户端分配通信端口,并在接收所述渲染资源地址发送子单元发送的渲染资源的地址后,将所述渲染资源的地址与所述客户端的通信端口绑定,以创建所述渲染资源与所述客户端的所述直连链路。8.—种基于云计算的实时离屏渲染系统,其特征在于,包括客户端、公网和若干用户资源池,所述用户资源池分别绑定有唯一的公网IP,所述客户端通过链接至所述公网IP,接入所述用户资源池; 所述用户资源池包括路由器、渲染资源服务器、资源管理服务器和业务调度服务器;其中, 所述路由器,用于接收所述客户端发送云渲染服务请求,并将所述云渲染服务请求转发至所述业务调度服务器; 所述业务调度服务器,用于创建所述渲染资源与所述客户端的直连链路,并将所述云渲染服务请求转发至所述渲染资源服务器和所述资源管理服务器; 所述渲染资源服务器,用于提供渲染资源进行渲染服务; 所述资源管理服务器,用于管理和启用所述渲染资源。9.如权利要求8所述的基于云计算的实时离屏渲染系统,其特征在于,所述资源管理服务器保存所述渲染资源服务器中各个渲染资源的地址,并按一定频率对各个渲染资源的工作状态进行统计,而且根据统计结果,建立渲染资源列表; 所述资源管理服务器接收所述业务调度服务器转发的所述云渲染服务请求,查询所述渲染资源列表中是否有可用的渲染资源,若有,则启用其中最优的渲染资源,否则返回无可用资源信息至所述客户端; 所述资源管理服务器启用渲染资源,并且将所述渲染资源的地址发送至所述业务调度服务器,以供所述业务调度服务器创建所述直连链路时使用。10.如权利要求9所述的基于云计算的实时离屏渲染系统,其特征在于,所述业务调度服务器接收所述资源管理服务器发送的地址,并分配给所述客户端一个通信端口,将所述渲染资源的地址与所述客户端的通信端口绑定,以创建所述渲染资源与所述客户端的所述直连链路。
【专利摘要】本发明公开了一种基于云计算的实时离屏渲染方法、装置及系统,其方法包括在接受客户端发送的云渲染服务请求后,启用渲染资源并创建客户终端和渲染资源的直连链路,使渲染资源直接处理云渲染服务请求,渲染资源进行实时渲染并将实时产生的渲染结果直接发送至客户端,使客户终端实时接收渲染结果并根据渲染结果显示画面,不仅能够支持同时在线的客户端设备多,可承载海量的客户端设备的渲染服务请求,而且,所有在线的渲染任务相互独立,减轻了云端的通信负载,降低了云渲染服务的延时性。
【IPC分类】H04L29/06, G06T15/00
【公开号】CN105488837
【申请号】CN201510827310
【发明人】罗涛, 杨磊, 张微, 陈乐吉, 杨学亮, 周易, 曾锦平, 邱泳天
【申请人】成都赫尔墨斯科技有限公司
【公开日】2016年4月13日
【申请日】2015年11月24日