Теоретически вам ничего не понадобится, и вы готовы к работе. Тем не менее, настройка базового окна не так проста (она становится повторяющейся, как только вы знаете основную, но все же «утомительную»).
Таким образом, большинство людей порекомендует вам использовать 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;
}
Проверьте http://nehe.gamedev.net/, и начните с урока 01. –
Вы должны были исследовать больше для ответа, прежде чем публиковать этот вопрос здесь. В Google есть тонны данных по этому вопросу. –
Я занимался исследованиями, но, как я уже сказал, много материала, с которым я столкнулся, устарел или противоречил другому. Это сайт обмена знаниями, нет? Почему я не могу писать здесь, прося знания прямо из уст лошадей. –