存储介质、电子装置、游戏画面的显示方法和装置与流程

文档序号:14458831阅读:262来源:国知局
存储介质、电子装置、游戏画面的显示方法和装置与流程

本发明涉及互联网领域,具体而言,涉及一种存储介质、电子装置、游戏画面的显示方法和装置。



背景技术:

在游戏中,星空属于一个非常典型和经典的场景,星空的主要实现方式是用天空盒、者美术的固定模型或帧动画来实现。

(1)用天空盒来实现的方式如图1所示,用6块盒装的贴图(分别对应于三维坐标系中的x轴、y轴、z轴的正负极)将游戏场景包围在其中。

(2)用美术的固定模型来实现的方式如图2和图3所示。图2和图3中的星星可以为多种形状。

(3)用帧动画来实现的方式如图4所示,通过帧与帧之间的区别来实现星星的变化,如星星大小、星星的位置等。

在上述“用天空盒来实现”的技术方案中,在透视投影下,由于摄像机不能旋转,摄像机采用的是正交投影,而且只能平行移动,无法表现出纵深感。如图5所示,是将摄像机的投影改为正交投影之后的效果,云层明显产生了变形,无法显示出纵深感。

在上述“用美术的固定模型来实现”的技术方案中,美术需要制作很多资源(需要多少个星星就需要制作多少个星星),具有一定的固定性,固定模型显得单调或者浪费美术资源。

对于闪烁的星星,游戏一般使用“帧动画”去模拟星星的闪耀,资源浪费较大(包括美术资源和游戏资源),且画面单一。

另外,在游戏中往往采用正交投影的方式将星星等对象投影到动画中,由于星星数量较多,将满天星投影到动画中时占据了画面的大部分面积、且没有层次感、真实感较差,影响了游戏的体验。

针对相关技术中星空场景下的星星占据游戏动画画面的面积过大的技术问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种存储介质、电子装置、游戏画面的显示方法和装置,以至少解决相关技术中星空场景下的星星占据游戏动画画面的面积过大的技术问题。

根据本发明实施例的一个方面,提供了一种游戏画面的显示方法,该方法包括:获取第一对象在第一三维空间中的第一位置,第一三维空间为游戏场景所包括的多个三维空间中第一对象所在的三维空间,第一对象为游戏场景中的对象;根据第一对象的原始三维图像得到待映射的目标三维图像,并将目标三维图像垂直映射到游戏场景内的目标平面上,得到第一二维图像,根据第一二维图像得到待显示的目标二维图像,目标二维图像的大小相关于第一位置与目标平面之间的距离,目标二维图像的大小不同于原始三维图像垂直映射到目标平面中所得到的第二二维图像;显示映射在目标平面上的目标二维图像。

根据本发明实施例的另一方面,还提供了一种游戏画面的显示装置,该装置包括:获取单元,用于获取第一对象在第一三维空间中的第一位置,第一三维空间为游戏场景所包括的多个三维空间中第一对象所在的三维空间,第一对象为游戏场景中的对象;处理单元,用于根据第一对象的原始三维图像得到待映射的目标三维图像,并将目标三维图像垂直映射到游戏场景内的目标平面上,得到第一二维图像,根据第一二维图像得到待显示的目标二维图像,目标二维图像的大小相关于第一位置与目标平面之间的距离,目标二维图像的大小不同于原始三维图像垂直映射到目标平面中所得到的第二二维图像;显示单元,用于显示映射在目标平面上的目标二维图像。

在本发明实施例中,获取游戏场景中的第一对象在第一三维空间中的第一位置,根据第一对象的原始三维图像得到待映射的目标三维图像,并将目标三维图像垂直映射到游戏场景内的目标平面上,得到第一二维图像,根据第一二维图像得到待显示的目标二维图像,目标二维图像的大小相关于第一位置与目标平面之间的距离;显示映射在目标平面上的目标二维图像,由于目标二维图像的大小不同于原始三维图像垂直映射到目标平面中所得到的第二二维图像(即按照透视的方式进行显示),在第一对象为星星时,可以解决了相关技术中星空场景下的星星占据游戏动画画面的面积过大的技术问题,进而达到减小星星占据游戏动画画面的面积、并提升游戏动画画面的真实感的技术效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是相关技术中的一种可选的天空盒的示意图;

图2是相关技术中的一种可选的星空的示意图;

图3是相关技术中的一种可选的星空的示意图;

图4是相关技术中的一种可选的星空的图像帧的示意图;

图5是相关技术中的一种可选的正交投影图像的示意图;

图6是根据本发明实施例的游戏画面的显示方法的硬件环境的示意图;

图7是根据本发明实施例的一种可选的游戏画面的显示方法的流程图;

图8是根据本发明实施例的正交投影和透视投影的示意图;

图9是根据本发明实施例的一种可选的游戏图像的示意图;

图10是根据本发明实施例的一种可选的游戏配置界面的示意图;

图11是根据本发明实施例的一种可选的游戏配置界面的示意图;

图12是根据本发明实施例的一种可选的星空贴图的示意图;

图13是根据本发明实施例的一种可选的星星贴图的示意图;

图14是根据本发明实施例的一种可选的星星的示意图;

图15是根据本发明实施例的一种可选的星空的示意图;

图16是根据本发明实施例的一种可选的配置参数变化的示意图;

图17是根据本发明实施例的一种可选的配置参数变化的示意图;

图18是根据本发明实施例的一种可选的游戏图像的示意图;

图19是根据本发明实施例的一种可选的游戏图像的示意图;

图20是根据本发明实施例的一种可选的游戏画面的显示装置的示意图;以及

图21是根据本发明实施例的一种终端的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,在对本发明实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:

正交投影:投影线垂直于投影面的投影属于正交投影,属于平行投影的一种。

阿尔法alpha通道:是一个8位的灰度通道,该通道用256级灰度来记录图像中的透明度信息,定义透明、不透明和半透明区域,其中白表示不透明,黑表示透明,灰表示半透明。

天空盒:可由全景图片或全景照片映射而成,全景照片又称为全景,英文是panoramicphoto,或panorama,通常是指符合人的双眼正常有效视角(大约水平90度,垂直70度)或包括双眼余光视角(大约水平180度,垂直90度)以上,乃至360度完整场景范围拍摄的照片。

视锥体:是一个三维体,他的位置和摄像机相关,视锥体的形状决定了模型如何从摄像机空间cameraspace投影到屏幕上。最常见的投影类型-透视投影,使得离摄像机近的物体投影后较大,而离摄像机较远的物体投影后较小。透视投影使用棱锥作为视锥体,摄像机位于棱锥的椎顶。该棱锥被前后两个平面截断,形成一个棱台,叫做视锥体viewfrustum,只有位于frustum内部的模型才是可见的。

unity3d:是由unitytechnologies开发的一个创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

npc:是英文nonplayercharacter“非玩家控制角色”的缩写,有时也作non-personcharacter,或者non-playablecharacter,这个概念最早起源于单机版游戏,逐渐延伸到整个游戏领域,泛指一切游戏中不受玩家控制的角色。

根据本发明实施例,提供了一种游戏画面的显示方法的方法实施例。

可选地,在本实施例中,上述游戏画面的显示方法可以应用于如图6所示的由服务器602和终端604所构成的硬件环境中。如图6所示,服务器602通过网络与终端604进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端604并不限定于pc、手机、平板电脑等。本发明实施例的游戏画面的显示方法可以由服务器602来执行,也可以由终端604来执行,还可以是由服务器602和终端604共同执行。其中,终端604执行本发明实施例的游戏画面的显示方法也可以是由安装在其上的客户端来执行。

图7是根据本发明实施例的一种可选的游戏画面的显示方法的流程图,如图7所示,该方法可以包括以下步骤:

步骤s702,获取第一对象在第一三维空间中的第一位置,第一三维空间为游戏场景所包括的多个三维空间中第一对象所在的三维空间,第一对象为游戏场景中的对象。

上述的第一对象为游戏场景中的npc对象,如游戏中玩家的道具、场景中的道具(如星星、月亮、太阳、山、水、河流、田等)、npc角色(如士兵、辅助性角色、宠物等)。

上述的游戏场景为游戏的游戏场景,该游戏场景可由多个三维空间组成,游戏中还包括第二对象(即由游戏中的游戏帐号控制的对象),第一三维空间为需要显示第一对象的三维空间,也是上述游戏帐号(玩家)当前可视的三维空间。

当上述游戏运行在客户端中时,由游戏引擎(如unity)生成上述的游戏场景,由摄像机捕捉游戏帐号当前可视的第一三维空间的画面(捕捉过程如步骤s704),进而进行显示。

步骤s704,根据第一对象的原始三维图像得到待映射的目标三维图像,并将目标三维图像垂直映射到游戏场景内的目标平面上,得到第一二维图像,根据第一二维图像得到待显示的目标二维图像,目标二维图像的大小相关于第一位置与目标平面之间的距离,目标二维图像的大小不同于原始三维图像垂直映射到目标平面中所得到的第二二维图像。

可选地,“目标二维图像的大小不同于原始三维图像垂直映射到目标平面中所得到的第二二维图像”包括以下两个方面的含义:其一是目标二维图像的大小小于第二二维图像,也即相当于目标二维图像是对第二二维图像缩小后得到的;其二是目标二维图像的大小大于第二二维图像,也即相当于目标二维图像是对第二二维图像放大后得到的。后续以第一种方式(即相当于是缩小的)为例进行说明,第二种方式与第一种类似。

