【问题标题】:libGDX: treat first color in palette as transparent colorlibGDX:将调色板中的第一种颜色视为透明颜色
【发布时间】:2012-04-22 04:44:38
【问题描述】:

旧游戏引擎将图像调色板的第一种颜色指定为透明色。 有没有办法用 libGDX 做同样的事情?

我尝试加载图片并将调色板的第一种颜色替换为 0x00000000。然而,由于像素是不透明的或透明的,我不需要 alpha 值,所以我可以通过使用 RGB888 而不是 RGBA8888 来节省大量内存。 我浏览了 gdx 和 opengl 纪录片以了解其他混合选项,并找到了 Gdx.gl20.glBlendColor 和 SpriteBatch 的 setBlendFunction 函数。但它们只会改变混合方程中使用的值。

提前致谢:)

【问题讨论】:

  • 我不知道有什么方法可以做到这一点,我也不确定你为什么需要这样做。我认为大多数图形表面都是 32 位的,因此即使您加载 24 位图像,它也会被转换。除非您实际上内存不足,否则最好只使用 RGBA8888。

标签: android transparent libgdx blending color-palette


【解决方案1】:

要透明地绘制纹理区域,请使用如下例程:

    Color c = batch.getColor();
    batch.setColor(1, 1, 1, alpha);
    batch.draw(....);
    batch.setColor(c);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-31
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 2012-05-03
    • 2012-05-03
    • 2020-02-20
    • 2013-02-17
    相关资源
    最近更新 更多