在iPhone上混合两个FBO会产生奇怪的结果吗?

时间:2010-01-11 15:04:53

标签: iphone opengl

我正在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;

请帮助我发疯: - )

2 个答案:

答案 0 :(得分:1)

你检查了glBlendEquation()的设置是什么吗?

答案 1 :(得分:0)

我通过不使用来解决问题:glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);我不知道为什么这会解决它......似乎其他的调用也搞砸了......