使用 Forge AR/VR 工具包加载时模型不完整
Model incomplete when loading with Forge AR/VR Toolkit
我有一个 IFC 模型,我使用场景准备 (http://forgetoolkit.com/#/scenePrepration) 中的示例脚本 'test-2legged' 将其上传到 Forge。然后我用 AR/VR 工具包 (ForgeARKit-update-6-2018.1) 加载它。但是下载的模型不完整(见下图)。模型中没有外部链接。
另请注意,我在 'test-2legged' 中做了一些小修改,因为原始示例不能直接与新的测试版服务器“https://developer-api-beta.autodesk.io' (please refer to another post: ) 一起使用。
对于模型中的某些组件,它似乎是可见的,但对于其他一些组件则不是,我注意到的一件事是某些组件在 Type/Type 等属性中具有非 Unicode(芬兰语)值名称,不确定这是否是根本原因。
谁能帮忙看看哪里出了问题?我可以上传示例模型。
提前致谢!
对于任何 运行 遇到类似问题的人来说,在 Unity 中解析来自 https://developer-api-beta.autodesk.io 的仿射变换的方式存在问题。如果您看到类似的问题(场景中的网格 positions/rotations/scales 全部设置为零),请转到 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;
我有一个 IFC 模型,我使用场景准备 (http://forgetoolkit.com/#/scenePrepration) 中的示例脚本 'test-2legged' 将其上传到 Forge。然后我用 AR/VR 工具包 (ForgeARKit-update-6-2018.1) 加载它。但是下载的模型不完整(见下图)。模型中没有外部链接。
另请注意,我在 'test-2legged' 中做了一些小修改,因为原始示例不能直接与新的测试版服务器“https://developer-api-beta.autodesk.io' (please refer to another post:
对于模型中的某些组件,它似乎是可见的,但对于其他一些组件则不是,我注意到的一件事是某些组件在 Type/Type 等属性中具有非 Unicode(芬兰语)值名称,不确定这是否是根本原因。
谁能帮忙看看哪里出了问题?我可以上传示例模型。
提前致谢!
对于任何 运行 遇到类似问题的人来说,在 Unity 中解析来自 https://developer-api-beta.autodesk.io 的仿射变换的方式存在问题。如果您看到类似的问题(场景中的网格 positions/rotations/scales 全部设置为零),请转到 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;