Cocos2d iphone 如何在Cocos2d中的一个纹理上使用两个片段着色器?

Cocos2d iphone 如何在Cocos2d中的一个纹理上使用两个片段着色器?,cocos2d-iphone,kobold2d,Cocos2d Iphone,Kobold2d,我正在尝试在CoCoS2D2.0中使用着色器来实现模糊效果。我有两个碎片着色器,一个用于水平方向,一个用于垂直方向。它们都能工作,但我需要能够同时使用它们来获得两个方向的模糊。我不知道如何在同一个精灵上使用两个片段着色器,因为只能将一个着色器程序附加到精灵上。有什么特别的方法可以做到这一点吗?我找到了一个“解决方案” 您可以使用CCRenderTexture,绘制带有第一个着色器的精灵,然后使用该着色器的结果在其上运行第二个着色器 这并不理想,但它可以工作。我不确定是否使用Cocos2d,但在O

我正在尝试在CoCoS2D2.0中使用着色器来实现模糊效果。我有两个碎片着色器,一个用于水平方向,一个用于垂直方向。它们都能工作,但我需要能够同时使用它们来获得两个方向的模糊。我不知道如何在同一个精灵上使用两个片段着色器,因为只能将一个着色器程序附加到精灵上。有什么特别的方法可以做到这一点吗?

我找到了一个“解决方案”

您可以使用CCRenderTexture,绘制带有第一个着色器的精灵,然后使用该着色器的结果在其上运行第二个着色器


这并不理想,但它可以工作。

我不确定是否使用Cocos2d,但在OpenGL中(我假设Cocos2d依赖于OpenGL),您需要创建一个由纹理支持的帧缓冲区对象(FBO)。第一次进入FBO,然后使用刚写入的纹理作为下一次的输入。我认为不能将两个片段着色器指定给同一纹理。取而代之的是将着色器的代码合并成一个。我读到,对于模糊效果,您希望在两个过程中完成,否则性能会很差