0
我正在嘗試創建一個AR遊戲。我使用的方法是https://github.com/chili-epfl/libgdx-sample/blob/master/core/src/ch/epfl/chili/libgdx_sample/LibgdxSample.java,但是在deviceCameraControl.renderBackground()之後;我想呈現舞臺。LibGdx不使用紋理(混合OpenGL本機和LibGDX)
該階段包含此刻一個圖像。這將正確顯示,直到首先繪製相機預覽爲止。一旦發生這種情況,而不是加載的圖像,它再次顯示相機預覽,縮小到圖像的大小。因此,它看起來像不是使用加載的圖像,而是再次顯示相機預覽的紋理。
這可能是什麼原因以及如何解決?
整個渲染方法目前看起來像這樣(簡化):
if (crosshair == null) {
crosshair = new Image(new Texture(Gdx.files.internal("data/image0008.png")));
crosshair.setPosition(stage.getWidth()/2 - crosshair.getWidth() - 2, stage.getHeight()/2 - crosshair.getHeight()/2);
stage.addActor(crosshair);
}
Gdx.gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
if (device_cam == null) {
device_cam = new MobileCameraView(game, game.getCameraControler());
device_cam.init((int) w, (int) h);
} else if (device_cam.isStopped()) device_cam.start();
else {
device_cam.renderBackground();
}
camera.update(true);
getStage().act(delta);
getStage().draw();
只是胡亂猜測,加上'Gdx.gl20.glActiveTexture(GL20.GL_TEXTURE0);只需繪製階段之前'。 – Xoppa
是的,就是這樣!非常感謝。 (不知道它做了什麼,但它的工作原理;-))我想標記你的答案是正確的,但這是不可能的評論... – mbauer