2017-02-17 5 views
-2

Я понимаю, что вопрос, подобный этому, имеет более одного ответа, но я честно, ища ЛЮБОЙ ответ. Вот моя проблема. Я попадаю в Графическое программирование и начинаю изучать материал OpenGL. У меня теперь есть очень маленький 3D-движок, который загружает и рисует 3D-модели в окне. Для фактического окна в настоящее время я использую GLFW.Как вы можете создать графический интерфейс для приложения OpenGL, использующего GLFW?

Все отлично, за исключением того, что я действительно хочу добавить несколько меню и кнопок в свое приложение. Я также хочу иметь входные обратные вызовы (поэтому, когда пользователи перемещают свою мышь, например, 3D-модель вращается соответственно)

Так может ли кто-нибудь дать мне несколько моментов о том, как это сделать.

  • Я хоть использования WinFroms и как-то перенаправить мой «OPENGL выход» к управления, но тогда я бы потерять всю обработку от glfw ввода. И я понятия не имею, как я могу отправить входную информацию из WinFroms в мое приложение OpenGL.

  • Некоторые люди онлайн сказали, что я мог бы использовать QT для GUI вещи, но у меня есть понятия не имею, как реализовать QT в моем проекте (если есть учебник я бы признателен за ссылку на него)

Я honesltly ищет любое решение, которое позволит мне забрать мое окно GLFW и добавить к нему элементы управления. (Мне все равно, что нужно работать над окнами)

Если кто-нибудь может принести мне немного света на то, что я могу использовать, или по крайней мере, как весь процесс должен работать, я бы действительно благодарен. Я также желаю полностью отказаться от GLFW, если есть что-то еще, что может обеспечить окна и кнопки GUI для приложения OpenGL.

Опять же, извините меня, если я задаю этот вопрос неправильно, я просто неопытен во всем «Оконнике» и только мало знаю, как работает Win32 API и прочее, как HWND.

+0

Есть ли для таких вещей библиотеки (я думаю, для этого люди используют SDL). Я привык к средам Borland. VCL можно напрямую комбинировать с окнами OpenGL (либо в виде наложения, либо с помощью панели инструментов, так что winapi поддерживает это. Вы также можете использовать свой собственный графический интерфейс. Без знания архитектуры вашего SW трудно сказать больше. несколько примеров OpenGL и управления (мышь, клавиатура, графический интерфейс): [камера и плеер] (http://stackoverflow.com/a/40104549/2521214), [простой графический интерфейс OpenGL] (http://stackoverflow.com/a/34250889/2521214), [OpenGL mouse pan, zoom] (http://stackoverflow.com/a/41802191/2521214) – Spektre

+0

Я никогда не тестировал его, но вы можете начать с [anttweakbar] (http: //anttweakbar.sourceforge .net/doc /) – Amadeus

+0

@Amadeus. Мне нужен пользовательский интерфейс, основанный на элементах управления Win32 (вы знаете ... стандартные окна управления).Из того, что я видел, anttwearbar - полностью пользовательский интерфейс cusom. – Kobek

ответ

1

Да, у Qt есть несколько руководств по 3D-рендерингу и использованию openGL. Он поставляется со своим набором библиотек openGL, который абстрагирует openGL.

Этот, например, http://doc.qt.io/qt-5/qt3d-basicshapes-cpp-example.html использует некоторые элементы пользовательского интерфейса, чтобы вы начали.

Переход на Qt будет означать отбрасывание вашего кода GLFW, но с дополнительным преимуществом, которое обеспечивает каркас Qt. Нет ничего плохого в изучении openGL из учебников с базовыми библиотеками, такими как GLFW, GLUT и т. Д.

Я уверен, что как только вы поиграете с ним, вы найдете его очень всеобъемлющим.

+0

Спасибо. Я обязательно проверю это. – Kobek

Смежные вопросы