掌桥专利:专业的专利平台
掌桥专利
首页

一种阴影处理方法和装置

文献发布时间:2023-06-19 09:30:39


一种阴影处理方法和装置

技术领域

本发明涉及计算机图形学技术领域,特别是涉及一种阴影处理方法和一种阴影处理装置。

背景技术

随着游戏的发展,在3D游戏的迅猛发展下,对于光影的实现方案日趋复杂,其中,为了提高画面的真实性,对于一些模型,需要实现阴影下的透射效果。

现有技术中,在需要实现阴影下的透射效果时,通常会使用Screen SpaceSubfurface Scattering,屏幕空间次表面散射技术,但是这个技术属于后处理,虽然可以达到实现阴影下的透射的效果,但是其在美术制作上可控性较低,所有的效果都是针对全屏幕进行,所有的模型的阴影透射效果会一致,如果要单独控制某一模型的效果并非易事,美术进行个性化设计较难,并且消耗较大。

发明内容

鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种阴影处理方法和相应的一种阴影处理装置。

本发明实施例公开了一种阴影处理方法,包括:

获取待处理模型的阴影数据;

采用所述阴影数据确定所述待处理模型中阴影的过渡区域;

采用所述阴影数据确定所述过渡区域中各个位置的阴影强度;

按照所述阴影强度从预设颜色查找数据中采样得到目标颜色;

采用所述目标颜色设置所述过渡区域中对应位置的颜色,得到所述待处理模型的阴影贴图。

可选地,所述采用所述阴影数据确定所述过渡区域中各个位置的阴影强度,包括:

依次从所述过渡区域中确定当前操作位置;

从所述阴影数据中,确定与所述当前操作位置的预设范围内的多个位置对应的多个目标阴影数据;

采用所述多个目标阴影数据计算得到所述当前操作位置的阴影强度。

可选地,所述采用所述阴影数据确定所述待处理模型中阴影的过渡区域,包括:

采用所述阴影数据确定所述待处理模型中的阴影区域和非阴影区域;

采用所述阴影区域和非阴影区域确定阴影边缘位置;

确定所述阴影边缘位置的预设范围内的区域为过渡区域。

可选地,还包括:

采用所述阴影贴图渲染所述待处理模型,以使所述待处理模型呈现软阴影透射效果。

可选地,所述预设颜色查找数据为颜色对照图,所述按照所述阴影强度从预设颜色查找数据中采样得到目标颜色,包括:

采用所述阴影强度确定采样坐标;

按照所述采样坐标从所述颜色对照图中采样得到目标颜色。

可选地,所述按照所述采样坐标从所述颜色对照图中采样得到目标颜色,包括:

确定所述待处理模型的类型;

获取与待处理模型的类型匹配的目标颜色对照图;

按照所述采样坐标从所述目标颜色对照图中采样得到目标颜色。

可选地,所述待处理模型的类型包括以下任一项:

人体类型、玉石类型和冰晶类型。

本发明实施例还公开了一种阴影处理装置,包括:

阴影数据获取模块,用于获取待处理模型的阴影数据;

过渡区域确定模块,用于采用所述阴影数据确定所述待处理模型中阴影的过渡区域;

阴影强度确定模块,用于采用所述阴影数据确定所述过渡区域中各个位置的阴影强度;

目标颜色采样模块,用于按照所述阴影强度从预设颜色查找数据中采样得到目标颜色;

目标颜色替换模块,用于采用所述目标颜色设置所述过渡区域中对应位置的颜色,得到所述待处理模型的阴影贴图。

本发明实施例还公开了一种电子设备,包括:

处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如本发明实施例任一项所述的方法。

本发明实施例还公开了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如本发明实施例任一项所述的方法。

本发明实施例包括以下优点:

在本发明实施例中,通过获取待处理模型的阴影数据,采用该阴影数据确定待处理模型中阴影的过渡区域,并确定过渡区域中各个位置的阴影强度,按照阴影强度从预设颜色查找数据中采样得到目标颜色,采用目标颜色设置过渡区域中对应位置的颜色,得到待处理模型的阴影贴图,从而可以使过渡区域的阴影柔和,使得采用阴影贴图进行渲染得到的待处理模型呈现软阴影透射效果,可以减少性能消耗,并且不依赖全屏后处理功能,可以单独控制某一模型的效果。

