2011-04-23 70 views
0

我正在開發一個使用openGl ES 2.0的iPhone應用程序,並且在模擬器中進行了大量測試之後,我在我的iPhone(3GS)上安裝了該應用程序以查看其執行情況。當應用程序啓動它啓動罰款沒有錯誤,但沒有出現,但背景是適當的顏色。iPhone模擬器與設備問題(開放GL)

有沒有人有任何想法/指針可能會導致此問題?如果代碼/細節可以幫助我知道您想要查看的代碼段。

+0

你有沒有試過創建一個簡單的應用程序,只是顯示一個多維數據集(例如),看看如果展品同樣的問題?如果它不添加一點你的代碼並再次測試。重複,直到失敗。 – ChrisF 2011-04-23 21:37:58

+0

我希望我不會那樣做,但它看起來像是唯一的選擇,因爲我不知道可能會導致這類問題。 – mobilegamer999 2011-04-23 21:53:03

+0

您無法在此處發佈您的整個應用程序代碼,因此無論如何您都必須將問題減少到最小可重複的情況。在這樣做的時候,你可能會發現問題所在。 – ChrisF 2011-04-23 21:55:06

回答

0

檢查您可能使用的各種功能的限制條件。例如,默認情況下,glTexImage2D的寬度和高度必須各自爲2的冪(或者如果使用邊框,則爲2加2的冪)。有一個擴展允許兩個非冪次紋理,但是根據我的經驗,這個擴展並不存在,或者至少在某些設備上沒有完全實現(即它適用於GL_CLAMP_TO_EDGE,但不適用於GL_REPEAT)。

+0

您應該閱讀GL_APPLE_texture_2D_limited_npot和GL_OES_texture_npot擴展規範,它們解釋了您在NPOT紋理中看到的限制。這不是一個實現問題,就是這樣。 – 2011-04-24 06:08:26

+0

@MatiasValdenegro:啊,好的。 OpenGL ES 2.0已經允許使用GL_CLAMP_TO_EDGE的NPOT紋理,不需要擴展。 – Anomie 2011-04-24 13:09:32

0

設備在文件名中嚴格區分大小寫 - 檢查以確保如果您正在加載着色器,則代碼中引用的文件名與其實際文件系統名稱相同。

另外,如果您在xCode 4中,請轉到您的目標構建階段設置,並確保您使用的所有着色器位於「複製包資源」中。

最後,如果着色器出現在「編譯源」中,則應從那裏刪除它們。你需要清理你的項目然後重新構建。