Войти
ПрограммированиеФорумГрафика

Рендер GUI

Страницы: 1 2 3 4 5 6 Следующая »
#0
10:00, 31 янв. 2019

Всем доброго дня!

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

Короче, хочу сделать небольшой редактор на своем же движке для расстановки сущностей по карте и
правки их свойств.

Нужен ГУИ.
Обдумав, пришел к нескольким вариантам:

1. Внедрить готовый ГУИ;
2. Написать свой простой ГУИ;
3. Написать свой "продвинутый" ГУИ.

От 3 пункта сразу откажусь, иначе разработка займет еще год :-) Очень хочется уже начать делать логику игры)

Вопрос к людям, которые уже столкнулись с проблемой и наступили на свои грабли:

Что можете посоветовать, готовый ГУИ и написать простенький свой?
Насколько трудно внедрить MyGUI или CEGUI, и т.п. и что выбрать?

Всех благодарю за помощь!


#1
10:13, 31 янв. 2019

Для редактора достаточно imgui или nuklear.

#2
10:32, 31 янв. 2019

DXUT еще есть

#3
10:37, 31 янв. 2019

Нет, DXUT точно не то, что нужно. Почитал, он для DirectX, а у меня linux и OpenGL.

#4
10:45, 31 янв. 2019

Если брать готовое, то хотелось бы систему, в которой можно было реализовать несколько интерфейсов, типа какой-нибудь RendererImpl и TextureImpl, и ГУИ бы рисовался средствами движка.

#5
11:00, 31 янв. 2019

zkolosok
> и ГУИ бы рисовался средствами движка.
  Тогда наверное свой ГУИ

#6
(Правка: 11:20) 11:19, 31 янв. 2019

Свой ГУИ простой пишется за месяц.
Можно пол года продвинутый.

Свой ГУИ лучше тем что будет только нужное. И можно сделать то чего нет в другом ГУИ.
То есть какие то свои оригинальные элементы.

Свой ГУИ может быть быстрее и требовать меньше вызовов и функций.

Ну и потом свой ГУИ в DLL можно сделать. Что бы легко и быстро к новым своим проектам подключать.

#7
12:08, 31 янв. 2019

Все GUI это абстракция над движком и у всех он своё. Для дебага можешь всять любой из imgui или nuklear. Для полноценного нужно уже переписывать имеющиеся готовые.

#8
12:15, 31 янв. 2019

Спасибо за советы.
По своему gui есть небольшие наработки, просто есть проблемы, и поэтому решил переписать эту часть кода заново.

Ziltop
Пока что, совсем оригинальных виджетов не требуется. Нужны кнопки, текстовые поля, списки т др., а также контейнеры (вертикальные и горизонтальные боксы).

Бабер
Думаю, так и сделаю. Все-таки хочется контролировать процесс от и до.

Пока пытаюсь разобраться в следующем:

Поскольку создавать vbo на каждый виджет ну совсем не хочется,
пытаюсь придумать как упаковать все виджеты (каждый по сути два треугольника) в
один буфер в нарисовать одним вызовом glDrawElements

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

Пока получается, что должен быть один буфер на один контейнер. Как-то так.

Поделитесь кто что думает об этом. Может ход моих мыслей совсем не правильный.

#9
12:45, 31 янв. 2019

GuiChan

#10
(Правка: 12:45) 12:45, 31 янв. 2019

Там в основном текстуры нужно рисовать, 5-10 текстур кнопок в окне

zkolosok
> пытаюсь придумать как упаковать все виджеты (каждый по сути два треугольника) в
> один буфер в нарисовать одним вызовом glDrawElements
  А смысл в этой оптимизации?

#11
12:51, 31 янв. 2019

Бабер
Меньше вызовов glDrawElements

#12
12:58, 31 янв. 2019

Бабер
Это типичная оптимизация для частич, текста и GUI - нарисовать всё за 1 DIP

#13
13:06, 31 янв. 2019

Свой GUI намного сложнее, чем кажется на первый взгляд. Кнопка/текствое поле/лейбл/чекбокс - вот пожалуй предел. И то поведение всех элементов будет отличаться от стандартного, что будет вызывать попоболь у пользователей. Редко в какой игре банальный текстбокс работает также как и нативный в ОС. Лучше используйте готовые библиотеки.
Можете эту посмотреть: https://ultralig.ht/
Я её только вчера увидел, по моему довольно хорошее решение, плюсом разметку и логику интерфейса можно писать на html+js.

#14
(Правка: 13:09) 13:08, 31 янв. 2019

Ziltop
> Свой ГУИ простой пишется за месяц.
> Можно пол года продвинутый.
  Я где-то 4 месяца писал.

lookid
> Это типичная оптимизация для частич, текста и GUI - нарисовать всё за 1 DIP
  В OpenGL ты хотел сказать?

Страницы: 1 2 3 4 5 6 Следующая »
ПрограммированиеФорумГрафика