Хороший графический интерфейс для OpenGL? [закрыто]

Я начинаю изучать OpenGL с помощью FreeGLUT, используя Superbible и знания, которые у меня есть, из моей элементарной графики, чтобы освежить мои навыки.

Чтобы получить больше от этого опыта, я хочу интегрировать GUI, чтобы перезаписать тот, который использует FreeGLUT, теперь мой вопрос заключается в следующем: возможно ли это и какую библиотеку я должен использовать?

Некоторые характеристики библиотеки:

  • Открытый исходный код
  • Многоплатформенная (Linux и Windows)
  • C /C ++

Если у вас есть другие рекомендации, не стесняйтесь публиковать их вместе со своими ответами по моей проблеме.

64 голоса | спросил 6 revs, 2 users 66%
Cristina
1 Jam1000000amThu, 01 Jan 1970 03:00:00 +030070 1970, 03:00:00

9 ответов


32

Я еще не пробовал это сам, но это выглядит очень интересно:

librocket

EDIT: поскольку вам понадобится контекст для рендеринга, я бы рекомендовал SFML или SDL 1.3.

ответил Shouvik 15 12010vEurope/Moscow11bEurope/MoscowMon, 15 Nov 2010 08:08:42 +0300 2010, 08:08:42
19

Графический интерфейс Crazy Eddie (CEGUI) популярен, и вы можете либо забрать один из существующие серверы рендеринга или написать собственный таргетинг на любой API, поддерживаемый OpenGL. Это открытый, многоплатформенный и C ++. Тем не менее, это означает согласованность, которая не всегда является хорошим принципом UI для игр, который может иметь десятки пользовательских элементов управления, используемых только в одном месте.

Недавний популярный шаблон графический интерфейс немедленного режима (IMGUI) , который является своего рода «отсутствием GUI» библиотека". У него есть плюсы и минусы - это очень просто, но может быть сложно оптимизировать, и мне еще предстоит увидеть действительно хорошие модели IMGUI для расширенных элементов управления, таких как комбинированные или древовидные. Я также не вижу хорошей реализации оконной системы IMGUI (и я провожу некоторое время, пытаясь написать ее, чего мне никогда не было доволен) - она ​​отлично подходит для простых элементов HUD, и просто для однократного управления.

ответил Shouvik 15 12010vEurope/Moscow11bEurope/MoscowMon, 15 Nov 2010 08:08:42 +0300 2010, 08:08:42
13

Недавно я наткнулся на Gwen . Это GUI-библиотека, написанная автором Мода Гэри. Это MIT лицензируется, как любая хорошая игровая библиотека должна быть.
Логотип Gwen
В библиотеке есть несколько вещей для этого.

  • Набор больших виджета Гвен находится в стадии разработки в течение нескольких лет, и он показывает.
  • Настройка настроек рендеринга бэкэнда

    Это большой. В библиотеке имеется рендеринг рендеринга OpenGL. Но создание рендеринга достаточно простое, что вы, скорее всего, захотите создать рендеринг, специфичный для вашей системы рендеринга вашей игры.
  • Меньше заполнения
    Гвен, похоже, находится на более светлой стороне игрового графического интерфейса. Нет XML, без HTML-рендеринга, просто C ++. Gwen также не поставляется с загрузчиками изображений. Он ожидает, что бэкэнд рендеринга обработает загрузку. Мне нравится эта функция, так как она сохраняет библиотеку маленькой, а система рендеринга моей игры уже управляет текстурами.
  • Skinable
    Не первое, что нужно в ваших вехах, но в конечном итоге вам нужно настроить свой графический интерфейс в своей игре.
  • C ++ skinning
    Я не веб-разработчик и не считаю html css-ориентированные графические интерфейсы сложными.
  • Входная инъекция
    Это очень важно для игр. Всегда больно использовать GUI-системы, которые хотят владеть входным опросом.
  • кросс-платформенный
    Библиотека стремится к перекрестной платформе, но они признают, что вы можете найти проблемы на менее используемых платформах.
  • активно развивается
    Кроме того, он намного меньше, чем CEGUI или MyGUI, поэтому взломать его или отправить исправления гораздо более практично.

Однако для этого существуют минусы:

  • Существует не одна страница документации. Даже не веб-сайт, просто репозиторий github.
  • У упакованных рендерингов отсутствует переносимость, поэтому вам нужно будет написать свой собственный, если вам это нужно.
  • <Литий> ???
ответил Shouvik 15 12010vEurope/Moscow11bEurope/MoscowMon, 15 Nov 2010 08:08:42 +0300 2010, 08:08:42
7

