Actionscript 3 使用AGAL反转纹理颜色

Actionscript 3 使用AGAL反转纹理颜色,actionscript-3,pixel-shader,stage3d,agal,Actionscript 3,Pixel Shader,Stage3d,Agal,我一直在使用Genome2D库,希望创建一个可以反转所有颜色的过滤器。在阅读了Adobe文档之后,我似乎无法理解alpha频道到底发生了什么,因为.rgba似乎根本不起作用 此Genome2D代码使所有颜色去饱和: fragmentCode = "dp3 ft0.xyz, ft0.xyz, fc1.xyz"; fragmentConstants = Vector.<Number>([0.299,0.587,0.114,0]); fragmentCode=“dp3 ft0.xyz,f

我一直在使用Genome2D库,希望创建一个可以反转所有颜色的过滤器。在阅读了Adobe文档之后,我似乎无法理解alpha频道到底发生了什么,因为.rgba似乎根本不起作用

此Genome2D代码使所有颜色去饱和:

fragmentCode = "dp3 ft0.xyz, ft0.xyz, fc1.xyz";
fragmentConstants = Vector.<Number>([0.299,0.587,0.114,0]);
fragmentCode=“dp3 ft0.xyz,ft0.xyz,fc1.xyz”;
碎片常数=向量([0.299,0.587,0.114,0]);
根据该示例,我编写了以下反转颜色的代码:

fragmentCode = "sub ft0.xyz, fc1.xyz, ft0.xyz"
fragmentConstants = Vector.<Number>([1,1,1,0]);
fragmentCode=“sub-ft0.xyz,fc1.xyz,ft0.xyz”
碎片常数=向量([1,1,1,0]);

所有颜色都反转,但alpha通道在其应完全透明的位置完全不透明。我不知道如何从原始纹理复制旧的alpha值。

我知道这不是一个答案,也不是向正确的方向推进,但你确定要麻烦AGAL和低级操作吗?在Starling中,你可以使用过滤器反转任何对象的颜色:顺便说一句,你可能会看到他们是如何做到的,这是一个开源项目。他们使用的矩阵变换略有不同,但我欣赏它的方向。我只是在为这个问题烦恼,因为我离解决方案太近了,但似乎想不出一件愚蠢的事情。