静态阴影的显示方法、装置、存储介质、处理器及终端与流程

文档序号:14390720阅读:186来源:国知局
静态阴影的显示方法、装置、存储介质、处理器及终端与流程

本发明涉及计算机图形学领域,具体而言,涉及一种静态阴影的显示方法、装置、存储介质、处理器及终端。



背景技术:

目前,在三维游戏中,通常采用模型来记录并表示各个物体的信息。例如:模型a可以用于表示一个游戏角色,模型b可以用于表示一棵树。这些模型最终在实际游戏场景中加以呈现。另外,实际游戏场景中还可以包括:地形、光照等信息。

为了达到更好的视觉效果,通常会为实际游戏场景中的模型添加阴影。对于静态的模型(例如:山石、建筑)会采用静态阴影技术,即预先生成、不可变化的阴影。而对于动态的模型(例如:游戏玩家操控的游戏角色)会使用动态阴影技术,即伴随环境而发生变化的阴影。

为此,相关技术中针对实际游戏场景中的模型添加阴影,提供了如下两种解决方案:

方案一、将需要的模型放置于实际游戏场景中,与实际游戏场景中的其他模型以及植被、地形等一同进行预处理,进而得到需要的模型在给定光照条件下的阴影信息。在游戏运行过程中,只需加载经过预处理的实际游戏场景,便可使得需要的模型具有静态的阴影。

然而,该方案的缺陷在于:只有在实际游戏场景中一同经过预处理的模型才具有阴影信息。换言之,在加载实际游戏场景之后,再通过其他方式(例如:单独加载的模型,再放置到实际游戏场景中)加载的模型(例如:建筑、树木)是不具有阴影信息的。其次,鉴于预处理后得到阴影是静态的,在模型的方向发生旋转之后,无法获得正确的阴影,其原因在于:模型每个面的形状可能存在差异,因此,仅将阴影进行旋转和平移等变换是无法满足实际视觉需求的。

方案二、通过实际游戏场景中的光照信息以及可以产生阴影和可以接受阴影(其是指另一个模型产生的阴影可以投射在当前模型上,例如:桌面上放置一个苹果,如果桌子可以接受阴影,则会在桌面上显示一个苹果的影子,否则便不会显示苹果的影子)的模型的空间位置等信息,实时地计算出各个模型的动态阴影。

然而,该方案的缺陷在于:性能上的瓶颈。依照智能移动终端自身的软件和硬件性能,对实际游戏场景中的所有模型均采取实时阴影计算的方式来实际运行是无法实现的,通常只有一些主要角色的模型(例如:游戏玩家操控的游戏角色)才会使用实时阴影计算方式。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明至少部分实施例提供了一种静态阴影的显示方法、装置、存储介质、处理器及终端,以至少解决相关技术中所提供的游戏模型阴影显示方式难以兼顾视觉效果和终端性能的技术问题。

根据本发明其中一实施例,提供了一种静态阴影的显示方法,包括:

生成与待使用的模型组适配的静态阴影,其中,模型组包括:多个相位模型,每个相位模型由初始模型在预设空间范围内的旋转角度确定;确定待使用的模型组在实际游戏场景的显示区域;从待使用的模型组选取与当前方向对应的相位模型以及适配的静态阴影,并将选取的相位模型以及适配的静态阴影展示在显示区域内。

可选地,生成与待使用的模型组适配的静态阴影包括:根据初始模型在预设空间范围内的预设旋转次数确定初始模型在预设空间范围内的多个旋转角度;利用多个旋转角度确定多个相位模型;将多个相位模型加载至模拟游戏场景或实际游戏场景,其中,模拟游戏场景参照实际游戏场景进行配置;在模拟游戏场景或实际游戏场景下,为多个相位模型中的每个相位模型生成适配的静态阴影。

可选地,从待使用的模型组选取与当前方向对应的相位模型以及适配的静态阴影包括:在实际游戏场景加载完毕之后,加载并缓存待使用的模型;按照当前方向从缓存中选取对应的相位模型以及适配的静态阴影。

