OpenGL: глубина выборки на Tiled GPU с расширением выборки только для цвета - PullRequest
0 голосов
/ 07 ноября 2019

Я хочу получить глубину из локальной памяти тайла с помощью OpenGL ES.

Это необходимо для создания эффекта мягких частиц и отсроченных надписей только для цвета в видеоигре. ARM_shader_framebuffer_fetch_depth_stencil * Расширение 1004 * прекрасно работает и дает прямой доступ к значению глубины.

Теперь я хочу достичь того же результата с ARM_shader_framebuffer_fetch и EXT_meferВ GDC talk Перевод Fortnite на мобильные устройства с Vulkan и OpenGL ES я вижу, что одним из возможных решений является запись значения глубины в альфа .

Этот подход не работает дляменя из-за большой потери точности, моя альфа только 8 бит. Я рассматриваю добавление второго приложения с достаточной точностью и запись в него с помощью MRT .

Вопрос в том, : можно ли использовать MRT, или я пропускаю какой-то важный трюк?

1 Ответ

1 голос
/ 11 ноября 2019

Реализации, поддерживающие ARM_shader_framebuffer_fetch, вовсе не гарантируют поддержку MRT. Если они это поддерживают, то можно получить только цвет нулевого вложения. Есть также некоторые ограничения в отношении цветового формата;например, он поддерживает только стандартные форматы цвета, поэтому, вероятно, не может иметь достаточной точности для глубины, даже если вы поместите информацию о глубине в нулевое вложение.

Использование EXT_shader_framebuffer_fetch является более общим и добавляет полную поддержку MRT, но не все плиткиграфические процессоры на его основе.

...