如图8所示,在本申请中采用的是正交映射(游戏逻辑采用的是正交映射,即垂直映射),但是为了提高对象显示的真实性,在将第一对象(如球体)的目标三维图像映射到目标平面时得到二维图像时,需要达到透视映射的效果,而不改变正交映射这种映射方式。

在真实环境中,当一个物体对象离观察者越远时,所看到的该对象的影像越小,由于采用正交映射将目标三维图像映射到目标平面时,并不会改变第一对象映射在目标平面这一面上的大小,所以采用正交映射这一方式与观察到的物体的真实影像之间存在差别,在上述方案中,可以通过映射前的预处理(根据第一对象的原始三维图像得到待映射的目标三维图像)和/或映射后的后期处理(根据第一二维图像得到待显示的目标二维图像),使得最后得到的目标二维图像的大小相关于第一位置与目标平面之间的距离,使第一对象满足真实场景下的观察现象。

需要说明的是,上述的目标平面是第一三维空间朝向摄像机一侧的平面,该平面与摄像机之间的距离是预先设置好的允许游戏帐号观察的最近距离;与目标平面相对的另一面是预先设置好的允许游戏帐号观察的最远距离,这两个平面之间的空间构成上述的第一三维空间。

步骤s706,显示映射在目标平面上的目标二维图像。

上述的游戏的客户端可以安装在移动终端(如手机、平板)、pc、服务器等终端上,从而在终端的客户端上显示目标二维图像。

在上述技术方案中,并未改变游戏逻辑中本身的映射方式(正交映射),从而不用重新编辑游戏逻辑,并能达到透视映射的效果,由于第一对象是按照满足透视效果的方式进行显示,在游戏动画的画面中显示时按照“远小近大”的原则进行显示,从而不会出现整个画面都是等大的对象(如星星、月亮灯)的情况,“远小近大”的显示方式可在一个二维平面上展现出层次感,进而可以提升玩家的游戏体验。

通过上述步骤s702至步骤s706,获取游戏场景中的第一对象在第一三维空间中的第一位置,根据第一对象的原始三维图像得到待映射的目标三维图像,并将目标三维图像垂直映射到游戏场景内的目标平面上,得到第一二维图像,根据第一二维图像得到待显示的目标二维图像,目标二维图像的大小相关于第一位置与目标平面之间的距离;显示映射在目标平面上的目标二维图像,由于目标二维图像的大小不同于原始三维图像垂直映射到目标平面中所得到的第二二维图像(即按照“远小近大”的透视方式进行显示),在第一对象为星星时,可以解决了相关技术中星空场景下的星星占据游戏动画画面的面积过大的技术问题,进而达到减小星星占据游戏动画画面的面积、并提升游戏动画画面的真实感的技术效果。

下面结合图7所示的步骤详述本申请的技术方案。

在步骤s702提供的技术方案中,游戏场景可包括多个三维空间,确定多个三维空间中第一对象所在的第一三维空间,并检测出第一对象在第一三维空间中的第一位置。

对于第一对象而言,可能存在两种情况,其一是在当前时刻是初次出现在游戏场景中,其二是在当前时刻之前已经出现在游戏场景中,对于这两种情况,获取位置的方法可以不同,下面就第一对象的配置(什么时候以什么形式出现在游戏场景中)、如何获取第一对象的位置进行详述。

(一)第一对象的配置

在获取第一对象在第一三维空间中的第一位置之前,配置出现在第一三维空间内的每个第一对象的属性信息。

需要说明的是,在本申请中可以预先定义好多个对象模型(数量较少,如少于10个、或少于20个),预先定义好多个用于渲染对象模型的颜色。上述属性信息的作用包括以下至少之一:

(1)用于指示第一对象为预先设置好的多个对象中随机选择的一个;

(2)用于指示从预先设置好的多个颜色中为第一对象随机选择一个;

(3)用于指示第一对象在原始位置上随机旋转一个角度(包括分别为沿x轴、y轴、z轴设置的角度),以使第一对象面对目标平面时呈现不同的形状,其相当于用于指示从预先设置好的多个形状中为第一对象的随机选择一个;

(4)用于指示第一对象与目标平面之间的初始距离;

(5)用于指示第一对象在游戏场景中的速度矢量(包括运动方向和运动速度大小)。

(二)确定第一对象的位置

(1)情况1,在当前时刻是初次出现在游戏场景中

