gpt4 book ai didi

c++ - 我将如何在 visual studio 2012 中启动 OpenGL 项目?

转载 作者:太空宇宙 更新时间:2023-11-04 11:43:27 24 4
gpt4 key购买 nike

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

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

最佳答案

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

因此,大多数人会推荐您使用 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;
}

关于c++ - 我将如何在 visual studio 2012 中启动 OpenGL 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20541057/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com