使用着色器作为混合模式

原文:http://www.pixelbender.cn/?p=73

 

若要将着色器用于混和模式,请将 Shader 对象指派给前景显示对象blendShader 属性。

如果为 blendShader 属性指定非 null 值,显示对象的 blendMode 属性将自动设置BlendMode.SHADER

foreground.blendShader = myShader;

 

使用着色器作为混和模式时,着色器必须由至少两个输入 定义。

如示例所示,您未在代码中设置输入值。而是将两个混和后的图像自动用作着色器的输入

前景图像 设置为第二个 图像。

背景图像 设置为第一个 输入图像。

 

Pixel Bender中变量定义代码:

input image4 background;
input image4 foreground;
output pixel4 dst;

 

as代码:

// 定义背景图形
var backgroundShape:Shape=new Shape();
var g1:Graphics=backgroundShape.graphics;
var c1:Array=[0x336600, 0x80ff00];
var a1:Array=[255, 255];
var r1:Array=[100, 255];
var m1:Matrix=new Matrix();
m1.createGradientBox(300, 200);
g1.beginGradientFill(GradientType.LINEAR, c1, a1, r1, m1);
g1.drawEllipse(0, 0, 300, 200);
g1.endFill();
addChild(backgroundShape);

// 定义前景图形
var foregroundShape:Shape=new Shape();
var g2:Graphics=foregroundShape.graphics;
var c2:Array=[0xff8000, 0x663300];
var a2:Array=[255, 255];
var r2:Array=[100, 255];
var m2:Matrix=new Matrix();
m2.createGradientBox(300, 200);
g2.beginGradientFill(GradientType.LINEAR, c2, a2, r2, m2);
g2.drawEllipse(100, 0, 300, 200);
g2.endFill();
addChild(foregroundShape);

// 定义前景图形的混合模式
foregroundShape.blendShader=shader;
foregroundShape.blendMode=BlendMode.SHADER;

 

不适用 Pixel Bender的混合模式的截图:

 

使用 Pixel Bender的混合模式的截图:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值