当第一对象在当前时刻的前一时刻不存在于第二三维空间的情况下,获取为第一对象在第一三维空间内配置的第一位置,即根据属性信息指示第一对象与目标平面之间的初始距离确定第一位置,第一三维空间内包括由游戏帐号控制的第二对象,可将第二对象所在的平面为目标平面,即将第二对象始终保持在最近端,便于游戏的控制交互。

上述第二三维空间为多个三维空间中第一对象在当前时刻的前一时刻存在的三维空间。

(2)情况2,在当前时刻之前已经出现在游戏场景中

当第一对象在当前时刻的前一时刻存在于第二三维空间的情况下,获取第一对象在第二三维空间内的第二位置,并根据第二位置和第一对象的移动速度确定第一位置,第一对象在当前时刻存在于第一三维空间内。

如图8所示,如果属性信息指示的第一对象在游戏场景中的速度方向为沿z轴远离摄像机,速度大小为v,那么相对于第二位置,第一位置仅与其在z轴上的坐标不同,变化后的坐标为l=l0+vt,l0为第二位置的z轴坐标,t为当前时刻和前一时刻之间的时间差。

在本申请的上述技术方案中,通过数量极少的对象模型(如星星模型),通过改变其颜色、角度、初始距离、速度矢量,从而可以实现“满天星”且各个星星不同(大小、颜色)的效果,避免了为每个不同的星星制作一个模型,进而节约了美术资源;且在游戏过程中,避免了渲染大量的对象模型,进而节约了游戏资源。

在步骤s704提供的技术方案中,根据第一对象的原始三维图像得到待映射的目标三维图像,并将目标三维图像垂直映射到游戏场景内的目标平面上,得到第一二维图像,根据第一二维图像得到待显示的目标二维图像,目标二维图像的大小相关于第一位置与目标平面之间的距离,目标二维图像的大小不同于原始三维图像垂直映射到目标平面中所得到的第二二维图像。

(一)关于映射的形状和颜色

在上述实施例中,将目标三维图像垂直映射到游戏场景内的目标平面上,得到第一二维图像可包括如下步骤:

步骤s11,获取为第一对象配置的属性信息,属性信息用于指示目标三维图像垂直映射在目标平面上的形状(可以通过属性信息指示的旋转角度确定)和颜色。

步骤s12,按照属性信息所指示的形状和颜色将目标三维图像垂直映射到目标平面上,得到第一二维图像。

(二)关于映射的大小

在本申请的技术方案中,可以通过映射前的预处理和/或映射后的后期处理,使得最后得到的目标二维图像的大小相关于第一位置与目标平面之间的距离,达到透视的显示效果。下面就这两种实现方式分别进行说明:

(1)映射前的预处理

步骤s21,根据第一位置与目标平面之间的距离对原始三维图像的大小进行调整,得到目标三维图像,目标三维图像的大小相关于第一位置与目标平面之间的距离。

需要说明的是,此处对原始三维图像的大小进行调整可以是对图像本身的调整,即将原始三维图像按比例缩小得到上述目标三维图像;也可以是对第一对象按比例缩小,进而渲染得到目标三维图像。

步骤s22,将目标三维图像垂直映射到目标平面上,得到第一二维图像,并将第一二维图像作为目标二维图像。

可选地,上述步骤s21中的“根据第一位置与目标平面之间的距离对原始三维图像的大小进行调整,得到目标三维图像”可以通过如下方式实现:

步骤s211,获取第一位置与目标平面之间的第一距离。

步骤s212,根据目标关系获取与第一距离对应的缩小比例,其中,目标关系用于指示第一对象在三维空间中的位置和目标平面之间的距离与缩小比例之间的关系。

可选地,上述的目标关系可以用如下关系式来描述:

k=(1-z/l),k表示缩小比例,z表示第一距离,l表示允许摄像机拍摄的最远距离(即游戏帐号看到的最远距离),可用于第一三维空间中与目标平面对应的那个平面与目标平面之间的距离表示。

步骤s213,按照与第一距离对应的缩小比例对原始三维图像进行缩小,得到目标三维图像。

(2)映射后的后期处理

步骤s31,获取第一对象的原始三维图像为目标三维图像。

步骤s32,将目标三维图像垂直映射到目标平面上,得到第一二维图像,没有改变第一对象的大小。

步骤s33,根据第一位置与目标平面之间的距离对第一二维图像的大小进行调整,得到目标二维图像。

步骤s33的“根据第一位置与目标平面之间的距离对第一二维图像的大小进行调整,得到目标二维图像”可通过如下方式实现:

步骤s331,获取第一位置与目标平面之间的第一距离。

步骤s332,根据目标关系获取与第一距离对应的缩小比例,其中,目标关系用于指示第一对象在三维空间中的位置和目标平面之间的距离与缩小比例之间的关系。

