GL_COMPRESSED_RGB8_ETC2
和GL_COMPRESSED_RGBA8_ETC2_EAC
紋理的塊大小是多少?什麼是ETC2壓縮紋理的塊大小?
我使用((w+3)/4)*((h+3)/4)* 8
作爲GL_ETC1_RGB8_OES
,但找不到任何有關ETC2的信息(Khronos文檔對此不太清楚)。
GL_COMPRESSED_RGB8_ETC2
和GL_COMPRESSED_RGBA8_ETC2_EAC
紋理的塊大小是多少?什麼是ETC2壓縮紋理的塊大小?
我使用((w+3)/4)*((h+3)/4)* 8
作爲GL_ETC1_RGB8_OES
,但找不到任何有關ETC2的信息(Khronos文檔對此不太清楚)。
OpenGL ES 3.0規範包含C.1 ETC Compressed Texture Image Formats
中的聲明A texture compressed using any of the ETC texture image formats is described as a number of 4 x 4 pixel blocks
。
FWIW ETC2通過使用Strom等人在「Texture Compression using Invalid Combinations」中描述的一些未使用的位模式來擴展ETC1。 (另見圖形硬件Slides Presentation):
因此塊大小是相同的。
塊大小是記錄在這裏:http://www.khronos.org/opengles/sdk/docs/man3/html/glCompressedTexImage2D.xhtml
特別是:
// ETC1
{ 4, 4, 8, COMPRESSED_ETC1_RGB8_OES },
// ETC2/EAC
{ 4, 4, 8, COMPRESSED_R11_EAC },
{ 4, 4, 8, COMPRESSED_SIGNED_R11_EAC },
{ 4, 4, 16, COMPRESSED_RG11_EAC },
{ 4, 4, 16, COMPRESSED_SIGNED_RG11_EAC },
{ 4, 4, 8, COMPRESSED_RGB_ETC2 },
{ 4, 4, 8, COMPRESSED_SRGB8_ETC2 },
{ 4, 4, 8, COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 },
{ 4, 4, 8, COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 },
{ 4, 4, 16, COMPRESSED_RGBA8_ETC2_EAC },
{ 4, 4, 16, COMPRESSED_SRGB8_ALPHA8_ETC2_EAC },
首先兩個值是塊大小(例如, 4x4)第三個值是BytesPerBlock。第四個值是壓縮模式。這來自我用來處理存在的所有壓縮格式的表格。
我刪除了對此答案無用的值(壓縮和解壓縮函數指針以及源/目標數據的首選像素格式,sRGB等)。
你看看http://humus.name/的框架嗎?他可能會在他的源代碼中(框架3,也許是2)。 –