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

Минимальный мультиплатформенный рендерер

Advanced: Тема повышенной сложности или важная.

Страницы: 1 2 3 4 Следующая »
#0
10:19, 30 окт. 2014

Затёртая до дырок тема.

Нужно сделать сабж для кучи платформ -DX11/DX12/GL4/Metal/Mantle и др. У каждой платформы свои отличия в установке стейтов и прочего 

Есть класс RenderDevice или как его там. Выше его независимый от платформы код, ниже только зависимый. Вопрос в минимальном количестве методов при максимальной эффективности по возможностям и производительности

P.S. И да, UE4 рендер видел :)


#1
10:36, 30 окт. 2014

В одиночку не сможешь эти все платформы запрогать. Разве что-то очень простое. Типа вращающегося кубика. и то за большое количество времени.

#2
10:37, 30 окт. 2014

Не, я не настолько крут. Я делал только DX10/OGL.
А зачем тебе так много GAPI? И как ты собираешься делать под тот же DX12 и Mantle, которые еще официально не вышли?
Да и с шейдерами что делать? :)

#3
10:56, 30 окт. 2014

innuendo
> Вопрос в минимальном количестве методов при максимальной эффективности по
> возможностям и производительности

Сделай везде три метода - Init(), Render(), Shutdown() :D

#4
11:07, 30 окт. 2014

ASD
> Сделай везде три метода - Init(), Render(), Shutdown() :D

Условие минимальности выполнено, остальные ?

#5
11:28, 30 окт. 2014

innuendo
> У каждой платформы свои отличия в установке стейтов и прочего
Сделай высокоуровневый апи - вьюпорт,сцена,меши,материалы. Для реализаций только минимальные хелперы для каждого гапи.

#6
11:35, 30 окт. 2014

Ataman
> Сделай высокоуровневый апи - вьюпорт,сцена,меши,материалы.

С высокоуровневым вопросов нету.

> Для реализаций только минимальные хелперы для каждого гапи.

Вопрос вот в этом самом минимальном коде при максимальных возможностях. Как сделано в UE4 не сильно впечатляет - RHI имеет много методов и заточен под DX11

#7
11:37, 30 окт. 2014
innuendo
Ну и развлечения у вас, молодой человек)
#8
11:40, 30 окт. 2014
Osiris
Я уже не молодой :)

#9
11:52, 30 окт. 2014

innuendo
> Вопрос вот в этом самом минимальном коде при максимальных возможностях
Общий низкоуровневый rhi не нужен. Пишешь реализацию высокоуровнего апи прямо на нативном гл\дх. Минимальные хелперы - частичные врапперы для уменьшения писанины (под дх можно вообще без них).

#10
12:04, 30 окт. 2014

Ataman
> Пишешь реализацию высокоуровнего апи прямо на нативном гл\дх

Как-то не очень понял. Можно пример ?

#11
12:41, 30 окт. 2014

innuendo
Посмотри в сторону BGFX, она очень удачно сделана в плане мультиплатформенности.

#12
12:46, 30 окт. 2014

innuendo
> Как-то не очень понял. Можно пример ?
Главное, не заморачивайся обобщением в единый rhi - несовместимость платформ все усложняет.
А в простом случае достаточно my_fbo.Bind(); glEnable (GL_DEPTH_TEST). Или для эффективности if (some_ext_exist) { my_nv_specific_render_func(); }

#13
12:53, 30 окт. 2014
innuendo
> Я уже не молодой :)

А сюда по теме и не скажешь)

#14
13:02, 30 окт. 2014
подписался
Страницы: 1 2 3 4 Следующая »
ПрограммированиеФорумГрафика

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