【问题标题】:how to generate RGBA4444 texture data using libpng, and use it for opengl?如何使用 libpng 生成 RGBA4444 纹理数据,并将其用于 opengl?
【发布时间】:2015-05-21 01:21:33
【问题描述】:

我正在做一个android游戏,现在我的图片文件都是“rgba8888”png文件,我目前的工作流程是使用libpng将这些图片文件作为“rgba8888”格式分析成一个数据块,然后生成RGBA8888 opengl 的纹理(通过 glTexImage2D 函数),

现在我想使用 RGBA4444 颜色格式来降低内存成本,我的问题是:

  1. 如何将我的 rgba8888 png 文件转换为 rgba4444 格式?(我最初认为 PS 中的简单导出选项可以做到这一点,但是否定的)

  2. libpng 是否支持 rgba4444 格式?一般如何分析?如果没有,我该怎么办?

【问题讨论】:

    标签: android opengl-es libpng rgba


    【解决方案1】:

    Libpng 不支持 RGBA4444。但是,它确实支持用户转换,因此应该可以编写一个用户回调函数来将您的 RGBA8888 像素转换为将返回给您的应用的 RGBA4444 像素。

    在与 libpng 一起分发的文件“libpng_manual.txt”中搜索“user_transform_fn”。有关工作用户转换函数的示例,请查看 pngcrush 的源代码,搜索“pngcrush_transform_pixels_fn”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-26
      • 1970-01-01
      • 2012-12-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多