c++ - 从 OpenGL 和 C++ 开始,正确的路径?

标签 c++ opengl installation libraries

我需要一些具体的和一般的建议。我是一个相当熟练的 Java 程序员和一个非常有经验的 Web 程序员,但我想进入软件开发并且我一直在处理 C++。我有一个我想做的游戏的好主意,我意识到这将是一项艰巨的任务——但我更多地关注它是为了有机会学习 C++、包装,实际上是我在游戏中遇到的任何东西开发过程...

但我无法从概念上迈出第一步!我可以很好地处理 C++ 方面的问题,它只是以正确的方式设置图形,这让我感到困惑。我已经浏览了一堆使用 C++ 的 OpenGL 教程,它们都说了不同的东西,但没有一个是我能真正开始工作的……

有人说要使用 GLUT 和 GLEW。有人说 GLUT 已经死了,而 FreeGLUT 才是现在的东西。有些人完全忽略了这些并使用了一堆我似乎无法找到的文件,如“glaux.h”——以及其他专门用于避免“glaux.h”的教程......我发现的大多数教程都带有警告在评论中说他们的 OpenGL 版本已过时,我应该使用较新的库——还有其他使用第三方库的库,如 Ogre 和 Aurora。

我一直在浏览大量的书籍和教程,它们对于将 OpenGL 与 C++ 结合使用的设置几乎完全不同。我意识到,就其本身而言,可能没有一种正确的方式来做这件事,但我正在寻找最新、最受欢迎的方式,并将最大限度地发挥项目的作用作为我的学习...非常感谢任何指向教程或建议的链接。

顺便说一句,我使用的是 Visual Studio Express 2010(好主意?)。我的游戏不会在图形上过于密集(等距 2d),但需要大量的逻辑和大量的数据,这就是为什么我想通过使用 C++ 来加快速度。任何其他关于比使用 c++ 登录和图形(从行业角度)更好的方法的见解对我来说也非常有值(value)!提前致谢!

最佳答案

假设您将学习 OpenGL 作为一种学习体验,我建议您这样做:

使用 GLEW,无参数。做就做,每个人都做 仅对核心配置文件进行编码。默认情况下,OpenGL 接受稍后会消失的旧命令(例如固定功能管道),您不想在这上面浪费时间。具体来说:了解 VBO、纹理,最重要的是,了解着色器。

忘掉 glaux 和 glut。 Freeglut 是一个很好且非常标准的选项。一个不太明显的选择是 qt,但它的 QGLWidget 允许您轻松地进行 gl 调用,而不用担心上下文创建等等。添加 gui 选项非常容易,这在编程图形时总是非常好的。

要真正学习 OpenGL,我会推荐 http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Table-of-Contents.html . Nehe 有一个问题,超过一半的东西学起来毫无用处,而且周围有很多绒毛(窗口创建等)。

但是,我真的不推荐将 OpenGL 作为学习实时图形编程的一种方式。您的选择不限于 DirectX。我从使用 Ogre3D 中学到了大量的图形编码。您仍然拥有您需要了解的所有概念(使用顶点和索引缓冲区、纹理、着色器进行低级别工作),并实现大量内容以使您的生活更轻松。您可能不会了解特定 API 的来龙去脉,但您会从概念上了解您需要了解的所有内容。当我成为一名图形程序员时,我没有写过一行 DirectX 代码,但我很快就掌握了我们的引擎。之后我很容易学会了实际的调用。了解硬件和概念。无论如何,实际的实现会随着时间而改变。

哦,以防万一我重复得不够多。学习着色器

关于c++ - 从 OpenGL 和 C++ 开始,正确的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5628068/

相关文章:

c++ - 在共享库中使用静态 std::string 的问题

c++ - 如何将一个 char* 分配给另一个 char*

qt - 许多 QGLMaterial 项目的 openGL 性能不佳

eclipse - 通过软件更新安装时为 Eclipse 3.4+ 插件指定目标文件夹

c++ - 简而言之,什么是 COM(组件对象模型)?

opengl - 如何在 PyOpenGL 中将纹理复制到 pbo 中?

java - LWJGL先进照明系统

sql-server-2008 - Visual Studio 2010 与 SQL Server 2008 和 Office 2007 的正确安装顺序?

c# - 使用 C# .net 以编程方式安装/卸载 .inf 驱动程序

c++ - 如何显示 Windows 资源管理器上下文(右键单击)菜单?