绘制控制设备及其控制方法、记录介质、绘制服务器和绘制系统的制作方法

文档序号:1582598阅读:129来源:国知局
专利名称:绘制控制设备及其控制方法、记录介质、绘制服务器和绘制系统的制作方法
技术领域
本发明涉及绘制控制设备及其控制方法、记录介质、绘制服务器以及绘制系统,并且更具体地涉及向与网络连接的客户装置提供绘制好的画面的技术。
背景技术
诸如个人计算机(PC)等的可与网络连接的客户装置已广泛使用。随着这类装置的普及,因特网的用户正在增多。近年来,针对网络用户已经开发出采用因特网的各种服务,也提供了诸如游戏等的娱乐服务。针对网络用户的这些服务中,有一种诸如MMORPG (大型多人在线角色扮演游戏)的大型多人网络游戏。在这种大型多人网络游戏中,用户可以通过将他/她的客户装置连接至提供游戏的服务器来与其它使用连接至服务器的客户装置的用户进行配对游戏或团队游戏。在一般大型多人网络游戏中,客户装置与服务器交换绘制游戏所需的数据。客户装置通过使用所接收到的绘制所需的数据来执行绘制处理,并且在连接至客户装置的显示装置上显示所生成的游戏画面,从而向用户提供游戏画面。另外,将用户对输入界面进行操作而输入的信息发送至服务器,并且在服务器中的计算处理中使用该信息,或者将该信息发送至连接到服务器的其它客户装置。遗憾地是,如上所述在客户装置上进行绘制处理的一些网络游戏需要各用户使用具有充足的绘制性能的PC或者专用游戏机。因此,网络游戏(一个内容)的用户数量依赖于拥有满足该内容所需性能的装置的用户的数量。也就是说,难以增加诸如提供了优美图形的游戏等的需要高绘制性能的游戏的用户数量。相比之下,如国际公开2009/138878所述,近年来提供了用户可以在不依赖客户装置的绘制性能等的处理能力的情况下进行游戏的游戏。在国际公开2009/138878所述的游戏中,服务器获取在客户装置上所进行的操作的信息,并将利用该信息执行绘制处理所获得的游戏画面提供给客户装置。也就是说,在响应于在客户装置上所进行的操作来进行绘制处理的情况下,需要提高响应速度,即,快速地提供反映操作的游戏画面,以允许用户毫无压力地进行游戏。尤其是在大型多人网络游戏中,服务器同时生成提供给多个客户装置的游戏画面。因此,需要减少多个游戏画面的绘制处理的所需时间。然而,国际公开2009/138878没有提及任何用于提高游戏画面绘制处理效率的可行方法。

发明内容
考虑到上述现有技术的问题而作出本发明。本发明提供了一种在用于向一个或多个客户装置提供游戏画面的绘制系统中进行具有高响应性的有效率的绘制处理的方法。本发明在其第一方面中提供一种绘制控制设备,包括:获取部件,用于获取用于生成要提供给客户装置的画面的多个绘制对象的信息,并且将信息存储在存储部件中,其中,各绘制对象的信息包括该绘制对象的识别信息以及表示对该绘制对象进行绘制所需的数据的详细信息;确定部件,用于参考获取部件所获取的多个绘制对象各自的详细信息,并且确定多个绘制对象的绘制顺序;以及传送部件,用于根据确定部件所确定的绘制顺序来获取绘制对象的识别信息,从数据存储部件读出与该识别信息相对应的绘制对象的详细信息所表示的数据,并且将该数据传送至用于通过顺次绘制多个绘制对象来生成画面的绘制部件,其中,确定部件将连续序数作为绘制对象的绘制顺序分配给共用详细信息所表示的至少部分数据的多个绘制对象,以及在根据绘制顺序进行绘制时,传送部件从数据存储部件中,读出在绘制顺序中连续的绘制对象的详细信息所表示的数据中的、与已传送至绘制部件的数据不同的数据,并且传送所读出的数据。通过参考附图对典型实施例进行的以下说明,本发明的其它特征将变得明显。


