C++ 如何使用OpenGL绘制二维图像

C++ 如何使用OpenGL绘制二维图像,c++,image,opengl,2d,render,C++,Image,Opengl,2d,Render,几天前我开始学习OpenGL,我主要关注于2D游戏开发 我已经学习了OpenGL的基础知识——创建窗口、处理键盘输入 我在教程中没有找到(也没有在网络中找到明确的解决方案),那就是如何使用OpenGL绘制2D图像(例如在一个随意的2D游戏中的“玩家”图像) 我以前学过XNA,记得有一个叫做2DTexture的结构,尽管我在OpenGL中没有找到 我现在不想在OpenGL中使用3D 编辑: 如果这样做更简单的话,我可以将图像的RGB放在一个数组中(数组大小[宽度][高度],每个单元格都包含像素的R

几天前我开始学习OpenGL,我主要关注于2D游戏开发

我已经学习了OpenGL的基础知识——创建窗口、处理键盘输入

我在教程中没有找到(也没有在网络中找到明确的解决方案),那就是如何使用OpenGL绘制2D图像(例如在一个随意的2D游戏中的“玩家”图像)

我以前学过XNA,记得有一个叫做2DTexture的结构,尽管我在OpenGL中没有找到

我现在不想在OpenGL中使用3D

编辑:


如果这样做更简单的话,我可以将图像的RGB放在一个数组中(数组大小[宽度][高度],每个单元格都包含像素的R、G、B

首先,OpenGL是一个比XNA低很多的API,它不主要关注2D渲染

在旧版本的OpenGL中,该函数可以在屏幕上实现老式的功能,但效率低得离谱

在现代OpenGL上渲染2D图像(如2D游戏的精灵)的有效方法是使用相机绘制平面四边形,并在其上应用纹理


我不记得现在有任何教程专门介绍2D渲染,但我认为最好您首先掌握纹理贴图和多边形渲染的基础知识。对于这一点,这是一个很好的起点;也是一个很好的来源。

构建一个3D对象,但仅在X,Y平面中。其中z为零,所以它是2D。那么我一般如何在OpenGL中渲染图像呢?通过使用。我相信老NeHe仍然是合理的学习对象。纹理映射是一个神奇的词。我认为函数是glTextImage2d(…)。你使用什么窗口库?我对glfw有很好的经验,你需要画一个正方形,然后将它与你想要显示的图像进行纹理映射。如果你通过教程系列学习,它将教你如何在现代OpenGL(以及更多)中使用它。我不推荐NeHe,因为它使用的是已被弃用多年的立即模式(而且真的很慢)。有没有比OpenGL更好的API级别,谁适合我更好的2D渲染?XNA很好,但是我想用C++编程。