【问题标题】:Draw texture to FrameBufferObject using specific color使用特定颜色将纹理绘制到 FrameBufferObject
【发布时间】:2021-03-28 15:21:23
【问题描述】:

我有一个纹理,我想将它绘制到 FrameBufferObject。纹理具有透明区域。我想要以下内容:

  1. 对于所有透明像素,让它们在 FrameBufferObject 中绘制成透明的。
  2. 对于所有不透明的像素,让它们使用我选择的颜色绘制,即纯红色(忽略它们的实际 rgb 值)

我在绘制纹理之前尝试过Batch.setColor(red),但这只是对其进行着色 - 我希望将所有不透明的像素都绘制成纯红色。

我也在试图弄清楚如何直接在opengl中实现这一点,看起来可能有一种方法可以通过混合来做到这一点,然后可以将其与gdx相关联。

谢谢

【问题讨论】:

  • 不太确定,但请查看 glBlendFunc 和 glBlendColor。

标签: opengl-es libgdx blending


【解决方案1】:

你需要写一个shader,这个shader就是渲染纹理的OpenGL程序。所以你的着色器会在不改变的情况下渲染透明度,而其他一切都是你自己选择的颜色。

以下链接包含用于调色板交换的 libgdx 着色器,即在渲染时直接重新分配颜色,您可以轻松适应单一颜色和透明度。

https://www.javaer101.com/en/article/12241616.html

【讨论】:

    猜你喜欢
    • 2015-07-26
    • 1970-01-01
    • 2015-07-06
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多