OpenGL 渲染到透明纹理

5
我有一个使用C++和OpenGL将不同对象渲染到不同RGBA纹理中的系统。我想将这些纹理层叠在一起,但问题是每个纹理都渲染了glClearColor。
如何告诉OpenGL使纹理的ClearColor部分透明(0.0f alpha),以便我仍然可以看到其他图层后面的部分?
1个回答

3
glClearColor 的第四个参数允许您指定 alpha 值来设置清除渲染目标时的颜色,因此您可以传递 0 来使其变为透明。

您的渲染目标显然需要具有 alpha 通道。此外,使用 glClearColor 指定的值清除 alpha 通道可以使用 glColorMask 启用或禁用。


谢谢!简直不敢相信我居然没想到那个!现在有点效果了,纹理的背景消失了!但是出现了一种类似于电影颗粒状闪烁的效果,你有什么想法吗?我使用的是glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);再次感谢! - GDN9
闪烁的声音听起来像是某种同步问题。https://www.khronos.org/opengl/wiki/Synchronization - samgak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接