0

CCRenderTexture にぼかしシェーダーを適用することができました。ただし、シングルパス シェーダーでのみ機能します (私の場合は 1 方向のみ)。

/* ... after initializing CCGLProgram ... */
renderTexture->getSprite()->setShaderProgram( shader );
renderTexture->begin();
parallaxNode->visit();
renderTexture->end();

この場合、私のプログラムは水平方向にぼやけた画像を描画します。画像自体は、視差ノードから作成された合成物です。ただし、同じ CCRenderTexture オブジェクトに垂直方向のぼかしシェーダーを再度適用すると、以前に適用されたシェーダーが無視されるため、画像は垂直方向のぼかしのみになります。

begin - end ブロックの直後に renderTexture から CCTexture を取得します。例:

renderTexture->begin();
parallaxNode->visit();
renderTexture->end();
CCTexture2D * texture = renderTexture->getSprite()->getTexture();
CCSprite * sprite = CCSprite::createWithTexture( texture );

は、スプライトがまだシェーダーが適用される前の画像であることを示しています。

では、これにどのようにアプローチしますか?CCRenderTexture から既にシェーダーが適用されているテクスチャをいつ、どのように取得できますか?

誰でもこれで私を助けることができますか?

4

0 に答える 0