Autodesk forge 在Forge Viewer中显示模型之前,如何加载模型并更改材质

Autodesk forge 在Forge Viewer中显示模型之前,如何加载模型并更改材质,autodesk-forge,autodesk-viewer,Autodesk Forge,Autodesk Viewer,我希望能够在forge viewer中显示模型,但在模型显示之前,我需要更改其默认材质。当前,我注册了Autodesk.Viewing.GEOMETRY\u LOADED\u事件,收到该事件后,我将隐藏模型,更改材质,然后显示模型。除了默认模型在查看器中显示一两秒钟后,我才能将其隐藏外,其他操作都有效。我怎样才能防止这种情况发生 初始化查看器后,这里是加载文档的代码。如果我试图隐藏模型,如下面注释代码所示,查看器将返回此错误。我必须等待加载的几何体事件,然后才能隐藏它 wgs.js?v=v3.3

我希望能够在forge viewer中显示模型,但在模型显示之前,我需要更改其默认材质。当前,我注册了Autodesk.Viewing.GEOMETRY\u LOADED\u事件,收到该事件后,我将隐藏模型,更改材质,然后显示模型。除了默认模型在查看器中显示一两秒钟后,我才能将其隐藏外,其他操作都有效。我怎样才能防止这种情况发生

初始化查看器后,这里是加载文档的代码。如果我试图隐藏模型,如下面注释代码所示,查看器将返回此错误。我必须等待加载的几何体事件,然后才能隐藏它

wgs.js?v=v3.3:17876未捕获类型错误:无法读取未定义的属性“getGeometryList” 在RenderScene.getGeometryList(wgs.js?v=v3.3:17876) 在Viewer3DImpl.onLoadComplete(viewer3D.js?v=v3.3:32002)

下面是我正在运行的代码:

Autodesk.Viewing.Document.load(
  documentId, (doc) => { 
    var geometryItems = Autodesk.Viewing.Document.getSubItemsWithProperties(doc.getRootItem(), { 'type': 'geometry' }, true);
    if (geometryItems.length > 0) {

      viewer.load(doc.getViewablePath(geometryItems[0]), null, (model) => {
        // Document loaded

        // Can't hide model here, viewer returns an error because geometry
        // is not loaded
        //viewer.hideModel(model.id);
        resolve(model.id);
      }); // show 1st view on this document...
    }
  },
  function (errorMsg) { // onErrorCallback
    console.log('Load Document returned error message: ' + errorMsg);
  }
)

我会简单地显示一个预罐装jpg图像预览来代替forge画布

即。 1.使用样式“display:none”隐藏forge画布 2.在forge画布上显示预览jpg 3.等待纹理\u加载的\u事件事件,如下所示

  • 使用样式“display:block”隐藏forge画布
  • 隐藏预览jpg

  • 谢谢,如果我隐藏画布,我会得到这个错误:渲染到一个调整为零的画布。如果看到此消息,您可能会意外泄漏查看器实例。错误代码:14.ah好的。只需在预览jpg上放置一个z-index:2,这样它就位于画布的顶部。然后在纹理加载事件完成后隐藏预览jpg。(即,不要隐藏锻造帆布)