ARCore — чтение наложенного изображения (скриншот AR-сцены)

Последние несколько месяцев я экспериментировал с ARCore. Я прочитал почти всю документацию. Говоря о примере приложения, я хочу извлечь наложенное изображение из приложения, то есть кадр, содержащий текстуру камеры, а также ботов, нарисованных opengl (например, скриншот). В предварительной версии 2 они предоставили класс TextureReader, который извлекает только текстуру камеры. Я много пытался, но не смог получить наложенное изображение. Есть ли способ сделать это или это просто невозможно?


person Tushar Rain    schedule 20.01.2018    source источник


Ответы (2)


Пример кода специально для примера HelloAR для захвата изображения (и сохранения его на устройстве) находится в этом ответе: Как сделать снимок камерой с помощью ARCore

person Clayton Wilkinson    schedule 22.01.2018
comment
Спасибо, сработало!! Я использовал тот же подход. Моя единственная ошибка заключалась в вызове glReadPixels до того, как все было нарисовано. Я неправильно истолковал описание glReadPixels и предположил, что он будет читать предыдущий кадр, если текущий кадр неполный :( - person Tushar Rain; 22.01.2018
comment
кстати, как я уже читал и теперь испытал :), glReadPixels очень медленный. Я не ожидаю этого, но есть ли альтернатива этому? - person Tushar Rain; 22.01.2018
comment
Я могу захватить кадр. Как видно из этого видео, удаленная сторона также может взаимодействовать со средой AR. . Как добиться такой функциональности, при которой два пользователя могут взаимодействовать с одним и тем же кадром, но на самом деле его снимает только один? - person Tushar Rain; 29.01.2018

Я думаю, что в основном вы хотите получить снимок экрана из представления OpenGL. Этот вопрос должен вам помочь: Снимок экрана в приложении Android OpenGL ES

person Steven Mohr    schedule 20.01.2018
comment
Большое спасибо . человек!! Оба ответа верны, я принял ответ Клейтона, потому что он специально упомянул о захвате в конце drawFrame, что было моей ошибкой, поскольку я думал, что порядок не будет иметь значения, поскольку glReadPixels будет читать предыдущий кадр. Охуеть я!! - person Tushar Rain; 22.01.2018