我有一个半透明的纹理,在不同的位置有不同的不透明度。我有主纹理位图和遮罩位图。当程序执行时,遮罩位图中的alpha值将加载到主纹理位图的alpha值中。我想要透明的区域的值是255 alpha,而我想要保持完全不透明的区域的值是0 alpha。对于中间透明度也有中间值。
我尝试了所有的glBlendFunc()设置,但它要么完全不可见,要么作用于源纹理的RGB颜色。
发布于 2010-12-13 22:50:01
通常在OpenGL中,0表示透明,255表示不透明,这与您的情况正好相反。
所以就像这样:
glBlendFunc(GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA);应该行得通。
发布于 2012-08-18 04:29:18
我也有同样的问题。我正在使用SDL_Image加载我的图像。我意识到当我转换图像时,我使用的是SDL_DisplayFormat而不是SDL_DisplayFormatAlpha。这解决了我的问题。
https://stackoverflow.com/questions/4429932
复制相似问题