0

我想用 jPCT 显示 3D 对象,所以我使用自定义 GLSurfaceView.Renderer 来显示我想要的。在下面,我需要显示一个相机预览。

它工作正常,但我的问题是当我显示 2 个 SurfaceView(1 个用于对象,1 个用于相机预览)时,我的软件滞后。我测试了它,这是因为我同时使用了 2 个 SurfaceView。

我该如何解决?我尝试在扩展 GLSurfaceView 的相机预览上显示我的 3D 对象:

public class CameraView extends GLSurfaceView implements SurfaceHolder.Callback

但是对象永远不会显示并且某些功能不起作用(例如在 2D 视图中搜索 3D 对象......)

有人有想法吗?

4

1 回答 1

0

有几种可能性。一是渲染器线程之间存在一些导致延迟的交互。另一个是添加额外的层会导致系统执行额外的 GLES 合成,这会减慢您的速度。(有关背景信息,请参阅此文档。)

“对象从不显示”声明让我有点不确定实际问题是什么。

无论哪种方式,纠正此问题的一种方法是消除相机 SurfaceView。您可以将相机预览发送到 SurfaceTexture(API 11+),然后将主 GLSurfaceView 上的内容渲染为纹理四边形。可以在Grafika中的“相机纹理”活动中找到一个示例。

于 2014-05-07T21:26:03.753 回答