可选地,在将选取的相位模型以及适配的静态阴影展示在显示区域内之后,还包括:从缓存中获取待使用的模型组,将多个相位模型重叠设置于显示区域,其中,将当前方向对应的相位模型设置为可见状态以及将除当前方向之外其余方向对应的相位模型设置为隐藏状态;响应于用户停止执行对待使用的模型的旋转操作,将与旋转后方向对应的相位模型设置为可见状态以及将除旋转后方向之外其余方向对应的相位模型设置为隐藏状态。

可选地,在将选取的相位模型以及适配的静态阴影展示在显示区域内之后,还包括:将除旋转后方向之外其余方向对应的相位模型从显示区域内移除。

根据本发明其中一实施例,还提供了一种静态阴影的显示装置,包括:

生成模块,用于生成与待使用的模型组适配的静态阴影,其中,模型组包括:多个相位模型,每个相位模型由初始模型在预设空间范围内的旋转角度确定;确定模块,用于确定待使用的模型组在实际游戏场景的显示区域;显示模块,用于从待使用的模型组选取与当前方向对应的相位模型以及适配的静态阴影,并将选取的相位模型以及适配的静态阴影展示在显示区域内。

可选地,生成模块包括:第一确定单元,用于根据初始模型在预设空间范围内的预设旋转次数确定初始模型在预设空间范围内的多个旋转角度;第二确定单元,用于利用多个旋转角度确定多个相位模型;加载单元,用于将多个相位模型加载至模拟游戏场景或实际游戏场景,其中,模拟游戏场景参照实际游戏场景进行配置;生成单元,用于在模拟游戏场景或实际游戏场景下,为多个相位模型中的每个相位模型生成适配的静态阴影。

可选地,显示模块包括:处理单元,用于在实际游戏场景加载完毕之后,加载并缓存待使用的模型;选取单元,用于按照当前方向从缓存中选取对应的相位模型以及适配的静态阴影。

可选地,上述装置还包括:获取模块,用于从缓存中获取待使用的模型组,将多个相位模型重叠设置于显示区域,其中,将当前方向对应的相位模型设置为可见状态以及将除当前方向之外其余方向对应的相位模型设置为隐藏状态;设置模块,用于响应于用户停止执行对待使用的模型的旋转操作,将与旋转后方向对应的相位模型设置为可见状态以及将除旋转后方向之外其余方向对应的相位模型设置为隐藏状态。

可选地,上述装置还包括:处理模块,用于将除旋转后方向之外其余方向对应的相位模型从显示区域内移除。

根据本发明其中一实施例,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述静态阴影的显示方法。

根据本发明其中一实施例,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述静态阴影的显示方法。

根据本发明其中一实施例,还提供了一种终端,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,一个或多个程序被存储在存储器中,并且被配置为由一个或多个处理器执行,一个或多个程序用于执行上述静态阴影的显示方法。

在本发明至少部分实施例中,采用生成与待使用的模型组适配的静态阴影,该模型组包括:多个相位模型,每个相位模型由初始模型在预设空间范围内的旋转角度确定的方式,通过确定待使用的模型组在实际游戏场景的显示区域,以及从待使用的模型组选取与当前方向对应的相位模型以及适配的静态阴影并将选取的相位模型以及适配的静态阴影展示在显示区域内,达到了兼顾视觉效果和终端性能的目的,从而实现了提升实际游戏场景内阴影显示效果的真实性、适用性强、扩展性良好的技术效果,进而解决了相关技术中所提供的游戏模型阴影显示方式难以兼顾视觉效果和终端性能的技术问题。

附图说明

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

图1是根据本发明其中一实施例的静态阴影的显示方法的流程图;

图2是本发明其中一优选实施例的模型预处理方法的流程图;

图3是根据本发明其中一优选实施例的对模型进行预处理后的加载方法的流程图;

图4是本发明其中一优选实施例的模型旋转处理方法的流程图;

图5是根据本发明其中一实施例的静态阴影的显示装置的结构框图;

图6是根据本发明其中一优选实施例的静态阴影的显示装置的结构框图。

具体实施方式

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

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

根据本发明其中一实施例,提供了一种静态阴影的显示方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明其中一实施例的静态阴影的显示方法的流程图,如图1所示,该方法包括如下步骤:

