Android Opengl FBO offscreen

Я разрабатываю краску для пальцев типа приложения Android. Я использую OpenGL ES 2.0. В основном у меня есть изображение, в котором каждый сенсорный экран должен соответствовать альфа-окружности, где будет показано другое изображение, которое находится ниже. Я пробовал разные методы, но довольно медленный, потому что он функционирует подобно использованию органического glTexSubImage2D, замедляющего фазу рендеринга. Я пытаюсь понять использование FBO, поскольку они позволяют выполнять внеэкранную визуализацию. Может ли кто-нибудь лучше объяснить, что означает рендеринг за кадром, и какие преимущества могут получить для ускорения моего метода?

Я полагаю, что вне экрана означает, что вы можете изменить созданный мной фреймбуфер, с пути onDrawFrame? В другом потоке?

Помимо возможности визуализации в экранном окне с использованием OpenGL ES 2.0, вы также можете отображать на невидимые поверхности вне экрана, называемые pbuffers (сокращение от буфера пикселей). Pbuffers может в полной мере использовать любое аппаратное ускорение, доступное для OpenGL ES 2.0, как это делает окно. Pbuffers чаще всего используются для создания текстурных карт. Если все, что вы хотите сделать, отображает текстуру, мы рекомендуем использовать объекты фреймбуфера (рассмотренные в главе 12, «Объекты Framebuffer») вместо pbuffers, потому что они более эффективны. Однако pbuffers могут быть полезны в некоторых случаях, когда объекты framebuffer не могут использоваться, например, при рендеринге вне экрана с OpenGL ES, а затем используя его как текстуру в другом API, таком как OpenVG.

[Источник: руководство по программированию OpenGL ES 2.0]

Надеюсь, это поможет. Прочтите это внимательно: «pbuffers все еще могут быть полезны для рендеринга на экранную поверхность с OpenGL ES»

Вы приближаетесь к большой пропускной способности памяти, так как вам нужно прочитать (часть) экрана и снова вернуть обратно тот же объем данных обратно в память GPU. Это очень медленно, и ваш код чертежа ждет, прежде чем изображение будет перенесено обратно на графический процессор перед рендерингом. Вы рассматривали рисование квадроциклов для каждого пальцевого пресса или какого-то примитива, который приближает ваши потребности? Зачем для этого нужен OpenGL?

Intereting Posts
Android ANR, код активности в поле зрения Включите телефон Android в гарнитуру Bluetooth Какие датчики используются для Sensor.TYPE_ROTATION_VECTOR Как изменить цвет коммутатора Расположение моего пакета во время отладки USB в eclipse Android: как отключить все клики в представлении Android studio 0.4.2 + gradle + Android Исходный код ScrollView: как воспроизводить snapToInterval и snapToAlignment для Android? Создайте 2D-штрих-код (например, QR-код, матрицу данных, PDF417) на iPhone и Android ListView в фрагменте не может сохранять положение прокрутки Есть ли способ протестировать пользовательские вкладки Chrome с помощью Espresso? Можно ли отправлять push-уведомления на Android без создания какого-либо приложения? Как перехватить наблюдаемый объект и изменить его в RxJava, прежде чем вернуться к подписчику? Ручное раздувание пользовательского представления дает разные макеты для пользовательского вида ActionBar Как создать учетную запись от Smack 4.1