Я начинаю изучать OpenGL с FreeGLUT, используя Superbible и знания, полученные от элементарной графики, чтобы освежить свои навыки.
Чтобы извлечь больше пользы из этого опыта, я хочу интегрировать графический интерфейс для перезаписи того, который использует FreeGLUT, теперь мой вопрос таков: возможна ли эта вещь и какую библиотеку мне следует использовать?
Некоторые характеристики для библиотеки:
- Открытый исходный код
- Мультиплатформенность (Linux и Windows)
- C / C ++
Если у вас есть какие-либо другие рекомендации, пожалуйста, не стесняйтесь отправлять их вместе с вашими ответами на мою проблему.
opengl
c++
gui
cross-platform
Кристина
источник
источник
Ответы:
Я еще не пробовал это сам, но это выглядит очень интересно:
librocket
РЕДАКТИРОВАТЬ: Поскольку вам потребуется контекст для визуализации, я бы порекомендовал либо SFML или SDL 1.3.
источник
Графический интерфейс Crazy Eddie (CEGUI) популярен, и вы можете либо написать один из существующих бэкендов рендерера, либо написать свой собственный таргетинг на любой поддерживаемый OpenGL API. Это открытый исходный код, мультиплатформенность и C ++. Тем не менее, он ценит согласованность, которая не всегда является хорошим принципом пользовательского интерфейса для игр, которые могут иметь десятки пользовательских элементов управления, используемых в одном месте.
Недавний популярный шаблон - это графический режим непосредственного режима (IMGUI) , который является своего рода «библиотекой без графического интерфейса». У него есть свои плюсы и минусы - это очень просто, но его сложно оптимизировать, и я пока не видел действительно хороших моделей IMGUI для продвинутых элементов управления, таких как комбинированные списки или древовидные представления. Также я не вижу хорошей реализации оконной системы IMGUI (и я провожу некоторое время, пытаясь написать такую, которой я никогда не был доволен) - она отлично подходит для простых элементов HUD и для простого одноразового управления.
источник
Я недавно наткнулся на Гвен . Это библиотека GUI, написанная автором Gary's Mod. Это MIT лицензируется, как и любая хорошая библиотека игр.
В библиотеке есть несколько вещей для этого.
Gwen находился в разработке уже несколько лет, и это видно.
. Библиотека поставляется с восстановленным рендерером OpenGL. Но сделать рендерер достаточно просто, так что вы, вероятно, захотите создать рендерер, специфичный для системы рендеринга вашей игры.
Гвен, кажется, на более светлой стороне игрового интерфейса. Нет XML, нет HTML рендера, просто C ++. Гвен также не поставляется с загрузчиками изображений. Ожидается, что бэкэнд рендерера обработает загрузку Мне нравится эта функция, так как она делает библиотеку маленькой, а система рендеринга моей игры уже управляет текстурами.
Не первая вещь в ваших этапах, но в конечном итоге вам нужно будет настроить свой графический интерфейс для своей игры.
Я не веб-разработчик и нахожу HTML-ориентированный графический интерфейс CSS трудным.
Это большой для игр. Всегда сложно использовать системы с графическим интерфейсом, которые хотят владеть входным опросом.
Библиотека стремится быть кроссплатформенной, но они признают, что могут возникнуть проблемы на менее используемых платформах.
Кроме того, это намного меньше , чем CEGUI или MyGUI так взлома на него или представления патчей гораздо более практичным.
Однако вот минусы для этого:
источник
Извините за поздний ответ, но вы можете взглянуть на структуру OpenGL UI под названием GG . GG был разработан как часть проекта FreeOrion и включен в их SVN-репозиторий (и их загружаемый SDK). Кажется, довольно способный. Я включил скриншот ниже; Вы можете нажать на изображение, чтобы просмотреть полную версию.
источник
MyGUI - довольно хорошее решение как для DirectX, так и для OpenGL.
источник
Посмотрите на AntTweakBar , он используется Cinder . Также в разработке находится новая библиотека GUI для Cinder: SimpleGUI .
Если вы хотите перейти на HTML + CSS, есть Awesomium (используется Wolfire Games в их игре Overgrowth ) и бесплатная альтернатива под названием Berkelium .
источник
Я возился с QuickGUI и MyGUI . Они обе библиотеки Ogre GUI, которые недавно отменили требование Ogre У меня пока нет особого опыта, но похоже, что я буду придерживаться QuickGUI, так как он намного меньше и проще.
Я не уверен, что вики QuickGUI была обновлена, чтобы указывать на новейшую версию без Ogre. Вот последний выпуск.
http://www.stormsonggames.com/downloads/QuickGUI_10_8.zip
Там в репо было несколько кроссплатформенных обновлений, поэтому вам лучше использовать svn напрямую.
http://stormsonggames.com/svn/SSE/Gaia2/QuickGUI
http://stormsonggames.com/svn/SSE/Gaia2/QuickGUIOgreDemo
http://stormsonggames.com/svn/SSE/Gaia2/QuickGUIOgrePlatform
Имя пользователя: Аноним
Пароль: QuickGUI
И наконец, вот краткая вики о том, как добавить разные рендеры. http://www.ogre3d.org/tikiwiki/QuickGUI+Integration+Tutorial
MyGUI, кажется, имеет больше возможностей за счет раздутости. И, честно говоря, если простота не является обязательным требованием, CEGUI выбрасывает MyGUI из воды.
источник
Я бы порекомендовал QT, поскольку он кроссплатформенный, C ++, и вы можете получить его версию с открытым исходным кодом с лицензией LGPL. Он также прост в использовании и имеет множество готовых компонентов, которые можно использовать.
источник
Создатели могут застрелить меня за такие слова, но я нашел GLFW просто потрясающим в создании кроссплатформенных фреймворков с графическим интерфейсом. Люди развития GLFW идут и по поводу GLFW никак не справиться с графическим интерфейсом. Однако он делает хорошую, простую, чистую и полностью переносимую работу по обработке графики, событий и задач мыши / клавиатуры / джойстика.
Приятной особенностью GLFW для меня является то, что он довольно небольшой, не требует системного кода, GLUT и поддерживается в хорошем состоянии. До сих пор была стабильной для использования в проектах OpenGL 4.1. По сравнению с чем-то вроде SDL мне нравятся крошечные накладные расходы, и было очень просто писать классы обработчиков GUI.
Кроме того, взгляните на FLTK . Он может быть использован для всех видов вещей и переопределен очень просто. Он действительно используется для построения приложений, но он отлично способен обрабатывать трехмерные объекты и построен на OpenGL. Очень маленький, хорошо поддерживаемый, и хотя я не вижу много людей, делающих пользовательские интерфейсы на уровне дизайна игры, есть некоторые, которые, кажется, работают отлично.
источник