【发布时间】:2014-08-18 20:31:14
【问题描述】:
在对一些 png 纹理资源运行 png gauntlet 后,我有点困惑。以前它们都是PNG_COLOR_TYPE_RGB 或PNG_COLOR_TYPE_RGBA,因此将它们映射到适当的GL 颜色格式非常简单。完全披露,我不是图形大师。
在运行 png gauntlet 以优化纹理后,调用 png_get_IHDR() 返回颜色类型 PNG_COLOR_MASK_ALPHA 我有点困惑这是否可以直接映射到我在传递给 @987654325 时使用的颜色格式@。
以这种方式表现的特定纹理图像是一个精灵,主要由具有不同 alpha 值的白色和灰色组成。我在这里最好的猜测是优化确定它是某种带有 alpha 的灰度,因此我需要在我的纹理加载代码中检测到这一点。
我认为可能合适的颜色类型是GL_LUMINANCE_ALPHA,因为它使用亮度值作为 R、G 和 B 分量,它本质上是带有 alpha 通道的灰度。
【问题讨论】:
-
我相信
GL_LUMINANCE_ALPHA会起作用,但是,它已在 OpenGL 版本 3 及更高版本上被弃用。在这种情况下,您可以将其替换为GL_RG。您的目标是哪个版本? -
谢谢,这段代码不会很快从 ES 2 更改,所以我认为 GL_LUMINANCE_ALPHA 应该可以解决问题,但我需要试一试。感谢您对弃用的提醒。
标签: opengl-es-2.0 libpng image-optimization