模型未显示,但阴影显示
Model not being displayed, But the shadow is
我正在尝试开发一个应用程序并开始开发一个当前使用 AR 在表面上显示 3d 模型的应用程序。
一切正常,直到突然图像不显示但阴影显示。我尝试将代码还原为以前的代码,但没有任何效果。
可以看到阴影,但看不到模型。我下载了一个模型obj并添加了它。一开始它运行良好,突然模型停止显示。
public class MainActivity extends AppCompatActivity {
private boolean tapExecuted = false;
private final Object syncTaps = new Object();
private ArFragment arFragment;
private TextView debugText;
private ArSceneView sceneView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
debugText = findViewById(R.id.debug_text);
arFragment = (ArFragment)getSupportFragmentManager().findFragmentById(R.id.ux_fragment);
arFragment.setOnTapArPlaneListener(this::handleTap);
this.sceneView = this.arFragment.getArSceneView();
}
protected void handleTap(HitResult hitResult, Plane plane, MotionEvent motionEvent) {
// this.debugText.setText(hitResult.getHitPose().toString());
synchronized (this.syncTaps) { // So that only one tap is validated at a time
if (this.tapExecuted) {
return;
}
this.tapExecuted = true;
}
ModelRenderable.builder()
.setSource(this, Uri.parse("axis test.sfb"))
.build().thenAccept(renderable -> addModelToScene(hitResult.createAnchor(), renderable))
.exceptionally(
throwable -> {
Log.e("TAG", "Unable to load renderable");
return null;
});
}
private void addModelToScene(Anchor anchor, Renderable renderable) {
AnchorNode anchorNode = new AnchorNode(anchor);
// To give User flexibility to move, resize and rotate the model
TransformableNode transformableNode = new TransformableNode(this.arFragment.getTransformationSystem());
// disabling resize and rotate
transformableNode.getRotationController().setEnabled(false);
transformableNode.getScaleController().setEnabled(false);
transformableNode.setRenderable(renderable);
transformableNode.setParent(anchorNode);
transformableNode.select();
this.sceneView.getScene().addChild(anchorNode);
this.debugText.setText("Model Added to the tap");
}
我想通了。我使用的是旧版本的 sceneform。我想它可以在 phone 上与旧版本的软件一起使用,但是当它更新后就停止工作了。
我将 sceneform 从 1.8.0 更新到 1.11.0
我正在尝试开发一个应用程序并开始开发一个当前使用 AR 在表面上显示 3d 模型的应用程序。
一切正常,直到突然图像不显示但阴影显示。我尝试将代码还原为以前的代码,但没有任何效果。
可以看到阴影,但看不到模型。我下载了一个模型obj并添加了它。一开始它运行良好,突然模型停止显示。
public class MainActivity extends AppCompatActivity {
private boolean tapExecuted = false;
private final Object syncTaps = new Object();
private ArFragment arFragment;
private TextView debugText;
private ArSceneView sceneView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
debugText = findViewById(R.id.debug_text);
arFragment = (ArFragment)getSupportFragmentManager().findFragmentById(R.id.ux_fragment);
arFragment.setOnTapArPlaneListener(this::handleTap);
this.sceneView = this.arFragment.getArSceneView();
}
protected void handleTap(HitResult hitResult, Plane plane, MotionEvent motionEvent) {
// this.debugText.setText(hitResult.getHitPose().toString());
synchronized (this.syncTaps) { // So that only one tap is validated at a time
if (this.tapExecuted) {
return;
}
this.tapExecuted = true;
}
ModelRenderable.builder()
.setSource(this, Uri.parse("axis test.sfb"))
.build().thenAccept(renderable -> addModelToScene(hitResult.createAnchor(), renderable))
.exceptionally(
throwable -> {
Log.e("TAG", "Unable to load renderable");
return null;
});
}
private void addModelToScene(Anchor anchor, Renderable renderable) {
AnchorNode anchorNode = new AnchorNode(anchor);
// To give User flexibility to move, resize and rotate the model
TransformableNode transformableNode = new TransformableNode(this.arFragment.getTransformationSystem());
// disabling resize and rotate
transformableNode.getRotationController().setEnabled(false);
transformableNode.getScaleController().setEnabled(false);
transformableNode.setRenderable(renderable);
transformableNode.setParent(anchorNode);
transformableNode.select();
this.sceneView.getScene().addChild(anchorNode);
this.debugText.setText("Model Added to the tap");
}
我想通了。我使用的是旧版本的 sceneform。我想它可以在 phone 上与旧版本的软件一起使用,但是当它更新后就停止工作了。
我将 sceneform 从 1.8.0 更新到 1.11.0