【问题标题】:Starting with OpenGL - a couple of questions从 OpenGL 开始 - 几个问题
【发布时间】:2012-08-03 20:17:47
【问题描述】:

我想开始使用 OpenGL 和 C++ 进行编码,但我有几个问题:

1. 我应该改用 OpenGL 4.2 还是 3.x? OpenGL 4.x 在 Nvidia GTX 400+ 上运行。这是否意味着它得到了广泛的支持,还是我应该选择 3.x?

2. 我在 Windows SDK 中找到了一些头文件和库,但不是全部。有什么地方可以找到 OpenGL 的 all 库和头文件吗?我要避免的是从互联网上下载旧版本和不同版本。

3. OpenGL 是否覆盖输入,或者这部分是否属于 GDI+/WinAPI?

【问题讨论】:

  • 对不起,一定是“拼错”了。我会改正的!

标签: c++ opengl


【解决方案1】:
  1. 你应该选择你想要支持的东西。主要 OpenGL 版本 (3,4) 通常用于识别硬件代,而次要版本实际上是针对功能版本,它应该独立于您的硬件。例如:我现在拥有 4.2 功能,而我购买此 GPU 时甚至不存在。因此,您可以认为最新的驱动程序将支持最新的次要版本。但无论您如何尝试,您的 GPU 都不会通过驱动程序更新获得新的硬件功能。请注意,一个棘手的部分是并非仍然支持所有 GPU。这意味着不再提供驱动程序更新,它们可能会停留在某个次要的 OpenGL 版本。
  2. 有些包装器可以为您完成大部分工作,但不要忘记您仍然需要链接到 gl 和可能的 glu 库和一些特定于平台的库。我个人喜欢unofficial OpenGL SDK,glload 是你想要的库。其他库也很有用。
  3. OpenGL 不覆盖输入,它只是用于绘图。另请注意,OpenGL 不会为您创建默认帧缓冲区。默认帧缓冲区是您渲染到的东西(通常在窗口中)。这是由特定于平台的函数完成的,对于 Windows,这是 WGL

【讨论】:

  • 几个月前我使用了 SDL。我什至实现了模板阴影,但缺少一些基本的东西。此外,我想使用普通/原始包含和库,如 GL.lib、GL.h、glu.h、glut.h 等。所以也许我应该使用 OpenGL 3.x。你能指出我从 gl 到 glut 的最新头文件/库的好集合吗?
  • 如果你想支持旧硬件,我推荐使用我目前使用的 opengl 2.1。您可以轻松地使用 glsl,它的着色语言,您可以为您的游戏建立非常好的图形。如果你问我,支持旧硬件是最重要的。
  • @DevilsChild:您的程序中使用的标头由glload 提供。 OpenGL 头文件和库(它使用的)安装依赖于平台,所以我对此无能为力。但是看看 opengl.org 上的getting started guide
  • 至于平台,我正在寻找仅限 Windows 的标头和库。我也对使用 glload 有一种不好的感觉。我宁愿坚持官方的东西。所有库和头文件都必须有某种初始源,不是吗?
  • @DevilsChild:glload 只是一个“包装器”,它为您加载了许多 opengl 扩展(在 Windows 上确实需要这些扩展)。您可以手动执行此操作,但随后您将进入一个痛苦和维护地狱的世界。 glload 和 glew 之类的替代方案已经过尝试和测试,它不仅仅是我喜欢的库,很多人实际上都在使用它。
猜你喜欢
  • 1970-01-01
  • 2011-01-10
  • 2011-05-12
  • 2011-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-15
  • 2023-03-26
相关资源
最近更新 更多