0

我正在使用此处描述的 PixelBuffer 类http://www.anddev.org/android-2d-3d-graphics-opengl-tutorials-f2/possible-to-do-opengl-off-screen-rendering-in-android-t13232 .html。在我的渲染器中,我使用 GLU.lookAt 查看 3D 对象的背面,但 PixelBuffer 似乎没有返回带有背面的缓冲区,而是仍然显示对象的正面。这可能是什么原因造成的?这个问题能解决吗?

4

1 回答 1

1

首先,pbuffers 已经过时,并且在配备 Nvidia Tegra GPU 的 Android 设备上不受支持。Android 具有用于屏幕外渲染的内置类,您应该使用名为 TextureView 和 SurfaceTexture 的类,或者您可以使用 FBO。我在这里收集了一些有助于帮助的文章:

http://montgomery1.com/opengl/

我不知道你正在运行什么 OpenGL ES 驱动程序,但它可能只支持单缓冲 pbuffers,所以没有后台缓冲区。

背面是一个不同的概念,它取决于三角形的缠绕方向以允许背面剔除。它与离屏渲染无关。

更新:

添加一些示例代码的链接,展示如何将纹理图像复制到 Android 位图中:

http://stackoverflow.com/questions/22683572/creating-a-bitmap-of-a-drawn-square-in-android-opengl-es-2-0/22693766#22693766
于 2014-04-01T15:27:58.457 回答