我不明白透明度/alpa 如何与 CCRenderTexture 一起使用。
使用此代码,我预计红色 ColorLayer 上有半透明的白色(透明度适用于 CCLayerColor)。我得到的是全白的。
此代码只是添加到 HelloWorldLayer init 方法末尾的默认模板中。
CCLayerColor * lc = [CCLayerColor layerWithColor:ccc4(255.0f, 0.0f, 0.0f, 125.0f)];
[self addChild:lc];
CCRenderTexture * rt = [CCRenderTexture renderTextureWithWidth:480.0f
height:320.0f];
[self addChild:rt];
rt.position = ccp(240.0f,160.0f);
[rt beginWithClear:1.0f g:1.0f b:1.0f a:0.5f];
[rt end];
如果我换成黑色,我会得到半透明的黑色:
[rt beginWithClear:0.0f g:0.0f b:0.0f a:0.5f];
使用 alpha 0.0f 和绿色 1.0 我会得到绿色 - 本来希望有一个清晰的层.. [rt beginWithClear:0.0fg:1.0fb:0.0fa:0.0f];
真正的问题在于,在那个 RT 中,我无法在片段着色器中用白色绘制透明度:
gl_FragColor = vec4( 1.0, 1.0, 1.0, 0.5);
结果是全白..
任何想法?