2017-09-24 4 views
0

こんにちは、私はARToolKit v6を使ってマーカーをnft jpgイメージに基づいてレンダリングしていますが、それは非常にうまくいきます。 私は画面(ビュー)にマーカーの位置を取得し、そこにカスタムtextViewを追加する必要がありますそれは可能ですか? projectionMatrixとmodelViewMatrixに基づいてマーカーの2d位置を取得する方法は?2Dマーカーの位置

または、キューブの代わりにテキストまたはイメージを描画できますか?

コード

@Override 
public void draw() { 
    super.draw(); 

    GLES20.glEnable(GLES20.GL_CULL_FACE); 
    GLES20.glEnable(GLES20.GL_DEPTH_TEST); 
    GLES20.glFrontFace(GLES20.GL_CCW); 


    boolean show = false; 
    for (int trackableUID : trackableUIDs) { 
     if (ARToolKit.getInstance().queryMarkerVisible(trackableUIDs.get(trackableUID))) { 
      float[] projectionMatrix = ARToolKit.getInstance().getProjectionMatrix(); 
      float[] modelViewMatrix = ARToolKit.getInstance().queryMarkerTransformation(trackableUIDs.get(trackableUID)); 
      Log.i("INFOOOOO", projectionMatrix.toString()); 
      Log.i("INFOOOOO", modelViewMatrix.toString()); 
      cube.draw(projectionMatrix, modelViewMatrix); 
      show = true; 
     } 
    } 
} 
+0

私は、あなたが達成したいのか分からないけど多分[OpenGLでキューブのどのサーフェスがクリックされるのでしょうか?](https://stackoverflow.com/questions/45893277/is-it-possble-get-which-surface-of-cube-will-be- open-in-opengl/45946943#45946943)が役に立ちます。 – Rabbid76

答えて

0

@sturnerのおかげでそんなに、私は誰かが解決策を探している場合は、以下の解決策は、コードされた

  final float[] projectionMatrix = ARToolKit.getInstance().getProjectionMatrix(); 
      final float[] modelViewMatrix = ARToolKit.getInstance().queryMarkerTransformation(trackableUIDs.get(trackableUID)); 

      if (view == null) { 
       view = new int[4]; 
       view[0] = 0; 
       view[1] = 0; 
       view[2] = ARTrackingActivity.width; 
       view[3] = ARTrackingActivity.height; 
      } 

      int i = GLU.gluProject(0, 0, 0, modelViewMatrix, 0, projectionMatrix, 0, view, 0, floats, 0); 
      if (i == GLES20.GL_TRUE) { 
       // draw the object in screen 
      } 
関連する問題