使用したブレンディングが原因で、透明度を含むテクスチャを含む CCRenderTexture への描画に問題があります。
私が描いているスプライトには、次のブレンド機能があります。
glBlendFunc(GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA)
.
描画先のレンダリング テクスチャにはブレンド機能があります。
glBlendFuncSeparate(GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA, GL_SRC_COLOR, GL_ONE_MINUS_SRC_ALPHA)
.
レンダー テクスチャは、ほとんどが透明で、完全に不透明な領域がいくつかあるように設定されています。上記のブレンド関数を使用すると、透明な領域を描画せずに、完全に固体のスプライトで描画することができます。
描画するスプライトを変更して透明度を含めようとすると、問題が発生します。レンダリング テクスチャの不透明な領域を「消去」する傾向があります。理想的には、描画するスプライトの透明な領域が影響を与えないようにしたいと考えています。openGL のブレンディングの第一人者が私にガイダンスを与えることができるかどうか疑問に思っていましたか?
明確にするために、達成しようとしている最終的な効果は、いくつかの透明な領域を含むスプライトをレンダリング テクスチャに描画できるようにすることです。スプライトの透明な領域はレンダリング テクスチャに描画されません。スプライトの不透明領域は、レンダー テクスチャの不透明領域上にある場合にのみ、レンダー テクスチャに描画する必要があります。