在 OpenGL 中使用 PNG 纹理的最快最简单方法

Posted

技术标签:

【中文标题】在 OpenGL 中使用 PNG 纹理的最快最简单方法【英文标题】:Fastest Simplest way to use PNG textures in OpenGL 【发布时间】:2010-11-30 23:11:14 【问题描述】:

我正在寻找在 OpenGL 中使用 PNG(带有 alpha 值)纹理的最快和最简单的方法。我尝试了许多不同的库,但大多数都臃肿且难以在 Mac 上编译/工作。

我对 OpenGL 纹理和所有“陷阱”不是很熟悉,所以我将重点放在 Simple 上。

如果解决方案涉及链接库,如果有人能给我一个很好的 makefile 示例,那将非常有帮助。

谢谢!

【问题讨论】:

【参考方案1】:

你可以试一试SOIL。

【讨论】:

【参考方案2】:

sdl 和 sdl_image 是我所知道的最简单的方法: http://www.libsdl.org/ http://www.libsdl.org/projects/SDL_image/

但是,这是针对跨平台的。对于仅限 Mac,我想有一个本机替代方案。

【讨论】:

【参考方案3】:

DevIL 可以非常简单轻松地做到这一点,适用于多种格式。它还有一个非常非常类似于 OpenGL 的 API(根据设计,大多数常量是相同的,等等)。我只花了几分钟就将它连接到我拥有的 OpenGL 应用程序中。文档不是很好,但可以完成工作并支持多种格式。

【讨论】:

DevIL 似乎是为 OSX 编译的噩梦。 :(【参考方案4】:

glpng 是一个 png opengl 加载器实用程序库,尽管您可以使用 libpng 和 gl 完成它所做的事情,只需一次调用即可将它从 png 文件加载到纹理中

【讨论】:

我无法弄清楚如何链接 glpng。当我尝试编译它以在 MacOSX 上使用时,我遇到了几个我不知道如何修复的错误。

以上是关于在 OpenGL 中使用 PNG 纹理的最快最简单方法的主要内容,如果未能解决你的问题,请参考以下文章

如何在 OpenGL ES 2.0 中使用 png 图像纹理立方体?

OpenGL - 用纹理绘制正方形的最简单方法

使用OpenGL显示图像?

在 Android OpenGL ES 中将 2D 纹理保存为 png

OpenGL正确附加纹理

使用 Boost.GIL 加载 opengl 纹理