Войти
ФлеймФорумПроЭкты

ModularGraphicsFramework - снова движок!

Страницы: 1 2 3 Следующая »
#0
2:10, 27 фев. 2018

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

Язык: C++
GAPI: Vulkan, OpenGL, OpenCL, Soft
OS: Windows
Начало разработки: апрель 2017 (активная разработка с октября 2017)
>> исходники <<

Основная идея движка в том, чтобы он состоял из модулей, которые подключаются друг к другу и автоматически связываются - подписываются на события и тд.
Второе глобальное изменение - универсальные шейдеры, берется GLSL код и транслируется в SPIRV, CL, C++ код, все данные необходимые для создания пайплайна заполняются в структуре, типы из GLSL экспортируются в C++ код, что избавляет от проблем с несовпадением выравнивания между C++ и GLSL.

+ пример_экспорта_типов_из_glsl
+ пример_пайплайна
+ пример_шейдера

Что сделано:

+ Показать

Что будет:

+ Показать
#1
2:52, 27 фев. 2018

оверинжиниринг детектед

#2
9:37, 27 фев. 2018

/A\
Под что пишется движок?( цели )

#3
9:55, 27 фев. 2018

emptiness_rain
Для демок и прототипирования, пока о чем-то более серьезном не думаю. Идея в том чтобы упростить разработку, отладку и заранее обнаруживать все проблемные места.

#4
10:02, 27 фев. 2018

/A\
> Идея в том чтобы упростить разработку, отладку и заранее обнаруживать все
> проблемные места
А что ты разрабатываешь и отлаживаешь такое, что без движка не обойтись?

#5
10:06, 27 фев. 2018

emptiness_rain
Ну например писал сложный алгоритм, который почему-то падал на OpenGL, но без проблем работал на OpenCL, правда OpenCL версию я отлаживал еще и на С++ потому что там были мелкие проблемы.
Сейчас же мне не придется тратить время на написание двух версий, я смогу пользоваться С++ дебагером и санитайзером, статичным анализатором и тд.
Также у меня бывали проблемы с неправильным выравниванием структур в С++ и GLSL или просто забывал где-то добавить поле из-за чего данные расходились, на поиск проблем уходило время.

#6
11:45, 27 фев. 2018

По описанию даже захотелось очередной проект на нем пилить, софт реализация для компут шейдеров это прям мечта.

Но я слишком против С++, пойду MrShoor-овский осиливать.

#7
12:38, 27 фев. 2018

/A\
ModularGraphicsFramework
верной дорогой идёте, товарисч! :)

#8
15:58, 27 фев. 2018

/A\
>-9999, "(NV) kernel: Illegal read or write to a buffer"
это как такое ты поймал?

#9
16:03, 27 фев. 2018

/A\
> Ну например писал сложный алгоритм, который почему-то падал на OpenGL, но без
> проблем работал на OpenCL, правда OpenCL версию я отлаживал еще и на С++ потому
> что там были мелкие проблемы.
Тоесть все это пишется под конкретный проект с целью экономии времени.

#10
19:34, 27 фев. 2018

Andrey
> это как такое ты поймал?
конвертнул динамический массив из GLSL как указатель)

emptiness_rain
> Тоесть все это пишется под конкретный проект с целью экономии времени.
Нет, все это пишется, чтоб повысить удобство использования GAPI без сторонних приложений, которые не всегда работают (отладки шейдеров на 980Ти я так и не дождался например).
Конкретного проекта нет, хотя подумывал запилить игру, но для этого нужно много времени, так что поделаю пока демки, может из них и сложится что-нибудь.

kipar
> Но я слишком против С++
когда-нибудь будут и скрипты...

#11
19:48, 27 фев. 2018

Зачем начинать движок с обёртки надо GAPI если неизвестно даже на каком уровне надо его абстрагировать? Почему не начинать с сериализации или с главного цикла?

#12
19:51, 27 фев. 2018

zlos
> Зачем начинать движок с обёртки надо GAPI
Да какбы движок уже начат и работает, значит начат был с того с чего надо)

#13
21:08, 11 мар. 2018

https://github.com/azhirnov/ModularGraphicsFramework/blob/master/… fer.cpp#L1532
Запилил тут копирование буфера в текстуру на огл, работает как в вулкане, но кода ощутимо больше.
Что-то мне все меньше и меньше нравится огл(

#14
17:32, 31 мар. 2018

Добавил скрипты для настройки пайплайнов, теперь не нужно создавать отдельный проект, пайплайны автоматически компилируются и транслируются во все шейдеры при сборке проекта.

Страницы: 1 2 3 Следующая »
ФлеймФорумПроЭкты

Тема в архиве.