我尝试为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?
答案 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