我正在開發iOS上的OpenGL ES 2項目來學習OpenGL ES 2.在線我發現了一個用於鏈接和編譯着色器的Objective-C實現,並且我使用這個實現作爲我自己的模板。不幸的是,我錯誤地鍵入上傳我的紋理數據爲glUniform1f而不是glUniform1i。看起來像這樣...glUniform1f vs glUniform1i混淆
glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D, self.texture);
glUniform1f(_texUniform, 1); // this line should be glUniform1i
我的項目有自己的紋理多個對象。這個錯字導致所有對象上只顯示最後繪製的對象的紋理。我懷疑我的紋理ID或類似的東西有問題,因此在每次繪製調用時註銷了紋理ID等,並且找不到任何錯誤。
這是一個很難找到的錯誤,我想了解這個錯誤是怎麼回事。我的問題是glUniform1f vs glUniform1i會導致這種行爲?我有點驚訝,着色器不僅沒有鏈接和編譯,也沒有繪製任何紋理。
謝謝 - 現在有道理。 – dloranz