2010-01-11 63 views
2

我正在iPhone上编写一个小型绘图应用程序,并遇到问题。当我合并两个fbos时,颜色变为白色,而不是合并。看图片:在iPhone上混合两个FBO会产生奇怪的结果?

http://dl.dropbox.com/u/2025544/help.png

这里左边是呈现为一个正常的Mac程序和正确的呈现在iPhone平台上几乎相同的代码不同的是使用FBO的EOS版本。

借鉴彼此顶部的多个宗教组织创建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); 

    } 

合并这两个宗教组织给出配有错误的字母:

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

我解决了没有使用问题:glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 我不知道为什么这个解决它......它似乎是其他调用screwsthings起来,以及... – peterhansen 2010-01-13 20:07:39

回答

0

我解决了没有使用问题:glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);我不知道为什么这个解决它......它似乎是其他呼叫螺丝钉的事情了,以及...

1

你检查什么glBlendEquation()设置为?

+0

翻翻网页,似乎glBlendEquation并不是iPhone 11b的一部分吗? – peterhansen 2010-01-13 20:03:43

+0

我从来没有理由把它从默认的任何opengl实现中改变。它在Khronos openGL ES 2.0参考文献中列出,尽管它看起来像Apple实现实际上被称为glBlendEquationOES(),我猜这意味着它可以作为1.1的扩展。不知道为什么undecorated名字不可用。 – 2010-01-13 22:59:22

相关问题