Я использую класс PixelBuffer, описанный здесь http://www.anddev.org/android-2d-3d-graphics-opengl-tutorials-f2/possible-to-do-opengl-off-screen-rendering-in-android-t13232.html. В моем Renderer я использую GLU.lookAt для просмотра задней стороны 3D-объекта, но PixelBuffer, похоже, не возвращает буфер с задней стороной, а вместо этого по-прежнему показывает переднюю грань объекта. Что может быть причиной этого? Можно ли решить эту проблему?
Проблема с отрисовкой OpenGL ES за кадром
Ответы (1)
Прежде всего, pbuffers устарели и не поддерживаются на устройствах Android с графическими процессорами Nvidia Tegra. Android имеет встроенные классы для рендеринга вне экрана с именами TextureView и SurfaceTexture, которые вы должны использовать, или вы можете использовать FBO. У меня есть коллекция статей, которые помогут:
http://montgomery1.com/opengl/
Я не знаю, какой драйвер OpenGL ES вы используете, но, вероятно, он поддерживает только буферы с одинарной буферизацией, поэтому заднего буфера нет.
Задние грани — это другая концепция, которая зависит от направления намотки ваших треугольников, чтобы обеспечить отбраковку задних граней. Это не имеет ничего общего с рендерингом за кадром.
Обновление:
Добавление ссылки на пример кода, который показывает, как скопировать изображение текстуры в растровое изображение Android:
http://stackoverflow.com/questions/22683572/creating-a-bitmap-of-a-drawn-square-in-android-opengl-es-2-0/22693766#22693766