我在 ArFragment 中显示 3D 对象。所以我将 .obj 文件和 .mtl 文件放在 sampledata 文件夹中。然后我右键单击 obj 文件,然后选择导入 Sceneform Assets 以添加 .sfa/.sfb 文件。
所以我在标记图像时可以显示 3d 对象,但是对象太大了。
这是我的 .sfa 文件详细信息
{
bound_relative_root: {
x: 0.5,
y: 0,
z: 0.5,
},
materials: [
{
name: "Material.001",
parameters: [
{
baseColor: null,
},
{
baseColorTint: [
0.80000000000000004,
0.80000000000000004,
0.80000000000000004,
1,
],
},
{
metallic: 1,
},
{
roughness: 0.120695,
},
{
opacity: null,
},
],
source: "build/sceneform_sdk/default_materials/obj_material.sfm",
},
],
model: {
attributes: [
"Position",
"TexCoord",
"Orientation",
],
collision: {},
file: "sampledata/dongbaek.obj",
name: "dongbaek",
recenter: "root",
scale: 0.200000
},
version: "0.52:1",
}
我认为它可以按比例调整大小,但我改变了值,它没有改变。大小相同
那么如何调整 3d 对象的大小?
添加3d对象文件制作.sfa/.sfb文件有什么问题吗?(导入Sceneform Asset)
如果你知道,请帮助我。
最佳答案
对象缩放由缩放 Controller 更改。通过设置 minScale 和 maxScale 值。在设置父节点之前 - anchor 节点。请参见下面的示例。
// Create the Anchor.
Anchor anchor = hitResult.createAnchor();
AnchorNode anchorNode = new AnchorNode(anchor);
anchorNode.setParent(arFragment.getArSceneView().getScene());
// Create the transformable andy and add it to the anchor.
TransformableNode node = new TransformableNode(arFragment.getTransformationSystem());
// Maxscale must be greater than minscale
node.getScaleController().setMaxScale(0.02f);
node.getScaleController().setMinScale(0.01f);
node.setParent(anchorNode);
node.setRenderable(renderable);
node.select();
关于java - 我如何在 ARCore 中调整对象的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52736605/