问题描述
我有两个应该完美对齐的模型,但是它与第一个模型具有相同的全局偏移量,并将其应用于第二个模型,这会产生对齐问题。
基本上我希望我的两个模型都放置在自己的坐标上。
即使我提供了globalOffset:{x:0,y:0,z:0},其破坏也是如此。
我的代码:
Autodesk.Viewing.Initializer(options,() => {
const div = document.getElementById('forgeViewer');
viewer = new Autodesk.Viewing.Private.GuiViewer3D(div);
viewer.start();
urn.map((m)=>{
Autodesk.Viewing.Document.load(`urn:${m.urn}`,(doc) => {
var viewables = doc.getRoot().getDefaultGeometry();
var modelOption = {
keepCurrentModels: true,applyScaling: 'm'
};
onDocumentLoadSuccess(doc,modelOption);
});
})
});
}
function onDocumentLoadSuccess(doc,opt) {
var viewables = doc.getRoot().getDefaultGeometry();
viewer.loadDocumentNode(doc,viewables,opt).then(i => {
viewer.addEventListener(Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT,function () {
// extra code
});
});
}
解决方法
您可以在此处检查我的示例(MultipleModelUtil),然后转到line#147 将 globalOffset 应用于第二个模型。或在此处检查AggrefatedView:https://forge.autodesk.com/blog/loading-multiple-models-forge-viewer-v7
注意。请不要将globalOffset设置为{x:0,y:0,z:}
,您会遇到Z-fighting问题(例如,模型轻弹...)