我将如何在Visual Studio 2012中启动OpenGL项目?

问题描述:

我在Visual Studio 2012中创建了一个空白的C++项目,我想创建一个pong游戏,以便掌握OpenGL的工作原理。我将如何在Visual Studio 2012中启动OpenGL项目?

在我的项目中有四个目录,外部依赖项,头文件,资源文件和源文件。任何人都可以指向相关的最新资源,详细介绍如何实现OpenGL的初始设置和基本方法?

+0

查看http://nehe.gamedev.net/,并从第01课开始。 –

+0

在发布此问题之前,您应该对答案进行更多研究。 Google在这方面有很多数据。 –

+0

我做过研究,但正如我所说的,我遇到的很多材料都是过时的或与另一片相矛盾的。这是一个知识共享网站,不是吗?为什么我不能在这里发帖寻求直接从马口中获取知识。 –

从理论上讲,您不需要其他任何东西,就可以开始使用了。但是,基本的窗口设置并不那么容易(一旦你知道基本的窗口,它就会重复使用,但仍然很“乏味”)。因此,大多数人会推荐你使用GLUT,它本质上是一个小型的图书馆项目,为你处理最常见的平台相关的东西(如:窗口创建,输入处理等)。有quite a list of alternatives/implementations,每个人似乎都有自己的最爱。

但是,我建议使用SFML来代替。它是一个更大的图书馆,但同时它也更先进(如果你了解基础知识并希望有一个更受管理的图书馆)。虽然它包含了自己的绘图类,但仍然可以将其用于创建窗口,然后在原始OpenGL中使用自己的自定义绘图代码。到目前为止,基于SFML的程序可以针对Windows,Mac和Unix进行编译,Android和iOS端口处于测试阶段。与使用GLU相比,最小代码有点长,但它可能更易于理解/阅读,特别是如果您还没有深入回调。

只是一个简单的例子:

#include <SFML/Graphics.hpp> 

int main (int argc, char **argv) { 
    sf::RenderWindow window(sf::VideoMode(640, 480), "OpenGL Test", sf::Style::Close | sf::Style::Titlebar); 

    // Your own custom OpenGL setup calls here 
    // There's no additional code needed, unless you want to mix SFML drawing and raw OpenGL 


    sf::Event e; 

    while (window.isOpen()) { // This is the program's main loop 

     while (window.pollEvent(e)) { // Event handling 
      switch (e.Type) { 
       case sf::Event::Closed: 
        mWindow.close(); 
        break; 
      } 
     } 

     window.clear(); // Clear the buffer 

     // Your own custom OpenGL drawing calls here 
     // There's no additional code needed, unless you want to mix SFML drawing and raw OpenGL 

     window.display(); // Update window contents 
    } 
    return 0; 
} 
+0

谢谢你的帮助,我认为生病坚持GLUT方法为这一个,也许提前到SFML为下一次尝试,我如何使用GLUT与视觉工作室2012 –

+0

至于GLFW(和大多数GLUT变体),只需按照上面的链接来获取ZIP档案中的源文件或通过存储库(如GitHub)获取源文件。解压缩所有内容并按照自述文件(在GLFW的情况下,您需要[CMake](http://www.cmake.org/),然后创建MSVC项目以允许您编译库)要实际使用它,我只需要包含正确的头文件(根据教程)并链接库。 – Mario

+0

我在GLUT文件夹中跟着自述文件,但它导致我死路一条。它说'glut32.lib到$(MSDevDir)\ .. \ .. \ VC98 \ lib和'。这是没有VC98目录,其他来源只是说它的VC,但我无法找到任何地方.. –

一种方法很简单,你可以下载并安装GLFWGLEW。安装两个并使用include和lib目录将项目设置为这两个安装的apis(右键单击项目 - >属性 - > VS ++目录 - >追加包含路径和库)。你很好去,你只需要根据this文档包含和设置上下文。 GLFW处理所有的窗口创建和上下文处理,GLEW绑定你拥有的所有调用(例如:glClear,glBein等)以便能够使用它们。 GLEW易于使用,只需拨打glewInit()

最简单的解决方案,支持OpenGL游戏开发,是使用的包装,像SFML或新SDL2将处理窗口管理的丑陋的细节,让你免费试用OpenGL。

您还可以使用GLee轻松导入您需要的OpenGL扩展。