c++ - 从 OpenGL 开始——几个问题

标签 c++ opengl

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

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

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

3.OpenGL 是否涵盖输入或者这部分是 GDI+/WinAPI?

最佳答案

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

关于c++ - 从 OpenGL 开始——几个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11802706/

相关文章:

c++ - 非静态数据成员的cppreference定义是否错误?

c++ - 来自未选择列表初始化的数组引用的构造函数

java - 无法绘制到FrameBufferObject,然后绘制到frameBuffer,在LWJGL中

macos - 使用 cabal for haskell 在 mac 上安装 GLFW 时出错

opengl - 使用 FreeImage 加载图像

c++ - 隐式提升以避免 std::partial_sum 溢出

c++ - 如何指定方法更改了哪些数据成员?

c++ - set_union 和 set_intersection 的问题 - C++

c++ - 点集上的 2d 旋转会导致倾斜失真

objective-c - 如何将视频效果应用到 osx 中的 native 应用程序