Starling 混合模式

参考资料:https://github.com/NeoGuo/StarlingChinese/pull/8/files

http://www.starlinglib.com/asdoc/1.2/starling/display/BlendMode.html

 

BlendMode类提供了混合模式视觉效果的常量。

一个混合模式,总是由两个'Context3DBlendFactor'值来定义。一个混合因素代表一个特定的四个数值的数组。 这个数组是根据源颜色和目标颜色用混合公式计算的,公式如下:

result = source × sourceFactor + destination × destinationFactor

在这个公式里,源颜色是像素着色器的输出颜色,目标颜色是在上一次清除和绘制操作以后,颜色缓冲区中当前存在的颜色。

要注意的是,由于纹理类型的不同,混合因素产生产生的输出也不同。

纹理可能包含'预乘透明度'(pma),意思就是它们的RGB色值是根据它们的颜色值分别相乘得到的(目的是节省计算时间)。

基于'BitmapData'的纹理,会含有预乘透明度值,ATF纹理没有这个值。

因此,一个混合模式可能会根据pma的值而拥有不同的混合因素。

 

Starling 混合模式 - lrm_1036 - lrm_1036

图中核心代码如下:

  //继承这个显示对象的父级的混合模式。    //image.blendMode = BlendMode.AUTO;        //显示对象显示在背景的前面。    image[0].blendMode = BlendMode.NORMAL;        //停用混合,即禁止任何透明度。    image[1].blendMode = BlendMode.NONE;        //当绘制渲染纹理的时候擦除背景。    image[2].blendMode = BlendMode.ERASE;   

混合模式涉及将一个图像(基图像)的颜色与另一个图像(混合图像)的颜色进行组合来生成第三个图像,所得的图像是实际在屏幕上显示的图像。图像中的每个像素值都会被使用其他图像的对应像素值进行处理,以便在结果的同一位置生成一个像素值。

每个显示对象都有 blendMode 属性,可以将其设置为下列混合模式之一。以下是在 BlendMode 类中定义的常量。此外,还可以使用 String 值(在括号中),这些值是常量的实际值。

  • BlendMode.ADD ("add"):通常用于创建两个图像之间的动画变亮模糊效果。

  • BlendMode.ALPHA ("alpha"):通常用于在背景上应用前景的透明度。(在 GPU 呈现下不支持。)

  • BlendMode.DARKEN ("darken"):通常用于重叠类型。(在 GPU 呈现下不支持。)

  • BlendMode.DIFFERENCE ("difference"):通常用于创建更多变动的颜色。

  • BlendMode.ERASE ("erase"):通常用于使用前景 Alpha 剪掉(擦除)背景的一部分。(在 GPU 呈现下不支持。)

  • BlendMode.HARDLIGHT ("hardlight"):通常用于创建阴影效果。(在 GPU 呈现下不支持。)

  • BlendMode.INVERT ("invert"):用于反转背景。

  • BlendMode.LAYER ("layer"):用于强制为特定显示对象的预构成创建临时缓冲区。(在 GPU 呈现下不支持。)

  • BlendMode.LIGHTEN ("lighten"):通常用于重叠类型。(在 GPU 呈现下不支持。)

  • BlendMode.MULTIPLY ("multiply"):通常用于创建阴影和深度效果。

  • BlendMode.NORMAL ("normal"):用于指定混合图像的像素值覆盖基本图像的像素值。

  • BlendMode.OVERLAY ("overlay"):通常用于创建阴影效果。(在 GPU 呈现下不支持。)

  • BlendMode.SCREEN ("screen"):通常用于创建亮点和镜头眩光。

  • BlendMode.SHADER ("shader"):用于指定用于创建自定义混合效果的 Pixel Bender 着色器。有关使用着色器的详细信息,请参阅使用 Pixel Bender 着色器。(在 GPU 呈现下不支持。)

  • BlendMode.SUBTRACT ("subtract"):通常用于创建两个图像之间的动画变暗模糊效果。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值