附图说明

图1是本发明的一种阴影处理方法实施例的步骤流程图;

图2A是本发明的一种采用PCF技术处理阴影之前的效果示意图;

图2B是本发明的一种采用PCF技术处理阴影之后的效果示意图;

图3A是本发明的一种对模型进行阴影处理之后的效果示意图;

图3B是本发明的另一种对模型进行阴影处理之后的效果示意图;

图4是本发明的一种阴影处理装置实施例的结构框图;

图5是本发明的一种电子设备的结构框图;

图6是本发明的一种存储介质的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

在本发明其中一种实施例中的阴影处理方法可以运行于终端设备或者是服务器。其中,终端设备可以为本地终端设备。当阴影处理方法运行于服务器时,该阴影处理方法则可以基于云交互系统来实现与执行,其中,云交互系统包括服务器和客户端设备。

在一可选的实施方式中,云交互系统下可以运行各种云应用,例如:云游戏。以云游戏为例,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,阴影处理方法的储存与运行是在云游戏服务器上完成的,客户端设备的作用用于数据的接收、发送以及游戏画面的呈现,举例而言,客户端设备可以是靠近用户侧的具有数据传输功能的显示设备,如,第一终端设备、电视机、计算机、掌上电脑等;但是进行阴影处理方法的终端设备为云端的云游戏服务器。在进行游戏时,玩家操作客户端设备向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回客户端设备,最后,通过客户端设备进行解码并输出游戏画面。

在一可选的实施方式中,终端设备可以为本地终端设备。以游戏为例,本地终端设备存储有游戏程序并用于呈现游戏画面。本地终端设备用于通过图形用户界面与玩家进行交互,即,常规的通过电子设备下载安装游戏程序并运行。该本地终端设备将图形用户界面提供给玩家的方式可以包括多种,例如,可以渲染显示在终端的显示屏上,或者,通过全息投影提供给玩家。举例而言,本地终端设备可以包括显示屏和处理器,该显示屏用于呈现图形用户界面,该图形用户界面包括游戏画面,该处理器用于运行该游戏、生成图形用户界面以及控制图形用户界面在显示屏上的显示。

参照图1,示出了本发明的一种阴影处理方法实施例的步骤流程图,具体可以包括如下步骤:

步骤101,获取待处理模型的阴影数据;

待处理模型可以指属于透明体或半透明体的模型,当光线投射在透明体或半透明体的模型的表面上时,光线的一部分被反射,一部分被吸收,还有一部分可以透射过去,在透明体或半透明体的模型呈现软阴影透射效果。

在游戏运行时,可以通过Shadow Map技术进行处理得到待处理模型的阴影数据,Shadow Map是一种生成实时阴影的技术,其可以针对任意给定的一个物体片段点(fragment point),计算出这个点是否处在阴影之中,若是在阴影中则输出0,若不在阴影中则输出1。

在本发明实施例中,为了实现控制单个模型在阴影下的软阴影透射效果,可以获取待处理模型的阴影数据,如,可以获取通过Shadow Map技术计算得到的数据。以便于根据阴影数据进行处理,实现模型在阴影下的软阴影透射效果。其中,阴影数据可以指用于描述待处理模型中各个位置的阴影状况的数据,通常包括在阴影中和不在阴影中两种状态,例如,在阴影中可以表示为0,不在阴影中可以表示为1。

步骤102,采用所述阴影数据确定所述待处理模型中阴影的过渡区域;

在经过生成实时阴影之后,待处理模型中可以包括阴影区域和非阴影区域,其中,阴影区域指处在阴影中的区域,非阴影区域指不处在阴影中的区域。在本发明实施例中,可以确定待处理模型中阴影的过渡区域,以对过渡区域进行处理,使得过渡区域呈现软阴影透射效果。

具体的,过渡区域可以为阴影区域和非阴影区域之间预设范围内的区域,该预设范围可以指预先设定的上下左右四周的界限,例如,预设范围可以是以边缘位置为中心的上下左右四周3个片段点内的界限,预设范围可以根据实际需要进行设置,本发明实施例对此并不限制。在具体实现中,可以首先采用阴影数据确定阴影区域和非阴影区域的边缘位置,然后再根据该边缘位置确定待处理模型中阴影的过渡区域。

步骤103,采用所述阴影数据确定所述过渡区域中各个位置的阴影强度;

在确定待处理模型中阴影的过渡区域之后,可以进一步确定过渡区域中各个位置的阴影强度,该阴影强度可以用于表征各个位置的阴影的强弱程度,阴影强度的取值范围可以为[0,1],其中,取值为0时阴影强度最强,取值为1时阴影强度最弱。

在具体实现中,可以依次遍历过渡区域中的每一个位置,采用该位置的周围阴影数据来计算得到该位置的阴影强度。作为一种示例,可以采用PCF(Percentage CloserFiltering,百分比渐进过滤)技术,计算得到过渡区域中各个位置的阴影强度。

步骤104,按照所述阴影强度从预设颜色查找数据中采样得到目标颜色;

具体的,预设颜色查找数据可以是预先设定的对照数据,通过在该预设颜色查找数据中记录所需要的各种颜色与阴影强度的对应关系,从而可以按照各个位置的阴影强度从预设颜色查找数据中采样得到目标颜色。

作为一种示例,预设颜色查找数据可以记录为LUT(Look Up Table,查找表)图的形式,在LUT图中,X轴方向(水平方向)和Y轴方向(垂直方向)的取值范围为[0,1],其中,LUT图的X轴方向的颜色由黑色渐变到红色,再由红色渐变到白色,Y轴方向也类似,颜色由黑色渐变到红色,再由红色渐变到白色。在采样时,可以根据阴影强度确定一采样坐标,然后按照该采样坐标从LUT图中采样,例如,阴影强度为0.5,则可以采集LUT图中坐标(0.5,0.5)处的颜色作为目标颜色。

作为另一种示例,预设颜色查找数据可以记录为数据表的形式,在数据表中阴影强度与颜色一一对应,通过阴影强度可以直接从数据表中查找到对应的目标颜色。

步骤105,采用所述目标颜色设置所述过渡区域中对应位置的颜色,得到所述待处理模型的阴影贴图。

在本发明实施例中,可以采用针对过渡区域中各个位置计算得到的目标颜色,设置过渡区域中对应位置的颜色,得到待处理模型的阴影贴图,从而可以使过渡区域的阴影柔和,使得采用阴影贴图进行渲染得到的待处理模型呈现软阴影透射效果。

在本发明的一种优选实施例中,所述步骤103可以包括如下子步骤:

依次从所述过渡区域中确定当前操作位置;从所述阴影数据中,确定与所述当前操作位置的预设范围内的多个位置对应的多个目标阴影数据;采用所述多个目标阴影数据计算得到所述当前操作位置的阴影强度。

具体的,可以采用PCF(Percentage Closer Filtering,百分比渐进过滤)技术,依次计算过渡区域中的每个位置的阴影强度。通过依次从过渡区域中确定当前操作位置,然后从阴影数据中,确定与当前操作位置的预设范围内的多个位置对应的多个目标阴影数据,该预设范围可以指预先设定的上下左右四周的界限。在确定预设范围内的多个目标阴影数据之后,计算多个目标阴影数据的均值得到当前操作位置的阴影强度,然后确定过渡区域中的下一个位置为当前操作位置,并计算其阴影强度,直到遍历完过渡区域中所有的位置,得到过渡区域中所有位置的阴影强度。

作为一种示例,预设范围可以是以边缘位置为中心的上下左右四周1个片段点内的界限,则可以获取到的目标阴影数据有9个。假设阴影数据中以1表示不在阴影中,以0表示在阴影中,目标阴影数据中包括三个1和六个0,则可以计算得到阴影强度=3/9≈0.33。

图2A是本发明的一种采用PCF技术处理阴影之前的效果示意图,图2B是本发明的一种采用PCF技术处理阴影之后的效果示意图,其中图2B中的阴影相对于图2A中的阴影更加柔和。

在本发明的一种优选实施例中,所述步骤102可以包括如下子步骤:

采用所述阴影数据确定所述待处理模型中的阴影区域和非阴影区域;采用所述阴影区域和非阴影区域确定阴影边缘位置;确定所述阴影边缘位置的预设范围内的区域为过渡区域。

具体的,可以采用阴影数据确定待处理模型中的阴影区域和非阴影区域,其中,阴影区域指处在阴影中的区域,其各个位置的阴影数据都为0,非阴影区域指不处在阴影中的区域,其各个位置的阴影数据都为1。

在确定阴影区域和非阴影区域之后,可以进一步确定阴影边缘位置。该阴影边缘位置可以指阴影变化明显的位置,例如,可以两个相邻的位置中,其中一个位置的阴影数据为1,另一个位置的阴影数据为0,则可以确定这两个相邻的位置为边缘位置。

在确定边缘位置之后,可以进一步确定阴影边缘位置的预设范围内的区域为过渡区域,例如,预设范围为以边缘位置为中心的上下左右四周5个片段点内的界限,则可以确定以边缘位置为中心的上下左右四周5个片段点内的区域为过渡区域。

在本发明的一种优选实施例中,所述方法还可以包括如下步骤:

采用所述阴影贴图渲染所述待处理模型,以使所述待处理模型呈现软阴影透射效果。

在本发明实施例中,可以采用经过处理得到的阴影贴图渲染待处理模型,以使待处理模型呈现软阴影透射效果。如图3A是本发明的一种对模型进行阴影处理之后的效果示意图,图3B是本发明的另一种对模型进行阴影处理之后的效果示意图。

在本发明的一种优选实施例中,所述预设颜色查找数据为颜色对照图,所述步骤104可以包括如下步骤:

采用所述阴影强度确定采样坐标;按照所述采样坐标从所述颜色对照图中采样得到目标颜色。

在本发明实施例中,预设颜色查找数据可以为颜色对照图,在颜色对照图中记录过渡区域需要替换的各种颜色,可以采用阴影强度确定采样坐标,并按照该采样坐标从颜色对照图中采样得到目标颜色。具体的,可以以阴影强度为横坐标和纵坐标确定采样坐标,然后按照该采样坐标从颜色对照图中采样得到目标颜色。

作为一种示例,颜色对照图可以为LUT图,LUT图中,X轴方向(水平方向)和Y轴方向(垂直方向)的取值范围为[0,1],其中,LUT图的X轴方向的颜色由黑色渐变到红色,再由红色渐变到白色,Y轴方向也类似,颜色由黑色渐变到红色,再由红色渐变到白色。假设过渡区域中某个位置的阴影强度为0.5,则可以确定采样坐标为(0.5,0.5),从颜色对照图中采集坐标(0.5,0.5)处的颜色,得到目标颜色。

在本发明的一种优选实施例中,所述按照所述采样坐标从所述颜色对照图中采样得到目标颜色,包括:

确定所述待处理模型的类型;获取与待处理模型的类型匹配的目标颜色对照图;按照所述采样坐标从所述目标颜色对照图中采样得到目标颜色。

在本发明实施例中,不同类型的模型需要呈现的软阴影透射效果可以不相同,针对不同类型的模型制作一一对应的颜色对照图,然后在需要采集待处理模型中过滤区域的颜色时,可以从该类型的模型对应的颜色对照图中采集其颜色。

其中,所述待处理模型的类型包括:人体类型、玉石类型和冰晶类型等等,此外,还可以根据实际需要设置包含其他类型的模型,本发明实施例对此并不限制。

在具体实现中,可以获取待处理模型的材质信息,根据待处理模型的材质信息确定待处理模型的类型,然后获取与待处理模型的类型匹配的目标颜色对照图,并按照采样坐标从目标颜色对照图中采样得到目标颜色。

在本发明实施例中,通过获取待处理模型的阴影数据,采用该阴影数据确定待处理模型中阴影的过渡区域,并确定过渡区域中各个位置的阴影强度,按照阴影强度从预设颜色查找数据中采样得到目标颜色,采用目标颜色设置过渡区域中对应位置的颜色,得到待处理模型的阴影贴图,从而可以使过渡区域的阴影柔和,使得采用阴影贴图进行渲染得到的待处理模型呈现软阴影透射效果,可以减少性能消耗,并且不依赖全屏后处理功能,可以单独控制某一模型的效果。此外,用于采集的预设颜色查找数据可以由制作人员根据效果需要进行设置,使得可以自定义阴影透射效果,更加方便灵活。

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

参照图4,示出了本发明的一种阴影处理装置实施例的结构框图,具体可以包括如下模块:

阴影数据获取模块401,用于获取待处理模型的阴影数据;

过渡区域确定模块402,用于采用所述阴影数据确定所述待处理模型中阴影的过渡区域;

阴影强度确定模块403,用于采用所述阴影数据确定所述过渡区域中各个位置的阴影强度;

目标颜色采样模块404,用于按照所述阴影强度从预设颜色查找数据采样得到目标颜色;

目标颜色替换模块405,用于采用所述目标颜色设置所述过渡区域中对应位置的颜色,得到所述待处理模型的阴影贴图。

在本发明的一种优选实施例中,所述阴影强度确定模块403,包括:

当前操作位置确定子模块,用于依次从所述过渡区域中确定当前操作位置;

目标阴影数据确定子模块,用于从所述阴影数据中,确定与所述当前操作位置的预设范围内的多个位置对应的多个目标阴影数据;

阴影强度计算子模块,用于采用所述多个目标阴影数据计算得到所述当前操作位置的阴影强度。

在本发明的一种优选实施例中,所述过渡区域确定模块402,包括:

阴影区域确定子模块,用于采用所述阴影数据确定所述待处理模型中的阴影区域和非阴影区域;

边缘位置确定子模块,用于采用所述阴影区域和非阴影区域确定阴影边缘位置;

过渡区域确定子模块,用于确定所述阴影边缘位置的预设范围内的区域为过渡区域。

在本发明的一种优选实施例中,还包括:

渲染模块,用于采用所述阴影贴图渲染所述待处理模型,以使所述待处理模型呈现软阴影透射效果。

在本发明的一种优选实施例中,所述预设颜色查找数据为颜色对照图,所述目标颜色采样模块404,包括:

采样坐标确定子模块,用于采用所述阴影强度确定采样坐标;

目标颜色查找子模块,用于按照所述采样坐标从所述颜色对照图中采样得到目标颜色。

在本发明的一种优选实施例中,所述目标颜色查找子模块,包括:

类型确定单元,用于确定所述待处理模型的类型;

目标颜色查找表获取单元,用于获取与待处理模型的类型匹配的目标颜色对照图;

目标颜色查找单元,用于按照所述采样坐标从所述目标颜色对照图中采样得到目标颜色。

在本发明的一种优选实施例中,所述待处理模型的类型包括以下任一项:

人体类型、玉石类型和冰晶类型。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

如图5所示,本发明实施例还提供了一种电子设备,包括:

处理器501、存储介质502和总线503,所述存储介质502存储有所述处理器501可执行的机器可读指令,当电子设备运行时,所述处理器501与所述存储介质502之间通过总线503通信,所述处理器501执行所述机器可读指令,以执行如本发明实施例任一项所述的方法。具体实现方式和技术效果类似,这里不再赘述。

如图6所示,本发明实施例还提供了一种存储介质,所述存储介质上存储有计算机程序601,所述计算机程序601被处理器运行时执行如本发明实施例任一项所述的方法。具体实现方式和技术效果类似,这里不再赘述。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种阴影处理方法和一种阴影处理装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

相关技术
  • 虚拟三维模型的阴影处理方法、阴影处理装置及电子装置
  • 一种游戏场景中的阴影处理方法及装置及终端设备
技术分类

06120112192359