我有一个结合了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。
答案 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();
由于将视口缩小到原始屏幕的一部分,但所有输入处理方法都希望屏幕点击来自全屏。