如何将 OpenGL 对象添加到 SurfaceView 相机中?

Posted

技术标签:

【中文标题】如何将 OpenGL 对象添加到 SurfaceView 相机中?【英文标题】:How to add a OpenGl object into a surfaceView camera? 【发布时间】:2015-08-17 14:21:58 【问题描述】:

我不确定如何将 OpenGl 制作的对象实现到相机的 surfaceView 中。是否可以将 OpenGl 对象设置为使用 SurfaceView 的自定义 android 相机。 ?

【问题讨论】:

【参考方案1】:

没有。

SurfaceView 的 Surface 具有生产者-消费者关系。在这种情况下,生产者是Camera,消费者是系统合成器(surfaceflinger)。要使用 OpenGL ES 在 Surface 上绘图,您需要将 OpenGL 附加为生产者,并且一个 Surface 不能同时有两个生产者。

您可以做的是创建第二个 SurfaceView,并调用 setZOrderMediaOverlay() 将其置于相机驱动的 Surface 之上但在 UI 之下,然后使用 GLES 在其上进行渲染。有关重叠 SurfaceView 的演示,请参阅 Grafika's“多表面测试”。

【讨论】:

以上是关于如何将 OpenGL 对象添加到 SurfaceView 相机中?的主要内容,如果未能解决你的问题,请参考以下文章

C语言中的OpenGL添加另一个对象

将纹理添加到 QT OpenGL 场景图

将OpenGL帧缓冲区对象与Qt(QOpenGLWidget)一起使用,绘制到帧缓冲区时如何禁用多重采样

opengl:调整大小时如何将对象保留在窗口中

OpenGL中的单色渲染到帧缓冲区对象?

无法将着色器链接到 OpenGL 中的程序对象,无法调试