GL_COMPRESSED_RGB8_ETC2
a和GL_COMPRESSED_RGBA8_ETC2_EAC
纹理的块大小是多少?
我正在使用 ((w+3)/4)*((h+3)/4)* 8
for GL_ETC1_RGB8_OES
,但找不到有关 ETC2 的任何信息(Khronos 文档对此不太清楚)。
GL_COMPRESSED_RGB8_ETC2
a和GL_COMPRESSED_RGBA8_ETC2_EAC
纹理的块大小是多少?
我正在使用 ((w+3)/4)*((h+3)/4)* 8
for GL_ETC1_RGB8_OES
,但找不到有关 ETC2 的任何信息(Khronos 文档对此不太清楚)。
// 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 等)。
OpenGL ES 3.0 规范包括以下语句:A texture compressed using any of the ETC texture image formats is described as a number of 4 x 4 pixel blocks
在 Section C.1 ETC Compressed Texture Image Formats
.
块大小记录在这里:http ://www.khronos.org/opengles/sdk/docs/man3/html/glCompressedTexImage2D.xhtml
尤其是:
FWIW ETC2 通过使用一些未使用的位模式来扩展 ETC1,如 Strom 等人在“使用无效组合的纹理压缩”中所述。(另请参阅图形硬件幻灯片演示):
因此块大小是相同的。