我正在从屏幕上的spritesheet渲染一朵花,所有看起来都很好。当我使用相同的纹理但不使用spritesheet时,花的呈现方式不同。
从spritesheet渲染的花朵的这个图像(第一个,下面),看起来正确。它由两个纹理层组成:花瓣和中心。
这张图片(下图)由两个精灵组成,一个抱着花瓣纹理,另一个抱着中心纹理,不是来自spritesheet。正如你所看到的,中心周围有透明度,这是由(我假设)将中心纹理混合到花瓣纹理上引起的。
花瓣和中心纹理由使用CCRenderTexture从文件读取的原始图像组成。原始图像是PMA(预乘-α),而来自CCRenderTexture的结果纹理是NPMA(非预乘-α)。
将混合模式更改为PMA或NPMA无济于事。
精灵节点层次结构很简单:
ROOT-SPRITE (empty image, ie 1x1px size, fully tranparent image)
PETALS-SPRITE (petals texture), z=1
CENTER-SPRITE (center texture), z=2
我有以下问题:
我做错了什么? 我该如何解决这个问题?
在iOS模拟器中使用Cocos2D-X v3.4(设备具有相同的结果)。