2016-08-09 8 views
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(); 
+0

ただ、野生の推測を、 'Gdx.gl20.glActiveTexture(GL20.GL_TEXTURE0)を追加します。ただ、ステージを描画する前に'。 – Xoppa

+0

うん、それだった!どうもありがとう。 (それが何をしているのかは分かりませんが、それはうまくいきます;-))あなたの答えを正しいものとしてマークしたいのですが、それはコメントでは不可能です... – mbauer

答えて

0

全体が方法が、現在この(簡体字)のように見えるレンダリングXoppaの「野生の推測では、」完全に問題を解決しました。簡略化されたコードは次のようになります。

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); 
Gdx.gl20.glActiveTexture(GL20.GL_TEXTURE0); 
getStage().act(delta); 
getStage().draw(); 
関連する問題