可选地,上述的目标关系可以用上述关系式来描述,具体计算方式与上述类似,在此不再赘述。

步骤s333,按照与第一距离对应的缩小比例对第一二维图像进行缩小,得到目标二维图像。

在步骤s706提供的技术方案中,显示映射在目标平面上的目标二维图像。

如图9所示,在第一对象为星星时,在一般游戏中,星空的背景一般用天空盒或者真实的美术模型来实现的,但是,由于部分游戏的特殊性,正交投影加上固定角度的摄像机,如果用天空盒来做,只能看到星空背景跟随角色平行的移动,并不能产生玩家潜意识里面透视投影的纵深感(即近快,远慢),用美术资源的话,就会有要么美术的制作成本很大,要么星空的质感会很单调。

在本申请的技术方案中,使用了美术制作的简单资源,模拟透视投影,自动随机生成网格mesh,形成具有透视的星空背景。

对于前景的闪耀的星星,一般游戏中的做法是做帧动画,帧动画也会有随机度不够和资源过多的问题。本方案中根据美术资源中的alpha值,再加上时间的随机,用简单的资源,可以在最大程度呈现一个随机的形状和随机的闪烁。从而在正交投影下,实现背景星空的纵深感和前景星星的闪耀效果。

作为一种可选的实施例,下面以第一对象为星星为例详述本申请的实施方式:

游戏引擎可选用unity,可在unity的编辑器中进行编辑,需要配置参数和准备两张贴图即可以完成本申请的技术方案。

星空的配置在对应的脚本中,可以通过更改脚本的参数来调整美术的效果。可以在运行时调整,星星本身也可以通过配置材质参数来调整。

如图10所示,可以对星星的初始数量、初始大小、大小衰减(每次衰减的比例)、近端距离(允许最近的距离)、远端距离(允许最远的距离)、颜色衰减(如逐渐消失、颜色变淡)、摄像头的移动速度、初始位置、星星材质等参数进行设置。

如图11所示,在星星选择界面,可以从星星贴图的多个星星模型中选择所需要的一个或多个,并对闪烁放大比例、闪烁频率、阿尔法alpha通道值进行配置,通过对同样的几个星星采用不同的配置来实现满天星星、且是不同的星星。

星星贴图和星空贴图可以通过美术来制作,一种可选的星空中的星星贴图如图12所示,使用了贴图中的alpha通道,星空的颜色则可在脚本中配置,代码中会随机挑选贴图中的9个形状,然后加上一个随机的旋转角度,在加上美术配置的颜色中随机一个。

一种可选的星星贴图如图13所示,星星贴图中有星星的形状,还可携带需要闪烁的alpha值这些信息。下文进行详细说明。

(1)星空的飘移和视窗体中的位置随机

如图8所示,首先是将位置与摄像机绑定,并在每帧中去对照相机加上一个相反相对速度。这样就会有一个近快远慢的效果,由于游戏中的使用的是正交投影,即右边的情况,很难展现出纵深感,此时可给星空乘上了一个透视投影矩阵m,这样就可以展现出左边的效果。m矩阵如下:

aspect表示投影平面(也即目标平面的纵横比),fov表示视椎体在z轴方向上的夹角,far表示视体的远平面到焦点的距离,near表示视体的近平面到焦点的距离。

每个星空的碎片都会随机一个在视体空间中的一个位置,对x,y,z三个纬度去随机。

例如,星星在目标空间内的坐标为(x1,y1,z1),那么映射后的坐标为(x2,y2,z2),二者之间的映射关系为:(x2,y2,z2,t2)=(x1,y1,z1,t1)*m(m为前述矩阵),其中,t1为任意数,如为1。对于得到的(x2,y2,z2,t2),如果是映射到平面上,可以舍去z2和t2,x2、y2即为所需坐标。

(2)有限资源的星空利用

在前文中说明了,星空不仅在摄像机运动的时候相对摄像机反运动,而且星空本身也在运动,由于星空的运动,星空的碎片会走出视体以外。

这样,星空碎片就会被裁剪掉,为了维持屏幕空间内星空碎片的密度,就要在整个游戏场景中创建很多的星空碎片,这样,摄像机在移动的时候,也能看到足够的星空碎片。但是,这样做就会产生巨大的开销。

为了减少星空碎片的数量,本方案实际上并没有生成那么多的星空碎片,虽然星空中的星空碎片的位置是一直在累加的,如图14所示,会在实际渲染的时候,把星空的位置转换到相对视体的位置,然后对视体的大小进行取模,这样就能让星空碎片移到视体之外后,有被重置到视体内,如对于星星a则是完整的在视体内的,星星b和c则是进行转换取模之后的星星碎片(部分在视体内)。即用有限的星空资源模拟了无限的星空。

