2012-01-07 106 views
0

我想在android opengl-es 2.0中使用8位紋理(我只需要每個像素256個值),並想知道如何使用glTexImage2D對其進行設置。如何在Android上爲OpenGl-ES 2.0設置8位紋理?

GL_ALPHA8會工作嗎?

我沒有找到任何Android支持的標準支持的紋理格式列表(或至少大多數的設備至少有android 2.2和opengl 2.0)。我現在沒有設備可以測試它,所以我真的很想在這方面提供一些建議。

原因是因爲我想爲我的片段着色器使用紋理,它只佔用盡可能少的內存,並且只需要保存256個值。

回答

0

從官方的OpenGL ES文件:

論點glTexImage2D

指定素數據的數據類型。接受以下符號值:GL_UNSIGNED_BYTE,GL_UNSIGNED_SHORT_5_6_5,GL_UNSIGNED_SHORT_4_4_4_4和GL_UNSIGNED_SHORT_5_5_5_1。

如果要使用此功能,你必須選擇其中之一:) 最有可能你搜索GL_UNSIGNED_BYTE而字節包含8位:d

+0

感謝您的答覆。我選擇GL_UNSIGNED_BYTE作爲類型,但是我爲什麼選擇內部格式和格式參數,以便每個像素只使用1個字節而不是4個? – HardCoder 2012-01-07 13:31:49

+0

我會使用GL_RGB或GL_LUMINANCE這兩個參數,取決於您使用的是什麼。只要注意兩者應該有匹配的常量。 – poitroae 2012-01-07 13:38:29

+0

GL_RGB確實需要每個值3個字節,對吧? GL_LUMINANCE似乎不適合我。我試着用GL_ALPHA,但似乎工作。問題在於我不知道它爲一個像素分配了多少視頻內存:1個字節,4個字節或者完全不同的東西。 – HardCoder 2012-01-07 14:18:37

相關問題