java - 我如何在 ARCore 中调整对象的大小?

标签 java android kotlin augmented-reality arcore

我在 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/

相关文章:

javax.servlet.ServletException : Could not resolve view with name 'home' in servlet with name 'appServlet'

java - 如何更改小部件启动器预览?

android - 为什么kotlin协程可以在另一个线程上操作UI元素

javax.crypto.BadPaddingException

java - 我可以将 osgi.enterprise.jar 放在我的 Equinox 插件文件夹中吗?

android - 如何在相对度量中指定 Android GridLayout 单元格的宽度和高度?

spring - Kotlin Hibernate 中删除 ManyToOne 列表类型

intellij-idea - IntelliJ 不对 Kotlin 导入进行排序

java - Struts2属性标签默认转义属性

Android 注释不注入(inject) RestService