如何在 OpenGL 中显示图像
Posted
技术标签:
【中文标题】如何在 OpenGL 中显示图像【英文标题】:How do you display images in OpenGL 【发布时间】:2011-08-10 05:16:46 【问题描述】:如何使用 OpenGL 渲染图像(.bmp 和 .jpeg)? 我遇到过一些教程,但它们是针对 C# 而不是 C/C++。 我想渲染图像的原因是因为我想画一艘宇宙飞船(用于游戏)。我可以使用 OpenGL 原语,但它看起来并不那么好。另一种选择是使用坐标来绘制宇宙飞船,但这需要很长时间,而且看起来不会那么好。
运行以下 sn -p 总是返回失败:
#include <iostream>
#include <GL/glfw.h>
using namespace std;
int main()
GLFWimage image;
if(glfwReadImage("ship.tga", &image, GLFW_ORIGIN_UL_BIT)!=GL_TRUE);
cout << "FAILED";
system("PAUSE");
return 0;
我做错了什么? 写得不好的代码。对于那个很抱歉。现在工作
【问题讨论】:
寻找 NeHe 教程,他们用数十种语言的代码解释所有基础知识,包括 C++。 “ship.tga”文件与.exe在同一目录下 【参考方案1】:通过纹理一个四边形(或者更好的是,两个三角形)。
除非您真的需要.bmp
或.jpeg
,否则我建议您使用.tga
(Targa) 图像,因为它们更常用并且支持alpha 通道。
一些 C++ 资源:
http://nehe.gamedev.net/tutorial/loading_compressed_and_uncompressed_tgas/22001/
http://nehe.gamedev.net/tutorial/texture_mapping/12038/
http://www.lonesock.net/soil.html(一个很棒的 OpenGL 小图片库。支持 bmp、jpg、png、tga 等)
【讨论】:
我并不“真正需要”它们。我建议这些的原因是因为它很容易获得/创建它们。如何创建.tga
文件?
没关系。我在网上找到了一个网站,可以将图片转换为.tga
online-utility.org/image_converter.jsp
@viraj 我忘了在我的帖子中提到这一点。在处理 .tga 文件时,我更喜欢使用 Paint.net。它保存压缩和未压缩的 24/32 位。
我的天啊,现在是 2020 年,我仍然不得不经历这个“你错过了一个图书馆”,然后是另一个图书馆,然后是另一个图书馆,然后是另一个图书馆,然后是另一个图书馆。哦,好吧,也许明年。【参考方案2】:
渲染一个带纹理的四边形或两个形成矩形的三角形。
【讨论】:
【参考方案3】:类似地震的游戏将人类渲染为侧面具有不同纹理的立方体。你也可以这样做。启用 Alpha 混合并确保透明纹理数据真正透明。
【讨论】:
以上是关于如何在 OpenGL 中显示图像的主要内容,如果未能解决你的问题,请参考以下文章