我正在iphone上编写一个小型绘图应用程序并遇到了问题。当我合并两个fbos时,颜色变为白色而不是合并。看图片:
http://dl.dropbox.com/u/2025544/help.png
这里左侧呈现为普通的mac程序,右侧呈现在iPhone平台上,代码几乎相同,除了使用fbo的eos版本。
在彼此之上绘制多个FBO会创建我想要的Alpha混合:
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
myTex.draw(0, 0);
for(int client = 0; client < 5;client++)
{
ofSetColor(
datas[client]->myColor.r,
datas[client]->myColor.g,
datas[client]->myColor.b,
datas[client]->myColor.a
);
datas[client]->myTex.draw(0,0);
}
合并两个fbos会给出错误的alpha:
myTex.begin();
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
ofSetColor(
datas[tmpMessage->clientId]->myColor.r,
datas[tmpMessage->clientId]->myColor.g,
datas[tmpMessage->clientId]->myColor.b,
datas[tmpMessage->clientId]->myColor.a
);
datas[tmpMessage->clientId]->myTex.draw(0, 0);
myTex.end();
datas[tmpMessage->clientId]->myTex.clear(0, 0, 0, 0);
datas[tmpMessage->clientId]->touchDown = true;
请帮助我发疯: - )
答案 0 :(得分:1)
你检查了glBlendEquation()的设置是什么吗?
答案 1 :(得分:0)
我通过不使用来解决问题:glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);我不知道为什么这会解决它......似乎其他的调用也搞砸了......