游戏引擎实时抠像方法与流程

文档序号:12178954阅读:478来源:国知局

本发明涉及一种游戏引擎实时抠像方法。



背景技术:

本发明公开了一种游戏引擎实时抠像方法。现有的游戏引擎内没有原生的抠像方法,而目前通过插件实现的算法非常简单,只能单纯的通过色彩范围算法去除颜色,在选定的去除颜色上设定一个扩展范围和抠像强度,范围越广抠像的内容越多,抠像强度越大,抠像的边缘越锐利,这样导致抠像的物体边缘要么有黑边,要么边缘非常锐利。同时在整个緑布范围影响下,物体整体偏绿,抠像后无法融合,只能整体降低饱和度,去除绿色偏移,这样整体色彩会有损失,无法还原真实效果。



技术实现要素:

鉴于此,本发明实施例提供一种游戏引擎实时抠像方法,以实现实时抠像无黑边,去除绿色色彩溢出,同时本发明合理优化计算量达到实时处理抠像要求。

提供了一种游戏引擎实时抠像方法,所述方法包括:

抠像模块,边缘模块,颜色模块。

进一步地,抠像模块接收图像数据,利用抠像范围参数Average、抠像强度参数percent、抠像蓝色补偿参数Bpercent分别控制抠像范围、抠像强度和抠像蓝色补偿等实现对抠像效果的控制;

核心算法计算c.a=clamp(((((1-clamp((c.g-(c.r*(1-_Bpercent)+c.b*_Bpercent)),0,1)))-_Average)*(tan((45+44*_percent)/180*3.1459))+_Average),0,1);

c.r、c.b、c.g、c.a分别为图像数据的RGBA通道Clamp(floatvalue,float min,float max)这个函数的意思是比较value值,如果在这俩值之间就返回value,如果大于max返回max,小于min返回min,得到图像的alpha通道值。

进一步地,边缘模块接收抠像模块处理好的抠像图像数据,通过边缘缩进强度intensity、边缘模糊度softness、边缘分散度spread来控制抠像边缘;边缘模糊度softness用来控制模糊算法对整体图像的模糊处理;边缘分散度spread通过对模糊图像进行迭代重复计算,即重复模糊次数,每进行一次迭代,模糊度扩大1倍,且这样增加spread分散度设置可得到更大的模糊度而不增加多余的计算量;边缘缩进强度intensity通过边缘叠加次数控制边缘缩进强度,通过得到的模糊图片进行反相再减去原始没有模糊的图像则得到一个有模糊的边缘,通过对此边缘的叠加得到完整边缘,再通过原始图像减去边缘图像可去除黑边。

进一步地,颜色模块计算图像像素的绿色通道数值,如果大于红色和蓝色的平均值则此像素绿色通道的数值改为红色和蓝色的平均值,否则不变,最终达到去除绿色色彩溢出的效果。

附图说明

图1示出了游戏引擎实时抠像方法流程。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,一种游戏引擎实时抠像方法,包括:抠像模块、边缘模块和颜色模块。

在步骤S101中,抠像模块接收图像数据,利用抠像范围参数Average、抠像强度参数percent、抠像蓝色补偿参数Bpercent分别控制抠像范围、抠像强度和抠像蓝色补偿等实现对抠像效果的控制;通过核心算法计算c.a=clamp(((((1-clamp((c.g-(c.r*(1-_Bpercent)+c.b*_Bpercent)),0,1)))-_Average)*(tan((45+44*_percent)/180*3.1459))+_Average),0,1),其中c.r、c.b、c.g、c.a分别为图像数据的RGBA通道,通过Clamp(float value,float min,float max)这个函数比较value值,如果在max、min这俩值之间就返回value,如果大于max返回max,小于min返回min,得到图像的alpha通道值。

在步骤S102中,边缘模块接收抠像模块处理好的抠像图像数据,通过边缘缩进强度intensity、边缘模糊度softness、边缘分散度spread来控制抠像边缘;边缘模糊度softness用来控制模糊算法对整体图像的模糊处理;边缘分散度spread通过对模糊图像进行迭代重复计算,即重复模糊次数,每进行一次迭代,模糊度扩大1倍,且这样增加spread分散度设置可得到更大的模糊度而不增加多余的计算量;边缘缩进强度intensity通过边缘叠加次数控制边缘缩进强度,通过得到的模糊图片进行反相再减去原始没有模糊的图像则得到一个有模糊的边缘,通过对此边缘的叠加得到完整边缘,再通过原始图像减去边缘图像可去除黑边。

在步骤S103中,颜色模块计算图像像素的绿色通道数值,如果大于红色和蓝色的平均值则此像素绿色通道的数值改为红色和蓝色的平均值,否则不变,最终达到去除绿色色彩溢出的效果。

本领域的普通技术人员可以意识到,结合本文中所公开的实施例描述的示例的步骤,能够以计算机软件来实现。

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