Извините за поздний ответ, но вы можете взглянуть на структуру интерфейса OpenGL под названием GG . GG был разработан как часть проекта FreeOrion и включен в их репозиторий SVN (и их загружаемый SDK). Это кажется довольно способным. Я включил снимок экрана ниже; вы можете щелкнуть изображение, чтобы просмотреть полную версию.

 Снимок экрана с пользовательского интерфейса на основе GG от FreeOrion> </a> </p></div>
					 
						<div class=

ответил Mike Strobel 8 +04002010-10-08T19:00:13+04:00312010bEurope/MoscowFri, 08 Oct 2010 19:00:13 +0400 2010, 19:00:13
5

MyGUI - довольно хорошее решение для DirectX и OpenGL.

ответил Mike Strobel 8 +04002010-10-08T19:00:13+04:00312010bEurope/MoscowFri, 08 Oct 2010 19:00:13 +0400 2010, 19:00:13
4

Посмотрите AntTweakBar , он используется Cinder . Существует также новая библиотека графического интерфейса, разработанная для Cinder в работах: SimpleGUI .

Если вы хотите перейти на HTML + CSS, Awesomium (используется Игры Wolfire в игре Overgrowth ) и бесплатную альтернативу < a href = "http://berkelium.org/" rel = "nofollow"> Berkelium .

ответил Mike Strobel 8 +04002010-10-08T19:00:13+04:00312010bEurope/MoscowFri, 08 Oct 2010 19:00:13 +0400 2010, 19:00:13
3

Я играл с QuickGUI и MyGUI . Это обе библиотеки Ogre GUI, которые в последнее время снизили требования к огру. У меня пока нет слишком много опыта, но похоже, что я буду придерживаться QuickGUI, так как он намного меньше и проще.

Я не уверен, была ли обновлена ​​вики QuickGUI, чтобы указать на новейшую версию Ogre. Вот последняя версия.

http://www.stormsonggames.com/downloads/QuickGUI_10_8.zip

В репо есть несколько кросс-платформенных обновлений, поэтому вам будет лучше использовать svn напрямую.

http://stormsonggames.com/svn/SSE/Gaia2/QuickGUI < br> http://stormsonggames.com/svn/SSE/Gaia2/QuickGUIOgreDemo
http://stormsonggames.com/svn/SSE/Gaia2/QuickGUIOgrePlatform

Имя пользователя: Anonymous
Пароль: QuickGUI

Наконец, вот краткий вики о том, как добавить разные обратные ссылки. http://www.ogre3d.org/tikiwiki/QuickGUI+Integration+Tutorial

MyGUI, похоже, имеет больше возможностей за счет раздувания. И честно, если простота не является обязательным требованием CEGUI удаляет MyGUI из вода.

ответил deft_code 6 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 06 Sep 2010 23:42:06 +0400 2010, 23:42:06
3

Создатели могут застрелить меня за это, но я нашел GLFW просто потрясающе при создании кросс- платформенные графические интерфейсы. Люди, разрабатывающие GLFW, продолжают рассказывать о GLFW с not с графическим интерфейсом. Тем не менее делает приятную, простую, чистую и полностью переносную работу по обработке графики, событий и задач мыши /клавиатуры /джойстика.

Хорошая вещь о GLFW для меня заключается в том, что она довольно маленькая, не требует системного кода, GLUT и не поддерживается. До сих пор он был стабильным для использования в проектах OpenGL 4.1. По сравнению с чем-то вроде SDL я обожаю крошечные накладные расходы, и было легко, как пирог, писать классы обработчиков GUI.

В качестве альтернативы ознакомьтесь с FLTK . Его можно использовать для самых разных вещей и очень просто. Он действительно используется для создания приложений, но отлично способен обрабатывать 3D-объекты и построен на OpenGL. Очень маленький, хорошо поддерживается, и пока я не вижу, чтобы многие люди создавали пользовательские интерфейсы на уровне игрового дизайна, есть некоторые, которые, похоже, отлично работают.

ответил deft_code 6 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 06 Sep 2010 23:42:06 +0400 2010, 23:42:06
2

Я бы порекомендовал QT, поскольку это кросс-платформа, C ++, и вы можете получить версию с открытым исходным кодом с лицензией LGPL. Он также прост в использовании и имеет много готовых компонентов, которые вы можете использовать.

ответил deft_code 6 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 06 Sep 2010 23:42:06 +0400 2010, 23:42:06

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132