2
我使用glTexSubImage2D與GL_LUMINANCE和GL_UNSIGNED_BYTE直接顯示來自攝像頭的原始灰度數據 - 而不是手動將其重新打包爲RGB位圖。Opengl紋理和字節順序
我想在更高分辨率模式下以12或14bits /像素運行相機。
我可以簡單地通過設置GL_SHORT
來做到這一點,但相機以big endian方式返回數據,而我的openGL實現似乎是以錯誤的方式繪製它(在x86上)。
有沒有一種簡單的方式告訴openGL紋理是「錯誤」的方式?我想避免手動對數據進行bytewaping,因爲所有其他函數都需要大數據。
如果它讓你感覺更好,我第一次遇到這個問題,我寫了一個簡短的GLSL程序來解決它。當我最終發現GL_UNPACK_ALIGNMENT時,我感到很愚蠢。 – Tommy 2011-03-02 20:58:04
@Tommy這也是opengl.org常見陷阱列表中的#8。 http://www.opengl.org/resources/features/KilgardTechniques/oglpitfall/愚蠢的我們。 – luke 2011-03-02 21:01:48
優秀 - 'glPixelStorei(GL_UNPACK_SWAP_BYTES,1);'它是。這是openGL的偉大之處,有人已經解決了它 - 你只需要知道在哪裏。 – 2011-03-02 21:06:16