我正在使用Android中的Kudan SDK处理增强现实。我正试图在手机摄像头指向标记时生成3D模型。我能够做到这一点。但如果我将相机从标记移开,模型就会消失。除非应用程序关闭或相机关闭,否则我不希望3D模型消失。我想在移动相机的同时移动3D模型。以下是插入标记和3D模型的代码。
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);
}
但即使我将相机远离标记,我也希望保留这个3D模型。
答案 0 :(得分:0)
模特正在消失,因为当然没有标记。如果您希望始终在同一位置绘制模型,只需在每个框架上保存模型的最后位置,并在标记检测丢失时在该位置绘制模型。如果您想尝试在世界上完全相同的位置(而不是屏幕上的相同位置)绘制它,您可以尝试使用设备传感器估算手机的移动并相应地更新模型的位置。