OpenFL/HTML5 将着色器应用于位图

OpenFL/HTML5 Applying shader to bitmap

我正在尝试将着色器应用到位图,如 link 中所述。

这是代码:

var shader = new Shader ();
shader.glFragmentSource = "..."; <- this part is not important

shader.data.useAlphaImage = [ true ];
shader.data.uAlphaImage.input = alphaBitmapData;

bitmap.filters = [ new ShaderFilter (shader) ];

但是如果我应用着色器,它会变得透明,没有错误。我是否必须配置一些东西才能让它工作?

我的目标是 HTML5。

ShaderFilter 在当前的 OpenFL 版本中被部分禁用。最初的实施速度太慢,无法在移动设备上运行;有计划以不同的方式再次访问该功能。

与此同时,有一个测试版 API 您可以尝试:

bitmap.shader = shader;

此外,请注意 OpenFL 使用 预乘 alpha,因此在涉及 alpha 值时请在着色器中牢记这一点。这应该在默认着色器代码中表示。