gpt4 book ai didi

android - 透明纹理帧缓冲区 (OpenGL ES 2)

转载 作者:太空狗 更新时间:2023-10-29 15:07:17 29 4
gpt4 key购买 nike

我是 FBO 的新手,这个问题让我抓狂了好几个小时。我有兴趣找到我所要求的解决方案而不是替代方案。这是在 Android 上。

我正在创建一个帧缓冲区,然后在附加到它的纹理上绘制一个圆圈。然后我将该纹理绘制到默认帧缓冲区,就像它是常规纹理一样。一切都很棒,并按预期显示...

... 除了纹理完全不透明这一事实,不仅在我画圆的地方。我希望所有其他区域都是透明的,并且只有纹理的圆形部分可见。更准确地说,我想用透明像素“填充”我的纹理,然后在它们上面绘制我的圆圈,然后将此纹理渲染到默认帧缓冲区并能够看到它背后的内容。 我该怎么做?这甚至可能吗?或者也许有一种方法可以让我的纹理保持不透明并告诉 OpenGL 不要渲染它的黑色像素?

我找到了一个 similar question ,但已检查的答案无济于事。它下面的注释建议使用 glClear(我假设它指的是 glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)),但我在每次 glBindFramebuffer 之后都这样做了,并且它仍然什么也没做。我还阅读了有关启用 alpha 混合的信息,所以我在每个 glBindFramebuffer 之后执行了 glEnable(GL_BLEND)glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) 并且我的纹理保持不变不透明。

另一个答案表明它依赖于平台,所以我正在寻找 Android 解决方案。

最佳答案

尝试 glColorMask(TRUE, TRUE, TRUE, TRUE);glClearColorglClear 之前。

关于android - 透明纹理帧缓冲区 (OpenGL ES 2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20656145/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com