图1是示出根据本发明实施例的绘制系统的系统配置的图;图2是示出根据本发明实施例的绘制服务器100的功能配置的框图;图3是示出根据本发明实施例的中心服务器200的功能配置的框图;图4是示出根据本发明实施例的中心服务器200的游戏处理的示例的流程图;图5A和5B是示出根据本发明实施例的操作输入信息和绘制指令的数据结构的示例的图;图6是根据本发明实施例的绘制服务器100的绘制处理的示例的流程图;图7是说明根据本发明实施例的绘制服务器100的绘制顺序确定处理的示例的流程图;图8是说明根据本发明实施例的绘制顺序确定处理的流程图;图9是说明根据本发明实施例的绘制顺序确定处理的另一图;图10是说明根据本发明实施例的绘制顺序确定处理所确定的绘制顺序的图;以及图11是示出根据本发明变形例的绘制服务器100的绘制顺序确定处理的示例的流程图。
具体实施例方式第一实施例下面将参考附图详细说明本发明的典型实施例。注意,下面说明的实施例是绘制系统的示例,其中,在该绘制系统中,本发明应用于能够接受一个或多个客户装置的连接的中心服务器、以及能够同时生成要提供至一个或多个客户装置的画面的绘制服务器。然而,本发明可应用于能够同时形成要向一个或多个客户装置提供的画面的任意设备和任意系统。在本说明书中,由中心服务器提供给客户装置的“服务”是如上所述的大型多人网络游戏。在绘制系统中,绘制服务器生成要提供给客户装置的游戏画面,并且游戏画面经由中心服务器被分配给客户装置。然而,绘制系统不需要总是提供这类服务,并且只需要用于绘制画面并将画面分配给客户装置的配置。绘制系统的配置图1是示出根据本发明实施例的绘制系统的系统配置的图。如图1所示,用于接收所提供的服务的客户装置300a 300e和用于提供服务的中心服务器200经由诸如因特网等的网络400连接。相同地,用于绘制要提供给客户装置300的画面的绘制服务器100经由网络400连接至中心服务器200。注意,在下述说明中,除非另有说明,“客户装置300”表示所有客户装置300a 300e。客户装置300不限于,例如,·PC、家用游戏机或便携式游戏机,而且可以是诸如手机、PDF或平板电脑等装置。在本实施例的绘制系统中,绘制服务器100生成与客户装置上所进行的操作输入相对应的游戏画面,并且中心服务器200将画面分配给客户装置300。因此,客户装置300不需要具有任何用于生成游戏画面的绘制功能。也就是说,客户装置300只需要是包括用于检测操作输入的用户接口以及用于显示画面的显示装置的设备,或者是可连接至用户接口和显示装置、并且能够在显示装置上显示所接收到的游戏画面的设备。也就是说,由于用于生成游戏画面的绘制处理使用比视频流解码处理所使用的硬件资源更多的硬件资源,因而本发明通过将服务器生成的游戏画面发送至客户装置来提供不依赖于客户装置的绘制性能的游戏。中心服务器200执行并管理游戏处理程序,指示绘制服务器100进行绘制处理,并且与客户装置300交换数据。更具体地,中心服务器200执行大型多人网络游戏的游戏处理作为要提供给客户装置300的服务。中心服务器200管理各客户装置的用户所操作的角色在地图上的位置和方向、以及要提供给各角色的事件等的信息。中心服务器200使绘制服务器100生成与正被管理的角色的状态相对应的游戏画面。例如,在经由网络400输入已连接的各客户装置的用户所进行的操作输入信息时,中心服务器200执行用于将该信息反映至正被管理的角色的信息的处理。然后,中心服务器200基于反映操作单元的信息的角色信息来确定游戏画面上要绘制的绘制对象,并将绘制指令发送至绘制服务器100。绘制服务器100是用于执行绘制处理的服务器,并且在本实施例中包括下述的四个GPU。绘制服务器100根据从中心服务器200接收到的绘制指令来绘制游戏画面,并将生成的游戏画面输出至中心服务器200。注意,绘制服务器100可以同时形成多个游戏画面。基于从中心服务器200接收到的针对各游戏画面的信息,S卩,包括在游戏画面中的绘制对象的识别信息、以及表示绘制各绘制对象所需的数据的详细信息,绘制服务器100通过GPU执行游戏画面绘制处理。在本实施例中,“表示绘制各绘制对象所需的数据的详细信息”包括表示以下属性数据的信息。 用于指定模型数据的识别信息 用于指定纹理数据的识别信息 要使用的绘制程序(例如,着色器)的特定信息 绘制程序中要使用的计算用数据的特定信息(例如,光源强度、光源矢量以及转动矩阵)注意,在本实施例中,包括有上述信息的详细信息从中心服务器200发送至绘制服务器100,然而包括在详细信息中的信息不限于上述信息。例如,详细信息可以包括上述五个信息中的至少一个,并且除上述信息外,还可以包括绘制对象的绘制处理中所用的信息。同样注意,在下述说明中,计算用数据包括绘制处理中的计算所用的常数和变量等数值。中心服务器200将根据所发送的包括绘制对象识别信息和详细信息的绘制指令而从绘制服务器100接收到的游戏画面分配到相应的客户装置。因而,本实施例的绘制系统可以生成与客户装置进行的操作输入相对应的游戏画面,并且通过客户装置的显示装置向用户提供游戏画面。注意本实施例的绘制系统包括一个绘制服务器100和一个中心服务器200,但是本发明不限于该配置。例如,也可以将一个绘制服务器100分配给多个中心服务器200,或将多个绘制服务器100分配给多个中心服务器200。根据表示绘制服务器100或者绘制服务器100的各GPU所同时生成的游戏画面的数量的信息,中心服务器200也可以指定绘制服务器100或者绘制服务器100的GPU用于执行绘制指令。绘制服务器100的配置图2是示出根据本发明实施例的绘制服务器100的功能配置的框图。CPUlOl对绘制服务器100的各块的操作进行控制。更具体地,CPUlOl读出存储在R0M102或记录介质104中的绘制处理操作程序,在RAM103上展开程序,并且执行程序,从而控制各块的操作。R0M102例如是可编程非易失性存储器。R0M102存储绘制处理操作程序、其它操作程序、以及绘制服务器100的各块的操作所需的常数等信息。RAM103是易失性存储器。RAM103不仅用作操作程序展开区域,而且也用作临时存储例如在绘制服务器100的各块的操作期间输出的中间数据的存储区域。例如,记录介质104是从绘制服务器100可拆卸的HDD等的记录装置。在本实施例中,记录介质104存储用于在绘制处理中生成画面的以下数据。 模型数据 纹理数据 绘制程序 绘制程序中要使用的计算用数据通信单元113是绘制服务器100的通信接口。通信单元113与例如经由网络400连接的中心服务器200的其它设备进行数据交换。在交换数据时,通信单元113将数据转换为针对网络400或发送目的设备所确定的数据发送格式,并将数据发送至发送目的设备。当接收到数据时,通信单元113将经由网络400接收到的数据转换为绘制服务器100可读取的任意数据格式,并将数据存储在例如RAM103中。第一 GPU105、第二 GPU106、第三GPU107和第四GPU108分别在绘制处理中生成要提供给客户装置300的游戏画面。各GPU连接至作为游戏画面绘制区域的视频存储器(第一¥狀11109、第二¥1 舰110、第三¥1 舰111和第四VRAM112中的一个)。另外,各GPU包括高速缓冲存储器。当在连接的VR AM上进行绘制时,各GPU在高速缓冲存储器上展开绘制对象,并在相应的VRAM中写入映射的绘制对象。注意,在本实施例中,一个视频存储器连接至一个GPU,但本发明不限于此。也就是说,连接至GPU的视频存储器的数量可以为任意数量。
中心服务器200的配置以下将说明本实施例的中心服务器200的功能配置。图3是示出根据本发明的实施例的中心服务器200的功能配置的框图。中心CPU201控制中心服务器200的各块的操作。更具体地,CPU201从例如R0M202或中心记录介质204读取游戏处理程序,在中心RAM203上展开程序并执行程序,从而控制各块的操作。中心R0M202例如是可编程的非易失性存储器。中心R0M202存储游戏处理程序,并也可以存储其它程序。中心R0M202还存储针对中心服务器200的各块的操作所需的常
数等信息。中心RAM203是易失性存储器。中心RAM203不仅用作游戏处理程序展开区域,也用作用于临时存储例如在中心服务器200的各块的操作期间输出的中间数据的存储区域。例如,中心记录介质204是从中心服务器200可拆卸的HDD等的记录装置。在本实施例中,中心记录介质204例如用作对使用游戏的用户和客户装置进行管理的数据库,以及用作对用于生成要提供给连接的各客户装置的游戏画面所需的与游戏有关的各种信息进行管理的数据库。中心通信单元205是中心服务器200的通信接口。中心通信单元205经由网络400与绘制服务器100和客户装置300进行数`据交换。注意,与通信单元113 —样,中心通信单元205将数据转换为符合通信规范的数据格式。游戏处理下面将参考图4所示的流程图来说明在具有上述配置的本实施例的绘制系统的中心服务器200上所执行的基本游戏处理的实际处理。可以通过中心CPU201读出存储在例如中心存储介质204中的相应处理程序,在中心RAM203上展开程序,并且执行该程序来实现与该流程图相对应的处理。注意,在例如激活中心服务器200时开始该游戏处理,并且针对所提供的游戏的各帧来重复执行该游戏处理。还要注意,在下面说明中,客户装置300a 300e已经连接至中心服务器200。在该游戏处理中,中心服务器200针对各客户装置提供游戏画面。在步骤S401中,中心CPU201判断是否接受到表示各客户装置300上所进行的操作输入的信息。更具体地,中心CPU201判断由中心通信单元205接收并存储在中心RAM203中的信息是否为表示客户装置300上所进行的操作输入的信息。表示客户装置300上所进行的操作输入的信息可以具有例如图5A所示的数据结构。如图5A所示,本实施例的操作输入信息包括,例如, 进行了操作输入的客户装置的识别信息(例如,IP地址和用户识别信息) 操作所输入的移动量和移动方向 所选择的动作的识别信息 游戏画面的绘制范围(例如,照相机参数) 客户装置的显示装置的显示设置(例如,画面显示分辨率和颜色数量)注意,中心服务器200所接收到的作为各客户装置300进行的操作输入的信息的数据结构不限于此,并且也可以是由游戏预先确定的数据结构。在本实施例中,通过将用户等在客户装备300上进行的操作转换为游戏中的数值或参数而获得的信息被发送至中心服务器200。然而,本发明不限于此。也就是说,操作输入信息也可以是表示通过用户操作按钮等来使客户装置检测到的输入信号的信息。在这种情况下,仅需要根据表示中心CPU201所接收到的输入信号的信息以及客户装置类型来进行转换为游戏中的数值或参数的处理。如果中心CPU201判断为接收到了表示客户装置300上进行的操作输入的信息,则中心CPU201将处理进行至步骤S402 ;否则,中心CPU201将处理进行至步骤S403。在步骤S402中,中心CPU201基于在步骤S401中接收到的、表示客户装置300上的操作输入的信息来更新游戏信息。更具体地,中心CPU201从中心记录介质204中读取与作为相应的客户装置300的用户的操作对象的游戏中的角色相对应的状态信息。角色状态信息是可以由用户操作来改变的角色的动作和外观的信息,例如,地图上的角色的位置(坐标信息)、角色的注视方向、以及角色的动作。中心CPU201参考所接收到的操作输入信息,并且利用所接收到的操作输入信息,对状态信息包括的参数中的通过操作输入所改变的参数进行更新。因此,中心CPU201可以将客户装置300上进行的操作输入的信息反映在游戏上。注意,在步骤S401中所接收到的客户装置300上的操作输入的信息中,中心CPU201将不用于更新角色状态信息的信息与客户装置识别信息相关联,并将该信息记录在中心记录介质204上。在步骤S403中,除作为各客户装置300的用户的操作对象的角色之外,中心CPU201更新作为游戏中的状态管理对象的绘制对象的状态信息。作为游戏中的状态管理对象的绘制对象的示例是并非用户操作对象的被称为NPC (非玩家控制角色)的角色、以及诸如地形等背景对象。作为游戏中的状态管理对象的绘制对象随时间或由作为用户操作对象的角色的动作所改变。因此,在步骤S403中,中心CPU201根据过去的时间或者在步骤S402中更新的角色状态信息,更新作为游戏中的状态管理对象的绘制对象的状态信息。在步骤S404中,中心CPU201指定提供给各客户装置300的游戏画面中包含的绘制对象。游戏画面中包含的绘制对象是上述的作为游戏中的状态管理对象的绘制对象、以及作为用户操作对象的角色绘制对象。更具体地,中心CPU201选择当前连接至中心服务器200的各客户装置300,并从中心记录介质204读出与客户装置300的识别信息相关联的游戏画面绘制范围的信息。如上所述,游戏画面绘制范围的信息包括与游戏画面相对应的照相机参数。中心CPU201参考照相机参数,并且将诸如下述角色等的绘制对象指定为包括在游戏画面中的绘制对象,其中,该角色的状态信息包括照相机绘制范围中所包括的坐标信息。注意,将识别信息分配给绘制对象,并且中心CPU201将游戏画面中包括的指定绘制对象的识别信息与客户装置的识别信息相关联,并且将该信息记录在中心记录介质204上。在步骤S405中,中心CPU201将用于绘制要提供给所有客户装置300的游戏画面的指令发送至绘制服务器100,并且使绘制服务器100执行绘制处理。更具体地,中心CPU201首先读出提供给客户装置300的游戏画面中所包含的绘制对象的识别信息,其中,该识别信息与各客户装置300的识别信息相关联地记录在中心记录介质204上。中心CPU201还从中心记录介质204中读出针对游戏画面中包含的各绘制对象所设置的详细信息。然后,中心CPU201将提供给各客户装置300的游戏画面中所包含的绘制对象的识别信息以及各绘制对象的详细信息与客户装置300的识别信息相关联,并且经由中心通信单元205将信息作为绘制指令发送至中心服务器200。同时,中心CPU201从中心记录介质204中读取与客户装置的识别信息相关联的游戏画面的绘制范围的信息以及各客户装置的显示装置的显示设置信息,并且将所读取出的信息发送至绘制服务器100。也就是说,如图5B所示,发送至绘制服务器100以绘制要提供给一个客户装置的游戏画面的绘制指令包括与客户装置的识别信息相关联的: 游戏画面中包含的各绘制对象的识别信息 游戏画面中包含的各绘制对象的详细信息 游戏画面中包含的各绘制对象的状态信息 游戏画面的绘制范围和显示设置的信息注意,如果游戏是例如照相机位置保持不变的游戏或者具有固定显示分辨率的游戏,则在绘制指令中不需要包括诸如照相机参数和显示设置等的表示游戏画面绘制范围的信息。注意,在本实施例中,针对各客户装置300将绘制指令发送至绘制服务器100。然而,容易理解的是,也可以针对多个或所有的客户装置300来同时发送绘制指令。在步骤S406中,中心CPU201判断是否从绘制服务器100接收到由绘制服务器100根据绘制指令生成的游戏画面。更具体地,中心CPU201判断中心通信单元205是否已接收到由绘制服务器100针对各客户装置300所生成`并输出的游戏画面。如果判断接收到游戏画面,则中心CPU201将处理行进至步骤S407 ;否则,中心CPU201重复该步骤的处理。也就是说,中心CPU201在该步骤中等待,直到接收到各客户装置300的游戏画面为止。注意,本步骤中所接收到的游戏画面优选为基于在作为紧前一步骤的步骤S404中发送至绘制服务器100的绘制指令而生成的游戏画面,但是游戏画面不限于此。也就是说,针对各帧执行该游戏处理。因此,如果在由所提供的游戏的帧频所定义的一个帧时间内没有完成游戏画面的绘制,则该步骤中所接收到的游戏画面也可以是根据比当前帧早几帧的帧中发送的绘制指令所生成的画面。在步骤S407中,中心CPU201将步骤S406中接收到的游戏画面分配给相应的客户装置300。更具体地,中心CPU201参考例如由中心通信单元205接收并存储于中心RAM203中的游戏画面的头中包括的客户装置300的识别信息。然后,中心CPU201经由中心通信单元205将游戏画面发送至由识别信息表示的客户装置300,并完成该游戏处理。如上所述,通过将绘制指令发送至绘制服务器100,中心服务器200可以生成反映各客户装置300上进行的操作输入的游戏画面,并将所得到的游戏画面分配给客户装置300。然而,根据客户装置300的数量或包括在绘制范围中的绘制对象的数量,生成反映各客户装置300上进行的操作输入的游戏画面需要花费很长时间。这可能给客户装置300的用户造成游戏响应慢的印象。在本实施例中,以下将说明通过判断绘制指令中包括的绘制对象详细信息来缩短绘制服务器100的绘制处理所需的时间的方法。通过针对各绘制对象,读出详细信息中包含的“用于指定模型数据的识别信息”、“用于指定纹理数据的识别信息”、“绘制程序的特定信息”以及“绘制程序中要使用的计算用数据”来进行绘制处理。也就是说,在游戏画面中包括多个绘制对象的情况下,选择各绘制对象、读出详细信息、并且根据详细信息进行绘制。此后,进行针对下一个绘制对象的绘制。也就是说,在绘制处理过程中切换了要绘制的绘制对象时,绘制服务器100执行关于初始化的处理,例如,将模型数据和纹理数据传输至GPU、转换该数据、读出绘制程序并设置计算用数据。因此,在针对一个游戏画面的绘制处理中,需要数量为游戏画面的绘制范围中包括的绘制对象的数量的、针对绘制一个绘制对象的初始化所用的处理时间(切换成本)。在同时生成要分配给多个客户装置300的游戏画面时,切换成本进一步增长。另一方面,在生成游戏画面时,特别在例如背景中有时存在共用由详细信息所表示的至少部分数据的绘制对象。例如,通过针对模型数据的一些图案使用一个纹理数据来绘制包括在游戏画面中的树等的对象。另外,相同的绘制程序和相同的计算用数据用于例如具有相同材料或纹理的对象或者在相同光源下存在的对象。此外,如果在提供给不同客户装置的游戏画面中游戏中的地图上的照相机位置和方向类似,则很有可能绘制范围中存在共同的绘制对象,并且使用相同的详细信息。本实施例通过将连续序数作为绘制顺序分配给上述的共用由详细信息所表示的至少部分数据的绘制对象,来减少绘制处理过程中的切换成本。也就是说,当切换要绘制的绘制对象时,通过使用对前面绘制的绘制对象进行计算的结果或者针对其而读出的数据来缩短共同处理所需的时间,从而减少切换成本。绘制处理将参考图6所示的流程图来说明本实施例的绘制服务器100的绘制处理的实际处理。可以通过由CPUlOl读出存储于例如R0M102中的相应处理程序并且在RAM103上展开该程序来执行该程序从而实现与本流程图相对应的处理。假设例如在接收到来自中心服务器200的绘制指令时开始该绘制处理。注意,在下面说明中,绘制服务器100以上述游戏处理中相同的方法来生成要提供给五个客户装置300a 300e的游戏画面。在步骤S601中,CPUlOl将提供给客户装置300a 300e的游戏画面的生成分类至绘制服务器100的GPU。也就是说,在该步骤中,CPUlOl从第一 GPU105、第二 GPU106、第三GPU107、和第四GPU108确定要用于处理所接收到的绘制指令的GPU。针对一个GPU分配游戏画面的生成的客户装置分类方法的示例如下。1.定义游戏画面的照相机参数(绘制范围)游戏画面绘制范围(视野)是由针对提供给各客户装置300的游戏画面的照相机参数所定义的。一个照相机的视野通常由四角锥或截头(truncated)四角锥所定义。可以假定视野相互重叠的游戏画面包括相同的绘制对象。因此,可以通过考虑视野的重叠,进行分配给同一 GPU的游戏画面生成的客户装置分类,来提高绘制处理的效率。更具体地,根据定义要提供给各客户装置的游戏画面的照相机的坐标和方向,计算通过将视野所定义的四角锥投射到二维平面而获得的三角形,将三角形范围以预定比例以上互相重叠的游戏画面分类为一组,并且将该组的绘制处理分配给同一 GPU。简单地,认为具有相接近的定义游戏画面的照相机坐标的客户装置具有类似的游戏画面绘制内容。因此,可以将定义游戏画面的照相机坐标之间的距离在预定距离内的游戏画面分类为一组,并且可以将组的绘制处理分配给同一 GPU。另外,在游戏中的地图上存在使用诸如山、树、或海洋等的相同背景对象的区域。也就是说,当定义游戏画面的照相机坐标存在于配置有该背景对象的特定区域中时,或者当照相机方向是该特定区域的方向时,所生成的游戏画面包括共同的背景对象。因此,可以通过将包括有共同背景对象的游戏画面分类为一组、并将该组的绘制处理分配给同一 GPU来提高绘制处理的效率。此外,可以使用相同的绘制对象作为游戏的地图上的各种区域中的背景。也就是说,即使在定义游戏画面的照相机坐标和方向不同的情况下,相同背景对象也可以包括在绘制范围内。因此,一个GPU要生成的游戏画面中的照相机位置等不需要总是相接近。作为要被分配的GPU的信息,可以将预先确定用于进行绘制处理的GPU的信息、针对例如照相机坐标和方向的信息组合作为查找表记录在记录介质104上。作为要被分配的GPU的信息,用于进行处理的GPU的信息也可以通过例如使用照相机位置和方向的值作为自变量的函数来获得。2.绘制范围中包括的绘制对象的详细信息的组合随着具有作为绘制顺序的连续序数的绘制对象的详细信息的一致度增大,绘制处理中的切换成本减少。因此,CPU201参考要提供给所有客户装置300的各游戏画面中包括的所有绘制对象的详细信息,并基于详细信息水平来计算游戏画面之间绘制对象的一致度。然后CPU201将具有高的一致度的游戏画面的生成分类为一组,并将该组的绘制处理分配给同一 GPU。注意,基于例如详细信息中的纹理数据和模型数据的组合,也可以获得针对各游戏画面中包括的绘制对象而形成的分布的类似度作为详细信息的一致度。也可以基于由详细信息表示的特定属性数据来对各游戏画面中包括的绘制对象进行分类,并且仅针对属于各集合的绘制对象的数量等于或大于阈值的分类,在各游戏画面之间以轮流的方式比较详细信息,从而计算出详细信息的一致度。
_6] 3.作为用户操作对象的角色的事件参与有无当在游戏中满足特定条件时,例如当游戏中的地图上的特定点中存在对象时,事件可能发生并且游戏画面可能会被强制地改变为与普通画面不同的画面。例如,在对抗敌方角色等的战斗事件中,作为用户操作对象的角色在专用的战场上与敌方角色战斗。由于这类事件可能会同时发生在地图上的任意位置,因此可以通过将要提供给发生了同类事件的客户装置300的游戏画面分类为一组、并且将该组的绘制处理分配给同一 GPU来降低切换成本。4.游戏的进行状况对于确定了情节的进展的类型的游戏,可以根据游戏的进行状况来限制要绘制的对象的类型。例如,在如建筑内部一空地一草原一树林的场地变化的情节中,可以在场地变化时对组进行分类,并且将游戏画面绘制分配给不同的GPU。如上所述,通过将绘制对象的类似度用作判断标准,将在游戏画面内包括的绘制对象分类为具有类似绘制内容的多个组,并且将各组游戏画面的绘制分配给同一 GPU。然后,执行(将在后面说明的)绘制顺序确定处理。这使得各GPU更有效率地生成游戏画面。注意,用于确定用于生成要提供给客户装置300的游戏画面的GPU的上述方法只是示例。因此,也可以使用能够通过将被认为具有类似绘制内容的游戏画面的绘制分配给同一 CPU来提高绘制处理效率的方法。本实施例使用用于根据定义游戏画面的照相机位置和坐标信息来确定用于进行绘制处理的GPU的上述方法I。在下面说明中,将要提供给五个客户装置300a 300e的游戏画面的生成分类为一组,并由第一 GPU105执行该生成。注意,分类至一组游戏画面的数量(客户装置的数量)由GPU的处理能力和VRAM的容量来确定。另外,注意,可以通过例如将客户装置的识别信息添加至具有一个组ID的表,并将该表存储在RAM103中,来对分类至各组的客户装置的信息进行管理。在步骤S602中,针对分配给各GPU的各组,CPUlOl执行绘制顺序确定处理来判断要绘制的所有游戏画面中包括的绘制对象的绘制顺序。绘制顺序确定处理以下将参考图7所示的流程图来说明本实施例的绘制顺序确定处理。注意,以下将说明确定要由第一 GPU105绘制的一组的游戏画面中包括的绘制对象的绘制顺序的处理,但是容易理解,相同的处理可以应用至其它GPU。在步骤S701中,CPUlOl针对要由第一 GPU105绘制的一组的游戏画面中包括的所有绘制对象,形成均包括两个绘制对象的所有组合的对。在步骤S702中,CPUlOl通过使用由以优先级的降序来排列详细信息属性的倾斜分配所得到的评分,来对步骤S701中形成的所有对的两个绘制对象的详细信息的一致度进行评分。在本实施例中,详细信息所表示的各数据的属性的优先级顺序如下。1.用于指定纹理数据的识别信息2.用于指定模型数据的识别信息3.要使用的绘制程序的特定信息4.绘制程序中要使用的计算用数据的特定信息根据当读出具有属性的数据并且在存储器上将其展开时的高速缓冲存储器上的数据大小,来确定详细信息所表示的各数据的属性的优先级。具有上位属性的数据具有大的数据大小并需要高的切换成本,即,当将该数据切换为不同数据时,会花费长的时间来例如在高速缓冲存储器上展开数据、从高速缓冲存储器读取数据、以及设置参数。也就是说,可以根据减少了具有高优先级属性的数据的切换频率(增加重复使用频率)的绘制顺序来进行绘制,从而有效率地减少切换成本。更具体地,本步骤的评分中,详细信息一致度高的绘制对象的对的评分高,S卩,通过对优先级高的属性数据增加重复使用频率来减少切换成本的绘制对象的对的评分高。在步骤S703中,CPUlOl参考所有对的一致度的评分,并且确定要由第一 GPU105绘制的一组的游戏画面中包含的所有绘制对象的绘制顺序。更具体地,CPUlOl确定如下的绘制顺序,其中,在所有绘制对象按该绘制顺序排列时,针对连续绘制对象组合的评分的总和最大。以下将参考附图详细说明实际绘制顺序确定过程。为了简便,将说明考虑上述详细信息的四个属性中的纹理数据和模型数据的一致度的确定绘制顺序的方法。图8示出要提供给各客户装置的游戏画面中包括的绘制对象,该绘制对象用于步骤S703中的绘制对象绘制顺序确定过程的示例中。在图8所示的示例中,同一 GPU生成要提供给三个客户装置的游戏画面,并且GPU针对各游戏画面绘制两个绘制对象,即,总共绘制六个绘制对象。当CPUlOl生成所有对象的可能组合的对时,数量为6C2=15。也就是说,CPUlOl针对所有十五个对来进行一致度评分。在本实施例中,当详细信息的属性一致时,针对纹理数据的一致度的评分为2分,并且针对模型数据的一致度的评分为I分。在这种情况下,这些对的评分如图9所示。CPUlOl首先关注具有最高评分3的对。在本示例中,三对(A_l,B_l)、(A_l,C-2)和(B-l,C-2)具有最高评分3。在这种情况下,具有最高评分的对的数量等于形成对的绘制对象(三分对象)的数量。这表示由具有相同详细信息的3分对象形成所有的对。然后CPUlOl参考包括3分对象中的每一个的其它对的评分,并且判断3分对象的绘制顺序。如图9所示,包括3分对象的其它对的评分是作为第二高评分的2、或者与A-2的对的评分O。也就是说,在作为按照绘制顺序的3分对象之后的绘制对象来分配除A-2以外的绘制对象的情况下,切换成本保持相同,而与绘制对象无关。因此,CPUlOl在不特别地考虑上述三个3分对象的绘制顺序的情况下,基于例如识别信息的排列顺序来确定顺序。注意,如果仅存在一个具有第二高评分的对,则将三个3分对象中的、该对中所包括的绘制对象确定为作为3分对象绘制顺序中的最后一个的第三个,并且将包括在该对中的其它绘制对象分配为第四个。类似地,CPUlOl确定包括在具有第二高评分的对中的、除3分对象以外的绘制对象(2分对象B-2和C-1)的绘制顺序。如图9所示,与绘制对象A-2的对仅是包括2分对象并且具有等于或低于第二高分的对。如图9所示,对于绘制对象A-2,仅与2分对象B-2的对的评分为I。因此,在2分对象中,将绘制对象B-2确定为作为绘制顺序中的2分对象的最后一个的第五个,并且将绘制对象A-2确定为第六个。通过重复上述的判断,CPUlOl可以确定一组的游戏画面中所包括的所有绘制对象的绘制顺序。在本不例中,CPUlOl最终确定A-1 — B-1 — C~2 — C-1 — B~2 — A-2作为绘制顺序,如图10所示。以这种方式,可以将减少切换成本的绘制顺序的序数分配给分类为一组的游戏画面中所包括的所有绘制对象。注意,可以通过例如将绘制对象的识别信息与绘制顺序相关联,并将结果作为列表存储在RAM103等中,来分配绘制顺序的序数。在步骤S602中的绘制顺序确定处理完成后,CPUlOl在步骤S603中根据所确定的绘制顺序来对绘制对象进行绘制,从而生成要提供给各客户装置300的游戏画面。更具体地,CPUlOl以绘制顺序来参考绘制对象的详细信息、从记录介质104读出详细信息所指定的数据、并将数据发送至用于进行绘制的GPU。在本处理中,CPUlOl仅读取并传送与展开区域中已展开数据不同的数据;CPU101不读取与已展开数据相同的数据,并且使用已展开数据。注意,通过使用包括有各绘制对象的坐标信息和动作信息的状态信息、以及包括照相机参数的游戏画面绘制范围/显示设置信息,来生成游戏画面。由于作为处理内容,这些信息的使用是公知的,因而将省略对其的说明。在步骤S604中,CPUlOl将要被提供游戏画面的客户装置的识别信息添加至各GPU生成的游戏画面的头,并且将该游戏画面经由通信单元113发送至中心服务器200。由于可以通过这样减少切换成本来进行绘制处理,因而可以向操作客户装置的用户提供对用户操作输入具有高响应性的游戏画面。注意,在本实施例中,简单地将“游戏画面”从中心服务器200传送至客户装置300。尽管“游戏画面”可以是简单的静止图像数据,但是也可以将“游戏画面”传送为进行了诸如帧间预测等的用于进一步减小数据大小的编码处理的运动图像数据的帧图像数据。当然也可以由绘制服务器100或中心服务器200来进行编码处理。另外,在本实施例中,通过将大型多人网络游戏作为示例来说明了本发明。然而,如上所述,本发明适用于能够同时生成要提供给一个或多个客户装置的画面的任意设备和任意系统,并且不限于上述实施例。例如,将与一个用户相对应的游戏内容独立地提供给绘制系统中的各客户装置的情况下,可以将类似的游戏画面输出至多个客户装置。也就是说,当地图上的位置或方向类似的情况下、当游戏的进行状况类似的情况下、或当执行相同动作的情况下,在所提供的游戏画面中可能包括共同的绘制对象。因此,可以通过应用本发明来提高绘制处理的效率。此外,绘制服务器100和中心服务器200在本实施例的绘制系统中是分开的,但本发明不限于此。也就是说,也可以由具有绘制服务器100和中心服务器200这两者的功能的一个服务器来执行本发明。如上所述,本实施例的绘制控制设备可以在向一个或多个客户装置提供画面的绘制系统中进行具有高响应性的有效率的绘制处理。更具体地,绘制控制设备针对用于生成要提供给客户装置的画面的多个绘制对象中的各绘制对象,获得识别信息和表示绘制所需数据的详细信息。绘制控制设备通过参考多个绘制对象中的各绘制对象的详细信息,确定所有绘制对象的绘制顺序,以将连续序数分配给共用由详细信息所表示的至少部分数据的绘制对象。绘制控制设备根据绘制顺序读取由绘制对象的详细信息所表示的数据,并将该数据发送至GPU。在这种情况下,在由绘制顺序中连续的绘制对象的详细信息所表示的数据中,绘制控制设备仅读取并传送与已传送至GPU的数据不同的数据。上述处理使得可以减少游戏画面绘制处理所需的时间并且有效率地进行绘制。夺形例在上述实施例中,说明了通过对分类为一组的游戏画面中所包括的所有绘制对象的所有组合进行配对、并且对这些对进行评分来确定绘制顺序的绘制顺序确定处理。在变形例中,将说明通过以优先级的降序排列详细信息的属性来对绘制对象进行排序和分类,从而简单地进行评分的方法。绘制顺序确定处理以下将参考图11所示的流程图来详细说明本变形例的绘制顺序确定处理。注意,以下将说明用于确定要由第一 GPU105绘制的一组的游戏画面中包括的绘制对象的绘制顺序的处理,但是容易理解,相同的处理可适用于其它GPU。在步骤SllOl中,CPUlOl针对要由第一 GPU105绘制的一组的游戏画面中包括的所有绘制对象,基于具有最高优先级的属性数据,通过以优先级降序排列详细信息所表示的属性来进行分类。同样,本变形例中的详细信息所表示的各数据的属性的优先级的顺序如下。1.用于指定纹理数据的识别信息2.用于指定模型数据的识别信息3.要使用的绘制程序的特定信息4.绘制程序中要使用的计算用数据的特定信息也就是说,在本步骤中,CPUlOl通过用于指定纹理数据的识别信息来对所有绘制对象进行分类。
在步骤S1102中,CPUlOl参考属于由步骤SllOl的分类所生成的使用相同纹理数据的绘制对象的各集合的成员的数量,并且指定成员数量为I的集合。然后,CPUlOl将成员数量为I的集合整合为一个集合(纹理不一致集合)。在步骤S1103中,CPUlOl通过使用具有第二高优先级的用于指定模型数据的识别信息,对使用相同纹理数据的各绘制对象集合和纹理不一致集合中的绘制对象进行分类。也就是说,在本步骤中,将属于使用相同纹理数据的各绘制对象集合和纹理不一致集合的绘制对象分类为使用相同模型数据的绘制对象的子集合。在步骤S1104中,CPUlOl参考属于由步骤S1103的分类所生成的使用相同模型数据的各绘制对象集合的成员的数量,并且指定成员数量为I的集合。然后,CPUlOl针对使用相同纹理数据的各绘制对象集合和纹理不一致集合,将成员数量为I的集合中的绘制对象整合为一个集合(模型不一致集合)。在步骤S1105中,CPUlOl判断是否存在集合分类中未使用的属性。如果存在集合分类中未使用的属性,则CPUlOl以优先级顺序来选择在集合分类中未使用的属性,并且将处理返回至步骤S1103。也就是说,然后CPUlOl通过使用绘制程序指定信息来对使用相同模型数据的各绘制对象集合和模型不一致集合中的绘制对象进行分类。通过这样进行步骤SllOl和步骤SI 102,并且重复进行步骤SI 103 步骤SI 105的处理,可以针对由详细信息表示的各属性数据对绘制对象进行分类,并且最终将共用由详细信息所表示的至少部分数据的绘制对象分类至一个集合。注意,如果CPUlOl在本步骤中判断不存在集合分类中未使用的属性,则CPUlOl将处理行进至步骤SI 106。在步骤SI 106中,CPUlOl确定要由第一 GPU105绘制的一组的游戏画面中包括的所有绘制对象的绘制顺序。也就是说,CPUlOl根据步骤SllOl 步骤SI 105中进行的绘制对象分类的信息,确定用于减少切换成本的绘制顺序。更具体地,CPUlOl首先从针对具有最高优先级的“用于指定纹理数据的识别信息”进行了分类的集合中,选择除纹理不一致集合以外的一个集合。然后,CPUlOl顺次选择包括在该集合中的子集合,并且将绘制顺序的序数分配给子集合中的绘制对象。在该处理中,可以通过例如使用二进制数字表示各集合并且根据二进制值的降序选择集合来选择子集合。例如,通过将23相加至绘制对象具有第二高优先级的共同属性的集合,将22相加至绘制对象具有第三高优先级的共同属性的集合,将21相加至绘制对象具有第四高优先级的共同属性的集合,并且将2°相加至绘制对象具有最低优先级的共同属性的集合,来进行评分,并且以评分的降序顺序来确定绘制顺序。另外,当针对根据“用于指定纹理数据的识别信息”进行了分类的一个集合来确定绘制对象的绘制顺序时,针对使用相同的纹理数据的下一个集合同样地确定绘制顺序。此夕卜,当针对除纹理不一致集合以外的所有集合来确定绘制对象的绘制顺序时,针对在纹理不一致集合中包括的绘制对象来同样地确定绘制顺序。因此,可以将减少切换成本的绘制顺序分配给所有绘制对象。
权利要求
1.一种绘制控制设备,包括: 获取部件,用于获取用于生成要提供给客户装置的画面的多个绘制对象的信息,并且将所述信息存储在存储部件中,其中,各绘制对象的所述信息包括该绘制对象的识别信息以及表示对该绘制对象进行绘制所需的数据的详细信息; 确定部件,用于参考所述获取部件所获取的所述多个绘制对象各自的详细信息,并且确定所述多个绘制对象的绘制顺序;以及 传送部件,用于根据所述确定部件所确定的绘制顺序来获取绘制对象的识别信息,从数据存储部件读出与该识别信息相对应的绘制对象的详细信息所表示的数据,并且将该数据传送至用于通过顺次绘制所述多个绘制对象来生成画面的绘制部件, 其中,所述确定部件将连续序数作为绘制对象的绘制顺序分配给共用所述详细信息所表示的至少部分数据的多个绘制对象,以及 在根据所述绘制顺序进行绘制时,所述传送部件从所述数据存储部件中,读出在所述绘制顺序中连续的绘制对象的详细信息所表示的数据中的、与已传送至所述绘制部件的数据不同的数据,并且传送所读出的数据。
2.根据权利要求1所述的绘制控制设备,其中, 绘制对象的详细信息表示对该绘制对象进行绘制所需的多个属性数据,以及所述确定部件优先将序数作为绘制对象的绘制顺序分配给共用所述详细信息所表示的优先级高的属性数据的多个 绘制对象。
3.根据权利要求2所述的绘制控制设备,其中,所述优先级被设置为使得在从所述数据存储部件读出所述详细信息所表示的多个属性数据并且在展开区域中展开该多个属性数据时,数据占据的区域大的属性的优先级高。
4.根据权利要求2或3所述的绘制控制设备,其中,所述确定部件优先将序数作为绘制对象的绘制顺序分配给共用的所述详细信息所表示的属性数据的数量大的多个绘制对象。
5.根据权利要求1 4中任一项所述的绘制控制设备,其中,绘制对象的详细信息表示纹理数据、模型数据、绘制程序和用于绘制计算的数据中的至少一个。
6.根据权利要求1 5中任一项所述的绘制控制设备,其中, 所述获取部件获取用于生成要提供给多个客户装置的画面的绘制对象的信息,以及所述确定部件确定用于生成要提供给所述多个客户装置的画面的所有绘制对象的绘制顺序。
7.一种绘制控制设备的控制方法,包括: 获取步骤,用于获取用于生成要提供给客户装置的画面的多个绘制对象的信息,并且将所述信息存储在存储部件中,其中,各绘制对象的所述信息包括该绘制对象的识别信息以及表示对该绘制对象进行绘制所需的数据的详细信息; 确定步骤,用于参考在所述获取步骤中获取的所述多个绘制对象各自的详细信息,并且确定所述多个绘制对象的绘制顺序;以及 传送步骤,用于根据在所述确定步骤中确定的绘制顺序来获取绘制对象的识别信息,从数据存储部件读出与该识别信息相对应的绘制对象的详细信息所表示的数据,并且将该数据传送至用于通过顺次绘制所述多个绘制对象来生成画面的绘制部件, 其中,在所述确定步骤中,将连续序数作为绘制顺序分配给所述多个绘制对象中的、共用所述详细信息所表示的至少部分数据的绘制对象,以及 在所述传送步骤中,在根据所述绘制顺序进行绘制时,从所述数据存储部件读出并且传送在所述绘制顺序中连续的绘制对象的详细信息所表示的数据中的、与已传送至所述绘制部件的数据不同的数据。
8.一种记录程序的记录介质,其中,所述程序用于使计算机用作根据权利要求1 6中任一项所述的绘制控制设备的各部件。
9.一种计算机可读存储介质,其存储用于使计算机用作根据权利要求1 6中任一项所述的绘制控制设备的各部件的程序。
10.一种绘制服务器,其包括根据权利要求1 6中任一项所述的绘制控制设备。
11.一种绘制系统,用于将绘制服务器所生成的画面提供给与中心服务器连接的一个或多个客户装置中的各个客户装置, 所述中心服务器包括: 接收部件,用于接收来自所述一个或多个客户装置的输入数据; 指定部件,用于根据所述接收部件所接收到的输入数据,针对所述一个或多个客户装置中的各个客户装置,指定要提供给该客户装置的画面中所包括的绘制对象; 发送部件,用于将所述指定部件所指定的、要提供给所述一个或多个客户装置的画面中所包括的多个绘制对象的信息发送至所述绘制服务器,其中,各绘制对象的所述信息包括该绘制对象的识别信息以及表示对该绘制对象进行绘制所需的数据的详细信息;以及分配部件,用于接收所述绘制服务器所绘制的、要提供给所述一个或多个客户装置中的各个客户装置的画面,并且将所述画面分配给相应的客户装置,以及所述绘制服务器包括: 获取部件,用于获取所述发送部件所发送的所述多个绘制对象的信息,并且将所述信息存储在存储部件中; 绘制部件,用于顺序绘制所述多个绘制对象,并且生成要提供给所述一个或多个客户装置中的各个客户装置的画面; 确定部件,用于参考所述获取部件所获取的所述多个绘制对象各自的详细信息,并且确定所述多个绘制对象的绘制顺序;以及 传送部件,用于根据所述确定部件所确定的绘制顺序来获取绘制对象的识别信息,从数据存储部件读出与该识别信息相对应的绘制对象的详细信息所表示的数据,并且将该数据传送至所述绘制部件, 其中,所述确定部件将连续序数作为绘制对象的绘制顺序分配给共用所述详细信息所表示的至少部分数据的多个绘制对象,以及 在根据所述绘制顺序进行绘制时,所述传送部件从所述数据存储部件中,读出在所述绘制顺序中连续的绘制对象的详细信息所表示的数据中的、与已传送至所述绘制部件的数据不同的数据,并且传送所读出的数据。
12.根据权利要求11所述的绘制系统,其中, 绘制对象的详细信息表示对该绘制对象进行绘制所需的多个属性数据,以及所述确定部件优先将序数作为绘制对象的绘制顺序分配给共用所述详细信息所表示的优先级高的属性数据的多个绘制对象。
13.根据权利要求12所述的绘制系统,其中,所述优先级被设置为使得在从所述数据存储部件读出所述详细信息所表示的多个属性数据并且在展开区域中展开该多个属性数据时,数据占据的区域大的属性的优先级高。
14.根据权利要求12或13所述的绘制系统,其中,所述确定部件优先将序数作为绘制对象的绘制顺序分配给共用的所述详细信息所表示的属性数据的数量大的多个绘制对象。
15.根据权利要求11 14中任一项所述的绘制系统,其中,绘制对象的详细信息表示纹理数据、模型数据、绘制程序和用于绘制计算的数据中的至少一个。
16.根据权利要求11 15中任一项所述的绘制系统,其中,所述指定部件参考照相机参数,将所述照相机参数所指定的绘制范围相互重叠预定量的客户装置分类为一组,并且指定要提供给所述组中的客户装置的画面中所包括的绘制对象,其中,所述照相机参数用于定义所述一个或多个客户装置中的各个客户装置的画面并且根据所述接收部件所接收到的输入数据而改变。
17.根据权利要求11 15中任一项所述的绘制系统,其中,所述指定部件参考照相机坐标,将所述照相机坐标位于预定距离内的客户装置分类为一组,并且指定要提供给所述组中的客户装置的画面中所包括的绘制对象,其中,所述照相机坐标用于定义所述一个或多个客户装置中的各个客户装置的画面并且根据所述接收部件所接收到的输入数据而改变。
18.根据权利要求11 17中任一项所述的绘制系统,其中, 所述获取部件获取用于生成要提供给多个客户装置的画面的绘制对象的信息, 所述确定部件确定用于生成要提供给所述多个客户装置的画面的所有绘制对象的绘制顺序,以及 所述绘制部件同时绘制要提 供给所述多个客户装置的画面。
全文摘要
针对用于生成要提供给客户装置的画面的多个绘制对象中的各绘制对象,获取识别信息和表示绘制所需的数据的详细信息。通过参考多个绘制对象各自的详细信息,确定所有绘制对象的绘制顺序,以将连续序数分配给共用详细信息所表示的至少部分数据的绘制对象。绘制控制设备将根据绘制顺序的绘制对象的详细信息所表示的数据传送至GPU。在该处理中,在绘制顺序中连续的绘制对象的详细信息所表述的数据中,只对与已传送至GPU的数据不同的数据进行读取和传送。
文档编号A63F13/00GK103098099SQ201280002592
公开日2013年5月8日 申请日期2012年5月11日 优先权日2011年5月25日
发明者岩崎哲史 申请人:史克威尔·艾尼克斯控股公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1