2012-07-10 82 views
2

我只是试图掌握OpenGL,我可以建立,所以我正在寻找的是一些基本的东西,建立窗户等等我注意到的事情之一,因为我阅读教程等是似乎很多信息已经过时 - 例如很多教程(其中很多都是几年前编写的)都提到了使用GLUT,但GLUT在10多年前还没有更新 - 电脑时间。现在人们使用什么?我知道freeglut就在那里,但是没有太多的信息 - 如何让它建立起来等等......大多数人做什么?让简单的窗口系统运行起来,让我可以开始玩OpenGL的最简单方法是什么?什么是标准的OpenGL工具包?

+0

OpenGL wiki有一个OpenGL开始的整个页面(http://www.opengl.org/wiki/Getting_started#Development_Tools)。它甚至有一个[各种OpenGL“工具箱”页面(http://www.opengl.org/wiki/Related_toolkits_and_APIs))。 – 2012-07-10 18:48:55

+0

请参阅[此问题的详细信息。](http://stackoverflow.com/questions/7936731/why-is-glut-so-bad) – 2012-07-12 20:14:26

回答

4

您应该首先了解Legacy OpenGL(固定功能流水线)和现代OpenGL(完全着色器驱动流水线)之间的区别。大多数在线教程都会教授传统的OpenGL,因为它很容易上手,并且已经存在了很长时间。遗产仍然正常,但你可能想要进入现代OpenGL(至少3.0版)。现代OpenGL更干净,更灵活,但也很难入门,因此只有较少的教程。它需要用户提供更多的设置和库,并且没有“单向”的方式来完成任务,难以构建快速教程。

学习现代OpenGL的一些好的资源是:

到你的主要问题,我知道3个主要的库跨平台OpenGL窗口创建。我会推荐GLFW作为跨平台工具包。您也可以直接在各自的平台上创建上下文(Windows上的WGL窗口创建,MacOS X上的Cocoa等),而不是使用窗口库,从而学到很多东西。

  1. GLUT - 你是正确的,它没有被更新多年。它仍然有效,特别是对于传统的OpenGL,但我不确定现代支持有多好。
  2. SDL - 也是旧的和传统的OpenGL(我认为这是用2.0解决的),并且包含比OpenGL更多的跨平台功能。这是一个相当重量级的图书馆,但我仍然比GLUT更喜欢它。一个现代的,更新的SDL正在开发中,但我很长一段时间没有看到它,可能已经停止了......它还有一个与它相关的恶意许可,所以请留意。
  3. GLFW - 我个人最喜欢的。它像GLUT一样干净且轻便,并允许您在大多数主要桌面平台上定位现代OpenGL上下文。
+0

哦,我不知道它已经改变了很多。学习旧的OpenGL还是值得的,还是应该从新的东西开始?现在我正在使用OpenGL和Qt,并且我一直在学习的东西一直在工作,所以我确信它不是完全无用的,但是当我开始学习现代OpenGL时,我几乎必须从头开始重新开始? 同样就工具箱而言,GLEW呢?我看到最近推荐的那个;这是类似的东西吗? – 2012-07-15 02:54:49

+0

@mayonnaise_clinic加入新的东西,不要打扰与旧的。你将不得不从代码的角度重新开始,但概念大体相同。我很确定GLEW只是使用OpenGL扩展(大多数情况下需要在OpenGL 1.1的默认头文件中)。 GLEW对现代OpenGL很有用,但它不能解决上下文和窗口创建。 – 2012-07-15 18:22:28