(3)星空的渐隐效果

为了模拟星空在运动到远处渐渐隐匿的效果,可把星空碎片的alpha值与z值关联,也就是相对于视体近截面越远,星空的碎片的alpha值就越低,进而呈现星星运动到远处渐渐隐匿的效果。

(4)星星的随机算法

如图15所示,为了使星星显得更加真实,本方案中对星星进行了随机,首先是从之前说的星星贴图里面随机找到一种星星的贴图,然后,再旋转一个随机的角度,这样就能最大程度的利用有限的资源生成,变化真实的星星,实现满天星、且星星各不相同的效果(图15中的小三角形、四边形等代表不同的星星)。

(5)星星的闪耀

不仅需要星星的形象能够多变,还需要它们能跟现实中一样,能够闪烁。星星的闪耀包括,颜色值的线性变化和alpha的指数变化。用x轴时间做变化参数,alpha的指数的变化函数y如图16所示。

x轴代表时间,y轴代表alpha值,指数会是一个随着时间在某段时间平缓,某段时间急剧变化的函数,这样就符合星星突然闪耀的样子。

对于颜色的变化是一个线性的,这样就会亮度随着时间线性改变,函数如图17所示,x轴代表时间,y轴代表亮度,随着时间的进行,亮度逐渐变高然后逐渐变低,呈现出闪亮的效果。

如图18和图19所示,星空对整个游戏来说是一个非常重要的部分,可以说玩家就是在心空中游戏的,是游戏的唯一场景,星空的质感对游戏的整体质感来说是举足轻重的,在推出之后可以进一步提高玩家的体验。

需要说明的是,上述实施例中虽然是以游戏引擎为unity为例、第一对象为星星为例进行说明,但是本申请的技术方案并不失普遍性,也可以通过其他游戏引擎实现其他类型的第一对象,其过程与上述基本类似。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

根据本发明实施例,还提供了一种用于实施上述游戏画面的显示方法的游戏画面的显示装置。图20是根据本发明实施例的一种可选的游戏画面的显示装置的示意图,如图20所示,该装置可以包括:获取单元2001、处理单元2003以及显示单元2005。

获取单元2001,用于获取第一对象在第一三维空间中的第一位置,其中,第一三维空间为游戏场景所包括的多个三维空间中第一对象所在的三维空间,第一对象为游戏场景中的对象。

上述的第一对象为游戏场景中的npc对象,如游戏中玩家的道具、场景中的道具(如星星、月亮、太阳、山、水、河流、田等)、npc角色(如士兵、辅助性角色、宠物等)。

上述的游戏场景为游戏的游戏场景,该游戏场景可由多个三维空间组成,游戏中还包括第二对象(即由游戏中的游戏帐号控制的对象),第一三维空间为需要显示第一对象的三维空间,也是上述游戏帐号(玩家)当前可视的三维空间。

当上述游戏运行在客户端中时,由游戏引擎(如unity)生成上述的游戏场景,由摄像机捕捉游戏帐号当前可视的第一三维空间的画面,进而进行显示。

处理单元2003,用于根据第一对象的原始三维图像得到待映射的目标三维图像,并将目标三维图像垂直映射到游戏场景内的目标平面上,得到第一二维图像,根据第一二维图像得到待显示的目标二维图像,其中,目标二维图像的大小相关于第一位置与目标平面之间的距离,目标二维图像的大小不同于原始三维图像垂直映射到目标平面中所得到的第二二维图像。

如图8所示,在本申请中采用的是正交映射(游戏逻辑采用的是正交映射,即垂直映射),但是为了提高对象显示的真实性,在将第一对象(如球体)的目标三维图像映射到目标平面时得到二维图像时,需要达到透视映射的效果,而不改变正交映射这种映射方式。

在真实环境中,当一个物体对象离观察者越远时,所看到的该对象的影像越小,由于采用正交映射将目标三维图像映射到目标平面时,并不会改变第一对象映射在目标平面这一面上的大小,所以采用正交映射这一方式与观察到的物体的真实影像之间存在差别,在上述方案中,可以通过映射前的预处理(根据第一对象的原始三维图像得到待映射的目标三维图像)和/或映射后的后期处理(根据第一二维图像得到待显示的目标二维图像),使得最后得到的目标二维图像的大小相关于第一位置与目标平面之间的距离,使第一对象满足真实场景下的观察现象。

需要说明的是,上述的目标平面是第一三维空间朝向摄像机一侧的平面,该平面与摄像机之间的距离是预先设置好的允许游戏帐号观察的最近距离;与目标平面相对的另一面是预先设置好的允许游戏帐号观察的最远距离,这两个平面之间的空间构成上述的第一三维空间。

