目前我正在Cocos2d中着色器周围。我的目标是在整个屏幕上应用着色器(除了一个节点和它的子节点),以便在游戏模糊时制作叠加菜单。Cocos2d v3在子节点上应用着色器
现在我发现this tutorial与在cocos2d着色器导致下面的代码工作
CCSprite *aSprite = [CCSprite spriteWithImageNamed:@"Default.png"];
aSprite.contentSizeType = CCSizeTypeNormalized;
aSprite.contentSize = CGSizeMake(0.5,0.5);
NSString *fullPath = [[NSBundle mainBundle] pathForResource:@"CSEEmboss" ofType:@"fsh"];
const GLchar * fragmentSource = (GLchar*) [[NSString stringWithContentsOfFile:fullPath encoding:NSUTF8StringEncoding error:nil] UTF8String];
aSprite.shaderProgram = [[CCGLProgram alloc] initWithVertexShaderByteArray:ccPositionTextureA8Color_vert
fragmentShaderByteArray:fragmentSource];
[aSprite.shaderProgram addAttribute:kCCAttributeNamePosition index:kCCVertexAttrib_Position];
[aSprite.shaderProgram addAttribute:kCCAttributeNameTexCoord index:kCCVertexAttrib_TexCoords];
[aSprite.shaderProgram link];
[aSprite.shaderProgram updateUniforms];
[aSprite.shaderProgram use];
[self.scene addChild:aSprite];
这的确适用印纹的精灵,但是当我添加子到精灵,不应用着色器在那里,我应该怎么做呢?我的场景包含许多孩子,添加和删除着色器的循环给每个孩子似乎并不适合我。
是啊,这是我们去的方式。仅使用iOS库来捕获屏幕和Core Graphics以模糊。 – Matthijn