我正在制作一款游戏,我的所有图片都使用洋红色作为透明/魔幻色彩。 它们都是32位,洋红色只是为了方便。 无论如何,如果有人可以建议我使用什么库来加载我的图像(我需要以GL_RGBA格式加载它们,内部和纹理特定),我将不胜感激。
答案 0 :(得分:6)
如果只需要PNG支持,请使用libpng。 DevIL应该很简单,但它有点臃肿(除了加载图像之外还有很多)并且内部实际上调用了OpenGL函数,这些函数可能会破坏你自己的OpenGL逻辑。
我个人更喜欢SDL_image,因为无论如何我在我的项目中使用SDL。虽然不是很明显,但SDL_BlitSurface()函数可以从IMG_Load()返回到必要的像素格式进行转换。
答案 1 :(得分:5)
DevIL几乎可以加载每种文件格式,并且可以直接创建OpenGL纹理。这是最简单的方法。
您还应该使用支持Alpha通道的文件格式(PNG,TGA,...)。在32位图像中使用“魔幻色彩”真的过时了!
答案 2 :(得分:1)
除了提及SDL和DevIL的其他答案之外,还有两个选项需要考虑:
答案 3 :(得分:1)
这里有一个非常极简的文件示例,将png加载到openGL中:
答案 4 :(得分:0)
另一个选择是OpenCV。
它不仅仅是纹理加载,但是很有可能你也可以使用它的其他功能。