显示单元2005,用于显示映射在目标平面上的目标二维图像。

上述的游戏的客户端可以安装在移动终端(如手机、平板)、pc、服务器等终端上,从而在终端的客户端上显示目标二维图像。

在上述技术方案中,并未改变游戏逻辑中本身的映射方式(正交映射),从而不用重新编辑游戏逻辑,并能达到透视映射的效果,由于第一对象是按照满足透视效果的方式进行显示,在游戏动画的画面中显示时按照“远小近大”的原则进行显示,从而不会出现整个画面都是等大的对象(如星星、月亮灯)的情况,“远小近大”的显示方式可在一个二维平面上展现出层次感,进而可以提升玩家的游戏体验。

需要说明的是,该实施例中的获取单元2001可以用于执行本申请实施例1中的步骤s702,该实施例中的处理单元2003可以用于执行本申请实施例1中的步骤s704,该实施例中的显示单元2005可以用于执行本申请实施例1中的步骤s706。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图6所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。

通过上述模块,获取游戏场景中的第一对象在第一三维空间中的第一位置,根据第一对象的原始三维图像得到待映射的目标三维图像,并将目标三维图像垂直映射到游戏场景内的目标平面上,得到第一二维图像,根据第一二维图像得到待显示的目标二维图像,目标二维图像的大小相关于第一位置与目标平面之间的距离;显示映射在目标平面上的目标二维图像,由于目标二维图像的大小不同于原始三维图像垂直映射到目标平面中所得到的第二二维图像(即按照“远小近大”的透视方式进行显示),在第一对象为星星时,可以解决了相关技术中星空场景下的星星占据游戏动画画面的面积过大的技术问题,进而达到减小星星占据游戏动画画面的面积、并提升游戏动画画面的真实感的技术效果。

在一种可选的实施例中,处理单元可包括:第一调整模块,用于根据第一位置与目标平面之间的距离对原始三维图像的大小进行调整,得到目标三维图像,其中,目标三维图像的大小相关于第一位置与目标平面之间的距离;第一映射模块,用于将目标三维图像垂直映射到目标平面上,得到第一二维图像,并将第一二维图像作为目标二维图像。

可选地,第一调整模块可包括:第一获取子模块,用于获取第一位置与目标平面之间的第一距离;第二获取子模块,用于根据目标关系获取与第一距离对应的缩小比例,其中,目标关系用于指示第一对象在三维空间中的位置和目标平面之间的距离与缩小比例之间的关系;处理子模块,用于按照与第一距离对应的缩小比例对原始三维图像进行缩小,得到目标三维图像。

在另一种可选的实施例中,处理单元可包括:第一获取模块,用于获取第一对象的原始三维图像为目标三维图像;第二映射模块,用于将目标三维图像垂直映射到目标平面上,得到第一二维图像;第二调整模块,用于根据第一位置与目标平面之间的距离对第一二维图像的大小进行调整,得到目标二维图像。

上述的第二调整模块还用于:获取第一位置与目标平面之间的第一距离;根据目标关系获取与第一距离对应的缩小比例,其中,目标关系用于指示第一对象在三维空间中的位置和目标平面之间的距离与缩小比例之间的关系;按照与第一距离对应的缩小比例对第一二维图像进行缩小,得到目标二维图像。

可选地,处理单元可包括:第二获取模块,用于获取为第一对象配置的属性信息,其中,属性信息用于指示目标三维图像垂直映射在目标平面上的形状和颜色;第三映射模块,用于按照属性信息所指示的形状和颜色将目标三维图像垂直映射到目标平面上,得到第一二维图像。

可选地,本申请的装置还可包括:配置单元,用于在获取第一对象在第一三维空间中的第一位置之前,配置出现在第一三维空间内的每个第一对象的属性信息,其中,第一对象为预先设置好的多个对象中的任意一个,属性信息指示的颜色为预先设置好的多个颜色中的任意一个,属性信息指示的形状为预先设置好的多个形状中的任意一个。

上述获取单元还可用于:当第一对象在当前时刻的前一时刻存在于第二三维空间的情况下,获取第一对象在第二三维空间内的第二位置,并根据第二位置和第一对象的移动速度确定第一位置,其中,第一对象在当前时刻存在于第一三维空间内,第二三维空间为多个三维空间中第一对象在当前时刻的前一时刻存在的三维空间;当第一对象在当前时刻的前一时刻不存在于第二三维空间的情况下,获取为第一对象在第一三维空间内配置的第一位置,其中,第一三维空间内包括由游戏帐号控制的第二对象,第二对象所在的平面为目标平面。

