2011-06-10 149 views
0

Apple建議在iOS上使用GLubyte數據類型來處理顏色數據,所以我試圖讓它起作用。我得到的結果是,所有顏色組件< 255是完全黑色的,並且只有設置爲255的顏色組件纔是真正的顏色。OpenGL ES2頂點陣列中的GLubyte顏色不起作用

我在做什麼: - 保存單個物體的顏色在我自己的顏色類GLubytes(取值範圍爲0-255) -pass顏色到頂點屬性陣列類型GLubyte着色器(依然範圍0-255) - 在片段着色器中,直接使用顏色或將組件分成255,都不起作用。

編輯:這沒有工作,問題是在我的代碼中的其他地方。

+0

你應該發佈你的代碼。 – 2011-06-10 20:37:33

+0

如果使用泛型屬性,請確保在「glVertexAttribPointer」中設置標準化標誌,以便您的值自動轉換爲[0,1]。 – 2011-06-10 21:52:20

+0

將顏色傳遞爲範圍[0-255]中的GLubytes並將標準化參數設置爲true會得到相同的結果:仍然不起作用? – Jonesy 2011-06-11 09:31:59

回答

0

這只是工作正常,問題是在我的代碼中的其他地方。

0

Apple推薦使用GLubyte作爲頂點屬性?我認爲你誤解了這個提示。你實際想要做的是將這些值存儲在256x1灰度(GL_LUMINANCE)紋理中,並將其作爲統一傳遞給着色器。這確實比使用數組更快。