Доброй ночи, господа.
Есть в разработке 3d-игра, написанная с использованием SDL2 и OpenGL.
В игре много 2d (довольно сложные интерфейсы со спрайтами и текстом), которое рендерится вполне оптимально, через OpenGL, с автоматическим склеиванием спрайтов в атласы.
Но вся трехмерщина выводится своим, сильно ограниченным по производительности рендерером.
Возникла потребность и желание заменить 3d на нормальное современное. API существующего рендерера удобный - придется лишь заменить четкие и абстрагированные от реализации функции вроде loadModel, rotate, translate, addLight - а код самой игры можно не трогать. Выглядит вполне посильной задачей.
Но при этом, хочется оставить как есть рендеринг 2d, обработку ввода и управление мэйн лупом.
Вопрос - насколько хорошая идея делать это с помощью Urho3d?
Если хочется поменять именно рендер то бери обёртку надо render API:
https://github.com/bkaradzic/bgfx
Или
https://github.com/DiligentGraphics/DiligentEngine
Автор последнего присутствует тут на форуме.
BGFX конечно та ещё тыква, но простой в использовании, и для простого 3д рендерера без серьезных оптимизаций хватит.
Да, если тебе нужно только рисование 3д, тащить целый игровой движок не особо разумно.
спасибо за советы!
кроме рисования, нужен граф сцены, материалы, загрузка моделей и управление ресурсами.
не нужны: звук, сеть, тиррейн, редактор.
в общем-то игра по арту увесистая и лишняя сотня мегабайт погоды не сделает. стабильность и ремонтопригодность важнее.
Хм... А я думал что у тебя уже есть граф сцены и т.п.
Ну попробуй урху подключить. Бери rbfx, собирай либы с нужным тебе набором фич и вперёд.
GLoom
> Бери rbfx, собирай либы с нужным тебе набором фич и вперёд.
Спасибо! Выглядит интересно.
kkolyan
Если будут вопросы по сборке, cmake и т.п. спрашивай тут или в дискорде. Поможем чем сможем.
GLoom
О, есть дискорд, отлично)
Подскажите пожалуйста, в плане построения кода.
Какой рендер лучше/правильнее построен?
1. https://github.com/bkaradzic/bgfx
2. https://github.com/DiligentGraphics/DiligentEngine
Для начала я бы сравнил минимальные требования к железу. У Diligent требуется более менее современное железо и для кого то это важно. Я не смотрел ни то ни другое но про Diligent я слышал много хорошего.
GLoom
Просто такое дело. Оба движка развиваются уже больше 12 лет!
И, как мне кажется, за это время набралось приличное кол-во костылей в обоих движках.
Интересно, что больше всего повлияло на решение Eugene в пользу DiligentGraphics ?
1. Архитектура
2. Читаемый код
3. Оптимизация
4. Документация
5. Программистская чуйка :)
P.S. Смотрю, все уже презрительно смотрят на OpenGL.
Стараются не использовать в современных разработках:
https://github.com/seednull/opal
Metallist64
> Интересно, что больше всего повлияло на решение Eugene в пользу DiligentGraphics ?
Баланс между шириной поддержки (веб, мобилки, GL ES 3.0, DX11, все такое) и гибкостью (прямой доступ к GAPI без самодеятельности и дополнительных абстракций как у bgfx или The Forge)