对于前景的闪耀的星星,一般游戏中的做法是做帧动画,帧动画也会有随机度不够和资源过多的问题。本方案中根据美术资源中的alpha值,再加上时间的随机,用简单的资源,可以在最大程度呈现一个随机的形状和随机的闪烁。从而在正交投影下,实现背景星空的纵深感和前景星星的闪耀效果。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图6所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。

根据本发明实施例,还提供了一种用于实施上述游戏画面的显示方法的服务器或终端。

图21是根据本发明实施例的一种终端的结构框图,如图21所示,该终端可以包括:一个或多个(图21中仅示出一个)处理器2101、存储器2103、以及传输装置2105(如上述实施例中的发送装置),如图21所示,该终端还可以包括输入输出设备2107。

其中,存储器2103可用于存储软件程序以及模块,如本发明实施例中的游戏画面的显示方法和装置对应的程序指令/模块,处理器2101通过运行存储在存储器2103内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的游戏画面的显示方法。存储器2103可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器2103可进一步包括相对于处理器2101远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置2105用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置2105包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置2105为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器2103用于存储应用程序。

处理器2101可以通过传输装置2105调用存储器2103存储的应用程序,以执行下述步骤:

获取第一对象在第一三维空间中的第一位置,第一三维空间为游戏场景所包括的多个三维空间中第一对象所在的三维空间,第一对象为游戏场景中的对象;

根据第一对象的原始三维图像得到待映射的目标三维图像,并将目标三维图像垂直映射到游戏场景内的目标平面上,得到第一二维图像,根据第一二维图像得到待显示的目标二维图像,目标二维图像的大小相关于第一位置与目标平面之间的距离,目标二维图像的大小不同于原始三维图像垂直映射到目标平面中所得到的第二二维图像;

显示映射在目标平面上的目标二维图像。

处理器2101还用于执行下述步骤:

当第一对象在当前时刻的前一时刻存在于第二三维空间的情况下,获取第一对象在第二三维空间内的第二位置,并根据第二位置和第一对象的移动速度确定第一位置,其中,第一对象在当前时刻存在于第一三维空间内,第二三维空间为多个三维空间中第一对象在当前时刻的前一时刻存在的三维空间;

当第一对象在当前时刻的前一时刻不存在于第二三维空间的情况下,获取为第一对象在第一三维空间内配置的第一位置,其中,第一三维空间内包括由游戏帐号控制的第二对象,第二对象所在的平面为目标平面。

采用本发明实施例,获取游戏场景中的第一对象在第一三维空间中的第一位置,根据第一对象的原始三维图像得到待映射的目标三维图像,并将目标三维图像垂直映射到游戏场景内的目标平面上,得到第一二维图像,根据第一二维图像得到待显示的目标二维图像,目标二维图像的大小相关于第一位置与目标平面之间的距离;显示映射在目标平面上的目标二维图像,由于目标二维图像的大小不同于原始三维图像垂直映射到目标平面中所得到的第二二维图像(即按照“远小近大”的透视方式进行显示),在第一对象为星星时,可以解决了相关技术中星空场景下的星星占据游戏动画画面的面积过大的技术问题,进而达到减小星星占据游戏动画画面的面积、并提升游戏动画画面的真实感的技术效果。

可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。

本领域普通技术人员可以理解,图21所示的结构仅为示意,终端可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图21其并不对上述电子装置的结构造成限定。例如,终端还可包括比图21中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图21所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行游戏画面的显示方法的程序代码。

可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

s41,获取第一对象在第一三维空间中的第一位置,第一三维空间为游戏场景所包括的多个三维空间中第一对象所在的三维空间,第一对象为游戏场景中的对象;

s42,根据第一对象的原始三维图像得到待映射的目标三维图像,并将目标三维图像垂直映射到游戏场景内的目标平面上,得到第一二维图像,根据第一二维图像得到待显示的目标二维图像,目标二维图像的大小相关于第一位置与目标平面之间的距离,目标二维图像的大小不同于原始三维图像垂直映射到目标平面中所得到的第二二维图像;

s43,显示映射在目标平面上的目标二维图像。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:

s51,当第一对象在当前时刻的前一时刻存在于第二三维空间的情况下,获取第一对象在第二三维空间内的第二位置,并根据第二位置和第一对象的移动速度确定第一位置,其中,第一对象在当前时刻存在于第一三维空间内,第二三维空间为多个三维空间中第一对象在当前时刻的前一时刻存在的三维空间;

s52,当第一对象在当前时刻的前一时刻不存在于第二三维空间的情况下,获取为第一对象在第一三维空间内配置的第一位置,其中,第一三维空间内包括由游戏帐号控制的第二对象,第二对象所在的平面为目标平面。

可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1