步骤s12,生成与待使用的模型组适配的静态阴影,其中,模型组包括:多个相位模型,每个相位模型由初始模型在预设空间范围内的旋转角度确定;

步骤s14,确定待使用的模型组在实际游戏场景的显示区域;

步骤s16,从待使用的模型组选取与当前方向对应的相位模型以及适配的静态阴影,并将选取的相位模型以及适配的静态阴影展示在显示区域内。

通过上述步骤,可以采用生成与待使用的模型组适配的静态阴影,该模型组包括:多个相位模型,每个相位模型由初始模型在预设空间范围内的旋转角度确定的方式,通过确定待使用的模型组在实际游戏场景的显示区域,以及从待使用的模型组选取与当前方向对应的相位模型以及适配的静态阴影并将选取的相位模型以及适配的静态阴影展示在显示区域内,达到了兼顾视觉效果和终端性能的目的,从而实现了提升实际游戏场景内阴影显示效果的真实性、适用性强、扩展性良好的技术效果,进而解决了相关技术中所提供的游戏模型阴影显示方式难以兼顾视觉效果和终端性能的技术问题。

可选地,在步骤s12中,生成与待使用的模型组适配的静态阴影可以包括以下执行步骤:

步骤s121,根据初始模型在预设空间范围内的预设旋转次数确定初始模型在预设空间范围内的多个旋转角度;

步骤s122,利用多个旋转角度确定多个相位模型;

步骤s123,将多个相位模型加载至模拟游戏场景或实际游戏场景,其中,模拟游戏场景参照实际游戏场景进行配置;

步骤s124,在模拟游戏场景或实际游戏场景下,为多个相位模型中的每个相位模型生成适配的静态阴影。

在空间直角坐标系xyz中,假设实际游戏场景的地面对应xoz平面,那么模型a旋转x度是指模型a绕y轴旋转x度。在此基础上,将模型a的每种旋转情况分别称为一个相位。例如:模型a旋转90度与旋转180度是两个不同的相位。将全部待使用的模型放置在合适的场景(其与实际游戏场景具有相似的地形和光照条件等特征)中进行预处理,从而使得生成的阴影在目标场景中不会显得突兀。将同一个模型按照所有可以展现给游戏玩家的面向均进行预处理。例如:模型a可以进行90度的旋转(4个方向),那么便需要将4个相位(其方向分别为:0度、90度、180度以及270度)的模型同时放置在合适的场景中进行预处理。

通过对玩家行为进行合理的限制,使得看似需要动态阴影解决的问题,可以使用静态阴影的技术来解决。另外,通过将对模型进行预处理的场景和实际游戏场景相分离,进而使得模型的阴影显示方法具有良好的扩展性。

图2是本发明其中一优选实施例的模型预处理方法的流程图,其目的在于:为不同相位的模型生成不同的阴影。如图2所示,该方法可以包括以下执行步骤:

步骤s201:针对每个模型,按照游戏策划人员的设计需求预先设定在360度内可以旋转的次数,进而确定每个模型具有的相位数量。

步骤s202:将每个模型的所有相位均放置到同一个场景中,由此确保同一组模型生成阴影的环境是相同的。一些具有对称外观的特殊模型可以复用重复的相位,例如:如果旋转轴经过球心,则球形外观的模型始终只需要一个相位。

步骤s203:如果将模型直接放置在实际游戏场景,则需要等待实际游戏场景制作完毕之后再开始对模型执行预处理操作;如果将模型放置到其他场景,则需要将该场景的环境配置调整至与制作完毕的实际游戏场景的最终显示效果相近似。

步骤s204:对需要加入至实际游戏场景的模型进行预处理,为每个模型的每个相位分别生成静态阴影。

可选地,步骤s16,从待使用的模型组选取与当前方向对应的相位模型以及适配的静态阴影可以包括以下执行步骤:

步骤s161,在实际游戏场景加载完毕之后,加载并缓存待使用的模型;

步骤s162,按照当前方向从缓存中选取对应的相位模型以及适配的静态阴影。

