0

我有一个 IFC 模型,我使用场景准备 ( http://forgetoolkit.com/#/scenePrepration ) 中的示例脚本“test-2legged”将其上传到 Forge。然后我用 AR/VR 工具包 (ForgeARKit-update-6-2018.1) 加载它。但是下载的模型不完整(见下图)。模型中没有外部链接。

另请注意,我在“test-2legged”中做了一些小修改,因为原始示例不能直接与新的 beta 服务器“ https://developer-api-beta.autodesk.io ”一起使用(请参阅另一篇文章:Forge ARKit:无法在 Unity 中加载模型)。

似乎对于模型中的某些组件是可见的,但对于其他一些组件则不是,我注意到的一件事是某些组件在类型/类型名称等属性中具有非 Unicode(芬兰语)值,不确定是否是根本原因。

任何人都可以帮助检查可能出了什么问题吗?我可以上传示例模型。

下载的模型不完整,只有部分组件可见

它应该是什么样子

先感谢您!

4

1 回答 1

1

对于遇到类似问题的任何人,在 Unity 中如何解析来自https://developer-api-beta.autodesk.io的仿射变换存在问题。如果您看到类似的问题(场景中的网格的位置/旋转/比例全部设置为零),请转到Assets/Forge/CodeBase/InstanceTreeRequest.cs"AffineMatrix"并用以下代码替换开关盒:

case "AffineMatrix":
    Matrix4x4 mat = new Matrix4x4 ();

    var elements = node["mt"]["elements"].AsArray;
    mat.m00 = elements[0].AsFloat;
    mat.m10 = elements[1].AsFloat;
    mat.m20 = elements[2].AsFloat;
    mat.m01 = elements[3].AsFloat;
    mat.m11 = elements[4].AsFloat;
    mat.m21 = elements[5].AsFloat;
    mat.m02 = elements[6].AsFloat;
    mat.m12 = elements[7].AsFloat;
    mat.m22 = elements[8].AsFloat;

    mat.m03 = node["tr"]["x"].AsFloat;
    mat.m13 = node["tr"]["y"].AsFloat;
    mat.m23 = node["tr"]["z"].AsFloat;
    mat.m33 = 1.0f;

    obj.transform.localScale = ScaleFromMatrix (mat);
    obj.transform.rotation = RotationFromMatrix (mat);
    obj.transform.position = TranslationFromMatrix (mat);
    break;
于 2019-06-10T11:39:19.083 回答