Android: как использовать samplerExternalOES и sampler2D в одном и том же фрагментном шейдере

Я писал здесь как сумасшедший, пытаясь заставить мой код фрагментного шейдера работать. Наконец я наткнулся на кое-что, что могло бы исправить то, что не так.

Я пытаюсь использовать OpenGl ES 2.0 на Android для управления предварительным просмотром камеры. Для этого мне нужно загрузить во фрагментный шейдер мою собственную текстуру. Таким образом, у меня есть текстура камеры как samplerExternalOES, а моя собственная текстура как sampler2D. Я видел один ответ, в котором говорилось, что есть ошибка при попытке использовать оба этих типа текстур в одном фрагментном шейдере. Может ли кто-нибудь пролить свет на это для меня? Почему нельзя использовать текстуру samplerExternalOES и текстуру sampler2D в одном шейдере? И как лучше всего обойти эту проблему?


person MikeShiny    schedule 25.01.2013    source источник
comment
Можете показать фрагментный шейдер? Какая у вас ошибка ?   -  person Fabien R    schedule 02.02.2013
comment
В кодеке ваших устройств может быть аппаратное ограничение, но я сомневаюсь в этом. Я знаю, что вы не можете печатать на экран и выводить на FBO за один проход. Чтобы обойти это, вы просто выполняете два прохода ... Одна программа (пара шейдеров вершинных фрагментов) записывает на экран, а затем отключает вставки и повторно запускает ...   -  person izzy    schedule 30.12.2014
comment
Дополнительная информация на случай, если кто-то еще столкнется с этим: stackoverflow.com/questions/13376254/   -  person msfeldstein    schedule 03.06.2015


Ответы (1)


Вы можете использовать render-to-texture для решения вашей проблемы.

Выполните рендеринг samplerExternalOES и sampler2D в отдельных FBO перед их объединением в качестве окончательного рендеринга.

person Fabien R    schedule 01.03.2014