在游戏启动运行过程中,首先加载并缓存全部包含经过预处理的静态阴影的模型。其次,拷贝在实际游戏过程中需要使用到的模型,例如:游戏玩家希望在实际游戏场景中放置一棵树,那便需要拷贝这棵树的模型。然后,将模型移动到对应的位置,即该模型所代表的物体在实际游戏场景中的特定位置,例如:游戏玩家希望在实际游戏场景中放置一棵树,那便需要在拷贝这棵树的模型之后,再选择放置那棵树的位置。每个相位模型均只需加载一次,从而有效地提高了加载效率。

图3是根据本发明其中一优选实施例的对模型进行预处理后的加载方法的流程图,如图3所示,该方法包括以下执行步骤:

步骤s301:加载实际游戏场景。

步骤s302:加载全部经过预处理的模型。此步骤需要执行异步操作,其原因在于:在通常情况下,考虑到每个模型的每个相位都需要按照独立的实例进行加载,因此,需要加载的经过预处理的模型数量较多。而为了避免游戏卡顿,此处需要在实际游戏场景加载完毕后启动上述异步加载过程。

步骤s303:每当一整组模型(即一个模型的所有相位)加载完毕,便可以对整组模型进行缓存,由此可以显著地提升后续再次使用这组模型的加载速度。同时查找实际游戏场景中所有涉及到这组模型的物体的实例,将对应的相位进行拷贝后移动到对应的坐标。例如:游戏玩家在实际游戏场景中的几个特定位置放置了几棵树,在加载完毕之前可以先不显示这几棵树的模型,但是与这几棵树相关的其他信息仍会照常显示(例如:用户界面上树的名字或者可以进行点击操作的按钮等),游戏玩家也可以对这几棵树执行常规操作。等待这几棵树相关的模型全部加载完毕之后,再按照这棵树当前的状态(即位置和角度),将对应的模型放置到这几棵树所在的位置,进而展示给游戏玩家。

步骤s304:该步骤与上述步骤s302-s303是同时进行的。根据配置创建各个物体的实例,并根据当前方向计算出对应模型的相位。如果此时对应模型已经存在对应的缓存,则直接从缓存中拷贝正确的相位模型;否则,等待步骤s302-s303进行到对应阶段后再进行填充。

步骤s305:无论各个物体的实例的模型是否已经加载完毕,游戏玩家都可以对其进行移动或旋转等操作。如果尚未加载完毕,则会记录游戏玩家所执行过的操作,假设其他位置(例如:用户界面)存在对该物体的状态显示(例如:显示坐标和方向),则在这些位置上显示的内容会发生适应性变化。等到模型加载完毕之后,游戏玩家会直接观察到最终的显示状态(即实际对应的模型)。即使游戏玩家在模型加载完毕之前退出游戏,所有已经执行的操作也不会随之丢失。游戏玩家在下一次进入游戏后,可以直接观察到操作后的显示状态。

可选地,在步骤s16,将选取的相位模型以及适配的静态阴影展示在显示区域内之后,还可以包括以下执行步骤:

步骤s17,从缓存中获取待使用的模型组,将多个相位模型重叠设置于显示区域,其中,将当前方向对应的相位模型设置为可见状态以及将除当前方向之外其余方向对应的相位模型设置为隐藏状态;

步骤s18,响应于用户停止执行对待使用的模型的旋转操作,将与旋转后方向对应的相位模型设置为可见状态以及将除旋转后方向之外其余方向对应的相位模型设置为隐藏状态。

当游戏玩家开始对模型进行旋转操作时,首先拷贝模型在其他方向上对应的模型。其次,将这些模型均移动到对应的位置,并以旋转轴为中心重叠在一起。然后,将这些模型中对应当前物体实际方向的模型设置为可见,其他的模型设置为隐藏。最后,在游戏玩家进行旋转操作时,重复前序操作,直至游戏玩家停止执行对待使用的模型的旋转操作。

可选地,在步骤s16,将选取的相位模型以及适配的静态阴影展示在显示区域内之后,还可以包括以下执行步骤:

步骤s19,将除旋转后方向之外其余方向对应的相位模型从显示区域内移除。

当游戏玩家结束旋转操作时,通过移除所有多余方向上的模型,能够有效地避免耗费额外的内存开销。

