2017-03-25 2 views
0

私はアンドロイドのクーダンSDKを使用して、拡張現実感に取り組んでいます。電話機のカメラがマーカーを指しているときに3Dモデルを生成しようとしています。私はこれを達成することができます。しかし、マーカーからカメラを遠ざけると、モデルは消えてしまいます。アプリケーションが終了していないか、カメラが閉じられていない限り、3Dモデルが消えてしまいます。私はカメラを動かしながら3Dモデルを動かしたいと思う。マーカーと3Dモデルを挿入するコードは次のとおりです。カメラをマーカーから離して移動させたときに3Dモデルが消えるアンドロイド(Kudan AR)

private void addImageTrackable() { 

    // Initialise image trackable 
    trackable = new ARImageTrackable("Space"); 
    trackable.loadFromAsset("user_pic.jpg"); 

    // Get instance of image tracker manager 
    ARImageTracker trackableManager = ARImageTracker.getInstance(); 

    // Add image trackable to image tracker manager 
    trackableManager.addTrackable(trackable); 
} 

private void addModelNode() { 
    // Import model 
    ARModelImporter modelImporter = new ARModelImporter(); 
    modelImporter.loadFromAsset("cube.jet"); 
    ARModelNode modelNode = (ARModelNode) modelImporter.getNode(); 

    // Load model texture 
    ARTexture2D texture2D = new ARTexture2D(); 
    texture2D.loadFromAsset("cube.png"); 

    // Apply model texture to model texture material 
    ARLightMaterial material = new ARLightMaterial(); 
    material.setTexture(texture2D); 
    material.setAmbient(0.8f, 0.8f, 0.8f); 


    // Apply texture material to models mesh nodes 
    for (ARMeshNode meshNode : modelImporter.getMeshNodes()) { 
     meshNode.setMaterial(material); 
    } 


    modelNode.rotateByDegrees(10, 1, 0, 0); 
    modelNode.scaleByUniform(3f); 
    modelNode.setPosition(1, 1, 2000); 
    modelNode.play(); 

    // Add model node to image trackable 
    trackable.getWorld().addChild(modelNode); 
    modelNode.setVisible(true); 

} 

Here is the image of the 3D model coming in front of the marker

しかし、私は離れマーカーから私のカメラを離れて移動する場合でも、この3Dモデルを維持したいです。

答えて

0

もちろん、マーカーがないのでモデルは消えています。とにかく同じ場所でモデルを描き続けたい場合は、モデルの最後の位置を各フレームに保存し、マーカー検出が失われたときにその位置にモデルを描画します。それを世界の同じ場所(画面上の同じ場所ではない)に描画しようとする場合は、デバイスセンサを使用して電話機の動きを推定し、それに応じてモデルの位置を更新することができます。

+0

任意のコードをお手伝いください。 –

+0

私はそのような環境での私の経験によって、あなたがそれを解決するために必要なことを教えてくれました。私はここにあなたのための特定のコードを持っていませんが、私は自分でそれを行うことができない理由は何もありません...さらに質問や具体的な困難がある場合は、先に尋ねてみてください。 – yakobom

+0

私はkudan SDKで作業していますが、3Dモデルをどこに作成するのかわかりません。私は彼らの書類を通ったが、それはとにかく私を助けなかった。 'trackable'オブジェクトには、' onDetect' onTrack'のようないくつかのメソッドがありますが、キューブを表示することができないリスナーがあります –

関連する問題