0

我有一个半透明的纹理,在不同的位置具有不同的不透明度。我有主纹理位图和蒙版位图。当程序执行时,掩码位图中的 alpha 值被加载到主纹理位图的 alpha 值中。我想要透明的区域具有 255 alpha 的值,而我想要保持完全不透明的区域具有 0 alpha 的值。中间透明度也有中间值。

我尝试了各种 glBlendFunc() 设置,但它要么完全不可见,要么作用于源纹理的 RGB 颜色。

4

2 回答 2

4

通常在 OpenGL 中,0 表示透明,255 表示不透明,这与您的相反。

所以像:

glBlendFunc(GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA);

应该管用。

于 2010-12-13T14:50:01.017 回答
0

我遇到过同样的问题。我SDL_Image用来加载我的图像。当我转换我使用的图像SDL_DisplayFormat而不是SDL_DisplayFormatAlpha. 这解决了我的问题。

于 2012-08-17T20:29:18.100 回答