Urho3DФорумЗАДАВАЙТЕ ВОПРОСЫ

Внедрение Urho3d в готовую игру на SDL2/OpenGL

#0
2:56, 10 апр 2021

Доброй ночи, господа.

Есть в разработке 3d-игра, написанная с использованием SDL2 и OpenGL.

В игре много 2d (довольно сложные интерфейсы со спрайтами и текстом), которое рендерится вполне оптимально, через OpenGL, с автоматическим склеиванием спрайтов в атласы.

Но вся трехмерщина выводится своим, сильно ограниченным по производительности рендерером.

Возникла потребность и желание заменить 3d на нормальное современное. API существующего рендерера удобный - придется лишь заменить четкие и абстрагированные от реализации функции вроде loadModel, rotate, translate, addLight - а код самой игры можно не трогать. Выглядит вполне посильной задачей.

Но при этом, хочется оставить как есть рендеринг 2d, обработку ввода и управление мэйн лупом.

Вопрос - насколько хорошая идея делать это с помощью Urho3d?

#1
9:07, 10 апр 2021

Если хочется поменять именно рендер то бери обёртку надо render API:
https://github.com/bkaradzic/bgfx
Или
https://github.com/DiligentGraphics/DiligentEngine
Автор последнего присутствует тут на форуме.

#2
10:59, 10 апр 2021

BGFX конечно та ещё тыква, но простой в использовании, и для простого 3д рендерера без серьезных оптимизаций хватит.
Да, если тебе нужно только рисование 3д, тащить целый игровой движок не особо разумно.

#3
11:29, 10 апр 2021

спасибо за советы!

кроме рисования, нужен граф сцены, материалы, загрузка моделей и управление ресурсами.

не нужны: звук, сеть, тиррейн, редактор.

в общем-то игра по арту увесистая и лишняя сотня мегабайт погоды не сделает. стабильность и ремонтопригодность важнее.

#4
20:07, 10 апр 2021

Хм... А я думал что у тебя уже есть граф сцены и т.п.

Ну попробуй урху подключить. Бери rbfx, собирай либы с нужным тебе набором фич и вперёд.

#5
20:58, 10 апр 2021

GLoom
> Бери rbfx, собирай либы с нужным тебе набором фич и вперёд.
Спасибо! Выглядит интересно.

#6
22:15, 10 апр 2021

kkolyan
Если будут вопросы по сборке, cmake и т.п. спрашивай тут или в дискорде. Поможем чем сможем.

#7
23:37, 10 апр 2021

GLoom
О, есть дискорд, отлично)

Прошло более 5 лет
#8
9:12, 26 мая 2026

Подскажите пожалуйста, в плане построения кода.
Какой рендер лучше/правильнее построен?

1. https://github.com/bkaradzic/bgfx
2. https://github.com/DiligentGraphics/DiligentEngine

#9
10:17, 26 мая 2026

Для начала я бы сравнил минимальные требования к железу. У Diligent требуется более менее современное железо и для кого то это важно. Я не смотрел ни то ни другое но про Diligent я слышал много хорошего.

#10
(Правка: 13:15) 13:03, 26 мая 2026

GLoom

Просто такое дело. Оба движка развиваются уже больше 12 лет!
И, как мне кажется, за это время набралось приличное кол-во костылей в обоих движках.
Интересно, что больше всего повлияло на решение Eugene в пользу DiligentGraphics ?

1. Архитектура
2. Читаемый код
3. Оптимизация
4. Документация
5. Программистская чуйка :)

P.S. Смотрю, все уже презрительно смотрят на OpenGL.
Стараются не использовать в современных разработках:
https://github.com/seednull/opal

#11
16:19, 26 мая 2026

Metallist64
> Интересно, что больше всего повлияло на решение Eugene в пользу DiligentGraphics ?
Баланс между шириной поддержки (веб, мобилки, GL ES 3.0, DX11, все такое) и гибкостью (прямой доступ к GAPI без самодеятельности и дополнительных абстракций как у bgfx или The Forge)

Urho3DФорумЗАДАВАЙТЕ ВОПРОСЫ