LibGDX + ARCore:使用多个摄像头和视口

时间:2018-01-10 11:26:58

标签: opengl libgdx google-project-tango perspectivecamera arcore

我有一个结合了LibGDX和ARCore的应用程序,基于https://github.com/google/helloargdx这适用于全屏。

现在我有一个不同的要求:我垂直分割横向屏幕,现在想要从ARCore相机控制的透视相机向左侧渲染世界,第二次使用不同的透视相机在外部控制右边。

对于"背景"视频(物理设备摄像头)已经可以使用,但我现在卡在了LibGDX的透视摄像机的视口(或其他任何东西)上。

ARCore示例设置透视摄像机的值如下:

float vm[] = new float[16];

Camera arCamera = frame.getCamera();
arCamera.getProjectionMatrix(vm, 0, camera.near, camera.far);
camera.projection.set(vm);
arCamera.getViewMatrix(vm, 0);
camera.view.set(vm);
camera.combined.set(camera.projection);
Matrix4.mul(camera.combined.val, camera.view.val);

但是我现在怎么能(在上面之后)将渲染限制在屏幕的左边? " x-middle"现在,旧屏幕设置应该是物理屏幕的1/4。

1 个答案:

答案 0 :(得分:1)

问题解决了。事实证明,甚至不需要使用Viewports等,我们可以使用

简单地限制表面上的绘图区域
HdpiUtils.glViewport(0, 0, Gdx.graphics.getWidth() / 2, Gdx.graphics.getHeight());

但是您需要注意,您现在还需要转换屏幕点击,例如:

int x = Gdx.input.getX() * 2;
int y = Gdx.input.getY();

由于将视口缩小到原始屏幕的一部分,但所有输入处理方法都希望屏幕点击来自全屏。