图4是本发明其中一优选实施例的模型旋转处理方法的流程图,如图4所示,该方法可以包括以下处理步骤:

步骤s401:在开始执行旋转操作之前,需要从缓存中拷贝所有相位的模型,按旋转轴重叠在一起。由此,在游戏玩家执行旋转操作时,无需每次重新加载对应相位的模型,从而使得游戏操作更为流畅、游戏体验更加舒适。

步骤s402:根据当前相位显示对应的模型并隐藏其他相位对应的模型。实际上是通过模型的切换来模拟模型的旋转。因为,在当前游戏场景下通常无需显示旋转动画,而只需将模型按照旋转轴进行重叠,其实际效果便于直接对模型进行旋转完全一致。

步骤s403:在游戏玩家结束执行旋转操作之后,只保留当前相位的模型,并且将所有隐藏的其他相位对应的模型全部移除,目的是减少内存消耗。等到游戏玩家下次执行旋转操作之前,再将所有相位模型重新拷贝,然后重复执行上述步骤。

根据本发明其中一实施例,还提供了一种静态阴影的显示装置的实施例,图5是根据本发明其中一实施例的静态阴影的显示装置的结构框图,如图5所示,该装置包括:生成模块10,用于生成与待使用的模型组适配的静态阴影,其中,模型组包括:多个相位模型,每个相位模型由初始模型在预设空间范围内的旋转角度确定;确定模块20,用于确定待使用的模型组在实际游戏场景的显示区域;显示模块30,用于从待使用的模型组选取与当前方向对应的相位模型以及适配的静态阴影,并将选取的相位模型以及适配的静态阴影展示在显示区域内。

可选地,生成模块10包括:第一确定单元(图中未示出),用于根据初始模型在预设空间范围内的预设旋转次数确定初始模型在预设空间范围内的多个旋转角度;第二确定单元(图中未示出),用于利用多个旋转角度确定多个相位模型;加载单元(图中未示出),用于将多个相位模型加载至模拟游戏场景或实际游戏场景,其中,模拟游戏场景参照实际游戏场景进行配置;生成单元(图中未示出),用于在模拟游戏场景或实际游戏场景下,为多个相位模型中的每个相位模型生成适配的静态阴影。

可选地,显示模块30包括:处理单元(图中未示出),用于在实际游戏场景加载完毕之后,加载并缓存待使用的模型;选取单元(图中未示出),用于按照当前方向从缓存中选取对应的相位模型以及适配的静态阴影。

可选地,图6是根据本发明其中一优选实施例的静态阴影的显示装置的结构框图,如图6所示,上述装置还包括:获取模块40,用于从缓存中获取待使用的模型组,将多个相位模型重叠设置于显示区域,其中,将当前方向对应的相位模型设置为可见状态以及将除当前方向之外其余方向对应的相位模型设置为隐藏状态;设置模块50,用于响应于用户停止执行对待使用的模型的旋转操作,将与旋转后方向对应的相位模型设置为可见状态以及将除旋转后方向之外其余方向对应的相位模型设置为隐藏状态。

可选地,如图6所示,上述装置还包括:处理模块60,用于将除旋转后方向之外其余方向对应的相位模型从显示区域内移除。

根据本发明其中一实施例,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述静态阴影的显示方法。上述存储介质可以包括但不限于:u盘、只读存储器(rom)、随机存取存储器(ram)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

根据本发明其中一实施例,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述静态阴影的显示方法。上述处理器可以包括但不限于:微处理器(mcu)或可编程逻辑器件(fpga)等的处理装置。

根据本发明其中一实施例,还提供了一种终端,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,一个或多个程序被存储在存储器中,并且被配置为由一个或多个处理器执行,一个或多个程序用于执行上述静态阴影的显示方法。在一些实施例中,上述终端可以是智能手机(例如:android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,简称为mid)、pad等终端设备。上述显示装置可以是触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与终端的用户界面进行交互。此外,上述终端还可以包括:输入/输出接口(i/o接口)、通用串行总线(usb)端口、网络接口、电源和/或相机。

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

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

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

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

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

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

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

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