我在OS X上编写了一个使用OpenGL的测试程序,它加载了一个PNG,使用libsquish(http://code.google.com/p/libsquish/)将其压缩到DXT5,并对一个平面进行纹理处理。
当我上传包含Alpha通道的图片但没有像素具有完全不透明的alpha值时,它会正确显示:http://i.imgur.com/nElZ8.png
给定相同的图像,但黑色部分被透明度替换,这是我得到的输出:http://i.imgur.com/8Ld3y.png
代码并不漂亮,它是一个概念证据:
有什么想法吗?
答案 0 :(得分:0)
原来我忘了这个:
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);