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

在iPhone上混合两个FBO会产生奇怪的结果?,iphone,opengl,Iphone,Opengl,我正在iphone上编写一个小的绘图应用程序,遇到了一个问题。当我合并两个FBO时,颜色变为白色,而不是合并。请看图片: 在这里,左侧渲染为普通mac程序,右侧渲染在iPhone平台上,除了使用eos版本的fbo外,代码几乎相同 在每个FBO上绘制多个FBO可创建我想要的alpha混合: glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); myTex.draw(0, 0); fo

我正在iphone上编写一个小的绘图应用程序,遇到了一个问题。当我合并两个FBO时,颜色变为白色,而不是合并。请看图片:

在这里,左侧渲染为普通mac程序,右侧渲染在iPhone平台上,除了使用eos版本的fbo外,代码几乎相同

在每个FBO上绘制多个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);

     }

请帮助我,我快发疯了:-)你检查了glBlendEquation()的设置了吗?

我解决了这个问题,没有使用:glClear(glClear(GLU颜色缓冲位| GLU深度缓冲位|);我不知道为什么这解决了它。。。而且似乎其他调用也会把事情搞砸…

从网络上看,glBlendEquation似乎不是iphone库的一部分?我从来没有理由在任何opengl实现中更改默认值。它被列在Khronos openGL ES 2.0参考中,尽管它看起来像苹果的实现实际上被称为glblendequationes(),我猜这意味着它可以作为1.1的扩展。不知道为什么未修饰的名称不可用。我通过不使用:glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)解决了问题;我不知道为什么这解决了它。。。似乎其他电话也把事情搞砸了。。。
   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;