【发布时间】:2018-05-16 06:46:33
【问题描述】:
我正在使用Transformable 节点并且能够设置最小和最大比例值。但是我使用的模型的默认尺寸要大得多,所以我必须使用手势使其变小。
如何设置模型/可变形节点的默认比例值?
【问题讨论】:
标签: java android augmented-reality arcore sceneform
我正在使用Transformable 节点并且能够设置最小和最大比例值。但是我使用的模型的默认尺寸要大得多,所以我必须使用手势使其变小。
如何设置模型/可变形节点的默认比例值?
【问题讨论】:
标签: java android augmented-reality arcore sceneform
我认为您可以在设置实际的 Renderable 之前使用 TransformableNode 的 setLocalScale 方法。像下面的代码
TransformableNode andy = new TransformableNode(arFragment.getTransformationSystem());
andy.setLocalScale(new Vector3(0.1f, 0.1f, 0.1f));
andy.setParent(anchorNode);
andy.setRenderable(andyRenderable);
andy.select();
x、y、z值我用了0.1f,然后看起来更好
【讨论】:
TransformableNode 的ScaleController 的最大值/最小值限定。您可以使用transformableNode.getScaleController().setMaxScale(maxScale) 和transformableNode.getScaleController().setMinScale(minScale) 进行更改。
TransformableNode 的缩放尺寸(以米为单位)。假设我在 y 方向上缩放了一个立方体。现在我想以单位米为单位获得它的缩放大小。请帮我怎么做?
您可以轻松地使用此代码为可转换节点设置默认比例:
TransformationSystem arTS;
arTS = MainActivity.getArFragment().getTransformationSystem();
TransformableNode node = new TransformableNode(arTS);
node.setRenderable(modelRenderable);
node.getScaleController().setMinScale(0.1999f);
node.getScaleController().setMaxScale(0.2000f);
node.setLocalScale(exhibit.getModelScale());
node.setLocalPosition(exhibit.getModelPosition());
//node.setParent(anchorNode);
node.setParent(sceneView.getScene());
node.getRotationController().setEnabled(true);
node.getScaleController().setEnabled(true);
sceneView.getScene().addChild(node);
node.select();
【讨论】:
.setMinScale(0.1999f).
imho 设置节点默认比例的最简单方法是在 sfa 文件中定义 3d 模型的比例属性
【讨论】:
在您的 .sfa 文件中,更改 scale 的默认值,然后加载模型并重新构建应用程序
【讨论】: