CN111784814A - 一种虚拟角色皮肤调整方法和装置 - Google Patents
一种虚拟角色皮肤调整方法和装置 Download PDFInfo
- Publication number
- CN111784814A CN111784814A CN202010688814.4A CN202010688814A CN111784814A CN 111784814 A CN111784814 A CN 111784814A CN 202010688814 A CN202010688814 A CN 202010688814A CN 111784814 A CN111784814 A CN 111784814A
- Authority
- CN
- China
- Prior art keywords
- skin
- parameter
- virtual character
- rgb color
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000004590 computer program Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 206010013786 Dry skin Diseases 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/506—Illumination models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
Abstract
本申请实施例提供了一种虚拟人物虚拟角色皮肤调整方法和装置,通过终端设备提供的图形用户界面所显示的内容包括至少一个虚拟角色,所述方法包括:获取所述虚拟角色对应的皮肤参数;所述皮肤参数至少包括以下其中之一:明暗参数、光泽度参数、颜色幂参数、对比度参数;根据所述皮肤参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值,以确定所述虚拟角色的皮肤肤色。本申请实施例中通过引入皮肤参数来实现对于虚拟角色皮肤肤色的控制,不同的虚拟角色只需要根据不同的皮肤参数即可实现不同的皮肤肤色,可以避免游戏资源包过大,使得游戏开发限制变小。
Description
技术领域
本申请实施例涉及图像处理技术领域,特别是涉及一种虚拟角色皮肤调整方法和装置。
背景技术
在目前游戏开发过程中,经常遇到在游戏场景中需要显示多个虚拟角色的情况,并且场景中虚拟角色的皮肤不一定完全相同,因此在开发过程中需要根据需求生成不同皮肤的虚拟角色。目前游戏上生成不同皮肤的虚拟角色方式,通常是采用改变虚拟角色的皮肤贴图的方式,例如替换虚拟角色皮肤的漫反射贴图和法线贴图等。
然而,替换虚拟角色的皮肤贴图的方式会使游戏资源包变得非常大,举例来说,假设一个虚拟角色的游戏角色模型有20种不同的皮肤,那么除了该虚拟角色的皮肤贴图之外,还需要额外的19张漫反射贴图和19张法线贴图来实现皮肤的变化,并且随着虚拟角色皮肤种类越多,游戏资源包越大,可能会导致游戏开发受到限制。
发明内容
本申请实施例是提供一种虚拟角色皮肤调整方法,以解决现有技术中实现虚拟角色不同的皮肤时游戏资源包过大,导致游戏开发受到限制的问题。
相应的,本申请实施例还提供了一种虚拟角色皮肤调整装置,用以保证上述方法的实现及应用。
为了解决上述问题,本申请实施例公开了一种虚拟角色皮肤调整方法,通过终端设备提供的图形用户界面所显示的内容包括至少一个虚拟角色,所述方法包括:
获取所述虚拟角色对应的皮肤参数,所述皮肤参数至少包括以下其中之一:明暗参数、光泽度参数、颜色幂参数、对比度参数;
根据所述皮肤参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值,以确定所述虚拟角色的皮肤肤色。
可选地,所述皮肤参数包括明暗参数,所述根据所述皮肤参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值,包括:
将预设RGB颜色值转换为HSV颜色值;
将所述HSV颜色值中的亮度值替换为所述明暗参数;
将替换后的所述HSV颜色值转换为目标RGB颜色值;
将所述目标RGB颜色值与所述虚拟角色的皮肤贴图中各像素的RGB颜色值相乘,得到调整后的所述RGB颜色值。
可选地,所述方法还包括:
当所述明暗参数的小于预设亮度范围时,将所述明暗参数的大小调整至所述预设亮度范围之内。
可选地,所述皮肤参数包括光泽度参数,所述根据所述皮肤参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值,包括:
将所述光泽度参数与预设倍数相乘,得到目标光泽度参数;
根据所述目标光泽度参数在预设粗糙范围参数进行插值处理,得到粗糙系数;
获取着色器的粗糙度参数;
将所述粗糙系数与所述粗糙度参数相乘,得到目标粗糙度;
按照所述目标粗糙度参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值。
可选地,所述方法还包括:
根据所述光泽度参数在预设高光范围进行插值处理得到高光最小值;
将所述高光参数作为高光最大值,取所述高光最小值和所述高光最大值之间的中间值作为目标高光参数;
按照所述目标高光参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值。
可选地,所述皮肤参数包括颜色幂参数,所述根据所述皮肤参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值,包括:
求所述虚拟角色的皮肤贴图中各像素的RGB颜色值的各颜色分量的所述颜色幂参数次幂,得到调整后的所述虚拟角色的皮肤贴图中各像素的RGB颜色值。
可选地,所述皮肤参数包括对比度参数,所述根据所述皮肤参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值,包括:
根据所述对比度参数确定对比度范围;
根据所述虚拟角色的皮肤贴图中各像素的RGB颜色值的各颜色分量,在所述对比度范围进行插值处理,得到插值后的所述RGB颜色分量。
可选地,所述方法还包括:
当插值后的所述颜色分量小于预设最小值时,将所述颜色分量设置为所述预设最小值;
当插值后的所述颜色分量大于预设最大值时,将所述颜色分量设置为所述预设最大值。
本申请实施例还公开了一种虚拟角色皮肤调整装置,通过终端设备提供的图形用户界面所显示的内容包括至少一个虚拟角色,所述装置包括:
皮肤参数获取模块,用于获取所述虚拟角色对应的皮肤参数,所述皮肤参数至少包括以下其中之一:明暗参数、光泽度参数、颜色幂参数、对比度参数;
皮肤调整模块,用于根据所述皮肤参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值,以确定所述虚拟角色的皮肤肤色。
本申请实施例还公开了一种电子设备,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如上所述的一个或多个的方法。
本申请实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如上所述的一个或多个的方法。
本申请实施例包括以下优点:
在本申请实施例中,对于通过终端设备提供的图形用户界面所显示的内容包括虚拟角色,可以获取虚拟角色对应的皮肤参数,其中皮肤参数至少包括以下其中之一:明暗参数、光泽度参数、颜色幂参数、对比度参数,然后根据皮肤参数调整虚拟角色的皮肤贴图中各像素的RGB颜色值,可以得到皮肤肤色不完全相同的虚拟角色。本申请实施例中通过引入皮肤参数来实现对于虚拟角色皮肤肤色的控制,不同的虚拟角色只需要根据不同的皮肤参数即可实现不同的皮肤肤色,可以避免游戏资源包过大,使得游戏开发限制变小。
附图说明
为了更清楚地说明本申请的技术方案,下面将对本申请的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的一种虚拟角色皮肤调整方法实施例的步骤流程图;
图2是本申请的一种虚拟角色皮肤调整装置实施例的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请实施例中的虚拟角色皮肤调整方法可以运行于终端设备或者是服务器。其中,终端设备可以为本地终端设备。当虚拟角色皮肤调整方法运行于为服务器时,可以为云游戏。
在一可选的实施方式中,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,虚拟角色皮肤调整方法的储存与运行是在云游戏服务器上完成的,云游戏客户端的作用用于数据的接收、发送以及游戏画面的呈现,举例而言,云游戏客户端可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑等;但是进行游戏数据处理的终端设备为云端的云游戏服务器。在进行游戏时,玩家操作云游戏客户端向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回云游戏客户端,最后,通过云游戏客户端进行解码并输出游戏画面。
在一可选的实施方式中,终端设备可以为本地终端设备。本地终端设备存储有游戏程序并用于呈现游戏画面。本地终端设备用于通过图形用户界面与玩家进行交互,即,常规的通过电子设备下载安装游戏程序并运行。该本地终端设备将图形用户界面提供给玩家的方式可以包括多种,例如,可以渲染显示在终端的显示屏上,或者,通过全息投影提供给玩家。举例而言,本地终端设备可以包括显示屏和处理器,该显示屏用于呈现图形用户界面,该图形用户界面包括游戏画面,该处理器用于运行该游戏、生成图形用户界面以及控制图形用户界面在显示屏上的显示。
参照图1,示出了本申请的一种虚拟角色皮肤调整方法实施例的步骤流程图,通过终端设备提供的图形用户界面所显示的内容包括至少一个虚拟角色,所述方法包括:
步骤101,获取所述虚拟角色对应的皮肤参数,所述皮肤参数至少包括以下其中之一:明暗参数、光泽度参数、颜色幂参数、对比度参数。
步骤102,根据所述皮肤参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值,以确定所述虚拟角色的皮肤肤色。
其中,明暗参数(Light/Dark)用于控制皮肤的亮度,即皮肤的白与黑;光泽度参数(Gloss)用于控制皮肤的光泽度;颜色幂参数(Power)用于整体改变皮肤的亮度和饱和度;对比度参数(Contract)用于修改对比度。
在本申请实施例中,对于通过终端设备提供的图形用户界面所显示的虚拟角色,可以获取虚拟角色对应的皮肤参数,然后根据皮肤参数调整虚拟角色的皮肤贴图中各像素的RGB颜色值,可以得到皮肤肤色不完全相同的虚拟角色。本申请实施例中通过引入皮肤参数来实现对于虚拟角色皮肤肤色的控制,不同的虚拟角色只需要根据不同的皮肤参数即可实现不同的皮肤肤色,可以避免游戏资源包过大,使得游戏开发限制变小。
下面,对本示例性实施例中虚拟角色皮肤调整方法作进一步地说明。
步骤101,获取所述虚拟角色对应的皮肤参数。
在终端设备上运行游戏应用,并在终端设备的触控显示器上渲染图形用户界面,图形用户界面所显示的内容至少部分地包含一局部或全部的游戏场景,游戏场景的具体形态可以是方形,也可以是其它形状(比如,圆形等)。
具体地,游戏场景中包括至少一虚拟角色,具体地虚拟角色可以是人物、动物、物体或者机甲等。该虚拟角色可以是玩家通过终端设备进行操控的游戏虚拟角色,敌方玩家所控制的游戏虚拟角色或者游戏开发者在某个具体游戏场景中预先设置的非玩家操控的虚拟角色(Non-Practicing Character,NPC),可以通过图形用户界面所呈现,所呈现的内容可以包含虚拟角色的全部,也可以是虚拟角色的局部。例如,在第三人称视角游戏中,图形用户界面所呈现的内容可以包含虚拟角色的全部,或者,在第一人称视角游戏中,图形用户界面所呈现的内容可以包含虚拟角色的部分或局部。
在本申请实施例中,皮肤参数可以根据需求设置为不同的参数。其中,皮肤参数可以是游戏开发者针对某个具体游戏场景预先设置的,也可以是玩家在游戏过程中针对某个具体游戏场景的玩法设置的,本申请实施例对此无需加以限制。
步骤102,根据所述皮肤参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值,以确定所述虚拟角色的皮肤肤色。
本申请实施例中的虚拟角色具有对应的游戏角色模型,游戏角色模型上设置有皮肤贴图,皮肤贴图可以包括漫反射贴图和法线贴图。其中,漫反射贴图反映出物体表面(例如虚拟角色皮肤)在漫反射下的颜色和强度,表现出物体的固有色以及纹理,是物体最基础的贴图,通常也可以直接理解为纹理。法线贴图保存了物体表面每个像素点的法线向量,法线向量的每个分量保存在皮肤贴图中各像素的RGB颜色值的一个颜色分量中。
当获取到各虚拟角色的皮肤参数后,终端设备的着色器(Shader)将根据皮肤参数,调整对应的虚拟角色的皮肤贴图中各像素的RGB颜色值,从而得到不同皮肤肤色的虚拟角色在游戏场景中呈现。具体地,本申请实施例通过皮肤参数所能调整的皮肤肤色包括但不限于皮肤贴图的亮度、光泽度、饱和度和对比度,可以同时调整或者仅调整其中一个或者多个皮肤肤色。
在本申请的一个可选实施例中,所述皮肤参数包括明暗参数,步骤102,根据所述皮肤参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值,包括:
将预设RGB颜色值转换为HSV颜色值;
将所述HSV颜色值中的亮度值替换为所述明暗参数;
将替换后的所述HSV颜色值转换为目标RGB颜色值;
将所述目标RGB颜色值与所述虚拟角色的皮肤贴图中各像素的RGB颜色值相乘,得到调整后的所述RGB颜色值。
其中,明度参数(Light/Dark)用于控制皮肤的亮度,即皮肤的白与黑。
本申请实施例中皮肤调整涉及的颜色空间包括HSV颜色空间和RGB颜色空间,其中HSV颜色空间是根据颜色的直观特性创建的一种颜色空间,也称六角锥体模型(HexconeModel),RGB颜色空间是以R(Red:红)、G(Green:绿)、B(Blue:蓝)三种颜色分量为基础进行不同程度的叠加,产生丰富而广泛的颜色,俗称三基色模式。
本申请实施例将白色的RGB颜色值(亮度最高的RGB颜色值)作为预设RGB颜色值并转换为HSV颜色值,然后基于明暗参数改变HSV颜色值中亮度(V)的值后再次转换为RGB颜色值,最后与虚拟角色的皮肤贴图中各像素的RGB颜色值相乘,得到调整后的RGB颜色值,以此完成对虚拟角色的皮肤贴图亮度的调整。
在本申请的一个可选实施例中,所述方法还包括:
当所述明暗参数的小于预设亮度范围时,将所述明暗参数的大小调整至所述预设亮度范围之内。
其中,明暗参数的取值范围可以映射为0-1,其中1表示亮度最亮,0表示亮度为最暗。在实际应用中,游戏开发者通常并不希望虚拟角色的皮肤贴图的亮度太暗,比如亮度在0.5以下,因此本申请实施例可以将0.5-1设置为预设亮度范围,在基于明暗参数调整虚拟角色皮肤贴图的亮度之前,将首先判断明暗参数的大小是否小于0.5,如果大于0.5,则无需处理,如果小于0.5,则可以按比例或者其他方式将明暗参数调整至0.5-1之内,使得虚拟角色的皮肤贴图亮度不至于太暗。
在一个可选示例中,调整虚拟角色皮肤贴图亮度的代码可以为:
上述代码中,首先定义明暗参数cHSV_V_Value,然后以cHSV_V_Value作为一个插值百分比,将其从0到1的范围映射到1到0.5的范围内的新的明暗参数r_V_Value,这是因为游戏开发者不希望亮度低到0.5以下,所以将亮度定在1到0.5。然后将白色的RGB颜色转换成HSV颜色值,直接用r_V_Value替换HSVL里的V(亮度),最后将替换了V后的HSV颜色值再转到RGB颜色值,与虚拟角色的皮肤贴图中的各像素的RGB颜色值相乘,可以达到改变虚拟角色皮肤贴图亮度的皮肤肤色。
在本申请的一个可选实施例中,所述皮肤参数包括光泽度参数,步骤102,根据所述皮肤参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值,包括:
将所述光泽度参数与预设倍数相乘,得到目标光泽度参数;
根据所述目标光泽度参数在预设粗糙范围参数进行插值处理,得到粗糙系数;
获取着色器的粗糙度参数;
将所述粗糙系数与所述粗糙度参数相乘,得到目标粗糙度;
按照所述目标粗糙度参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值。
其中,皮肤参数(Gloss)用于控制皮肤的光泽度,具体可以包括光泽度参数cShine,基于光泽度参数cShine可以修改着色器的Roughness(粗糙度参数)。具体地,粗糙参数度的作用是控制物体表面是更粗糙还是更光滑,在修改着色器的粗糙度参数后着色器将根据粗糙度参数调整虚拟角色的皮肤贴图中各像素的RGB颜色值,得到调整后的RGB颜色值,以此完成对虚拟角色的皮肤贴图粗糙度的调整。
在一个可选示例中,调整虚拟角色皮肤粗糙度的代码可以为:
Roughness=lerp(1.847619,1.35,cShine*1.1)*Roughness;
上述代码中,使用了一个已经调好的预设粗糙范围,在这个预设粗糙范围用光泽度参数cShine作插值百分比得到粗糙系数,然后乘以粗糙度参数Roughness来计算新的粗糙度参数。其中,预设粗糙范围为1.847619和1.35,是美术人员在调节过程中认为一个合理的范围,光泽度参数cShine的1.1倍是可以将调节效果放大的目标光泽度参数。
在本申请的一个可选实施例中,所述方法还包括:
根据所述光泽度参数在预设高光范围进行插值处理得到高光最小值;
将所述高光参数作为高光最大值,取所述高光最小值和所述高光最大值之间的中间值作为目标高光参数;
按照所述目标高光参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值。
其中,基于光泽度参数cShine还可以修改着色器计算中的Specular(镜面反射强度参数或者高光参数),具体地,高光参数的作用是控制物体表面反射光的能力强弱,高光参数越大反射光的能力越强,高光参数越小反射光的能力越弱。在修改着色器中的高光参数后着色器将根据高光参数调整虚拟角色的皮肤贴图中各像素的RGB颜色值,得到调整后的RGB颜色值,以此完成对虚拟角色的皮肤贴图高光的调整。
在一个可选示例中,调整虚拟角色皮肤贴图高光的代码可以为:
float cShine:layout(ps)<Widget="FloatSlider";Min="0";Max="1";Step="0.01";Precision="2";>=0.25;
//Shine orroughness calculate
Roughness=lerp(1.847619,1.35,cShine*1.1)*Roughness;
halfspecularMin=lerp(0,2.0,cShine);//通过插值计算出高光范围的高光最小值
halfspecularMax=2;//固定高光范围的高光最大值
IMP.Specular=lerp(specularMin,specularMax,0.5);//取高光范围的中间值作为最终的目标高光参数
上述代码中,使用了一个已经调好的预设高光范围,在这个预设高光范围用光泽度参数cShine作插值百分比得到高光最小值,然后将光泽度参数cShine作为高光最大值,然后根据0.5在高光最小值和高光最大值进行插值处理得到中间值,并作为着色器处理皮肤贴图时的目标高光参数。
在本申请的一个可选实施例中,所述皮肤参数包括颜色幂参数,所述步骤102,根据所述皮肤参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值,包括:
求所述虚拟角色的皮肤贴图中各像素的RGB颜色值的各颜色分量的所述颜色幂参数次幂,得到调整后的所述虚拟角色的皮肤贴图中各像素的RGB颜色值。
其中,颜色幂参数(Power)用于整体改变皮肤的亮度和饱和度,对皮肤贴图中各像素的RGB颜色值基于颜色幂参数进行次幂,即RGB颜色值的每个颜色分量都求Power次幂:R=RPower,G=RPower,B=BPower,得到调整后的RGB颜色值,以此完成对虚拟角色的皮肤贴图整体亮度和饱和度的调整。
在一个可选示例中,调整虚拟角色皮肤贴图整体亮度和饱和度的代码可以为:
float cPower:layout(ps)<Widget="FloatSlider";Min="0.5";Max="2";Step="0.01";Precision="2";>=1;//Power
BaseColor.rgb=pow(BaseColor.rgb,cPower);//对像素的RGB颜色值每个分量求它的Power次幂
在上述代码中,对于像素的RGB颜色值中的每个颜色分量,即R分量,G分量和B分量均基于Power进行次幂计算。
在本申请的一个可选实施例中,所述皮肤参数包括对比度参数,所述步骤102,根据所述皮肤参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值,包括:
根据所述对比度参数确定对比度范围;
根据所述虚拟角色的皮肤贴图中各像素的RGB颜色值的各颜色分量,在所述对比度范围进行插值处理,得到插值后的所述RGB颜色分量。
其中,对比度参数(Contract)用于修改对比度。在一个可选示例中,可以使用CheapContract_RGB(低成本对比度_RGB)函数实现对比度修改。具体地,CheapContrast_RGB函数通过将颜色直方图的高端重新映射到低端值,然后将颜色直方图的低端重新映射到高端值,提升皮肤贴图的对比度。
具体地,本申请实施例可以根据对比度参数得到对比度范围,然后将虚拟角色的皮肤贴图中各像素的RGB颜色值的各颜色分量,在对比度范围进行插值处理,得到插值后的RGB颜色分量,得到调整后的RGB颜色值,以此完成对虚拟角色的皮肤贴图的对比度的调整。
在本申请的一个可选实施例中,所述方法还包括:
当插值后的所述颜色分量小于预设最小值时,将所述颜色分量设置为所述预设最小值;
当插值后的所述颜色分量大于预设最大值时,将所述颜色分量设置为所述预设最大值。
在前述的插值计算过程中,可能会出现插值后的颜色分量没有在预设最小值和预设最大值的范围,即0-1之内,而实际中颜色分量最终只能取0-1,因此对于插值后的颜色分量,如果颜色分量小于预设最小值,则将该颜色值设置为预设最小值,如果颜色分量大于预设最大值,则将该颜色值设置为预设最大值。
在一个可选示例中,调整虚拟角色皮肤对比度的代码可以为:
在上述代码中,对比度参数cContrast的可调整范围是-0.5到1,那么对于RGB颜色值中每个颜色分量的Lerp函数进行Lerp(线性插值)操作,Lerp函数的对比度范围中的第一个参数是0.5到-1(-cContrast),对比度范围中的第二个参数是0.5到2(cContrast+1):
lerp(ret.r,contrast+1,diffuseColor.r);
根据diffuseColor(漫反射贴图)的每一个颜色分量在Lerp函数的两个参数内插值,其中,当cContrast为-0.5时,每个颜色分量Lerp后只能得到0.5的值(因为Lerp的前两个参数都是0.5),而cContrast越大,每个颜色分量Lerp后会被从(0到1)扩大到(-1到2),但是由于颜色分量最终只能取0到1,因此超出这个范围的颜色分量还将通过clamp函数被限制到0到1范围之内,具体来说,就是最后得到的diffuseColor中每个颜色分量如果小于0都会变成0,大于1都会变成1,即皮肤贴图中亮的地方变得更亮,暗的地方最得更暗,从而提高了皮肤贴图的对比度。
本申请实施例中包括了4个皮肤参数,分别是1、Contract:修改对比度;2、Power:对RGB颜色值的颜色分量进行的颜色幂;3、Light/Dark:控制皮肤的白与黑;4、Gloss:控制皮肤的光泽度。其中,4个皮肤参数的皮肤肤色是分别独立的,每一个皮肤参数对应一个皮肤肤色的调整,由于4个皮肤参数都会对物体最后的每个像素的RGB颜色值产生影响,因此通常需要按一定顺序,例如如上的顺序。当然,也正是由于每一个皮肤参数对应一个皮肤肤色的调整,因此基于皮肤参数独立调整皮肤肤色,或者按照其他顺序对每个像素的RGB颜色值进行调整均可。
应用本申请实施例,大大减少了由皮肤变化带来的游戏资源包增加,假设一张皮肤贴图是1024*1024,一张皮肤贴图的大小则是4*1024*1024B,即4MB,如果达到1004个皮肤肤色,所需要的资源量非常庞大,而本申请通过使用4个皮肤参数代替皮肤贴图重复,可以组合出接近1004个皮肤肤色,且所需要的占用的游戏资源包空间也非常小,那么游戏资源包的剩余空间也将变多,使得游戏开发限制变小。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图2,示出了本申请的一种物皮肤调整装置实施例的结构框图,通过终端设备提供的图形用户界面所显示的内容包括至少一个虚拟角色,所述装置包括:
皮肤参数获取模块201,用于获取所述虚拟角色对应的皮肤参数,所述皮肤参数至少包括以下其中之一:明暗参数、光泽度参数、颜色幂参数、对比度参数;
皮肤调整模块202,用于根据所述皮肤参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值,以确定所述虚拟角色的皮肤肤色。
在本申请的一个可选实施例中,所述皮肤参数包括明暗参数,所述皮肤调整模块202,用于将预设RGB颜色值转换为HSV颜色值;将所述HSV颜色值中的亮度值替换为所述明暗参数;将替换后的所述HSV颜色值转换为目标RGB颜色值;将所述目标RGB颜色值与所述虚拟角色的皮肤贴图中各像素的RGB颜色值相乘,得到调整后的所述RGB颜色值。
在本申请的一个可选实施例中,所述皮肤调整模块202,用于当所述明暗参数的小于预设亮度范围时,将所述明暗参数的大小调整至所述预设亮度范围之内。
在本申请的一个可选实施例中,所述皮肤参数包括光泽度参数,所述皮肤调整模块202,用于将所述光泽度参数与预设倍数相乘,得到目标光泽度参数;根据所述目标光泽度参数在预设粗糙范围参数进行插值处理,得到粗糙系数;获取着色器的粗糙度参数;将所述粗糙系数与所述粗糙度参数相乘,得到目标粗糙度;按照所述目标粗糙度参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值。
在本申请的一个可选实施例中,所述所述皮肤调整模块202,用于根据所述光泽度参数在预设高光范围进行插值处理得到高光最小值;将所述高光参数作为高光最大值,取所述高光最小值和所述高光最大值之间的中间值作为目标高光参数;按照所述目标高光参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值。
在本申请的一个可选实施例中,所述皮肤参数包括颜色幂参数,所述所述皮肤调整模块202,用于求所述虚拟角色的皮肤贴图中各像素的RGB颜色值的各颜色分量的所述颜色幂参数次幂,得到调整后的所述虚拟角色的皮肤贴图中各像素的RGB颜色值。
在本申请的一个可选实施例中,所述皮肤参数包括对比度参数,所述所述皮肤调整模块202,用于根据所述对比度参数确定对比度范围;根据所述虚拟角色的皮肤贴图中各像素的RGB颜色值的各颜色分量,在所述对比度范围进行插值处理,得到插值后的所述RGB颜色分量。
在本申请的一个可选实施例中,所述所述皮肤调整模块202,用于当插值后的所述颜色分量小于预设最小值时,将所述颜色分量设置为所述预设最小值;当插值后的所述颜色分量大于预设最大值时,将所述颜色分量设置为所述预设最大值。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例还提供了一种电子设备,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行本申请实施例所述的方法。
本申请实施例还提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行本申请实施例所述的方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种虚拟角色皮肤调整方法和一种虚拟角色皮肤调整装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (11)
1.一种虚拟角色皮肤调整方法,其特征在于,所述方法包括:
获取虚拟角色对应的皮肤参数,所述皮肤参数至少包括以下其中之一:明暗参数、光泽度参数、颜色幂参数、对比度参数;
根据所述皮肤参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值,以确定所述虚拟角色的皮肤肤色。
2.根据权利要求1所述的方法,其特征在于,所述皮肤参数包括明暗参数,所述根据所述皮肤参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值,包括:
将预设RGB颜色值转换为HSV颜色值;
将所述HSV颜色值中的亮度值替换为所述明暗参数;
将替换后的所述HSV颜色值转换为目标RGB颜色值;
将所述目标RGB颜色值与所述虚拟角色的皮肤贴图中各像素的RGB颜色值相乘,得到调整后的所述RGB颜色值。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述明暗参数的小于预设亮度范围时,将所述明暗参数的大小调整至所述预设亮度范围之内。
4.根据权利要求1所述的方法,其特征在于,所述皮肤参数包括光泽度参数,所述根据所述皮肤参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值,包括:
将所述光泽度参数与预设倍数相乘,得到目标光泽度参数;
根据所述目标光泽度参数在预设粗糙范围参数进行插值处理,得到粗糙系数;
获取着色器的粗糙度参数;
将所述粗糙系数与所述粗糙度参数相乘,得到目标粗糙度;
按照所述目标粗糙度参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
根据所述光泽度参数在预设高光范围进行插值处理得到高光最小值;
将所述高光参数作为高光最大值,取所述高光最小值和所述高光最大值之间的中间值作为目标高光参数;
按照所述目标高光参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值。
6.根据权利要求1所述的方法,其特征在于,所述皮肤参数包括颜色幂参数,所述根据所述皮肤参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值,包括:
求所述虚拟角色的皮肤贴图中各像素的RGB颜色值的各颜色分量的所述颜色幂参数次幂,得到调整后的所述虚拟角色的皮肤贴图中各像素的RGB颜色值。
7.根据权利要求1所述的方法,其特征在于,所述皮肤参数包括对比度参数,所述根据所述皮肤参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值,包括:
根据所述对比度参数确定对比度范围;
根据所述虚拟角色的皮肤贴图中各像素的RGB颜色值的各颜色分量,在所述对比度范围进行插值处理,得到插值后的所述RGB颜色分量。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
当插值后的所述颜色分量小于预设最小值时,将所述颜色分量设置为所述预设最小值;
当插值后的所述颜色分量大于预设最大值时,将所述颜色分量设置为所述预设最大值。
9.一种虚拟角色皮肤调整装置,其特征在于,通过终端设备提供的图形用户界面所显示的内容包括至少一个虚拟角色,所述装置包括:
皮肤参数获取模块,用于获取所述虚拟角色对应的皮肤参数,所述皮肤参数至少包括以下其中之一:明暗参数、光泽度参数、颜色幂参数、对比度参数;
皮肤调整模块,用于根据所述皮肤参数,调整所述虚拟角色的皮肤贴图中各像素的RGB颜色值,以确定所述虚拟角色的皮肤肤色。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如权利要求1-8所述的一个或多个的方法。
11.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如权利要求1-8所述的一个或多个的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010688814.4A CN111784814A (zh) | 2020-07-16 | 2020-07-16 | 一种虚拟角色皮肤调整方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010688814.4A CN111784814A (zh) | 2020-07-16 | 2020-07-16 | 一种虚拟角色皮肤调整方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111784814A true CN111784814A (zh) | 2020-10-16 |
Family
ID=72763189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010688814.4A Pending CN111784814A (zh) | 2020-07-16 | 2020-07-16 | 一种虚拟角色皮肤调整方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111784814A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112915544A (zh) * | 2021-04-12 | 2021-06-08 | 网易(杭州)网络有限公司 | 贴图制作方法、贴图制作装置、存储介质、电子设备 |
CN113223133A (zh) * | 2021-04-21 | 2021-08-06 | 深圳市腾讯网域计算机网络有限公司 | 三维模型换色方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015122102A1 (en) * | 2014-02-13 | 2015-08-20 | Ricoh Company, Ltd. | Image processing apparatus, image processing system, image processing method, and recording medium |
US20170154238A1 (en) * | 2015-11-26 | 2017-06-01 | Le Holdings (Beijing) Co., Ltd. | Method and electronic device for skin color detection |
CN107038680A (zh) * | 2017-03-14 | 2017-08-11 | 武汉斗鱼网络科技有限公司 | 自适应光照的美颜方法及系统 |
CN107204029A (zh) * | 2016-03-16 | 2017-09-26 | 腾讯科技(深圳)有限公司 | 渲染方法和装置 |
CN107862657A (zh) * | 2017-10-31 | 2018-03-30 | 广东欧珀移动通信有限公司 | 图像处理方法、装置、计算机设备及计算机可读存储介质 |
-
2020
- 2020-07-16 CN CN202010688814.4A patent/CN111784814A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015122102A1 (en) * | 2014-02-13 | 2015-08-20 | Ricoh Company, Ltd. | Image processing apparatus, image processing system, image processing method, and recording medium |
US20170154238A1 (en) * | 2015-11-26 | 2017-06-01 | Le Holdings (Beijing) Co., Ltd. | Method and electronic device for skin color detection |
CN107204029A (zh) * | 2016-03-16 | 2017-09-26 | 腾讯科技(深圳)有限公司 | 渲染方法和装置 |
CN107038680A (zh) * | 2017-03-14 | 2017-08-11 | 武汉斗鱼网络科技有限公司 | 自适应光照的美颜方法及系统 |
CN107862657A (zh) * | 2017-10-31 | 2018-03-30 | 广东欧珀移动通信有限公司 | 图像处理方法、装置、计算机设备及计算机可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112915544A (zh) * | 2021-04-12 | 2021-06-08 | 网易(杭州)网络有限公司 | 贴图制作方法、贴图制作装置、存储介质、电子设备 |
CN113223133A (zh) * | 2021-04-21 | 2021-08-06 | 深圳市腾讯网域计算机网络有限公司 | 三维模型换色方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021129044A1 (zh) | 对象渲染方法和装置、存储介质及电子装置 | |
CN112215934B (zh) | 游戏模型的渲染方法、装置、存储介质及电子装置 | |
CN105574918B (zh) | 一种3d模型的材质添加方法、装置及终端 | |
CN109448089B (zh) | 一种渲染方法及装置 | |
US7557812B2 (en) | Multilevel texture processing method for mapping multiple images onto 3D models | |
US20160240125A1 (en) | Color Correction Method for Optical See-Through Displays | |
CN101360250B (zh) | 沉浸产生方法和系统及因素控制、内容分析及参数预测法 | |
CN111476851B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN111420404A (zh) | 游戏中对象渲染的方法及装置、电子设备、存储介质 | |
CN109985384B (zh) | 贴图动态调整方法及装置 | |
JP2017187994A (ja) | 画像処理装置、画像処理方法、画像処理システムおよびプログラム | |
CN111784814A (zh) | 一种虚拟角色皮肤调整方法和装置 | |
CN110333924A (zh) | 一种图像渐变调整方法、装置、设备及存储介质 | |
JP6723969B2 (ja) | 画像処理装置、表示装置、および画像処理方法 | |
JPH10285459A (ja) | 画像変換装置及び画像変換方法 | |
CN101290763B (zh) | 动态调整图像亮度的方法 | |
US10326971B2 (en) | Method for processing a digital image, device, terminal equipment and associated computer program | |
CN111476861A (zh) | 一种图像渲染方法、装置、电子设备及存储介质 | |
CN116363288A (zh) | 目标物的渲染方法、装置、存储介质及计算机设备 | |
CN112465941B (zh) | 一种体积云处理方法、装置、电子设备及存储介质 | |
CN114549732A (zh) | 模型的渲染方法、装置及电子设备 | |
CN112116692B (zh) | 模型渲染方法、装置、设备 | |
US20230410406A1 (en) | Computer-readable non-transitory storage medium having image processing program stored therein, image processing apparatus, image processing system, and image processing method | |
CN109919846A (zh) | 一种图像增强方法、装置及计算设备 | |
CN111314770B (zh) | 游戏中列表的显示方法、装置以及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |