[英]Image Processing place 3D model on image by using ArFragment using ARCore and Android Studio
我已經通過檢測圖像成功地實現了 3D 模型,但問題是我必須旋轉和放大並縮小該模型。我也通過使用 transformabel 方法實現了它,但問題是每當我觸摸該模型時,它都會變倍。
AnchorNode anchorNode = new AnchorNode(anchor);
arFragment.getArSceneView().getScene().addChild(anchorNode);
TransformableNode transformableNode = new TransformableNode(arFragment.getTransformationSystem());
transformableNode.setParent(anchorNode);
transformableNode.setRenderable(modelRenderable);
transformableNode.select();
] 1
移動可渲染對象的一種常用方法(可能是撰寫本文時的主要方法)是實際刪除它,然后在新位置或姿勢中創建它 - 例如:
在代碼中:
private AnchorNode moveRenderable(AnchorNode markAnchorNodeToMove, Pose newPoseToMoveTo) {
//Move a renderable to a new pose
if (markAnchorNodeToMove != null) {
arFragment.getArSceneView().getScene().removeChild(markAnchorNodeToMove);
} else {
Log.d(TAG,"moveRenderable - markAnchorNode was null");
return null;
}
Frame frame = arFragment.getArSceneView().getArFrame();
Session session = arFragment.getArSceneView().getSession();
Anchor markAnchor = session.createAnchor(newPoseToMoveTo.extractTranslation());
AnchorNode newMarkAnchorNode = new AnchorNode(markAnchor);
newMarkAnchorNode.setRenderable(andyRenderable);
newMarkAnchorNode.setParent(arFragment.getArSceneView().getScene());
return newMarkAnchorNode;
}
以上是示例應用程序的編輯摘錄 - 您可以在此處找到完整的源代碼並對其進行修改等: https : //github.com/mickod/LineView
另一個注意事項 - 在 AR 環境中放大和縮小可渲染對象可能會有些混亂。 可渲染對象就像現實世界中的一個對象,因此您可以談論放大和縮小整個相機視圖,或者使可渲染對象本身更大或更小。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.