求助: cocos2d-js 3.4 使用shader报错

我想使用shader对精灵做一个灰度效果,写了如下代码,运行报错:

var program = new cc.GLProgram();
program.initWithVertexShaderByteArray(Filter.DEFAULT_VERTEX_SHADER, Filter.GRAY_SCALE_FRAGMENT_SHADER);

然后,运行时报错
TypeError: program.initWithVertexShaderByteArray is not a function

百度了一下,有个帖子说initWithVertexShaderByteArray方法挂了的话可以使用initWithString方法代替,于是改了一下代码。果然不报错了。
问题是运行以后我的sprite完全透明了。。。看不见了,不见了。

求助:现在我该怎么搞,我不想把每一张图片都再做一张灰度图啊啊啊啊。