我将如何在visualstudio2012中启动OpenGL项目

How would I start an OpenGL project in visual studio 2012?

本文关键字:启动 OpenGL 项目 visualstudio2012      更新时间:2023-10-16

我在Visual Studio 2012中创建了一个空白的c++项目,我想创建一个乒乓球游戏来了解OpenGL的工作原理。

在我的项目中有四个目录,外部依赖项、头文件、资源文件和源文件。有人能向我介绍一下相关的最新资源吗?这些资源详细介绍了如何实现OpenGL的初始设置和基本方法?

从理论上讲,您不需要任何其他东西,就可以开始了。然而,基本的窗口设置并不是那么容易(一旦你知道了基本的,它就会变得重复,但仍然"乏味")。

因此,大多数人会建议您使用GLUT,它本质上是一个小型库项目,为您处理最常见的依赖于平台的内容(阅读:窗口创建、输入处理等)。有很多备选方案/实现,每个人似乎都有自己的最爱。

但是,我建议使用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;
}

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

对于OpenGL游戏开发,最简单的解决方案是使用包装器,如SFML或新的SDL2,它将处理窗口管理的丑陋细节,并允许您自由地使用OpenGL进行实验。

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