2010-01-11 62 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

相關問題