【问题标题】:What is the Block Size of ETC2-compressed texture?ETC2 压缩纹理的块大小是多少?
【发布时间】:2013-07-27 22:31:37
【问题描述】:

GL_COMPRESSED_RGB8_ETC2GL_COMPRESSED_RGBA8_ETC2_EAC 纹理的块大小是多少?

我将((w+3)/4)*((h+3)/4)* 8 用于GL_ETC1_RGB8_OES,但找不到有关 ETC2 的任何信息(Khronos 文档对此不是很清楚)。

【问题讨论】:

  • 你看过humus.name的框架了吗?他可能在他的源代码中包含它(框架 3,也许是 2)。

标签: opengl-es opengl-es-3.0


【解决方案1】:
    // 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 等)。

【讨论】:

    【解决方案2】:

    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 in Section C.1 ETC Compressed Texture Image Formats

    【讨论】:

      【解决方案3】:

      FWIW ETC2 通过使用一些未使用的位模式来扩展 ETC1,如 Strom 等人在“Texture Compression using Invalid Combinations”中所述。 (另见图形硬件Slides Presentation):

      因此块大小是相同的。

      【讨论】:

        【解决方案4】:

        块大小记录在这里:http://www.khronos.org/opengles/sdk/docs/man3/html/glCompressedTexImage2D.xhtml

        特别是:

        • GL_COMPRESSED_RGB8_ETC2 = ceil(width/4) * ceil(height/4) * 8
        • GL_COMPRESSED_RGBA8_ETC2_EAC = ceil(width/4) * ceil(height/4) * 16

        【讨论】:

          猜你喜欢
          • 2015-08-03
          • 2017-03-30
          • 1970-01-01
          • 2019-02-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-04-21
          • 2020-07-05
          相关资源
          最近更新 更多