Starling过滤器:反转alpha

时间:2013-03-14 13:15:57

标签: actionscript-3 shader fragment-shader stage3d starling-framework

我尝试为Starling制作一个着色器,它将反转Starling sprite的alpha(一种掩码):

var fragmentProgramCode:String =
// Get texture
"tex ft1, v0, fs0 <2d,linear,nomip>" + "\n" +
// make 1 - pixel alpha
"sub ft1.w, fc0, ft1.w" + "\n" +
// Send result
"mov oc, ft1"

此代码适用于fc0 = 1,但我并不真正理解为什么因为当我使用fc0并放入它时.5,没有区别。我哪里错了?如何正确地做1像素alpha?

1 个答案:

答案 0 :(得分:0)

正确的代码是:"sub ft1.w, fc0.x, ft1.w" + "\n" +

我必须使用fc0.x,因为alpha量通过第一个条目传递给片段着色器(fc0有4个组件,x y z和w)。

您可以在此处找到最终过滤条件:https://gist.github.com/simsoft/5169715

Alpha inverter filter