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

Diligent Engine - современная кросс-платформенная низкоуровневая графическая библиотека (31 стр)

Страницы: 128 29 30 31 32 33 Следующая »
#450
9:56, 9 июня 2021

assiduous
Ага, понятно, спасибо, интересно.

Мы как пользователи движка собрали объекты для рендера, сделали группы для каждого каскада теней. Всё подготовили. Получается, что каждую каскаду можно генерировать полностью параллельно? Тогда буст очевиден. Или всё же есть нюансы?


#451
9:58, 9 июня 2021

А, и G-буфер тоже получается, то что до освещения делается.

#452
10:50, 9 июня 2021

betauser
Да, можно командные буферы для частей фрейма записать паралелльно в разных потоках, а потом отправить на исполнение в нужном порядке. Фрейм граф позволяет это автоматизировать - приложение задает, что нужно сделать (например, нарисовать каскады, g-буфер и т.п.), входы/выходы для каждой задачи и всякие параметры, а фрейм граф сам распределяет их по потокам.

#453
11:46, 9 июня 2021

betauser
> Это основные продающие критерии при сравнении.
Метал за деньги не мешает?

#454
12:46, 9 июня 2021

GLoom
> > Это основные продающие критерии при сравнении.
> Метал за деньги не мешает?
"продающие критерии" это мысль про "причины выбора". Не финансист, мнение такое, что на коммерческие/закрытые платформы почему бы и не продавать. При выборе лучше сразу знать что по чем, "please contact us for details." - скорее всего не получится осилить связаться узнать, проще искать дальше.

Еще, наверное, можно продавать дополнительные сильно продвинутые фичи, виджеты потому что цельно, как часть чего-то большего.

#455
14:01, 9 июня 2021
betauser помню когда то у вас движок был на Ogre3D. Почему отказались от него?
#456
14:12, 9 июня 2021

betauser
> betauser помню когда то у вас движок был на Ogre3D. Почему отказались от него?
По причинам выбора, например, из-за отсутствия мультипоточности. Ну, Ogre3D он уже не развивается, архитектурно он для тех еще старых GPU. Мы его перелопалили постепенно, в новом движке перешли на Bgfx. У Bgfx тоже есть нюансы, например, сейчас нет множества потоков, которые как понял есть в Diligent. Рей-трейсинга тоже еще нет.

#457
22:00, 13 июня 2021

assiduous

Выглядит интересно. Однако удивило, что не поддерживается многооконность (несколько swapchain) для OpenGL-устройства. Наличие многооконности для меня является решающим фактором.
Есть ли какой-нибудь workaround?

Позапускал в релизе примеры. В большинстве из них DX11 выдавал больший fps, чем другие бэкэнды.

#458
1:53, 14 июня 2021

> Однако удивило, что не поддерживается многооконность (несколько swapchain) для OpenGL-устройства
Почему OpenGL является объектом интереса, когда Diligent поддерживает 4 нормальных низкоуровенвых API? Мы поддерживаем OpenGL исключительно ради OpenGLES3.0 на очень старых Андроидах и для WebGL. В остальных случаях смысла использовать OpenGL нет никакого.

> В большинстве из них DX11 выдавал больший fps, чем другие бэкэнды.
Большинство примеров очень простые, и преимущества DX12/Вулкана негде применить. Кроме того, DX11 создает скрытый поток в котором происходит запись команд. В DX12 и Вулкане запись команд происходит непосредственно в том же потоке, что будет несколько медленнее.

Астероиды - пример, который демонстрирует преимущества ДХ12 в bindless режиме и многопоточной записи.

#459
(Правка: 4:35) 4:31, 14 июня 2021

assiduous
> Почему OpenGL является объектом интереса, когда Diligent поддерживает 4
> нормальных низкоуровенвых API? Мы поддерживаем OpenGL исключительно ради
> OpenGLES3.0 на очень старых Андроидах и для WebGL. В остальных случаях смысла
> использовать OpenGL нет никакого.

OpenGL все еще необходим для совместимости с видеокартами предыдущего поколения.
Если например на винде можно обойтись DX11, то в Linux GL-ю альтернативы нет.

#460
6:53, 14 июня 2021

0xc0de
Почему нельзя обновить Линукс до версии, поддерживающей Вулкан?

В любом случае, инициализация GL контекста на Линуксе требует хэндла окна - создать своп чейн отдельно от контекста нельзя.

#461
10:23, 14 июня 2021

assiduous
> Почему нельзя обновить Линукс до версии, поддерживающей Вулкан?

Не все видеокарты поддерживают вулкан. Например для видеокарт с архитектурой fermi нет драйверов с поддержкой вулкана, но, тем не менее, есть драйвера, которые держат opengl аж версии 4.6.

assiduous
> создать своп чейн отдельно от контекста нельзя
Один свопчейн на контекст было бы достаточно + расшарить контексты, чтобы были доступны ресурсы во всех контекстах. Ресурсы, которые расшарить нельзя (vao, framebuffer) - при необходимости скрыто дублировать внутри api.

#462
12:25, 14 июня 2021

0xc0de
> Не все видеокарты поддерживают вулкан. Например для видеокарт с архитектурой
> fermi нет драйверов с поддержкой вулкана, но, тем не менее, есть драйвера,
> которые держат opengl аж версии 4.6.
Тогда пусть горят в аду с этим OpenGL старьём :)

#463
19:57, 14 июня 2021

0xc0de
> Один свопчейн на контекст было бы достаточно + расшарить контексты, чтобы были доступны ресурсы во всех контекстах. Ресурсы, которые расшарить нельзя (vao, framebuffer) - при необходимости скрыто дублировать внутри api.

На Линуксе инициализация контекста (во всяком случае в xlib) возможна только одновременно с созданием окна. Приаттачить новый контекст к окну - я не знаю как. Кроме того, каждый контекст имеет свой глобальный стейт и только один контекст может быть активен в потоке. Поэтому как рендерить в разные окна из одного потока без дублирования всех команд - я тоже не знаю. В итоге, сделать реализацию многооконности (как и многопоточности) в OpenGL можно только через нагромождение хаков - поэтому ни того ни другого нет.

#464
11:24, 17 июня 2021

0xc0de
> Например для видеокарт с архитектурой fermi нет драйверов с поддержкой вулкана
забавно - ведь dx12 там есть?

Страницы: 128 29 30 31 32 33 Следующая »
ПрограммированиеФорумГрафика