1

私のスプライトのアルファチャネルは、(時々)他のスプライトをマスクしています。

これはどのように見えるかです: スクリーンショット

ご覧のとおり、これは常に発生するわけではなく、ここにあるすべてのアバターは同じテクスチャファイルを使用しています。誰かが以前にこの問題を抱えたことはありますか?

ちなみに、私はTexturePackerを使用してスプライトをエクスポートしました。また、私はCocos2d 2.0を使用しており、これが私がそれを初期化する方法です:

CCGLView *glView = [CCGLView viewWithFrame:[window_ bounds] pixelFormat:kEAGLColorFormatRGBA8 depthFormat:GL_DEPTH_COMPONENT24_OES preserveBackbuffer:NO sharegroup:nil multiSampling:NO numberOfSamples:0];
[director_ setProjection:kCCDirectorProjection2D];
[CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA4444];
[CCTexture2D PVRImagesHavePremultipliedAlpha:YES];
4

2 に答える 2

0

これをテストとしてロードするときは、CCTexture2DPiexelFormatをより高いスペックに設定してみてください。

[CCTexture2D setDefaultAlphaPixelFormat:kTexture2DPixelFormat_RGB5A1];

それが役立つかどうかを確認しますか?私が覚えているように、RGBA4444ははるかに低いビット深度ですが、もちろんパフォーマンスが向上しています。

于 2012-09-17T14:50:15.577 に答える
0

さまざまなことを試した結果、それが機能するのは、ノードにシェーダープログラムを設定するだけであることがわかりました。

node.shaderProgram = [[CCShaderCache sharedShaderCache] programForKey:kCCShader_PositionTextureColorAlphaTest];

于 2013-02-08T01:13:03.853 に答える