2017-08-30 26 views
0

我有一個opengl軟件生成一個窗口,然後通過套接字將其字節發送到統一。 OpenGL的軟件檢索數據:將opengl屏幕轉換爲字節並返回到統一的紋理

glreadPixels(0,0,width,height,GL_RGB,GL_UNSIGNED_BYTE, buffer); 

其中「緩衝」是字節[]正被髮送到統一應用緩衝器。在那裏,我嘗試這樣做將其轉換回圖像:

Texture2D t = new Texture(width,hight,Textureformat.ETC2_RGB,false); 
t.LoadRawTextureData(buffer); 
t.Applay(); 

但是質感apears爲黑色屏幕被移動和循環disapearing豐富多彩的污漬。 我選擇了'ETC2_RGB'格式,因爲它看起來相關,但我也試過TextureFormat以上的其他格式,並且它們全都是白色\黑色,帶有彩色點\粉紅色等等。我應該選擇什麼樣的正確轉換方式?

回答

0

您正在使用錯誤的紋理格式。 ETC2_RGB是一種每像素4位的壓縮格式。您從glReadPixel查詢的是每個通道8位的未壓縮格式。格式爲Textureformat.RGB24

+0

有了這種格式,它就像來自彩色點的靜態對角線和側面的粗彩色線條,而我的opengl屏幕則是以綠色線條綠框寫入文本。 – SuzLy

相關問題