【问题标题】:OpenGL ARGB vs RGB and Texture CompressionOpenGL ARGB 与 RGB 和纹理压缩
【发布时间】:2011-01-19 03:23:45
【问题描述】:

我有一个颜色深度为 32 位的渲染上下文。我将使用一些 alpha 混合,但不多;因此,对我需要的大多数纹理使用 24 位图像将大大降低内存需求。我的问题是,我可以在 32 位渲染上下文中使用 24 位 RGB 纹理并期望与 32 位 ARGB 纹理具有相同的性能吗?我知道内部格式可能都不是开头的,但是RC的目标格式是32位ARGB。

另外,我计划使用某种形式的纹理压缩。该平台将是 Windows,独占。哪个会提供最好的压缩和最广泛的兼容性?我也希望使用 24 位压缩纹理,因为我不会使用 alpha 位;但渲染上下文将保持 32 位。

【问题讨论】:

    标签: opengl colors compression textures


    【解决方案1】:

    看起来DXT5 应该适合你。

    这里是the details for GL_EXT_texture_compression_s3tc

    【讨论】:

    • DXT5 压缩一个 Alpha 通道,OP 不需要,DXT1 会更适应。
    • @rotogulp:是的,我阅读了关于“一些 alpha”的第一部分,但不知何故错过了最后的“无压缩 alpha”部分。
    【解决方案2】:

    在渲染到 32 位渲染上下文时,使用 any 纹理格式作为输入纹理完全没有问题。平台是否支持纹理格式,仅此而已,如果支持,您可以使用它而无需考虑渲染上下文的格式。

    要压缩 24 位纹理,您可以查看 Windows PC 上所有 OpenGL 实现都支持的DXT1 texture compression。请注意,根据您的内容和您想要获得的压缩质量,有一些“技巧”允许使用 DXT 压缩、替代色彩空间和用于解码的着色器代码来提高图像质量,here is an example

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-27
      • 1970-01-01
      • 1970-01-01
      • 2019-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多