在Cocos2d中绘制后无法找到任何模糊形状的方法

时间:2012-05-28 11:43:42

标签: objective-c opengl-es cocos2d-iphone

我在CCNode中使用openGL命令绘制一些Shape。现在我想用高斯模糊处理它。 但我找不到任何方法来做到这一点。 有人推荐吗?

。解决代码的主要原因:

    CCRenderTexture *renderTex = [[CCRenderTexture renderTextureWithWidth:480 height: 320] retain];
    renderTex.position = ccp(size.width/2, size.height/2);
    [renderTex begin];
    //here can put any draw code with opengl
    [curve visit];
    [renderTex end];
    CCTexture2DMutable *mutableTexture=[[[CCTexture2DMutable alloc]
                                        initWithImage:[renderTex getUIImageFromBuffer]]autorelease];

    CGRect rect = CGRectMake(0, 0, [mutableTexture contentSizeInPixels].width, [mutableTexture contentSizeInPixels].height);
    [AWTextureFilter blur:mutableTexture radius:8 rect:rect];
    CCSpriteFrame *frame = [CCSpriteFrame frameWithTexture:mutableTexture rect:rect];
    [[CCSpriteFrameCache sharedSpriteFrameCache]addSpriteFrame:frame name:@"1"];
    CCSprite *blur = [CCSprite spriteWithSpriteFrame:frame];
    [blur setPosition:ccp(size.width/2, size.height/2)];
    blur.opacity=200;
    [self addChild:blur];

1 个答案:

答案 0 :(得分:1)

你必须:

  • 将整个场景渲染到渲染目标(到纹理),可以使用Framebuffer Objects
  • 然后你绘制一个全屏四边形,并附上前一个纹理(带有场景)。
  • 最后你可以执行gussian模糊效果(或其他一些后期处理效果)

一些信息: