一种2d游戏的渲染系统及方法、终端设备的制造方法_2

文档序号:9833111阅读:来源:国知局
同一设备同时运行多个游戏客户端的情况下,各个游戏客户端能够共享所述序列帧数据共享单元中的2D序列帧数据,最大化的减少重复渲染。
【附图说明】
[0044]为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0045]图1是本发明实施例提供的2D游戏的渲染系统的结构示意图。
[0046]图2是图1所示的3D清染单元的一种结构示意图。
[0047]图3是本发明实施例提供的坐骑模型的示意图。
[0048]图4是本发明实施例提供的人物模型的示意图。
[0049]图5是通过挂接点对坐骑模型和人物模型进行挂接的示意图。
[0050]图6(a)至图6(g)是对坐骑模型和人物模型进行不同方向渲染的示意图。
[0051 ]图7是图3所示的3D动画渲染模块的一种结构示意图。
[0052]图8是将坐骑模型的2D序列帧数据和人物模型的2D序列帧数据进行挂接后的示意图。
[0053 ]图9是图3所示的3D动画渲染模块的另一种结构示意图。
[0054]图10是本发明实施例提供的2D游戏的渲染方法的流程示意图。
[0055]图11是本发明实施例提供的终端设备的结构示意图。
[0056]图12是图11所示的3D渲染系统的结构示意图。
[0057]图13是图11所示的游戏客户端的结构示意图。
【具体实施方式】
[0058]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0059]请参阅图1,图1是本发明实施例提供的2D游戏的渲染系统的结构示意图。所述渲染系统100包括2D渲染单元10、序列帧数据共享单元20、3D渲染单元30及3D模型资源存储单元40,其中:
[0060]所述2D渲染单元10,用于根据游戏渲染请求加载待渲染的2D序列帧数据并进行渲染以生成发送给用户设备的游戏画面帧。
[0061]序列帧数据共享单元20,用于存储并向所述2D渲染单元10提供所述待渲染的2D序列帧数据。
[0062]3D渲染单元30,用于基于设定的视角将预置的3D模型渲染生成所述2D序列帧数据并传送给所述序列帧数据共享单元。
[0063]3D模型资源存储单元40,用于存储所述3D模型以供所述3D渲染单元30加载使用。
[0064]具体地,在本发明实施例,所述2D渲染单元10可用于将2D序列帧数据进行渲染后生成游戏画面帧,这些游戏画面帧可在用户设备的显示屏幕上进行显示。
[0065]在本发明实施例中,在游戏过程中,常常需要播放游戏角色走动、跑动、攻击或施法等的动画。此时,游戏客户端可根据游戏自身运行逻辑或用户的操作向所述2D渲染单元10发出游戏渲染请求,其中,所述游戏渲染请求可包括待渲染的2D序列帧数据的标识。所述2D渲染单元10在接收到所述游戏渲染请求后,将根据所述游戏渲染请求向所述序列帧数据共享单元20请求获得相应的待渲染的2D序列帧数据。
[ΟΟ??]在本发明实施例中,所述序列帧数据共享单元20在接收到所述2D清染单元10的请求后,查询是否存储有所需的待渲染的2D序列帧数据,若有,则所述序列帧数据共享单元20直接向所述2D渲染单元10提供所述待渲染的2D序列帧数据;若没有,则所述序列帧数据共享单元20可将接收到的游戏渲染请求放入到一个请求队列中。
[0067]在本发明实施例中,所述3D渲染单元30可周期性的对所述序列帧数据共享单元20的请求队列进行检查,当所述请求队列不为空时,所述3D渲染单元30即提取出位于所述请求队列的队列头部的游戏渲染请求,根据所述游戏渲染请求向所述3D模型资源存储单元40请求加载预置的3D模型,并基于所述游戏渲染请求所设定的视角将所述预置的3D模型渲染生成2D序列帧数据后,将所述2D序列帧数据发送给所述序列帧数据共享单元20,所述序列帧数据共享单元20存储所述2D序列帧数据。
[0068]在本发明实施例中,所述2D渲染单元10可每隔预定的时间检测所述游戏渲染请求是否完成,以从所述序列帧数据共享单元20获取所需的2D序列帧数据,并根据所述2D序列帧数据进行渲染生成发送给用户设备的游戏画面帧。
[0069]需要说明的是,为了防止所述序列帧数据共享单元20内存储了过多的2D序列帧数据而导致占用存储空间,所述序列帧数据共享单元20还可以通过一定的淘汰策略,例如近期最少使用算法(Least Recently Used,LRU)来淘汰掉比较少用的2D序列帧数据。
[0070]综上所述,本发明实施例提供的2D游戏的渲染系统100,所述3D渲染单元30根据游戏渲染请求直接从3D模型资源存储单元40加载预置的3D模型,并生成待渲染的2D序列帧数据后,发送给序列帧数据共享单元20。所述2D渲染单元10再从所述序列帧数据共享单元20获取所需的待渲染的2D序列帧数据,以生成发送给用户设备的游戏画面帧。本发明实施例提供的渲染系统100,与现有技术相比,由于2D序列帧数据是由所述3D渲染单元30实时渲染生成(或由所述3D渲染单元30渲染生成并存储在所述序列帧数据共享单元20中),一方面,由于不需要直接将序列帧数据预置在游戏资源包,避免了游戏资源包过大而导致下载等待时间长和占用用户设备存储空间太大的问题;另一方面,由于不需要手工绘制序列帧动画,减小了美术工作量,加快了游戏开发速度。
[0071]此外,本发明实施例还基于所述序列帧数据共享单元20实现了所述2D渲染单元10与所述3D渲染单元30之间的解耦合。具体地,对于可在同一设备同时运行多个游戏客户端(每个游戏客户端均包含一个所述2D渲染单元10)的2D游戏,各个游戏客户端的2D渲染单元10能够共享所述序列帧数据共享单元20中的2D序列帧数据,最大化的减少重复渲染。
[0072]为进一步对本发明的方案进行更详细的说明,下文对本发明的一些优选实施例进行具体描述或举例说明:
[0073]一、针对所述3D渲染单元30的优选实施例。
[0074]在本发明实施例中,上述技术方案虽然解决了如何利用所述3D渲染单元30来直接生成所需的待渲染的2D序列帧数据,但是,对于一个2D游戏而言,一个游戏角色模型往往是由多个模型组合形成的,例如,对于一个游戏角色模型,其可由人物模型、坐骑模型、衣服模型和装备模型等组合形成,因而有必要讨论利用所述3D渲染单元30来对组合形成的模型进行渲染来获得相应的2D序列帧数据的问题。
[0075]具体地,请一并参阅图2,在本发明的优选实施例中,所述3D渲染单元30包括:
[0076]3D模型资源加载模块31,用于从所述3D模型资源存储单元40加载至少两个3D模型。
[0077]3D模型挂接模块32,用于根据所述3D模型中预置的挂接点将所述至少两个3D模型相互挂接以形成待渲染的目标模型。
[0078]3D动画渲染模块33,用于基于所述目标模型进行3D渲染获得3D动画,并基于所述3D动画和设定的视角生成所述2D序列帧数据。
[0079]在本发明实施例中,所述序列帧数据共享单元20的消息队列中存储的的游戏渲染请求可包括至少两个3D模型的名称、动作和视角,其中,每个3D模型预置有至少一个挂接点。所述3D模型资源加载模块31可根据至少两个3D模型的名称和动作从所述3D模型资源存储单元40加载对应的至少两个3D模型,所述3D模型挂接模块32根据所述3D模型中预置的挂接点将所述至少两个3D模型相互挂接以形成待渲染的目标模型。最后,由所述3D动画渲染模块33对所述目标模型进行3D渲染获得3D动画,并基于所述3D动画和设定的视角生成所述2D序列帧数据。
[0080]例如,如图3和图4所示,所述至少两个3D模型分别为坐骑模型和人物模型,则所述渲染生成请求可包括坐骑模型的名称(如飞马)、动作(walk)、人物模型的名称(如XX)、动作(ride_usual_2)。此时,所述3D模型资源加载模块31在提取所述游戏渲染请求后,从所述3D模型资源存储单元40读取名称为飞马,动作为walk的坐骑模型及名称为XX,动作为ride_usual_2的人物模型。
[0081]本发明实施例中,所述至少两个3D模型分别包括至少一个挂接点(如图3中的sk_ride_0和图4中的Sk_ride_0),则所述3D模型挂接模块32根据所述3D模型中预置的挂接点将所述至少两个3D模型相互挂接以形成待渲染的目标模型(如图5所示)。其中,在挂接时,所述3D模型挂接模块32使不同3D模型上的具有相同挂接点的坐标重合。应当理解的是,图5仅示出了两个3D模型的挂接,事实上,也可实现更多模型的挂接。例如,也可在图5的基础上再加一个武器模型,此时,武器模型上和人物模型上也各有一个挂接点(如可标记为sk_ride j),在组合时,只需使不同模型上的具有相同挂接点的坐标重合即可,本发明在此不做赘述。
[0082]请一并参阅图6(a)至图6(g),在本发明实施例中,所述3D动画渲染模块33同时播放飞马模型的walk动作及人物模型的ride_usual_2动作,然后根据设定的视角生成所需的2D序列帧数据,可以想象成在动画播放过程中,所述3D动画渲染模块33在设定的视角实时对运动中的目标模型进行拍照来获得所述2D序列帧数据。
[0083]本优选实施例通过所述3D模型挂接模块32对不同的3D模型进行挂接后再交由所述3D动画渲染模块33渲
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1