本发明涉及游戏技术领域,特别是涉及一种游戏中图形处理的方法和一种游戏中图形处理的装置。
背景技术:
随着游戏的发展,在3d游戏的迅猛发展下,对于光影的实现方案日趋复杂。但是,对于一些2d游戏,并不需要过于真实的光影,而且,由于手机平台配置较低的局限性,以及游戏场景大量的贴图使用和渲染,需要一个针对2d游戏的性能消耗较低的阴影实现方案,并且其需要符合游戏本身的风格。
目前,现有技术中通过射线扫描等方案简单的模拟光线的传播,来实现2d动态阴影效果。然而,一方面,2d动态阴影需要模拟光线的传播进行相应的阻挡计算,消耗较高,并且该方案大多针对的是俯视视角的2d游戏,另一方面,2d动态阴影需要美术在地图中添加相关的阻挡标识和光源标识,成本要求较高。
技术实现要素:
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种游戏中图形处理的方法和相应的一种游戏中图形处理的装置。
为了解决上述问题,本发明实施例公开了一种游戏中图形处理的方法,所述方法包括:
创建与游戏场景对应的渲染表面,其中,所述游戏场景包括至少一个预设虚拟对象;
获取与所述预设虚拟对象对应的贴图,并将所述贴图绘制于所述渲染表面中;
对所述渲染表面进行混合处理,获得所述渲染表面对应的阴影蒙版;
将所述阴影蒙版绘制于所述游戏场景的顶层,以呈现相应的光影效果。
可选地,所述将所述预设虚拟对象对应的贴图绘制于所述渲染表面中,包括:
获取所述预设虚拟对象在所述游戏场景中的第一位置信息,以及所述渲染表面与游戏场景的坐标系之间的映射关系;
根据所述第一位置信息和所述映射关系,确定所述贴图在所述渲染表面中的第二位置信息;
根据所述第二位置信息,将所述贴图绘制于所述渲染表面中。
可选地,所述对所述渲染表面进行混合处理,获得所述渲染表面对应的阴影蒙版,包括:
获取所述贴图的透明度;
根据透明度混合所述渲染表面和贴图,获得所述渲染表面对应的阴影蒙版。
可选地,所述游戏场景为虚拟房间。
可选地,在所述将所述阴影蒙版绘制于所述游戏场景的顶层,以呈现相应的光影效果的步骤之前,包括:
响应于所述游戏场景的切换,确定待显示的所述游戏场景。
可选地,所述预设虚拟对象的类型为光源类型。
本发明实施例还公开了一种游戏中图形处理的装置,所述装置包括:
渲染表面创建模块,用于创建与游戏场景对应的渲染表面,其中,所述游戏场景包括至少一个预设虚拟对象;
贴图绘制模块,用于获取与所述预设虚拟对象对应的贴图,并将所述贴图绘制于所述渲染表面中;
混合模块,用于对所述渲染表面进行混合处理,获得所述渲染表面对应的阴影蒙版;
阴影蒙版绘制模块,用于将所述阴影蒙版绘制于所述游戏场景的顶层,以呈现相应的光影效果。
可选地,所述贴图绘制模块,包括:
第一位置获取子模块,用于获取所述预设虚拟对象在所述游戏场景中的第一位置信息,以及所述渲染表面与游戏场景的坐标系之间的映射关系;
第二位置确定子模块,用于根据所述第一位置信息和所述映射关系,确定所述贴图在所述渲染表面中的第二位置信息;
贴图绘制子模块,用于根据所述第二位置信息,将所述贴图绘制于所述渲染表面中。
可选地,所述混合模块包括:
透明度获取子模块,用于获取所述贴图的透明度;
混合子模块,用于根据透明度混合所述渲染表面和贴图,获得所述渲染表面对应的阴影蒙版。
可选地,所述游戏场景为虚拟房间。
可选地,所述装置还包括:
游戏场景获取模块,用于响应于所述游戏场景的切换,确定待显示的所述游戏场景。
可选地,所述预设虚拟对象的类型为光源类型。
本发明实施例还公开了一种电子设备,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如本发明实施例所述的一个或多个的方法的步骤。
本发明实施例还公开了一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如本发明实施例所述的一个或多个的方法的步骤。
本发明实施例包括以下优点:
在本发明实施例中,创建与游戏场景对应的渲染表面,获取与游戏场景中预设虚拟对象对应的贴图,并将贴图绘制于渲染表面中,对渲染表面进行混合处理,获得渲染表面对应的阴影蒙版;将阴影蒙版绘制于游戏场景的顶层,以呈现相应的光影效果。从而避免在需要呈现游戏场景的光影效果时,需要实时模拟光线的传播进行相应的阻挡计算,使得可以降低呈现光影效果的资源消耗和内存占用。
附图说明
图1是本发明的一种游戏中图形处理的方法实施例的步骤流程图;
图2是本发明的一种阴影蒙版的示意图;
图3是本发明的一种游戏中图形处理的装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明的一种游戏中图形处理的方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,创建与游戏场景对应的渲染表面,其中,所述游戏场景包括至少一个预设虚拟对象;
本发明实施例可以应用于终端设备中,终端设备可以包括各种移动终端,例如,手机、平板电脑、游戏机、pda等。该终端设备的操作系统可以包括android(安卓)、ios、windowsphone、windows等等,通常可以支持各种游戏应用的运行。
在终端设备上运行游戏应用,并在终端设备的显示器上渲染图形用户界面,图形用户界面所显示的内容至少部分地包含一局部或全部的游戏场景,游戏场景中所包含的具体内容可以由开发者或玩家根据需求进行设置,可以包括多种场景元素,例如,虚拟植被、虚拟建筑、npc(非玩家角色)、可与游戏角色进行交互的道具等等。。
在本实施例中,游戏场景中包括至少一个预设虚拟对象,该预设虚拟对象可以是预先设定的光照影响因素对象,包括游戏场景中标识为光源的物体(如,灯,蜡烛等)。此外,预设虚拟对象也可以是游戏场景中的由玩家控制的虚拟角色,可以是指定类型的虚拟角色,也可以是队友玩家所控制的虚拟角色,还可以是指定某一玩家所控制的虚拟角色等,具体由游戏开发者进行设置,本实施例不局限于此。
在本发明实施例中,为了实现一种性能消耗较低的阴影效果,可以首先针对游戏场景创建一渲染表面,该渲染表面(rendersurface)可以是内存图像,用于将渲染管线输出的像素重定向到一张图片缓存中。
具体的,渲染表面具有两个必要的特征参数,分别为尺寸参数和像素格式参数,其中,像素格式参数可以包括:rgb,rgba,r8,g8,b8,a8,r32,g32,b32,a32,....,等多种。通过分别设置尺寸参数和像素格式参数,以完成创建渲染表面,作为一种示例,可以设置渲染表面的尺寸参数为256*256像素,像素格式参数为a8,其中,a8格式的渲染表面是单通道(灰度)形式的。
步骤102,获取与所述预设虚拟对象对应的贴图,并将所述贴图绘制于所述渲染表面中;
在本发明实施例中,可以先确定游戏场景中包含的所有预设虚拟对象,然后分别获取与预设虚拟对象对应的贴图,并将贴图绘制于渲染表面中。其中,预设虚拟对象与关联的至少一贴图对应,对于较为复杂的预设虚拟对象,其相应的虚拟模型也可以是对应于多个贴图。
具体的,可以针对每一个预设虚拟对象制作相对应的贴图,该贴图可以是单通道的光照图,贴图还可以具备透明度属性,如,透明度属性为0.6,贴图的尺寸大小可以与预设虚拟对象的光照影响强度正相关。例如,预设虚拟对象为灯时,灯的光照影响强度较大,则与灯对应的贴图的尺寸较大;预设虚拟对象为蜡烛时,蜡烛的光照影响强度较小,则与蜡烛对应的贴图的尺寸较小。在制作完成贴图之后,可以建立预设虚拟对象与贴图的对应关系并存储这些贴图。当需要获取贴图时,可以从预设虚拟对象与贴图的对应关系中,查找到与预设虚拟对象对应的贴图,从而获取该贴图。进一步地,可以根据预设虚拟对象在游戏场景中的位置,确定贴图在渲染表面中的目标位置,从而将贴图绘制于渲染表面中的目标位置。
步骤103,对所述渲染表面进行混合处理,获得所述渲染表面对应的阴影蒙版。
在本发明实施例中,可以对渲染表面进行混合处理,以将渲染表面与贴图混合,获得渲染表面对应的阴影蒙版。
具体的,可以获取渲染表面的第一颜色值,以及获取与预设虚拟对象对应的贴图的第二颜色值,将第一颜色值和第二颜色值按照预设权重进行加权,从而混合渲染表面与贴图,获得渲染表面对应的阴影蒙版。其中,预设权重可以是预先设定的加权权重,用于控制渲染表面与贴图的混合方式。图2示出了本发明的一种阴影蒙版的示意图,在图2中,白色区域为有贴图的区域,黑色区域为没有贴图的区域。
步骤104,将所述阴影蒙版绘制于所述游戏场景的顶层,以呈现相应的光影效果。
在本发明实施例中,当需要呈现游戏场景中的光影效果时,可以将阴影蒙版绘制于游戏场景的顶层,以呈现相应的光影效果。
由于阴影蒙版中包含与预设虚拟对象对应的贴图,直接绘制阴影蒙版就能实现光影效果,避免需要模拟光线的传播进行相应的阻挡计算,从而降低实现光影效果的资源消耗。
在本发明的一种优选实施例中,所述步骤102可以包括如下子步骤:
获取所述预设虚拟对象在所述游戏场景中的第一位置信息,以及所述渲染表面与游戏场景的坐标系之间的映射关系;根据所述第一位置信息和所述映射关系,确定所述贴图在所述渲染表面中的第二位置信息;根据所述第二位置信息,将所述贴图绘制于所述渲染表面中。
具体的,在创建渲染表面之后,可以建立该渲染表面的坐标系,如,以渲染表面的左上角为原点,从左上角向右为x轴正方向,从左上角向下为y轴正方向,然后确定建立的渲染表面的坐标系与游戏场景的坐标系之间的映射关系。通过获取预设虚拟对象在游戏场景中的第一位置信息,以及渲染表面与游戏场景的坐标系之间的映射关系,根据第一位置信息和映射关系,可以确定贴图在渲染表面中的第二位置信息,从而根据第二位置信息,将贴图绘制于渲染表面中。
在本发明的一种优选实施例中,所述步骤103可以包括如下子步骤:
获取所述贴图的透明度;根据透明度混合所述渲染表面和贴图,获得所述渲染表面对应的阴影蒙版。
在本发明实施例中,可以获取贴图的透明度,根据贴图的透明度混合渲染表面和贴图,获得与渲染表面相对应的阴影蒙版。
具体的,在对渲染表面进行混合处理时,可以设置混合模式,该混合模式用于规定光照图和渲染表面混合时的颜色值比例。例如,可以设置混合模式为(dst_alpha,zero),表示使用源颜色的alpha透明度作为加权权重,且完全不使用目标颜色的alpha,其中,源颜色为贴图的颜色值,目标颜色为渲染表面的颜色值。
在本发明的一种优选实施例中,所述游戏场景可以为虚拟房间。该虚拟房间即是在游戏中模拟现实的房间构造的建筑物,虚拟房间可以具有门、窗、灯等实体。
在本发明的一种优选实施例中,在所述步骤104之前可以包括如下子步骤:
响应于所述游戏场景的切换,确定待显示的所述游戏场景。
具体的,当玩家控制虚拟角色从一个游戏场景进入另外一个游戏场景时,相当于发生了一个游戏场景的切换的触发操作,游戏应用可以响应于游戏场景的切换,确定待显示的游戏场景。其中,待显示的游戏场景可以是虚拟角色新进入的游戏场景。作为一种示例,当前显示游戏场景为虚拟房间a时,可以通过虚拟房间的开门/关门控件,来触发进行游戏场景之间的切换,假设打开了虚拟房间a的门,则可以确定待显示的游戏场景为虚拟房间b,或者为室外场景,本实施例不局限于此。
在本发明实施例中,可以分别预先针对每个游戏场景制作对应的阴影蒙版,当需要呈现光影效果时,直接获取与待显示的游戏场景对应的阴影蒙版,并将该阴影蒙版绘制于待显示的游戏场景的顶层,以呈现相应的光影效果,从而可以进一步降低实现光影效果的资源消耗。
在本发明的一种优选实施例中,所述预设虚拟对象的类型可以为光源类型。其中,光源类型指游戏中预设为可发光的实体,例如,太阳、月亮这类自然光源,也可以是由游戏角色在场景中触发的照明光源,例如台灯、吊灯、或手电筒等,具体可以由开发者或玩家根据需求进行设置,本实施例不局限于此。
在本发明实施例中,对于光源类型的预设虚拟对象,在阴暗的环境中需要呈现明亮的发光效果,而对于游戏场景中的非光源类型的其他虚拟对象,在阴暗的环境中则呈现黑暗或阴影的效果。为了快速实现光源效果,可以获取针对光源类型的预设虚拟对象的贴图来制作阴影蒙版,从而避免在需要呈现光影效果时,需要实时渲染光源类型的预设虚拟对象。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图3,示出了本发明的一种游戏中图形处理的装置实施例的结构框图,具体可以包括如下模块:
渲染表面创建模块301,用于创建与游戏场景对应的渲染表面,其中,所述游戏场景包括至少一个预设虚拟对象;
贴图绘制模块302,用于获取与所述预设虚拟对象对应的贴图,并将所述贴图绘制于所述渲染表面中;
混合模块303,用于对所述渲染表面进行混合处理,获得所述渲染表面对应的阴影蒙版;
阴影蒙版绘制模块304,用于将所述阴影蒙版绘制于所述游戏场景的顶层,以呈现相应的光影效果。
在本发明的一种优选实施例中,所述贴图绘制模块302,可以包括如下子模块:
第一位置获取子模块,用于获取所述预设虚拟对象在所述游戏场景中的第一位置信息,以及所述渲染表面与游戏场景的坐标系之间的映射关系;
第二位置确定子模块,用于根据所述第一位置信息和所述映射关系,确定所述贴图在所述渲染表面中的第二位置信息;
贴图绘制子模块,用于根据所述第二位置信息,将所述贴图绘制于所述渲染表面中。
在本发明的一种优选实施例中,所述混合模块303,可以包括如下子模块:
透明度获取子模块,用于获取所述贴图的透明度;
混合子模块,用于根据透明度混合所述渲染表面和贴图,获得所述渲染表面对应的阴影蒙版。
在本发明的一种优选实施例中,所述游戏场景为虚拟房间。
在本发明的一种优选实施例中,所述装置还可以包括如下模块:
游戏场景获取模块,用于响应于所述游戏场景的切换,确定待显示的所述游戏场景。
在本发明的一种优选实施例中,所述预设虚拟对象的类型为光源类型。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种电子设备,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行本发明实施例所述的方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行本发明实施例所述的方法的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种游戏中图形处理的方法和一种游戏中图形处理的装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。