OpenGL Windowing Library для 2009 - PullRequest
       5

OpenGL Windowing Library для 2009

6 голосов
/ 10 августа 2009

Попытка выбрать библиотеку для создания окна и записи пользовательского ввода для моего приложения OpenGL, но вариантов слишком много:

GLUT просто устарел. Мне понравился GLFW, но кажется, что вы не можете установить положение окна перед его отображением (я хотел, чтобы оно было по центру, это так много, чтобы спросить?), Поэтому вы видите, что оно появляется, а затем переходит, что беспокоит меня. Плюс, кажется, развитие на этом тоже остановилось. SFML имеет некоторые приятные функции, но он использует опрос событий, а не обратные вызовы, которые я предпочитаю для развязки. Я не думаю, что мне нужны все функции графического интерфейса FLTK. SDL работает медленно (кажется, не использует преимущества GPU). И другие 3, о которых я не знаю много (FreeGLUT, OpenGLUT, OGLWFW). Так что же является меньшим из зол? Есть ли другие, о которых я не слышал?

Я просто пытаюсь сделать простую 2D-игру. Я достаточно знаком с OpenGL, поэтому мне не нужны процедуры рисования, но я, вероятно, не буду жаловаться на другие функции, которые могут быть полезны, если они реализованы правильно.

Ответы [ 6 ]

8 голосов
/ 10 августа 2009

SDL позволяет вам создавать контекст OpenGL, который ускоряется (в зависимости от поддержки драйверов / оборудования).

Я знаю, что вы помечены как C ++, однако pygame (python) - отличная библиотека для создания 2D-игр, которая также поддерживает контекст OpenGL. Pygame построен на SDL.

Clutter - это новая библиотека GUI на основе OpenGL с привязками для Perl, Python, C #, C ++, Vala и Ruby. Я не использовал это сам. С сайта:

Clutter использует OpenGL (и опционально OpenGL ES для использования на мобильных и встроенные платформы) для рендеринга, но с API, который скрывает основную GL сложность от разработчика. Clutter API предназначен для простоты использовать, эффективно и гибко.

7 голосов
/ 11 августа 2009

GLUT и другие альтернативы GLUT не должны использоваться ни в каком производственном приложении. Они хороши для того, чтобы собрать быстрое демо-приложение или попробовать что-то, но не намного.

Если вы пытаетесь создать игру OpenGL, я бы порекомендовал SDL. Больше внимания уделяется игровым потребностям. Это наиболее определенно может использоваться с OpenGL. Краткий Google для «SDL OpenGL» обнаружил эту ссылку о том, как инициализировать OpenGL с SDL. Включение OpenGL также должно включать аппаратный рендеринг с графическим процессором.

Qt - разумная альтернатива, но лучше, если вы хотите встроить OpenGL в более крупное настольное приложение (например, 3D-моделирование, CAD / CAM, медицинскую визуализацию и т. Д.), Где вам необходим доступ к стандартным виджетам ОС для пользовательского интерфейса.

6 голосов
/ 10 августа 2009

Я бы пошел на Qt. Хорошая библиотека общего назначения + поддержка opengl

3 голосов
/ 21 января 2010

У нас был довольно хороший опыт использования ClanLib 0.8 в 2008 году и ClanLib 2.1 в 2009 году на нашем курсе C ++. Производительность студентов (измеряемая качеством их проектных работ) значительно возросла после перехода с SDL. Тем не менее, следует отметить, что 2.1 все еще очень неполный, и наверняка можно столкнуться с функциями, которые просто еще не реализованы.

Несколько групп использовали Irrlicht (3D-движок) с хорошими результатами.

SFML выглядит многообещающе, но у меня еще не было возможности попробовать его.

Как уже говорили другие, GLUT не очень подходит для чего-то серьезного. Остальные упомянутые библиотеки представляют собой нечто большее, чем наборы инструментов для графического интерфейса пользователя, а не библиотеки для разработки игр.

3 голосов
/ 18 декабря 2009
IF  "learning c++ part of what you're trying to achieve":
then
IF  "you only want to learn OpenGL with a fullscreen mode":
  USE GLUT //Because it's VERY VERY simple. You can get set up VERY quick
ELSE:
  USE QT //Great library, has many many things that will help you. It is portable, it has a nice API
ENDIF

IF "you don't need C++":
then
   USE Python //I recommend it, it is fast, no long link times, good api, omg I love this language

Справочная информация:

Я также однажды пытался делать простые 2D-игры, я начал с C ++ и NeHe . Я ничего не знал об OpenGL и C ++ (имел опыт работы с Java). Язык переполнял меня, как и OpenGL. Так что это был очень сложный курс обучения.

Я не рекомендую идти по этому пути, поскольку вы можете получить более быстрые результаты , используя динамический язык (такой как Python). Так что я начал учиться несколько лет спустя с Python. Я мог бы заставить " вращающиеся кубы " работать намного быстрее.

1 голос
/ 18 декабря 2009

За последнее соответствие ядра с автором разработка на OGLWFW остановлена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...